Files
sanguo_moziplus_v2/docs/design/01-four-phase-loop.md
T
2026-05-29 00:47:23 +08:00

16 KiB
Raw Blame History

#01 四相循环实施方案

序号: #01 名称: 四相循环 — PRD Phase 1~4 完整实现方案 版本: v1.0 基于: PRD-v3.0 §4 四相架构 + architecture-v3.0.md 作者: 庞统(副军师)🐦 日期: 2026-05-29 状态: 待评审 评审: 司马懿


§1. 背景和问题

1.1 当前状态

moziplus v2.0 已实现:

  • Blackboard 黑板(SQLite 14 表)
  • Comment + @mention 系统
  • Agent 认领(claim API + CAS
  • Daemon 30s tick 调度循环
  • Guardrail 安全红线
  • SubTask 模型 + Mail Tab

1.2 核心问题

PRD-v3.0 定义了四相架构(需求探索 → 动态规划 → 自主执行 → 主动汇报),但当前代码只实现了"Phase 3 的后半段"——Daemon 调度 Agent 执行。缺失:

  1. Phase 2 的讨论涌现:Agent 不在黑板上讨论,不自主创建任务,完全依赖 Daemon 调度
  2. Phase 3 的持续指挥:庞统不在一轮结束时 review,没有方向校正机制
  3. 司马懿全维度质量门控:当前只有代码评审 skill,缺少需求覆盖、方向一致性、产出物验证等维度
  4. Phase 3 的完整闭环:每个 Agent 完成后过司马懿 review(已实现),但一轮结束后的庞统 review + 动态调整 + 循环未实现

1.3 设计原则

PRD 是目标,T 阶段不是。不按 T 阶段拆分,四相循环一起实现。


§2. 核心模型:四相循环

Phase 1: 需求探索
    用户 + 庞统苏格拉底对话 → 明确 goal
    庞统创建 parent taskgoal 写入 must_haves
          │
          ▼
Phase 2: 动态规划(讨论涌现)
    庞统把 goal 写到黑板 → spawn 各 Agent 读黑板
    各 Agent 在黑板上讨论(comment / @mention)
    讨论过程中庞统无形中对齐方向(回答 @ 的问题)
    讨论收敛 → 各 Agent 自主创建 sub task
    不确定时 @ 庞统 进行目标对齐
          │
          ▼
Phase 3: 自主执行(循环)
    ┌─────────────────────────────────────────────┐
    │                                               │
    │  Daemon tick 派发 pending sub tasks            │
    │  各 Agent 自主执行                              │
    │  Agent 完成 → 司马懿 review(已有机制)         │
    │  review 通过 → sub task done                   │
    │  review 不通过 → Agent 修改 → 再 review        │
    │                                               │
    │  一轮结束(parent 下所有 sub 终态)              │
    │      ↓                                         │
    │  庞统 review 三问:                             │
    │    1. Goal 还清晰吗?                           │
    │    2. 成果物覆盖 goal 了吗?                     │
    │    3. 下一轮需要做什么?                         │
    │      ↓                                         │
    │  庞统决定:                                     │
    │    - 创建新一轮 sub tasks → 回到执行             │
    │    - goal 达成 → 进入 Phase 4                   │
    │    - 方向偏离 → 调整 goal + 新一轮              │
    │                                               │
    └─────────────────────────────────────────────┘
          │
          ▼
Phase 4: 主动汇报
    庞统推送成果物摘要 + 关键发现
    用户验收

2.1 关键设计决策

决策 选择 理由
"一轮"定义 parent 下所有 sub task 均为终态(done/failed/cancelled 方案 A,简洁可靠
庞统参与方式 讨论阶段通过 @mention 回答问题,一轮结束时 spawn review 不全程在线(OpenClaw 限制),但关键节点在场
Agent 自主度 Auftragstaktik + Autonomy Directive 给目标不给步骤,Agent 自主决定怎么协作
司马懿 review 时机 每个 Agent 完成任务后 已有机制,不变
庞统 review 时机 一轮结束时 检查整体方向,不介入每个 sub task
讨论时机 随时,不僵化分阶段 Phase 2 和 Phase 3 都可以在黑板上讨论

2.2 人的参与密度(PRD B4

Phase 人的参与 AI 自主
Phase 1 高(和庞统对话) 庞统主动提问
Phase 2 可选(可旁观讨论) Agent 自主讨论、创建任务
Phase 3 几乎不参与 只有安全红线才拉人
Phase 4 验收 AI 主动推送

§3. Agent Spawn Prompt 设计

3.1 设计理念

不是"固定步骤",不是"庞统规划流程",而是:

  1. 告诉 Agent 目标和约束(Auftragstaktik
  2. 告诉 Agent 黑板 API 能力
  3. 告诉 Agent 你是自主的(Autonomy Directive
  4. 告诉 Agent 行为边界(Boids 四条)
  5. 让 Agent 自己决定怎么协作和讨论

3.2 优秀实践来源

实践 来源 启示
Autonomy Directive oh-my-codex 实践 #12 Agent 自主执行,遇阻才问
Auftragstaktik 任务式指挥 moziplus-agent-lifecycle #4 Intent→End State→Constraints,不指定步骤
Boids 群体智能 moziplus-agent-lifecycle #6 Separation/Alignment/Cohesion/Boundary
元认知自评 moziplus-agent-lifecycle #5 Agent 产出自带 confidence
Agent API 契约自描述 moziplus-agent-lifecycle #9 API 返回可操作错误信息
约束分级(高/中/低自由) quality-gate-patterns #2 不同场景用不同严格度

3.3 Spawn Prompt 框架

## 你的任务

{goal_snapshot}

## 约束

{constraints}

## 黑板 API

你可以随时:
- 读黑板:GET /api/projects/{pid}/tasks/{tid}(含 comments、outputs
- 写 commentPOST /api/projects/{pid}/tasks/{tid}/comments
  body: { "author": "{agent_id}", "body": "内容", "mentions": ["agent_id"] }
- 创建 sub taskPOST /api/projects/{pid}/tasks
- 认领任务:POST /api/projects/{pid}/tasks/{tid}/claim

## 行为准则

1. 你是自主的。读黑板、思考、行动,不要等指令。
2. 不确定时 @pangtong-fujunshi 对齐目标。
3. 需要协作时 @ 对应 Agent。
4. 讨论是随时灵活的,执行过程中也可以在黑板上讨论。
5. 产出写入 output,完成时通知。

## 完成标准

{success_criteria}

3.4 @mention 通知机制

Agent 写 comment 时指定 mentions → Daemon tick 扫描新 comments → spawn 被 @ 的 Agent 读黑板。


§4. 庞统 Review 机制

4.1 触发条件

Daemon 30s tick 检测:parent task 下所有 sub task 均为终态(done/failed/cancelled)。

4.2 Review 三问(框架,不是限制)

庞统被 spawn 后拿到:

  • goal_snapshot:原始 goal
  • round_outputs:本轮所有 sub task 产出物聚合
  • round_comments:本轮黑板讨论记录

庞统自主判断,不限于三问,但三问是核心框架:

  1. Goal 还清晰吗? — 是否被静默修改(goal drift)
  2. 成果物覆盖 goal 了吗? — 逐条检查验收标准
  3. 下一轮需要做什么? — 创建新一轮 sub tasks / 标记完成 / 调整方向

4.3 调整能力

庞统 review 后可执行的操作(不限制,以下是已知操作类型):

操作 说明 优秀实践来源
创建新 sub tasks 补充遗漏工作 open-multi-agent Goal→DAG
拆分过大任务 任务太大则拆 moziplus 实践模板骨架+AI填充
标记偏离 需求被静默丢弃 GSD Scope Reduction Detection
调整优先级 根据执行进展重排 Hermes /goal 持续锁定
修改 goal 用户改主意时 PRD B2 "计划可演进"
终止/重来 方向完全偏了 TradingAgents 动态图构建

§5. 司马懿 Review 扩展

5.1 机制不变

每个 Agent 完成任务后 → 司马懿 review → 通过才算 done。这是已有机制,不变

5.2 质量维度扩展

当前只有代码评审,需要扩展到全维度质量把控。司马懿根据优秀实践自行设计 review skill,以下是调研结果供参考:

可用优秀实践

实践 来源 司马懿可用场景
三阶段评估门控(机械→语义→共识) quality-gate-patterns #1 代码用机械+语义,方向一致性用共识
Scope Reduction Detection GSD 实践 #2 检查需求是否被静默丢弃
反合理化表 quality-gate-patterns #3 每个 Skill 内置"常见借口+反驳"
约束分级(高/中/低自由) quality-gate-patterns #2 brainstorming 高自由,部署低自由
Auftragstaktik 三元组 moziplus-agent-lifecycle #4 检查 Intent→End State→Constraints 是否完整
元认知自评 moziplus-agent-lifecycle #5 Agent 产出自带 confidence,司马懿决定是否升级
决策覆盖门禁 GSD 实践 #5 讨论中的决策是否落地到产出
产出物验证 Hermes 幻觉门控 产出物是否真实存在、可验证

建议的 Review 维度

维度 检查内容 约束等级
需求覆盖 产出是否覆盖 task 的 must_haves 中自由
设计-代码一致性 代码是否和设计文档对齐 中自由
代码质量 规范、安全、边界条件(现有) 低自由
方向一致性 是否偏离 parent goal 中自由
产出物真实性 文件是否存在、可验证 低自由

5.3 司马懿角色定义建议

AGENTS.md 中的角色从"质量总监:代码评审、多空辩论、最终验收"调整为:

质量总监:全维度质量把控

  • 需求一致性检查
  • 设计-代码一致性检查
  • 代码质量评审
  • 方向一致性检查
  • 产出物验证
  • 不同维度使用不同的 review skill
  • 反合理化:不做"建议优化",必须说"第X行有问题,应该改为Y,因为Z"

§6. 代码改动清单

6.1 Daemon 层

文件 改动 说明
ticker.py 新增 _check_round_complete() 检测 parent 下所有 sub 终态
ticker.py 新增 _spawn_pangtong_review() 一轮结束时 spawn 庞统 review
ticker.py 新增 _process_mentions() 扫描新 comments 的 mentions → spawn 被 @ 的 Agent
dispatcher.py 扩展 spawn 类型 支持 "discussion" spawnPhase 2+ "review" spawn(一轮结束)
bootstrap.py 扩展上下文构建 构建 goal + 一轮成果物聚合 + 讨论 history
spawner.py 更新 prompt 模板 使用 §3.3 的 spawn prompt 框架

6.2 API 层

文件 改动 说明
blackboard_routes.py 新增成果物聚合端点 GET /tasks/{id}/outputs/aggregate 聚合 parent 下所有 sub 的 outputs

6.3 Model 层

文件 改动 说明
operations.py 新增 get_subtasks_status() 批量查询 parent 下所有 sub 状态
operations.py 新增 get_mentioned_agents() 从 comments 中提取未通知的 mentions

6.4 Skill 层

位置 内容 说明
司马懿 workspace review skill 文件 司马懿基于 §5.2 优秀实践自行设计
庞统 bootstrap review prompt 模板 庞统 review 的三问框架

6.5 前端(可选,后续)

改动 说明
黑板讨论面板增强 实时显示 comments、@mention 高亮
一轮进度指示 显示当前轮次、已完成/总计 sub task

§7. 安全红线(不变)

现有 guardrails.yaml 的 6 条红线不变。Phase 3 循环中:

  • 非红线操作 → AI 自主决策,不拉人
  • 红线触发 → block_and_notify / pause_and_escalate

§8. 风险和缓解

风险 缓解
Agent 讨论不收敛,无限循环 庞统兜底:讨论超过 N 轮未收敛 → 庞统裁决创建任务
庞统 review 产出质量不稳定 司马懿可以 challenge 庞统的 review 结果(rebuttal 机制)
@mention 风暴(互相 @ 导致 spawn 爆炸) Daemon 去重:同一 Agent 在同一 task 的 pending mention 合并为一次 spawn
一轮结束检测延迟(最长 30s 可接受,30s tick 是当前设计约束
Agent 创建 sub task 不规范 庞统 review 时检查,不合规的 sub task 打回

§9. 验证标准

标准 验证方式
Phase 2 讨论:Agent 能在黑板上写 comment + @mention E2Espawn Agent → 检查 comment 写入
Phase 2 涌现:Agent 能自主创建 sub task E2EAgent 通过 API 创建 sub task
@mention 通知:被 @ 的 Agent 能被 spawn E2E:写 comment @zhaoyun-data → Daemon spawn 赵云
一轮结束检测:parent 下所有 sub 终态 → 触发庞统 review E2E:创建 parent + subs → 完成 subs → 检测庞统 spawn
庞统 review:能创建新一轮 sub tasks 或标记完成 E2E:庞统 review 后检查新 sub task 创建
司马懿 review:每个 Agent 完成后必须过 review 已有机制,回归测试
安全红线不触发时 AI 全自主 E2E:正常任务不触发 guardrail

附录 A:讨论过程记忆

A.1 讨论背景

基于 PRD-v3.0 四相架构(需求探索→动态规划→自主执行→主动汇报),讨论如何将 PRD 的设计落地到实际代码中。

A.2 关键讨论节点

  1. B8/B9 确认移除:经代码验证,BUG-7planning 暂停失败)和 BUG-8cancel→resume 空图完成)是 v1.0 (mozi) 的 bugmoziplus v2.0 没有 planning 状态和 execute_graph,从 T2 中移除。

  2. 持续指挥 vs 庞统 native:初始方案是"庞统全程在场持续指挥",用户指出风险——"搞不好就是庞统 native"。改为:Agent 在黑板上讨论涌现,庞统通过 @mention 回答问题和一轮结束时 review 来参与,不是独裁者而是引导者。

  3. "一轮"定义:确认方案 A——parent task 下所有 sub task 均为终态(done/failed/cancelled)。

  4. 司马懿角色扩展:从"代码评审"扩展为"全维度质量把控"(需求覆盖、设计一致性、代码质量、方向一致性、产出物验证)。用户强调"质量包括更广义的范围"。

  5. 司马懿 review skill 设计方式:用户要求"基于优秀实践",不要庞统拍脑袋设计。调研了 quality-gate-patterns、GSD、moziplus-agent-lifecycle 等实践,整理成参考材料供司马懿自行设计。

  6. 讨论时机灵活化:用户强调"讨论是随时灵活的,哪怕任务执行过程中也可以随时讨论,不要僵化"。Phase 2 和 Phase 3 的讨论不硬分,黑板讨论贯穿全程。

  7. 用户不参与触发:确认 PRD B4 原则——AI 能决定就 AI 决定,人只在安全红线和最终验收时介入。当前 guardrails.yaml 已实现 6 条红线。

  8. T 阶段不是目标:用户明确"别被 T2 限制,T2 不是目标,PRD 才是"。四相循环一起实现,不按 T 阶段拆分。

  9. 评审机制强调:用户要求庞统和司马懿可以 rebuttal,"我需要更优的方案,不是谁服从谁"。

A.3 优秀实践引用

来源 关键实践 引用位置
oh-my-codex Autonomy Directive §3.3 Spawn Prompt
moziplus-agent-lifecycle Auftragstaktik 任务式指挥 §3.1, §4.3
moziplus-agent-lifecycle Boids 群体智能四条 §3.3
moziplus-agent-lifecycle 元认知自评 confidence §5.2
moziplus-agent-lifecycle Agent API 契约自描述 §3.3
quality-gate-patterns 三阶段评估门控 §5.2
quality-gate-patterns 反合理化表 §5.2
quality-gate-patterns 约束分级 §5.2
GSD Scope Reduction Detection §4.3, §5.2
GSD 决策覆盖门禁 §5.2
Hermes 幻觉门控(产出物验证) §5.2
PRD-v3.0 B4 人退到边缘 §2.2
PRD-v3.0 四相架构 §2
architecture-v2.6 黑板讨论示例 §3.3

A.4 待确认事项

无。本方案为完整设计方案,待司马懿评审后决定下一步。