# #01 四相循环实施方案 **序号**: #01 **名称**: 四相循环 — PRD Phase 1~4 完整实现方案 **版本**: v1.3(实现完成,待 E2E 验证) **基于**: PRD-v3.0 §4 四相架构 + architecture-v3.0.md **作者**: 庞统(副军师)🐦 **日期**: 2026-05-29 **状态**: 实现完成,待 E2E 验证 **评审**: 司马懿 --- ## §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 task,goal 写入 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) - 写 comment:POST /api/projects/{pid}/tasks/{tid}/comments body: { "author": "{agent_id}", "body": "内容", "mentions": ["agent_id"] } - 创建 sub task:POST /api/projects/{pid}/tasks - 认领任务:POST /api/projects/{pid}/tasks/{tid}/claim ## 行为准则 1. **你是自主的。**读黑板、思考、行动,不要等指令。 2. **不重复别人的工作。**动手前先读黑板看谁在做什么(Separation)。 3. **保持方向对齐。**你的产出方向和 parent goal 对齐,不确定时 @pangtong-fujunshi(Alignment)。 4. **产出可共享。**产出写入黑板,让其他人能看到你的成果(Cohesion)。 5. **不越界。**安全红线不要碰,超出能力的 @ 庞统升级(Boundary)。 6. **随时讨论。**执行过程中需要协作时 @ 对应 Agent,讨论是灵活的不是固定阶段的。 ## 完成标准 {success_criteria} ``` ### 3.4 @mention 通知机制 Agent 写 comment 时指定 mentions → Daemon tick 扫描新 comments → spawn 被 @ 的 Agent 读黑板。 **通知可靠性保障**: 新增 `mention_queue` 表,记录 mentions 的通知状态: ```sql CREATE TABLE IF NOT EXISTS mention_queue ( id INTEGER PRIMARY KEY AUTOINCREMENT, comment_id INTEGER NOT NULL, task_id TEXT NOT NULL, mentioned_agent TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'pending', -- pending / notified / failed retry_count INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL DEFAULT (datetime('now')), notified_at TEXT, FOREIGN KEY (comment_id) REFERENCES comments(id) ); ``` 流程: 1. Agent 写 comment 带 mentions → 写入 `mention_queue`(status=pending) 2. Daemon tick 扫描 pending mentions → 尝试 spawn 3. spawn 成功 → status=notified 4. spawn 失败(Agent busy)→ 保持 pending,下次 tick 重试 5. 超过 N 次重试仍失败 → status=failed,记录事件 **备选方案**(更轻量):走 Inbox JSONL 方式通知,不 spawn,Agent 读 inbox 即可。MVP 阶段先用 tick 扫描 + 重试,后续视性能再升级。 --- ## §4. 庞统 Review 机制 ### 4.1 触发条件 Daemon 30s tick 检测:parent task 下所有 sub task 均为终态(done/failed/cancelled)。 **终态区分**: 传给庞统的状态摘要包含维度信息: ```json { "done": 3, "failed": 1, "cancelled": 0, "total": 4 } ``` 庞统 review prompt 中增加指引: > 有 sub task failed 时,优先判断是应该重试(同一 Agent)、换人(换 Agent)、还是调整方案(修改 goal/约束)。 ### 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 "计划可演进" | ### 4.4 一轮结束后的执行顺序 Ticker tick 串行执行,明确顺序避免冲突: ``` 1. 超时检测(claimed 超时 → 重置 pending,executing 超时 → failed) 2. 依赖推进(检查 blocker 完成 → 推进状态) 3. 调度 pending(含 review 类型的 task) 4. 一轮结束检测(在调度之后,确保 review 结果已生效) 5. 庞统 review spawn ``` 关键:步骤 4 在步骤 3 之后,确保司马懿 review 打回的 sub task 已重新进入 working 状态,不会误触发一轮结束。 ### 4.5 防止庞统 review 无限循环 庞统 review 后创建新 sub task → sub 全部 done → 又触发一轮结束 → 又 spawn 庞统 review → 无限循环。 缓解方案: - parent task 新增 `round_count` 字段,每触发一次庞统 review +1 - round_count 上限(如 5 轮),超过后强制进入 Phase 4 汇报给用户 - 或:庞统 review 后标记 parent 为 `reviewing`,一轮结束检测跳过 `reviewing` 状态的 parent MVP 阶段用 round_count 上限,简单可靠。 ### 4.6 任务状态机完整流转 两层 review(司马懿 + 庞统)在状态机中的完整路径: ``` ─── Sub Task(执行 Agent)─── pending → claimed → working │ ▼ Agent 完成 + 三信号检查通过 review │ ▼ 司马懿 review(_dispatch_reviews 确定性路由) ┌── done ──┐ │ │ review 通过 review 不通过 → working(打回重做) │ ▼ (sub task 终态) ─── Parent Task(庞统三问)─── parent 下所有 sub task 终态 │ ▼ _check_round_complete 检测 reviewing(防重复触发) │ ▼ _spawn_pangtong_review │ ├── GOAL_ACHIEVED → done(项目完成) ├── 创建新 sub task → working(新一轮执行) └── 方向偏离 → 调整 goal + working ``` **关键规则**: | 规则 | 说明 | |------|------| | sub task 终态 = done / failed / cancelled | 司马懿 review 通过 → done;不通过 → 打回 working | | 司马懿 review 是 sub task 的必经关卡 | 每个 sub task 完成后必须过司马懿,通过才算 done | | 庞统 review 是 parent task 的关卡 | 一轮结束后庞统三问,决定继续还是完成 | | 司马懿 spawn 完成后不再触发 _auto_complete | 审查 Agent(司马懿)的 on_complete 回调直接标 done/failed,不走 _task_auto_complete | | 庞统 spawn 完成后走 _handle_review_conclusion | 解析 GOAL_ACHIEVED 或继续新一轮 | **为什么审查 Agent 完成后不再触发 _auto_complete**: `_auto_complete` 的设计意图是检测"执行 Agent 是否真的完成了工作"(三层幻觉门控)。而审查 Agent(司马懿)是被派来 review 的,他的完成意味着 review 本身完成了,不应该再走一遍"检测是否完成 → 标 review → 又派审查 Agent"的循环。 实现方式:`_dispatch_reviews` 在 dispatch 审查 Agent 时,通过 `spawn_full_agent` 的 `on_complete` 回调直接标 done/failed,绕过 `_task_auto_complete`。 --- ## §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()` | 扫描 mention_queue → spawn 被 @ 的 Agent | ✅ 已实现 | | `ticker.py` | 新增 `_build_mention_prompt()` | 构建 @mention 通知 prompt | ✅ 已实现 | | `ticker.py` | tick 流程明确顺序(§4.4) | 超时→依赖→调度→聚合 parent→一轮结束→mention 通知→写事件→健康检查(8 步) | ✅ 已实现 | | `dispatcher.py` | 扩展 spawn 类型 | 支持 "discussion" + "review"(spawn_type 参数) | ✅ 已实现 | | `bootstrap.py` | ~~新增 `build_for_review()`~~ | review 上下文构建已内联在 ticker._build_review_prompt 中 | ✅ 已移除(dead code) | | `bootstrap.py` | ~~新增 `_format_review_context()`~~ | 同上 | ✅ 已移除(dead code) | | `spawner.py` | 新增 `DISCUSSION_PROMPT_TEMPLATE` | §3.3 框架 + Boids 四条 + API 契约 | ✅ 已实现 | | `spawner.py` | 新增 `_build_discussion_prompt()` | discussion 类型 prompt 构建 | ✅ 已实现 | | `spawner.py` | `build_spawn_message` 新增 `spawn_type` | executor/discussion/review 类型路由 | ✅ 已实现 | | `models.py` | parent 新增 `round_count` 字段 | 防止无限循环(§4.5) | ✅ 已实现 | ### 6.2 数据库层 | 文件 | 改动 | 说明 | 状态 | |------|------|------|------| | `db.py` | `_SCHEMA_STATEMENTS` 加 `round_count` | tasks 表新增轮次字段 | ✅ 已实现 | | `db.py` | 新增 `mention_queue` 表 | id, comment_id, task_id, mentioned_agent, status, retry_count | ✅ 已实现 | | `db.py` | mention_queue 索引 | status + (mentioned_agent, status) | ✅ 已实现 | ### 6.3 操作层 | 文件 | 改动 | 说明 | 状态 | |------|------|------|------| | `operations.py` | 新增 `get_subtasks_summary()` | 批量查询 parent 下所有 sub 状态摘要 | ✅ 已实现 | | `operations.py` | 新增 `get_aggregate_outputs()` | 聚合所有 sub 的产出 | ✅ 已实现 | | `operations.py` | 新增 `get_round_comments()` | 获取当前轮次的讨论记录 | ✅ 已实现 | | `operations.py` | 新增 `increment_round_count()` | 递增 parent 的 round_count | ✅ 已实现 | | `operations.py` | 新增 `record_mentions()` | comment 创建时写入 mention_queue(去重) | ✅ 已实现 | | `operations.py` | 新增 `get_pending_mentions()` | 扫描 pending 且未超重试上限的 mentions | ✅ 已实现 | | `operations.py` | 新增 `mark_mention_notified()` | 标记 mention 为已通知 | ✅ 已实现 | | `operations.py` | 新增 `mark_mention_retry()` | 递增 retry_count(AgentBusyError 除外) | ✅ 已实现 | | `operations.py` | 新增 `mark_mention_failed()` | 标记 mention 为失败(超重试上限) | ✅ 已实现 | ### 6.4 API 层 | 文件 | 改动 | 说明 | 状态 | |------|------|------|------| | `blackboard_routes.py` | `add_comment` 联动 `record_mentions` | comment 创建后自动写入 mention_queue | ✅ 已实现 | | `blackboard_routes.py` | 新增成果物聚合端点 | `GET /tasks/{id}/outputs/aggregate` | ❌ 后续 | ### 6.5 Skill 层 | 位置 | 内容 | 说明 | 状态 | |------|------|------|------| | 司马懿 workspace | review skill 文件 | 司马懿基于 §5.2 优秀实践自行设计 | ❌ 独立 | | 庞统 bootstrap | review prompt 模板 | 庞统 review 的三问框架 | ✅ 已实现(ticker._build_review_prompt) | ### 6.6 前端(可选,后续) | 改动 | 说明 | |------|------| | 黑板讨论面板增强 | 实时显示 comments、@mention 高亮 | | 一轮进度指示 | 显示当前轮次、已完成/总计 sub task | ### 6.7 运维修复 | 文件 | 改动 | 说明 | 状态 | |------|------|------|------| | `sanguo_git_sync/auto-sync.sh` | Step 5 兜底 catch-all | 修复 fswatch 漏检文件变化 | ✅ 已实现 | --- ## §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 | | @mention 通知丢失(Agent busy 时 spawn 失败) | mention_queue 表 + 重试机制(见 §3.4) | | 一轮结束检测延迟(最长 30s) | 可接受,30s tick 是当前设计约束 | | Agent 创建 sub task 不规范 | 庞统 review 时检查,不合规的 sub task 打回 | | 庞统 review 后创建新 sub 触发无限循环 | parent 新增 `reviewing` 状态,庞统 review 期间不触发一轮结束检测;或设 round 上限(如 5 轮) | | Agent 创建 sub task 缺少 assignee | Agent 创建 sub task 时 capability 必填(用于路由),assignee 可选(认领时填) | | 讨论阶段 token 消耗高 | 设上下文预算:每个 Agent 读黑板 comments 不超过最近 50 条,goal summary 不超过 2KB | --- ## §9. 验证标准 | 标准 | 验证方式 | |------|---------| | Phase 2 讨论:Agent 能在黑板上写 comment + @mention | E2E:spawn Agent → 检查 comment 写入 | | Phase 2 涌现:Agent 能自主创建 sub task | E2E:Agent 通过 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:完整讨论过程记忆(2026-05-28 ~ 05-29) ### A.1 讨论起因 2026-05-28,基于 architecture-v3.0.md v3.0.1 完成的背景,启动 T2(持续指挥 + 动态规划)的调研和设计。目标是补齐 PRD-v3.0 四相架构中未实现的 Phase 2(动态规划)和 Phase 3(持续指挥)。 ### A.2 阶段一:T2 前置清理(2026-05-28) **#1 B8/B9 确认移除**:庞统验证代码发现,BUG-7(planning 暂停失败)和 BUG-8(cancel→resume 空图完成)是 v1.0 (mozi) 的 bug。moziplus v2.0 没有 `planning` 状态(v2 状态机 11 个状态不含 planning)和 `execute_graph` 函数(执行模型完全不同)。结论:从 T2 遗留问题清单中移除。 **#2 architecture-v3.0.md 升级至 v3.0.1**:新增 4 个设计方向章节(§6.5 广播认领、§10.4~10.6)和 §21 T 阶段规划(T1~T8),为后续迭代建立路线图。 **#3 司马懿评审通过**(Mail #1779979934362, #1779980383850, #1779981185745):修复广播认领状态矛盾、BUG-22/25/26 确认、采纳 5 条建议改进。 **#4 AGENTS.md 更新**:补充 request vs inform 判断标准——"对方收到后是否需要回复/确认/采取行动?需要→request,不需要→inform"。 ### A.3 阶段二:持续指挥与动态规划调研(2026-05-28 ~ 05-29) 庞统三路调研(NAS 知识库 → 代码 → 优秀实践): **#5 NAS 知识库搜索**:搜索 wiki-vault/practices/ 中关于"持续指挥"和"动态规划"的内容,找到 get-shit-done、claude-code、hermes、multi-agent-collaboration 等相关实践文件。 **#6 代码实现程度调研**: - `ticker.py`(960 行):30s tick 只做 4 件事——超时检测、僵尸回收、pending 任务派发、review 匹配 - `dispatcher.py`(653 行):spawn Agent 执行,无黑板讨论环节 - `router.py`(195 行):LLMDriver 路由(v3.0-router-refactor 计划改为广播认领) - 庞统 spawn 时机:只在 Router 模糊路由时被 delegate spawn,每次新建隔离 session,无上下文延续 - 结论:当前只有 Phase 3 的后半段,缺失 Phase 2(讨论涌现)和完整闭环 **#7 优秀实践调研**(8 个来源,详见 A.5 引用表): - get-shit-done:Wave Execution、Scope Reduction Detection、决策覆盖门禁 - claude-code:四级权限(default/auto/bypass/yolo)、Dream 记忆系统 - hermes:幻觉门控、心跳+reclaim - oh-my-codex:Autonomy Directive(自主指令) - moziplus-agent-lifecycle:Auftragstaktik 任务式指挥、Boids 群体智能、元认知自评 - quality-gate-patterns:三阶段评估门控、反合理化表、约束分级 - supervision-practices:分层审批策略 - multi-agent-collaboration-patterns:4 种编排模式 × 3 种通信协议 ### A.4 阶段三:初始设计方向讨论(2026-05-29) 庞统提出初始方案:Iterative Execution Loop(迭代执行环)—— Daemon 检测一轮结束 → 自动 spawn 庞统 review → 庞统自主决定调整方案 → 司马懿质量门控(计划放 T4)。 用户提出四个关键问题: **#8 "一轮"定义**:用户倾向方案 A——parent 下所有 sub task 均为终态。确认采纳。 **#9 司马懿角色不是代码评审**:用户明确"司马懿角色不是代码评审,是质量把控,这个质量是需要包括更广义的范围的,比如需求、代码设计一致性,不能仅仅局限在代码评审"。司马懿应该有多种 review skill,不同类型的评审用不同类型的 skill。 **#10 庞统 review 调整能力**:用户问"这块也可以参考更多优秀实践吧?给庞统明确的指导,但是不是限制,和司马懿一样,他可以有很多 skill 来应对不同的任务 review"。庞统调研后给出 6 种调整能力(创建新任务、拆分、标记偏离、调整优先级、修改 goal、终止),每种都有优秀实践来源。 **#11 用户不参与触发**:用户问"肯定不是用户参与,以前设计过,如果 AI 能决定,就不要让用户参与,用户的角色已经定义过了"。庞统确认 PRD B4 已定义——安全红线(guardrails.yaml 6 条)才拉人,其余 AI 自主。代码已实现。 ### A.5 阶段四:关键转折——黑板讨论涌现(2026-05-29) **#12 "庞统 native"风险**:用户指出初始方案"庞统苏格拉底对话 → 明确 goal + 创建 parent task + 初始 sub tasks"中,"这个度在哪里,搞不好就是庞统 native 了"。如果庞统既定 goal 又规划任务,和 v1.0 的确定性编排有什么区别? **#13 黑板讨论涌现**:用户提出核心思路——"能否这样,让 AI 之间也进行沟通,庞统和用户明确 goal 和初始需求,然后大家可以进行黑板探讨啊,有 comments 和 @ 功能啊,大家探讨的过程其实也在黑板上留痕了,最终都拉齐后,Agent 创建子任务到黑板上,这个时候如果不确定任务是否正确,也可以 @ 庞统进行目标对齐,这样黑板的作用就发挥出来了"。 **#14 庞统无形对齐**:用户指出"庞统其实在讨论的过程中也就无形地把目标对齐了"——不需要庞统主动规划一切,而是在 Agent 讨论过程中通过回答 @ 问题自然对齐方向。 庞统搜了 PRD-v3.0 和 architecture-v2.6,确认: - PRD Phase 3 已有完整的共享意识空间设计(每个 Agent 随时读全局状态、写状态、感知变化、主动发起协作) - architecture-v2.6 已有黑板讨论示例和 @mention API + comment_type 8 种类型 - 但代码里这些基础设施虽已实现,Agent 仍未主动使用 ### A.6 阶段五:最终纠偏(2026-05-29) 用户提出三个决定性纠正: **#15 司马懿 review 时机不变**:"司马懿质量门控发生在每个 Agent 完成自己任务之后,必须要找司马懿 review 才能算是完成,这个设计不要变。" **#16 Skill 基于优秀实践**:"司马懿和庞统的 review 的 skill 我不要你设计,我要优秀实践基础上。"庞统改为整理调研结果供司马懿参考,让司马懿自行设计。 **#17 讨论随时灵活**:"讨论是随时,哪怕任务执行过程中,也可以随时讨论,不要僵化,尽量灵活,这个 prompt 看看是否有优秀实践可以参考。" **#18 T 阶段不是目标**:"别被 T2 限制,T2 不是目标,PRD 才是。" **#19 一起做完**:"我不同意一个事情放到不同的 T 阶段实现,要做就一起做完。" **#20 评审 rebuttal**:"做完发给司马懿评审,我们再考虑下一步,注意,你们可以 rebuttal,我需要更优的方案,不是谁服从谁。" ### A.7 关键设计决策溯源 | 方案中的决策 | 触发讨论 | 最终结论 | |-------------|---------|---------| | Agent 自主讨论涌现(§2 Phase 2) | #12 庞统 native 风险 → #13 用户提出黑板讨论 | Agent 在黑板讨论 → 自主创建任务 | | 庞统通过 @mention 参与(§2) | #14 庞统无形对齐 | 不全程在场,但关键节点通过 @ 响应 | | 一轮 = 所有 sub 终态(§2.1) | #8 用户倾向方案 A | 方案 A,简洁可靠 | | 司马懿每个 sub 完成后 review(§5.1) | #15 用户纠正 | 不变,已有机制 | | 司马懿全维度质量把控(§5.2) | #9 用户扩展角色 | 需求/设计/代码/方向/产出物 5 维度 | | Skill 基于优秀实践(§5.2) | #16 用户要求 | 整理调研结果供司马懿自行设计 | | 讨论 Phase 2+3 贯穿(§2.1) | #17 用户灵活化 | 不僵化分阶段,随时讨论 | | 四相循环一起实现(§1.3) | #18 #19 用户纠正 | 不按 T 阶段拆分 | | Spawn prompt 用实践指导(§3) | #17 用户问 prompt 实践 | Autonomy Directive + Auftragstaktik + Boids | | Rebuttal 机制(§8) | #20 用户要求 | 庞统和司马懿可以互相 challenge | ### A.8 优秀实践引用索引 | 来源 | 关键实践 | 方案引用位置 | |------|---------|-------------| | oh-my-codex | Autonomy Directive(自主指令) | §3.3 Spawn Prompt | | oh-my-codex | 需求清晰度量化评分 | §3.1 设计理念 | | 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 | | moziplus-agent-lifecycle | Agent 崩溃自动恢复 | §8 风险参考 | | moziplus-agent-lifecycle | 成本追踪 Token 自报 | §8 风险参考 | | quality-gate-patterns | 三阶段评估门控 | §5.2 | | quality-gate-patterns | 反合理化表 | §5.2 | | quality-gate-patterns | 约束分级 | §5.2 | | quality-gate-patterns | 门控记录与追溯 | §9 验证 | | get-shit-done | Scope Reduction Detection | §4.3, §5.2 | | get-shit-done | 决策覆盖门禁 | §5.2 | | get-shit-done | Nyquist 验证层 | §9 验证 | | get-shit-done | 上下文工程(Context Rot) | §8 风险 | | hermes | 幻觉门控(产出物验证) | §5.2 | | hermes | 心跳+reclaim+僵尸检测 | §8 风险 | | claude-code | 四级权限体系 | §7 安全红线 | | claude-code | Dream 记忆整合系统 | §4 长期参考 | | supervision-practices | 分层审批策略 | §7 安全红线 | | multi-agent-collaboration | 4 种编排 × 3 种通信协议 | §2 模型 | | open-multi-agent | Goal→DAG 动态图构建 | §4.3 调整能力 | | TradingAgents | 动态图构建 | §4.3 调整能力 | | PRD-v3.0 | B4 人退到边缘 | §2.2 | | PRD-v3.0 | 四相架构(§4) | §2 | | PRD-v3.0 | Phase 3 共享意识空间 | §2, §3 | | architecture-v2.6 | 黑板讨论示例 | §3.3 | | architecture-v2.6 | @mention API + comment_type | §3.4 | | v3.0-router-refactor | 广播认领 + 确定性交接 | §2 模型 | | guardrails.yaml | 6 条安全红线 | §7 | ### A.9 调研文件清单 | 调研对象 | 路径 | |---------|------| | PRD v3.0 | `docs/PRD-v3.0.md` | | architecture v3.0.1 | `docs/design/architecture-v3.0.md` | | architecture v2.6(archive) | `docs/design/archive-2.0/architecture-v2.6.md` | | v3.0 router refactor | `docs/design/archive-2.0/v3.0-router-refactor.md` | | topic7 交互设计 | `docs/design/archive-2.0/topic7-interaction-dashboard-proposal.md` | | ticker.py | `src/daemon/ticker.py`(960 行) | | dispatcher.py | `src/daemon/dispatcher.py`(653 行) | | router.py | `src/daemon/router.py`(195 行) | | blackboard_routes.py | `src/api/blackboard_routes.py` | | guardrails.yaml | `config/guardrails.yaml` | | GSD practices | `wiki-vault/practices/get-shit-done-practices.md` | | quality-gate practices | `wiki-vault/practices/quality-gate-patterns.md` | | oh-my-codex practices | `wiki-vault/practices/oh-my-codex-practices.md` | | agent lifecycle practices | `wiki-vault/practices/moziplus-agent-lifecycle-practices.md` | | multi-agent collaboration | `wiki-vault/practices/multi-agent-collaboration-patterns.md` | | claude-code insights | `wiki-vault/practices/claude-code-architecture-insights.md` | | supervision practices | `wiki-vault/practices/supervision-practices.md` | | skill engineering practices | `wiki-vault/practices/moziplus-skill-engineering-practices.md` | ### A.10 待确认事项 无。本方案为完整设计方案,待司马懿评审后决定下一步。 ### A.11 司马懿评审记录(v1.2 修复) **评审结论**:通过,需修复 3 个设计问题。 **3 个设计问题修复**: | # | 问题 | 修复方案 | 位置 | |---|------|---------|------| | 1 | @mention 通知丢失(Agent busy 时 spawn 失败,mention 永远收不到) | 新增 `mention_queue` 表 + 重试机制 + 通知状态追踪 | §3.4 | | 2 | 一轮结束检测不区分 done/failed/cancelled | 传给庞统的状态摘要包含维度信息 {done, failed, cancelled},prompt 增加失败处理指引 | §4.1 | | 3 | 司马懿 review 和庞统 review 执行顺序未定义 | tick 流程明确 8 步顺序,一轮结束检测在调度之后,mention 在 review 之后 | §4.4 | **4 条建议采纳**: | # | 建议 | 采纳情况 | |---|------|---------| | 4 | Spawn Prompt 补充 Boids 四条具体行为描述 | ✅ 已映射为 Separation/Alignment/Cohesion/Boundary 四条准则 | | 5 | 代码改动清单缺少 MVP 优先级标注 | ✅ 每行加 MVP 列(✅ 必须 / ❌ 后续) | | 6 | 风险表缺少 3 个关键风险(无限循环/assignee 缺失/token 消耗) | ✅ 新增 3 条风险 + 缓解方案 | | 7 | 司马懿 review skill 设计方向 | ✅ 记录为参考,司马懿独立设计不阻塞 #01 | **v1.2 新增章节**: - §4.4 一轮结束后的执行顺序 - §4.5 防止庞统 review 无限循环 - §3.4 扩展 @mention 通知可靠性保障 **Rebuttal 备注无**——3 个设计问题全部接受,无争议。