🎲 第一阶段:骰子路由判断
📨 Will 发来消息
- "你好呀"
- "查天气+写脚本"
- "红中N号断链告警"
🎲 骰子路由判断
- 1 git-sync.sh 拉代码
- 2 读状态文件(白名单)
- 3 自问:仅凭知识能答?
- 4 拆分独立任务数量
- 5 逐个 new-task.py
- 6 回复 Will
💬 闲聊
自身知识可答 → 直接回复
不调用任何工具
📋 任务
需要工具/文件 → 拆分后逐个派发
每个独立任务 → 1 个红中
🔧 系统告警
断链告警/HEARTBEAT
→ 骰子直接处理,不派发
信息隔离原则:骰子 能读 debug-config.json、task-index.json、SESSION-STATE.md、bus/inbox/ | 禁读 知识库/、skills/、DAILY-DIGEST、BACKLOG → 读不到知识源 = 复杂问题只能派发 = 不越权
🏃 第二阶段:接力棒管线(单任务生命周期)
接力棒 #1
🀄 红中N号 — 规划
1 启动 红中N号-cron(每分钟监督,全程运行)
2 读收件箱 + brief.md
3 Claude Agent 写 plan.md(红中自己不写文件)
4 debug_gate 断点检查 → 拦截则 end-task.py
5 写白板 inbox + 创建白板 cron → 下线 📱 TG ×2
接力棒 #2
🀆 白板 — 审核 plan
1 Claude Agent 审核 plan.md
2 准奏 → 创建红中N号-决策 cron → 下线 📱 TG
3 封驳 → 创建红中N号-重规划 cron → 下线
接力棒 #3
🀄 红中N号 — 决策
1 读审核结论(准奏/封驳)
2 按任务类型分配执行 Soul(东风/发财/南风等)
3 创建执行 Soul cron → 下线 📱 TG
接力棒 #4
🉐🀅🀀 执行 Soul
1 Claude Agent 执行实际工作(写代码/搜索/学习等)
2 写 output/ 产出文件
3 spawn 白板最终审核 cron → 下线 📱 TG
接力棒 #5
🀆 白板 — 最终验收
1 验收 output 产出质量
2 通过 → end-task.py 关闭 cron + 更新状态 📱 TG
3 失败 → supervisor cron 继续监控 📱 TG
终点
✅ 任务关闭 — end-task.py
1 disable 红中N号-cron(监督 cron)
2 更新 task-index.json 状态 → done
3 写 progress.md + 发 TG 完成通知 📱 TG
⏰ 红中N号-cron(监督)
每分钟巡查 progress.md
├ 15分钟无更新 → 递增 .alert-count
├ 发断链告警给骰子
└ 被 end-task.py 关闭
cron 命名规则
hong-zhong-{N}-cron-{task_id}
💓 心跳巡检(每30分钟)
骰子定期执行 HEARTBEAT:
├ 僵死任务 → end-task.py
├ 残留 cron → disable
├ 告警 ≥3 → 自动清理
└ 运维直处理,业务派红中
🔗 接力棒传递机制
传递方式
当前 Soul
├ 写 bus/inbox/{next}/MSG-xxx.json
├ openclaw cron add (one-shot, 10s)
└ 下线(不等结果)
下一个 Soul
├ cron 触发 → isolated session
├ 读 inbox 消息
└ 开始工作...
核心特征
✓ 异步:不等下一棒的结果
✓ 无状态:每个 Soul 从文件读所有信息
✓ 隔离:isolated session,互不干扰
✓ 可追踪:每步写 progress.md
✓ 可拦截:debug_gate 在任意节点断点
✓ 可清理:end-task.py 统一出口
📱 TG 通知覆盖(完整链路 8 个通知点)
| # | 阶段 | 触发时机 | 通知内容示例 | 实现 |
| 1 |
🎲 骰子派发 |
new-task.py 创建激活 cron |
cron 系统 announce(骰子同时 chat 回复 Will) |
--announce |
| 2 |
🀄 红中N号接到任务 |
读完收件箱 + brief.md 后 |
🀄 红中N号已接到任务 T-xxx,开始规划... |
_notify() |
| 3 |
🀄 红中N号规划完毕 |
plan.md 写完 + 白板 cron 已创建 |
🀄 红中N号完成...plan.md 已写 + 白板将触发,红中下线 |
_notify() |
| 4 |
🀆 白板审核完毕 |
审核 plan.md 后 |
🀆 白板审核完毕 T-xxx,红中N号将接棒决策 |
_notify() |
| 5 |
🀄 红中N号决策完毕 |
准奏/封驳后 |
🀄 红中N号完成决策(准奏→spawn执行Soul / 封驳→重审) |
_notify() |
| 6 |
🀅 执行Soul完成 |
Claude Agent 执行完毕后 |
🀅 发财N号完成 T-xxx,白板最终审核将触发,发财下线 |
_notify() |
| 7 |
🀆 白板最终验收 |
验收通过 / 失败 |
✅ 白板N号验收通过,end-task.py 已关闭 cron / ⚠️ 验收失败 |
_notify() |
| 8 |
⏰ 断链告警 |
红中N号-cron 检测到 15min 无更新 |
⚠️ 断链告警:T-xxx 超过15分钟无进展 |
_notify() |
通知原则:每个 Soul 在完成工作并传棒后发 TG 通知(下线前最后一步)。红中额外在接到任务时发一条通知,让 Will 知道任务已被接手。
🀄 角色职责矩阵
🎲 骰子 — 指挥官
路由判断 · 任务拆分 · 编排派发 · 汇报结果 · 心跳巡检
禁读知识库/skills · 禁用执行工具 · 不写文件
🀄 红中 — 调度秘书
规划 plan.md · 提交白板审核 · 读审核结论 · 分配执行 Soul · 管理任务内并行
不自己干活(>5行禁止)· 通过 Claude Agent 写 plan
🀆 白板 — 审核员
审核 plan.md(准奏/封驳)· 最终验收 output 质量
只审不做 · 不写业务文件 · 不分配任务
🉐🀀🀁🀂 执行 Soul
东风(开发) · 南风(架构) · 西风(审计) · 北风(测试)
只通过 Claude Agent 执行 · 写 output/ 产出
🀅 发财 — 蒸馏师
学习/知识入库 · 提炼 distill.md · 任务归档
只在验收通过后触发 · 调 end-task.py 关闭任务
🛠️ 关键工具
| 工具 | 用途 | 调用者 | 关键行为 |
| new-task.py |
创建任务 + 激活红中 |
🎲 骰子 |
生成 ID · 创建目录 · 登记索引 · 写 inbox · 创建 cron · debug_gate 拦截 |
| end-task.py |
统一结束任务 |
任何 Soul |
disable 监督 cron · 更新状态 · 清理告警 · 写 progress · 发 TG |
| debug_gate.py |
代码级断点拦截 |
new-task.py / payloads |
读 debug-config.json · 命中断点时写报告并 exit |
| soul_payloads.py |
生成各 Soul 的 payload |
new-task.py / cron |
红中/白板/执行Soul 的完整指令模板 |
| git-sync.sh |
拉取最新代码 |
骰子启动时 |
确保工作区与 Git 同步 |
✅ 验证状态
| 机制 | 状态 | 验证方式 | 通过率 |
| 骰子路由判断(闲聊/任务/混合) |
✅ 已验证 |
14 个路由测试 |
100% |
| 骰子任务拆分(独立任务计数) |
✅ 已验证 |
C 类路由测试 4 例 |
100% |
| 骰子 → 红中 派发 |
✅ 已验证 |
9 个断点测试 |
89% (并行偶发) |
| 红中1号 规划(Claude Agent 写 plan.md) |
✅ 已验证 |
断点测试 hooks 记录 |
100% |
| Debug 断点代码级拦截 |
✅ 已验证 |
debug_gate.py 9 个测试 |
100% |
| end-task.py 统一生命周期 |
✅ 已验证 |
断点测试 + 手动清理 |
100% |
| 动态红中编号 |
✅ 已验证 |
多任务并行测试 |
100% |
| 白板审核 → 红中N号决策 |
✅ 代码就绪 |
soul_payloads.py 已实现 + owner 解析修复 |
— |
| 执行 Soul → 白板最终审核 |
✅ 代码就绪 |
fa_cai / _generic 自动 spawn bai_ban_final |
— |
| 白板最终验收 → end-task.py |
✅ 代码就绪 |
验收通过直接调 end-task.py 自动关闭 |
— |
| TG 通知全覆盖(8 个通知点) |
✅ 代码就绪 |
含红中接到任务通知(新增) |
— |
📁 文件系统结构
~/.openclaw/workspace/
├── SOUL.md
├── AGENTS.md
├── HEARTBEAT.md
├── debug-config.json
├── tasks/
│ ├── task-index.json
│ ├── .template/
│ ├── debug/
│ └── T-YYYYMMDD-NNN/
│ ├── brief.md
│ ├── progress.md
│ ├── distill.md
│ ├── supervisor-cron-id.txt
│ ├── hong-zhong/
│ │ └── plan.md
│ ├── bai-ban/
│ │ └── review-plan.md
│ └── output/
├── bus/inbox/
│ ├── hong-zhong/
│ ├── bai-ban/
│ └── main/
├── tools/
│ ├── new-task.py
│ ├── end-task.py
│ ├── debug_gate.py
│ ├── soul_payloads.py
│ └── git-sync.sh
└── agents/
├── COMMON-RULES.md
├── hong-zhong/
├── bai-ban/
└── ...