docs: 同步两份文档的实现进度(内核主线 0~2.5 全部完成)

This commit is contained in:
JianFeeeee
2026-09-27 11:56:01 +08:00
parent 0327419c88
commit ae3cdaa1a0
2 changed files with 22 additions and 16 deletions

View File

@ -677,10 +677,10 @@ if ret, err := parent.ExecuteTool(name, args); err == nil {
| 阶段 | 内容 | 依赖 | 价值 |
| --- | --- | --- | --- |
| **0** | 修 map 迭代顺序(§6.3) | — | ✅ 已完成 |
| **0.5** | 补多 tool_call 批内路径的判据(§6.6 注) | — | 并行化的前置:批内逻辑目前无判据 |
| **1** | 结果契约 + 参数预校验(§4) | — | 独立价值:消灭 C 类浪费,模型直接看到真因 |
| **2** | **并行执行层(§6)** | 1 | **内核侧唯一交付物**;插件并行的地基 |
| **2.5** | **提示词改为「默认并行」**(§6.5) | 2 | ⚠️ 必须在并行落地**之后**,否则提示词说谎 |
| **0.5** | 补多 tool_call 批内路径的判据(§6.6 注) | — | ✅ 已完成 |
| **1** | 结果契约 + 参数预校验(§4) | — | ✅ 已完成(1a/1b/1c/1d) |
| **2** | **并行执行层(§6)** | 1 | ✅ 已完成(2a 落法 / 2b per-call / 2c per-tool ctx / 2d 调度保序) |
| **2.5** | **提示词改为「默认并行」**(§6.5) | 2 | ✅ 已完成 |
**内核主线到此结束。** §7/§8 的序列能力**不属于内核**,由 `seq` 插件实现。

View File

@ -17,8 +17,8 @@
| **0.2** | **工具错误类型化(已完成)** | — | ✅ **已完成** |
| **0.5** | 补多 tool_call 批内路径判据 | — | ✅ **已完成** |
| **1** | 结果契约 + 参数预校验 | — | ⬜ 待办 |
| **2** | 并行执行层 | 1 | ⬜ 待办 |
| **2.5** | 提示词改为「默认并行」 | 2 | ⬜ 待办 |
| **2** | 并行执行层 | 1 | ✅ **已完成**(2a/2b/2c/2d) |
| **2.5** | 提示词改为「默认并行」 | 2 | ✅ **已完成** |
| **3** | 序列内核 | 2 | ⬜ 待办(设计已定,实现另议) |
| **4** | `seq_*` 插件 | 3 | ⬜ 待办(设计已定,实现另议) |
@ -240,21 +240,27 @@ type ToolError struct {
---
## 阶段 2.5 ⬜ 提示词改为「默认并行」
## 阶段 2.5 ✅ 提示词改为「默认并行」(已完成)
⚠️ **必须在阶段 2 落地之后**(见「顺序不可调换的两处」)。
⚠️ 有**硬性顺序约束**:必须在阶段 2 落地**之后**。反序(先说"并发"、内核仍
串行)会让提示词**对模型说谎** —— 模型据此推断安全性,写出真正依赖顺序的
调用。宁可晚改,不可错改。
对应设计文档 §6.5。`buildSystemPrompt`(`tooldefs.go`)新增一段,表达四件事:
默认并行 / 不可依赖顺序 / 例外:同通道输出保序 / 例外:写类工具不并发。
新增【工具执行顺序】段,讲清四件事:
**同时必改**:`spawn_child` 描述里那句「应并行 spawn 多个子 Agent,不要自己串行逐个执行」
(`tooldefs.go:466`)——它在改造前是**落空**的(模型照做,内核仍串行);
改造后应改为机制性表述。
1. 同一条回复里的多个工具调用**默认并行**(同时跑),不是依次执行
2. **不要依赖执行顺序** —— 参数依赖前一个结果就分两轮
3. **例外一:同通道 `output_send__` 保序**(用户可见消息顺序敏感)
4. **例外二:不并发安全的工具整批退回串行**(写类工具 / 未声明者)
**判据**:提示词内容断言(`prompt_contract_test.go`)——四要点各自在文本中命中;
且**负判据**:串行阶段的提示词**不含**「默认并行」字样,防止再次跑反顺序。
措辞刻意与 `batchRunnable` 的**真实**判据一致,而不是理想化表述 ——
**提示词与实现不符,比不说更坏**。
---
顺带改掉 `spawn_child` 的落空表述(原文「应并行 spawn,不要自己串行逐个执行」
在并行化之前是落空的)。
判据 `prompt_parallel_test.go`(5 条),其中**负向**那条最关键:
只讲并行、不讲例外 ⇒ FAIL("提示词说谎"的失败模式已被覆盖)。
## 阶段 3 / 4 ⬜ 序列(设计已定,实现另议)