move runtime_workspace and agent_tool_route stages to completed

This commit is contained in:
2026-08-07 17:10:01 +08:00
parent 10840909ab
commit e94fbc4fb4
20 changed files with 0 additions and 0 deletions
@@ -0,0 +1,103 @@
# 04A.agent_tool_route 联合评审(四)
**评审编号:** 04
**日期:** 2026-08-07
**评审对象:** [04A.agent_tool_route.md](04A.agent_tool_route.md)、[02.technical_implementation_spec.md](02.technical_implementation_spec.md)、[04.runtime_workspace.md](../04.runtime_workspace/04.runtime_workspace.md)、[05.technical_implementation_spec.md](../04.runtime_workspace/05.technical_implementation_spec.md)、[运行时与智能体工具.md](../../设计/02.正式方案/运行时与智能体工具.md)、[lineup-runtime-sdk-architecture.md](../../设计/02.正式方案/lineup-runtime-sdk-architecture.md)、[app_final_design.md](../../设计/02.正式方案/app_final_design.md),以及当前 `tauri/src/runtime/` 中与 Tool invoke / Tool Router / 回程 outbox 相关的实现。
**评审方法:**`04A` 主定义和实施规范为候选基线,联合对照 `04.runtime_workspace` 已冻结的 Runtime 行为、`02.正式方案` 中 Runtime Tool 模型的正式边界,以及当前 Tauri Runtime 的协议 parser / router / outbox 代码,重点检查“文档是否把 04A 的真实改动边界写实”以及“请求侧统一与回程侧兼容是否被错误混写”。
**总体结论:** 本轮联合评审发现两处新的 P2 级口径冲突,都会直接影响实现范围和验收判断,但都不是架构方向错误:第一,`04A` 文档先前把工作描述成“仅 Adapter 补齐”,与当前 Runtime 仍主要按旧请求类型接收 MiniApp Tool 调用的实现事实不符;要让 `lineup.v1.tool.invoke` 真正打通,必须补一个最小 Runtime 请求兼容层。第二,`04A` 文档先前把“统一 Agent Tool invoke”表述得过宽,容易让实现者误以为本轮还要把 Runtime 既有 MiniApp Tool 回程 envelope 一并收敛。结合 `04.runtime_workspace` 已冻结实现与当前代码现状,更准确的结论应是:`04A` 统一的是**请求入口**,回程仍沿用 Runtime 已冻结的兼容事实,并由 Adapter 解释为同一条 `call_id` 的 receipts / progress / final result。两项问题均已在本次评审中回填到主定义与实施规范;当前无未解决的 P0~P3 问题。
## 问题清单(Outline
状态标记:🔴 未解决,必须处理;🟡 已提出修复方向,尚未确认或未回填实施权威;✅ 已解决;⚪ 可延期但必须保留记录。P0~P3 必须在当前迭代处理;P4~P5 可以延期,但必须记录延期原因和重新评估条件。
| 状态 | 优先级 | 编号 | 问题 | 当前结论 / 下一步 |
|---|---:|---|---|---|
| ✅ | P2 | D04A-07 | `04A` 文档把实现口径写成“仅 Adapter 补齐”,但当前 Runtime 仍主要按旧请求类型接收 MiniApp Tool 调用;若不补一层 Runtime 请求兼容,`lineup.v1.tool.invoke` 无法真正端到端生效。 | 已回填:`04A` 改为“Adapter 为主、附带最小 Runtime 请求兼容补丁”;允许仅在 Runtime parser / router / 测试夹具上补 `lineup.v1.tool.invoke` 接受能力,不改写 `04.runtime_workspace` 已冻结的业务语义。 |
| ✅ | P2 | D04A-08 | `04A` 文档把“统一 Agent Tool invoke”描述得过宽,容易误导为本轮还要把 Runtime 既有 MiniApp Tool 回程 envelope 一并统一。 | 已回填:`04A` 当前统一的是请求入口;回程仍沿用 Runtime 已冻结且当前代码仍在发送的兼容事实,Adapter 只按同一 `call_id` 解释,不再新增第三套协议分支。 |
## 已确认的一致性
### `app-server` 仍可保持透明传输层
本次复核没有发现 `lineup-app-server` 需要理解 `lineup.v1.tool.invoke` 业务语义的证据。当前阻塞并不在传输层,而在 Runtime 本地 parser / router 对新请求类型的接受能力。
因此,用户此前关于“是否涉及 app-server”的判断仍成立:`04A` 不应扩大为 Go 服务端语义改造。
### `04A` 的 Runtime 改动属于兼容补丁,不是边界回退
`04.runtime_workspace` 已冻结的权威仍然是 Runtime 对 revision、schema、activation、foreground gating、operation、outbox 与恢复的唯一裁决。
这次要求的 Runtime 变更,只是让它在**请求入口**上接受 `lineup.v1.tool.invoke`;不改变 Tool Router 的核心裁决,也不把 Hermes 私有 contract 拉进 Runtime。
### 正式方案与当前实现可以通过“概念层 / 兼容层”两级解释保持一致
`02.正式方案` 中的 `tool.invoke / tool.result / progress` 描述的是统一 Agent Tool 模型。当前 Tauri Runtime 则仍保留 `lineup.v1.*` 兼容信封和已验收的 MiniApp Tool 回程 envelope。
因此,本轮正确做法不是宣称“现有代码已经和正式方案一字不差”,而是明确:
1. `lineup.v1.tool.invoke` 是当前实现中的统一请求入口;
2. 当前回程仍是 `04.runtime_workspace` 已冻结的兼容事实;
3. 未来若做回程统一迁移,需要单独立项,不应在 `04A` 中顺手扩大。
## D04A-07:若不补 Runtime 请求兼容,`tool.invoke` 只会停留在 Adapter 内部
**已解决(2026-08-07,收敛决议)。** `04A.agent_tool_route.md``02.technical_implementation_spec.md` 已明确:本轮实现主场仍在 Hermes Adapter,但允许在 `lineup-app/tauri/src/runtime/` 中补最小请求兼容层,使 Runtime 接受 `lineup.v1.tool.invoke`
### 为什么这是 P2
当前冲突并不只是“代码还没写”,而是文档口径会直接误导实施范围:
```text
文档口径:04A 仅改 Adapter
实际代码:Runtime 主要仍按旧请求类型接收 MiniApp Tool
结果:Adapter 即使正确发出 lineup.v1.tool.invoke,也无法端到端命中既有 Tool Router
```
这会让实现者在联调时误判为:
1. 需要回退到旧请求类型;
2. 需要让 Adapter 同时发两种请求;
3. 需要扩大到 app-server 语义改造。
这三种方向都偏离了本轮已经收敛的架构结论,因此必须在当前迭代文档里把 Runtime 的最小兼容补丁正名。
### 收敛决议
本轮已确认:
1. `04A` 仍是 Adapter 主导迭代;
2. Runtime 允许补 parser / router / 测试夹具级别的最小请求兼容;
3. 该兼容层必须同时保留 `04.runtime_workspace` 既有请求路径,避免回归历史验收;
4. 该兼容层不改变 Runtime 的 schema / lifecycle / persistence / result 语义;
5. `lineup-app-server` 仍不进入本轮范围。
## D04A-08:请求统一不等于本轮已完成回程统一
**已解决(2026-08-07,收敛决议)。** `04A.agent_tool_route.md``02.technical_implementation_spec.md` 已把描述收窄为:`lineup.v1.tool.invoke` 统一的是请求入口;回程继续沿用 Runtime 已冻结且当前实现仍在发送的兼容事实,Adapter 以同一 `call_id` 解释,不再新增第三套协议分支。
### 为什么这是 P2
如果不收窄这层表述,会出现两个危险后果:
```text
后果 A:实现者误以为 04A 必须顺手重构 Runtime 全部 miniapp.tool.progress/result/cancel
-> 范围扩张到超出本轮验收与回归预算。
后果 B:验收者误以为只要代码里仍出现 miniapp.tool.result,就说明 04A 与正式方案冲突
-> 会把“兼容事实尚在”误判成“架构方向错误”。
```
这不是语义吹毛求疵,而是直接关系到本轮是否还能保持“最小补丁闭环”的实现策略。
### 收敛决议
本轮已确认:
1. `04A` 不新增新的本地回程协议族;
2. Adapter 需要能把现有回程解释为同一条 Agent Tool 调用的 receipts / progress / final result
3. Runtime 既有回程 envelope 是否重命名,不在 `04A` 范围内;
4. 若未来推进回程统一,应以新的迭代和新的设计评审承接,而不是在 `04A` 中隐式扩大。
## 评审关闭条件
1. D04A-07 与 D04A-08 已回填 [04A.agent_tool_route.md](04A.agent_tool_route.md) 与 [02.technical_implementation_spec.md](02.technical_implementation_spec.md)
2. 后续实现与验收必须按“Adapter 主导 + Runtime 最小请求兼容 + app-server 不动”的边界推进;
3. 后续若要推动 Runtime 回程 envelope 统一,必须新增独立设计评审记录,不能在 `04A` 中以顺手修正方式扩容;
4. 本评审当前无未解决的 P0P3。