锁定 Provider 适配层兼容行为

验证 neutral adapter 默认关闭 reasoning 捕获

补充带 reasoning 上游响应的正文流回归覆盖

确认 GameAgent 与 AGC Runtime 继续只消费正文字段
This commit is contained in:
2026-09-14 12:31:29 +08:00
parent 0635ddfdb1
commit deb327ce1f
2 changed files with 57 additions and 2 deletions
@@ -0,0 +1,54 @@
# 【实施计划】Provider 适配层兼容与 GameAgent 回归
| 字段 | 值 |
| --- | --- |
| Milestone | `docs/project-memory/plans/【里程碑】Provider推理与正文分离及策划Agent展示-2026-09-14.md` |
| Status | awaiting-review |
| Owner | Codex |
## 修改边界
本轮覆盖 `server-rs/crates/platform-llm/src/provider_adapter.rs` 与 AGC Runtime 中已有的正文流测试/辅助构造点;不新增 ProviderStreamEvent、HTTP DTO、OpenAPI、SpacetimeDB 字段,也不接入策划 Runtime 或前端 UI。
## 实现顺序
1. 核对 neutral Provider adapter 的请求映射保持 `capture_reasoning=false`,并确保适配层不把 reasoning 写入正文 content 或工具调用。
2. 用带 reasoning 的 loopback 响应补充 invoke/stream 回归测试,证明适配层仍只向 GameAgent 暴露正文事件。
3. 检查 AGC Runtime 的正文流校验、回退和工具调用测试只依赖 `delta_text`/`accumulated_text`/`finish_reason`,必要时补充新增字段为空的构造断言。
## 验收标准
- Provider adapter 的普通调用返回正文和工具调用不变,reasoning 不进入 `ProviderResponse.content()`
- Provider adapter 的流式 sink 只收到现有 `ProviderStreamEvent::TextDelta`,reasoning 不改变正文累计和 finish reason。
- GameAgent/Agent Runtime 的现有正文流、回退、工具调用测试通过;未新增 reasoning 消费逻辑。
- 不修改公开 Provider stream 枚举或 GameAgent 业务协议。
## 本轮验收证据
| 证据 | 结果 |
| --- | --- |
| `cargo test --manifest-path server-rs/Cargo.toml -p platform-llm` | PASS151 个测试通过 |
| `cargo check --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --tests` | PASS;现有编译警告未新增为错误 |
| `cargo fmt --manifest-path server-rs/Cargo.toml --all -- --check` | PASS |
| `cargo fmt --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml -- --check` | PASS |
| `npm run check:encoding` | PASS4561 个文件 |
| `npm run check:doc-index` | PASS101 份 Markdown |
| `git diff --check` | PASS |
未验证项:未连接真实 Provider;第三轮未引入新的 ProviderStreamEvent,也未接入策划 Runtime/UI。
## 验证命令
```text
cargo test --manifest-path server-rs/Cargo.toml -p platform-llm
cargo check --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --tests
cargo fmt --manifest-path server-rs/Cargo.toml --all -- --check
cargo fmt --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml -- --check
npm run check:encoding
git diff --check
```
## 风险与回滚点
- 若 neutral Provider core 后续需要公开 reasoning 事件,将另开契约变更,不在本轮扩展枚举。
- 若 AGC 测试暴露 reasoning 字段被误写入正文,回退 adapter 透传改动,保留共享 Provider 解析结果供策划专用路径使用。