Repository navigation
v1.11.0 — 闭环回执、请示升级、就地重规划与跨部门协作
dsh-workplan v1.11.0 — 闭环契约 v1:回执、请示、指示、回报、重规划、跨部门协作
发布日期:2026-11-02
本版回应两组用户质疑:一是「派发→执行→遇阻→请示→指示→回报→进度→重规划」链条是否真的闭合;二是「需要跨部门协作时是否有可靠机制」。全部结论都有代码落点,未完成项在本说明末尾明列,不包装成已完成。
一、8 条质疑的处置结果
判定沿用代码级取证(3 条成立、5 条部分成立、0 条不成立):
- 下发分解:计划消息点名要求调用
dsh_workplan_dispatch;派发即写closure='assigned'与派发序号;子会话首个新事件写acknowledged;90s 未回执标ackOverdue,180s 仍无事件判blocked/no-ack并中止该次尝试。 - 执行深度:删除「证据足够就立即汇报」的早停指令,改为「每条验收标准至少一处可复核证据」;
acceptance自称pass但没有evidence时降级unverified,交付门禁继续拦截。 - 遇阻主动上报并请示:新增子会话工具
dsh_workplan_escalate(问题必填、按子会话反查计划、写入「待指示」并向父会话追加记录);子提示词强制「遇阻先上报、再停止等待」。 - 收到指示后执行:新增根会话工具
dsh_workplan_instruct(仅根会话、仅「待指示」、仅直接子会话);投递成功后写「已给指示」;60s 无进展标提醒、180s 无事件判no-ack;子任务再次激活时指示文本直接进入提示词。 - 完成后主动回报:无结构化证据块、又没写
BLOCKED:的结果改判blocked/unverified(沉默不再算成功);结果消息写入成功后该行才变为「已回报」,未回报的行拦住交付。 - 需求变更及时重规划:新增根会话工具
dsh_workplan_replan(取消/替换/新增);执行中收到的新要求不再被静默丢弃,先记为changeRequest,由主 Agent 当轮判定;旧行保留「已重规划」、不计入剩余项、不再调度。 - 左侧栏进度同步:
serialisePlan同一次快照下发闭环字段;界面新增「待你决定」「已给指示 · 待执行」「已下发 · 待回应」「已回应 · 执行中」「完成 · 待回报」「已回报」「已重规划」「指示还没被执行」等徽标;仍为写入后 ≤4s 可见(SSE 推送列入 1.12)。 - 底层机制:新增与四值
status正交的closure状态机(9 态)与合法迁移白名单,非法迁移抛INVALID_TRANSITION;唯一写入口applyStatus;三个新工具的服务端权限校验不依赖提示词。
二、跨部门协作(本版新增)
- 需求登记:子 Agent 的
needs自动变成可追踪的handoffs(编号 H1、H2…),去重、可回放。 - 四态生命周期:
open(待处置)→routed(已指派部门)→answered(已答复)/closed(无需动作)。open/routed会拦住present,并在交付阻塞里写明是哪一条需求。 - 唯一处置入口:新增根会话工具
dsh_workplan_handoff,支持list/assign/resolve/close;子 Agent 不能宣称需求已解决。 - 答复真的送进等待方:若提出需求的行正处于「待指示」,
resolve会复用instructSubtask的投递与回执链路,把答复直接送进子会话——只改计划表、不唤醒等待方的「闭环」不算闭环。 - 不会静默丢需求:handoff 容量与
needs上限对齐(10 条),不再出现「第 9、10 条不登记也不拦门禁」。 - 答复回到提出方:子任务再次激活时,已答复的需求与答复正文进入提示词;仍在等待的需求明确要求「不要重复上报、先做不依赖它的部分」。
- 交接物可消费:下游任务的依赖结果里带上上游已核验存在的产物引用,不再只有一句摘要。
- 进度栏可见:每条需求编号、原文、指派部门、状态与答复都在任务行内显示。
- 指派语义诚实:插件没有常驻部门代理,
assign只登记责任;需要产出时工具会明确要求用dsh_workplan_replan(action=add)建子任务,避免「已指派」被误读成「已有人在干」。 - 重规划也校验部门:
replace/add与首次规划同强度校验部门枚举,非法值(数字、对象、注入文本)直接拒绝,不再进入子 Agent 提示词首行。
三、走查修正(端到端报告 N1–N5)
- 重规划后阶段分母不再包含旧行(不再出现「头部 100%、阶段条 1/2」)。
- 「等指示」不再被判定为可续跑,也不消耗续跑额度。
- 下发指示后计划阶段立即从「卡住了」回到「正在做」。
- 指示回执提醒可在刷新后保留;子会话一开始产生事件就记为「已回应」,较慢的正常任务不会被误判。
- 执行中收到的需求变更正文直接显示在卡片上。
四、升级方式
dsh plugin --profile web add dsh-workplan@1.11.0装完重启一次 DSH Web(或重新载入页面)。不需要迁移数据;旧会话按原语义回放,旧日志没有 closure 的完成行视为已回报,不会被升级误判。
五、兼容性与破坏性变更
无破坏性变更。 计划消息版本仍为 1;未删除或改名任何既有字段/工具;status 仍是四值;新增字段全部可选。
行为变化(有意收紧):
- 子任务派发后 180s 内没有任何事件会记为
blocked/no-ack,而不是一直显示进行中。 - 没有结构化证据块的「完成」不再自动算成功。
- 子 Agent 提出的跨部门需求未处置时,计划不能交付。
六、测试
npm test:363 / 363 通过(含构建与版本一致性断言)。新增/更新用例覆盖:派发回执与升级、指示回执超时、重规划进度、证据契约、跨部门需求闭环、N1–N5 走查修正、验收覆盖门禁、取消悬挂与子 Agent 交付禁令。
七、本版仍未包含(如实列出)
- SSE 实时推送:左侧栏仍是 4s 有界轮询,不是「不同步」,但也不是推送。
- 完全自动派发:仍需模型在收到计划后调用派发工具;改成自动派发会绕过预算与权限判断。
- 独立复核 / 深度下限的第二套预算:本版只做「证据不足不算完成」,不做第二个模型复核。
- 预算 / 并发 / maxDepth 调参:900s、1200s、5 并发是现有安全边界,需基准数据后再动。
八、可复核入口
- 变更记录:仓库
CHANGELOG.md的 1.11.0 段 - 8 问判定与证据:
_t3_verdict_matrix_20261102/verdict_matrix_dsh-workplan.md - 闭环契约:
_t4_contract_20261102/closure_contract_dsh-workplan.md - 端到端走查:
_t10_walkthrough_20261102/end_to_end_walkthrough_dsh-workplan.md