Repository navigation
v2.1.0 — 沟通交流格式契约(下发—自检—核验—退回闭环)
2.1.0 — 2026-11-06
建立主 Agent 与部门人员之间的统一沟通交流格式契约:派活时随任务附带同一份格式要求,部门人员提交前照此自查,主 Agent 收件后照同一份格式核验,不合规立刻退回并附逐条问题,通知其重新检查格式后全盘重交。
一、这次要解决的问题(说人话版)
以前主 Agent 给部门人员派活,只讲「要做什么」,没讲「结果按什么格式交」。于是同一种误会反复发生:活干完了,但交上来的回执缺证据、缺复盘、少验收条目,主 Agent 只能打回,来回折腾。
2.1.0 把「交付格式」本身变成双方共同遵守的契约:
- 派活时,格式要求跟着任务一起发下去(不是事后才说)。
- 部门人员交结果前,先自己照着这份格式逐条检查,全合规了才交。
- 主 Agent 收到后用同一份格式逐条核验;只要有一条不合规,立即退回,并写清是哪几条、为什么不合规。
- 部门人员重交时,会看到具体的退回原因,只补缺口,不用把整件事重做。
二、九条格式要求(F1–F9)
| 编号 | 要求 | 为什么需要 |
|---|---|---|
| F1 | 结果块用规定的起止标记包起来 | 主 Agent 才能准确切出结果正文,不会把说明文字当成结果 |
| F2 | 状态只能是 done / blocked / partial | 防止自造状态,导致机器无法判断 |
| F3 | 三阶段(规划、执行、验证)都要写 | 证明是「想过、做过、验过」,不是只有结论 |
| F4 | 说「通过」的验收项必须附证据 | 没有证据的「通过」不算通过 |
| F5 | 验收条目数不少于计划里要求的条数 | 防止漏答要求 |
| F6 | 产物条目格式合法(类型为文件/网址/备注,内容非空) | 让「产物在哪」可被机器核对 |
| F7 | 复盘四项(问题、弯路、解决、防再犯)各至少一条 | 经验能沉淀,下次少踩坑 |
| F8 | 报「受阻」必须写清卡在哪 | 主 Agent 才能给出有效指示,而不是干等 |
| F9 | 不得编造 | 诚信底线;由三阶段门禁与人工复核兜底 |
三、落地位置(可核对)
| 环节 | 代码位置 | 行为 |
|---|---|---|
| 下发 | src/comm-format.ts#renderCommFormatSpec → src/plan.ts#buildChildPrompt 末尾 |
每个子任务提示都附带九条规范与「提交前自查(强制)」指令 |
| 自检 | 同上(提示词内强制指令) | 部门人员提交前逐条对照 |
| 核验 | src/comm-format.ts#checkCommFormatCompliance → src/plan.ts#adjudicateResult |
主 Agent 用同一份规范逐条核验 F1–F8 |
| 退回 | adjudicateResult 返回 blockedKind:'comm-format' |
不合规即判受阻,退回通知写明逐条不合规项 |
| 重交 | src/runtime.ts#executeSubtask 的 lastFailure 注入 |
退回原因随下次激活回到子提示词,只补缺口不重做 |
四、验证
npm run check(tsc --noEmit)退出码 0。npm test:578 条用例,pass 578 / fail 0。- 新增
tests/workplan-comm-format.test.ts:F1–F8 逐条拒收、合规放行、退回通知文案、requirePhases:false兼容边界。 - 既有 1 条用例按新契约前移:
tests/workplan-evidence-contract.test.ts的 C-19 由「空证据 pass 降级 unverified 仍算完成」改为「按 F4 退回 blocked/comm-format」。 - 同时保留 2.0.5 草案的规划器 JSON 结构修复(括号/逗号/截断恢复),规划入口不再因一个字符的结构瑕疵整体降级。
五、发布渠道
- npm:
dsh-workplan@2.1.0 - GitHub Release:
v2.1.0,附dsh-workplan-2.1.0.tgz - 制品校验:
- sha256
0f015202575999b4be428bd55f2349f676a88ad48c605727cbd6e8494c9ac261 - sha1(与 npm registry 一致)
afc59da063e210f03eb0424b00da6e594f8536eb
- sha256
六、边界(不夸大)
- 只拦「即将判完成」的路径。解析失败、验收缺口、三阶段缺失已被更早的门禁拦下,保留原有更具针对性的诊断。
requirePhases:false(历史回放 / 明确关闭新契约)不追溯否决旧日志里按当时规则合法的完成记录。- F6 只校验产物声明是否合法,是否必须交付文件由各子任务的验收标准决定,避免把写作类任务误判为不合规。
- F9 不做自动判定:编造检测需要语义理解而非结构校验,写成提示词级诚信约束,由三阶段门禁与人工复核承担。