协议规范
men 通过10 步编排协议、5 项机械验证、14 种事件类型和自主学习回路,保障每次任务从分诊到交付的完整质量。
10 步编排协议
每次 /ultrawork 任务按以下步骤自动执行:
| 步 | 名称 | 说明 | 设计动机 |
|---|---|---|---|
01 | CERTAINTY 需求确认 | 任务模糊、有歧义、缺少关键信息时,先向用户追问,直到 100% 明确才开工。你的 Clarification level 是 HIGH——低置信时必须确认,不猜。 | 避免返工。猜错方向比慢 5 秒要命。 |
02 | TRIAGE 意图分诊 | 四类意图判定:search / analyze / team / hyperplan。判定后把意图写入事件日志。 | 不同意图走不同执行策略,分类正确是后续一切的基础。 |
03 | PLAN si 规划 | team 和 hyperplan 类必须 spawn si 产出 plan envelope:依赖图 + 并行波次 + 验收标准表。 | 规划先行,避免无序执行。search 类跳过此步。 |
04 | DISPATCH Wave 调度 | 按 plan 的波次执行,并行上限 ≤4。每个 prompt 必须完整自洽:上下文、skill、产出路径、验收标准缺一不可。 | 波次保障依赖关系,≤4 避免资源争用,完整 prompt 保障子 agent 不问也能干。 |
05 | COLLECT 收集产物 | 收集所有子 agent 返回结果和落盘产物,检查文件是否存在、退出码是否为 0。汇总为结构化清单。 | 产物是后续验证的输入,缺一个就卡住。 |
06 | EVALUATE si 回评 | 把 ji/yi 等产出角色的结果回传给 si 做质量评估。si 只评不改,标注哪些达标、哪些不达标。 | 第二双眼睛,防止子 agent 自己骗自己。 |
07 | VERIFY 双层验证 | 机械门禁(verify.mjs 五项检查)全 PASS 后,chi 做 fresh-context 语义复核。两层都过才算完成。 | 机械识破假文件,语义识破假内容。 |
08 | REPORT 汇总汇报 | 四段模板:结论 → 关键信息 → 来源/证据 → 未决问题。每个子任务标注完成/部分/失败。 | 用户拿到的是结构化可决策的报告,不是碎片。 |
09 | LOOP 循环重试 | 验证失败回到失败点重试(不从头),上限 5 次。超限报卡住,交中间产物给用户。 | 不浪费已完成的中间产物,5 次是耐心与诚实的平衡。 |
10 | LEARN 自主学习 | REPORT 后立即触发 learn.mjs,从事件流提取经验写入 knowledge/errors 与 knowledge/patterns。不阻塞流程。 | 经验不会自然消失,写入知识库供下次任务读取。 |
5 项机械验证
verify.mjs 在 chi judge 之前执行,五项检查全部 PASS 才进入语义复核:
| ID | 检查项 | severity | 说明 |
|---|---|---|---|
output-exists | 产物存在 | FAIL | 产物文件存在且非空(>0 字节),声称完成但文件不存在 = 识破假完成 |
secrets | 密钥扫描 | FAIL | 扫描 password/secret/api_key/token 等硬编码密钥 |
todo-scan | TODO 计数 | WARN | 扫描 TODO/FIXME/HACK/XXX 标记,仅警告不阻止 |
structure | 结构合法 | FAIL | .md frontmatter 合法性、.json 可解析性 |
gate-exit-code | 脚本退出码 | FAIL | typecheck/test/lint 脚本退出码必须为 0 |
severity 含义:
FAIL = 立即终止并回到失败点重试;WARN = 仅警告不阻止流程。14 种事件类型
所有关键节点写入 events.jsonl(append-only),支持命令行回放:
| 事件 Kind | 触发时机 | 记录者 |
|---|---|---|
session.created | 任务开始时 | men |
session.ended | 任务结束时 | men |
boundary | 跨角色交互时 | 任一角色 |
workflow.phase | 10 步协议每步完成 | men |
gate.passed | 机械门禁通过 | gate.mjs(自动) |
gate.failed | 机械门禁失败 | gate.mjs(自动) |
blocker.raised | 卡住/超限/阻塞 | men 或 chi |
decision.made | 意图分类、任务分发、LEARN 触发 | men |
decision.missing | 低置信决策未做 | men |
dispatch | men 分发子任务给子 agent | men |
handoff | 任务完成后交接 | men |
judge | chi 独立评审 | chi |
verify | verify.mjs 验证 | verify.mjs(自动) |
error | 错误模式写入知识库 | learn.mjs(自动) |
自主学习回路
任务完成(REPORT)后,learn.mjs 自动触发,依次执行:
- 读取事件流 — 从 events.jsonl 读取本任务所有事件,按 type 分类统计
- 提取错误模式 — 识别 gate.failed / blocker.raised 等失败事件,写入
knowledge/errors/ - 提取协作模式 — 识别成功路径(dispatch + gate.passed + handoff),写入
knowledge/patterns/ - 下次读取 — men 路由前自动读取 knowledge/patterns/ 与 knowledge/errors/,避免重复踩坑
学习操作为 best-effort:命令失败不阻塞主流程,但不丢弃关键字段。 配套的
eval-metrics.mjs 从 events.jsonl 计算 8 项 KPI(通过率、回归率、平均耗时等)。验证门禁
gate.mjs 执行白名单防护和死循环保护:
- 白名单检查:禁止 agent 定义中的 prompt 注入 / 越权指令
- 重试上限:单次任务最多重试 5 次,超限报卡住
- 事件完整性:events.jsonl 必须包含 eventId/ts/sid/type 四个必填字段