协议规范

men 通过10 步编排协议、5 项机械验证、14 种事件类型和自主学习回路,保障每次任务从分诊到交付的完整质量。

10 步编排协议

每次 /ultrawork 任务按以下步骤自动执行:

步名称说明设计动机
01CERTAINTY
需求确认
任务模糊、有歧义、缺少关键信息时,先向用户追问,直到 100% 明确才开工。你的 Clarification level 是 HIGH——低置信时必须确认,不猜。避免返工。猜错方向比慢 5 秒要命。
02TRIAGE
意图分诊
四类意图判定:search / analyze / team / hyperplan。判定后把意图写入事件日志。不同意图走不同执行策略,分类正确是后续一切的基础。
03PLAN
si 规划
team 和 hyperplan 类必须 spawn si 产出 plan envelope:依赖图 + 并行波次 + 验收标准表。规划先行,避免无序执行。search 类跳过此步。
04DISPATCH
Wave 调度
按 plan 的波次执行,并行上限 ≤4。每个 prompt 必须完整自洽:上下文、skill、产出路径、验收标准缺一不可。波次保障依赖关系,≤4 避免资源争用,完整 prompt 保障子 agent 不问也能干。
05COLLECT
收集产物
收集所有子 agent 返回结果和落盘产物,检查文件是否存在、退出码是否为 0。汇总为结构化清单。产物是后续验证的输入,缺一个就卡住。
06EVALUATE
si 回评
把 ji/yi 等产出角色的结果回传给 si 做质量评估。si 只评不改,标注哪些达标、哪些不达标。第二双眼睛,防止子 agent 自己骗自己。
07VERIFY
双层验证
机械门禁(verify.mjs 五项检查)全 PASS 后,chi 做 fresh-context 语义复核。两层都过才算完成。机械识破假文件,语义识破假内容。
08REPORT
汇总汇报
四段模板:结论 → 关键信息 → 来源/证据 → 未决问题。每个子任务标注完成/部分/失败。用户拿到的是结构化可决策的报告,不是碎片。
09LOOP
循环重试
验证失败回到失败点重试(不从头),上限 5 次。超限报卡住,交中间产物给用户。不浪费已完成的中间产物,5 次是耐心与诚实的平衡。
10LEARN
自主学习
REPORT 后立即触发 learn.mjs,从事件流提取经验写入 knowledge/errors 与 knowledge/patterns。不阻塞流程。经验不会自然消失,写入知识库供下次任务读取。

来源:docs/architecture.md · .opencode/command/ultrawork.md

5 项机械验证

verify.mjs 在 chi judge 之前执行,五项检查全部 PASS 才进入语义复核:

ID检查项severity说明
output-exists产物存在FAIL产物文件存在且非空(>0 字节),声称完成但文件不存在 = 识破假完成
secrets密钥扫描FAIL扫描 password/secret/api_key/token 等硬编码密钥
todo-scanTODO 计数WARN扫描 TODO/FIXME/HACK/XXX 标记,仅警告不阻止
structure结构合法FAIL.md frontmatter 合法性、.json 可解析性
gate-exit-code脚本退出码FAILtypecheck/test/lint 脚本退出码必须为 0
severity 含义:FAIL = 立即终止并回到失败点重试;WARN = 仅警告不阻止流程。

来源:scripts/verify.mjs

14 种事件类型

所有关键节点写入 events.jsonl(append-only),支持命令行回放:

事件 Kind触发时机记录者
session.created任务开始时men
session.ended任务结束时men
boundary跨角色交互时任一角色
workflow.phase10 步协议每步完成men
gate.passed机械门禁通过gate.mjs(自动)
gate.failed机械门禁失败gate.mjs(自动)
blocker.raised卡住/超限/阻塞men 或 chi
decision.made意图分类、任务分发、LEARN 触发men
decision.missing低置信决策未做men
dispatchmen 分发子任务给子 agentmen
handoff任务完成后交接men
judgechi 独立评审chi
verifyverify.mjs 验证verify.mjs(自动)
error错误模式写入知识库learn.mjs(自动)

来源:scripts/event.mjs · scripts/learn-rules.mjs

自主学习回路

任务完成(REPORT)后,learn.mjs 自动触发,依次执行:

  1. 读取事件流 — 从 events.jsonl 读取本任务所有事件,按 type 分类统计
  2. 提取错误模式 — 识别 gate.failed / blocker.raised 等失败事件,写入 knowledge/errors/
  3. 提取协作模式 — 识别成功路径(dispatch + gate.passed + handoff),写入 knowledge/patterns/
  4. 下次读取 — men 路由前自动读取 knowledge/patterns/ 与 knowledge/errors/,避免重复踩坑
学习操作为 best-effort:命令失败不阻塞主流程,但不丢弃关键字段。 配套的 eval-metrics.mjs 从 events.jsonl 计算 8 项 KPI(通过率、回归率、平均耗时等)。

来源:scripts/learn.mjs · scripts/eval-metrics.mjs

验证门禁

gate.mjs 执行白名单防护和死循环保护:

  • 白名单检查:禁止 agent 定义中的 prompt 注入 / 越权指令
  • 重试上限:单次任务最多重试 5 次,超限报卡住
  • 事件完整性:events.jsonl 必须包含 eventId/ts/sid/type 四个必填字段

来源:scripts/gate.mjs

参见