Skip to content

v1.11.0 — 闭环回执、请示升级、就地重规划与跨部门协作

Choose a tag to compare

@abbaababa abbaababa released this 02 Nov 07:01
· 55 commits to main since this release

dsh-workplan v1.11.0 — 闭环契约 v1:回执、请示、指示、回报、重规划、跨部门协作

发布日期:2026-11-02

本版回应两组用户质疑:一是「派发→执行→遇阻→请示→指示→回报→进度→重规划」链条是否真的闭合;二是「需要跨部门协作时是否有可靠机制」。全部结论都有代码落点,未完成项在本说明末尾明列,不包装成已完成。

一、8 条质疑的处置结果

判定沿用代码级取证(3 条成立、5 条部分成立、0 条不成立):

  1. 下发分解:计划消息点名要求调用 dsh_workplan_dispatch;派发即写 closure='assigned' 与派发序号;子会话首个新事件写 acknowledged;90s 未回执标 ackOverdue,180s 仍无事件判 blocked/no-ack 并中止该次尝试。
  2. 执行深度:删除「证据足够就立即汇报」的早停指令,改为「每条验收标准至少一处可复核证据」;acceptance 自称 pass 但没有 evidence 时降级 unverified,交付门禁继续拦截。
  3. 遇阻主动上报并请示:新增子会话工具 dsh_workplan_escalate(问题必填、按子会话反查计划、写入「待指示」并向父会话追加记录);子提示词强制「遇阻先上报、再停止等待」。
  4. 收到指示后执行:新增根会话工具 dsh_workplan_instruct(仅根会话、仅「待指示」、仅直接子会话);投递成功后写「已给指示」;60s 无进展标提醒、180s 无事件判 no-ack;子任务再次激活时指示文本直接进入提示词。
  5. 完成后主动回报:无结构化证据块、又没写 BLOCKED: 的结果改判 blocked/unverified(沉默不再算成功);结果消息写入成功后该行才变为「已回报」,未回报的行拦住交付。
  6. 需求变更及时重规划:新增根会话工具 dsh_workplan_replan(取消/替换/新增);执行中收到的新要求不再被静默丢弃,先记为 changeRequest,由主 Agent 当轮判定;旧行保留「已重规划」、不计入剩余项、不再调度。
  7. 左侧栏进度同步:serialisePlan 同一次快照下发闭环字段;界面新增「待你决定」「已给指示 · 待执行」「已下发 · 待回应」「已回应 · 执行中」「完成 · 待回报」「已回报」「已重规划」「指示还没被执行」等徽标;仍为写入后 ≤4s 可见(SSE 推送列入 1.12)。
  8. 底层机制:新增与四值 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