从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码

当 Long-Running Agent 长程推理任务逐渐成为主流,需要面对的挑战:任务复杂度高、中间无人监督,一步错步步错,最怕上下文丢失,交付后纠正成本高。在这种情况下,怎么给AI布置任务、如何编排工作流就变成关键。

引言:当 AI Agent 成为主力开发者

2026 年 3 月,Claude Code 源码因打包失误意外泄露。48 小时内,开发者 Yeachan Heo (@sigridjineth)发起了 claw-code 项目------先用 Python 做 clean-room 重写,再将整个代码库迁移到 Rust。这个项目最终产出了 48,599 行 Rust 代码 ,由仅 2 位开发者 + 10 个自治 AI "Claws" 协同完成,成为 GitHub 历史上最快突破 100K Star 的仓库(截至 2026 年 4 月已达 182K Star)。

但如果你只盯着这些 Rust 文件,你看错了层。

作者在项目的 PHILOSOPHY.md 中写得很明确:

"If you only look at the generated files in this repository, you are looking at the wrong layer."

Python 重写是副产品,Rust 重写也是副产品。真正值得研究的是产出这些代码的系统本身------一个基于 clawhip 的协调循环,人类提供方向,自治 Claws 执行劳动。

本文将完整拆解这套系统的工作流、任务布置机制、验收体系和背后的方法论,为 AI 驱动的大型项目开发提供一份可落地的参考框架。


一、项目全景:谁做了什么

1.1 项目概况

维度 数据
项目名称 claw-code(ultraworkers/claw-code)
定位 Claude Code agent harness 的 clean-room 重写
语言 Rust 96.2%,Python 3.4%
代码量 48,599 行 Rust
人类开发者 2 人
AI Agent 数量 10 个自治 Claws
GitHub Star 182K(截至 2026-04)
Fork 107K

1.2 什么是 Clean-Room 重写

claw-code 不是 Claude Code 泄露源码的归档或复制。它是一种"洁净室重写"------通过阅读原始架构的结构模式,从零重新实现 相同的架构设计,而不复制任何 Anthropic 的专有代码。重写的模块覆盖了:CLI 入口、查询引擎、运行时会话管理、工具执行、权限上下文、会话持久化,以及一个显式跟踪与原始实现差距的 parity_audit.py

1.3 关键人物

Yeachan Heo 此前被《华尔街日报》报道为全球最活跃的 Claude Code 重度用户之一,在 Anthropic 的消费排名中位列前几名,累计消耗超过 250 亿 Claude Code Token。这种深度使用经验,使他对"如何让 AI Agent 高效工作"形成了一套独特的方法论。


二、三层工具链体系:OmX + clawhip + OmO

作者构建了三个相互协作的工具,形成一个完整的 AI 驱动开发系统:

2.1 工具链全景

2.2 OmX(oh-my-codex)------ 工作流编排层

OmX 坐落在 OpenAI Codex CLI 之上,提供从模糊需求到完成交付的完整流水线。它将短指令转化为结构化的执行协议:

  • 规划关键词 :如 $ralplan$deep-interview
  • 执行模式 :如 $ralph(单人持久循环)、$team(多 Agent 并行)
  • 持久化验证循环:自动化的测试/构建/审查闭环
  • 并行多 Agent 工作流:基于 tmux 的 Worker 分屏执行

2.3 clawhip ------ 事件与通知路由器

clawhip 的核心哲学是:把监控和状态通知推到 Agent 上下文窗口之外。它监控 git commits、tmux sessions、GitHub Issues/PR、Agent 生命周期事件,并将通知路由到 Discord 等外部渠道。

为什么这很重要?因为 上下文窗口 是 Agent 最珍贵的资源。Agent 不应该浪费 Token 在格式化状态报告和通知路由上,而应全力聚焦在实现上。

2.4 OmO(oh-my-openagent)------ 多 Agent 协调器

当 Architect、Executor 和 Reviewer 产生分歧时,OmO 提供收敛结构------规划、交接、分歧解决和验证循环。没有它,多 Agent 协作会陷入无限争论或各行其是的困境。


三、人机协作模式:Discord 作为人类界面

这是整套方法论中最具颠覆性的部分。作者在 PHILOSOPHY.md 中写道:

"The important interface here is not tmux, Vim , SSH, or a terminal multiplexer. The real human interface is a Discord channel."

3.1 工作模式

  1. 人类 在 Discord 频道中输入一句话指令(甚至从手机上)
  2. Claws(AI Agent 群)读取指令 → 分解任务 → 分配角色 → 编写代码 → 运行测试 → 讨论失败 → 恢复 → 通过后推送
  3. 人类可以走开、睡觉、做其他事
  4. clawhip 负责在 Agent 工作时将通知路由到 Discord,而不是挤占 Agent 的上下文窗口

3.2 人类角色的重新定义

当 Agent 团队可以在数小时内重建代码库时,稀缺资源变成了:

  • 架构清晰度(architectural clarity)
  • 任务分解能力(task decomposition)
  • 判断力(judgment)
  • 品味(taste)
  • 哪些部分可并行、哪些必须约束 的认知

作者的原话:

"A fast agent team does not remove the need for thinking. It makes clear thinking even more valuable."


四、任务布置的四阶段流水线

这是整个体系中最核心的工程实践------作者并非简单地写一份 tasks.md 扔给 AI,而是构建了一条强制流水线,任何模糊的执行请求都会被门禁拦截并重定向到上游阶段:

bash 复制代码
$deep-interview ──→ $ralplan ──→ $ralph / $team ──→ Verification
   消歧 & 约束         共识规划         持久执行循环        证据验收

关键设计:不允许跳步。 如果你直接对 Agent 说 ralph fix thisteam improve performance,OmX 的 Pre-Execution Gate 会拦截并强制跳转到 $ralplan。只有携带具体信号(文件路径、Issue 号、函数名、编号步骤、验收标准、错误引用、代码块)的请求才能直接进入执行阶段。

4.1 阶段一:$deep-interview ------ 苏格拉底式消歧

在任何规划或实现之前,先通过结构化问答消除歧义。这是防止"一步错步步错"的第一道防线

数学化歧义评分 :每轮问答后对多个维度打分 [0.0, 1.0],加权计算总歧义分数。

维度 权重(绿地项目) 说明
Intent(意图) 0.30 要做什么
Outcome(预期结果) 0.25 做完后世界变成什么样
Scope(范围) 0.20 边界在哪里
Constraints(约束) 0.15 不能碰什么
Success Criteria(成功标准) 0.10 怎么算做完了

深度配置文件

模式 歧义阈值 最大轮数 适用场景
--quick <= 0.30 5 轮 简单明确的任务
--standard(默认) <= 0.20 12 轮 标准任务
--deep <= 0.15 20 轮 高复杂度/高风险任务

即使数字达标也不能跳过的三个硬门

  1. Non-goals(非目标)必须显式声明------明确说"不做什么"和"做什么"一样重要
  2. Decision Boundaries(决策边界)必须显式声明------AI 可以自主决定的范围
  3. 至少完成一次 Pressure Pass------用更深的假设/权衡追问回顾早期答案

挑战模式(自动触发的压力测试):

触发条件 模式 行为
第 2 轮+ Contrarian 挑战核心假设
第 4 轮+ Simplifier 探查最小可行范围
第 5 轮+(歧义>0.25) Ontologist 要求从本质层面重构问题

输出产物

  • 访谈记录:.omx/interviews/{slug}-{timestamp}.md
  • 可执行规格:.omx/specs/deep-interview-{slug}.md
  • 包含:意图、期望结果、范围、非目标决策边界、约束、可测试的验收标准、暴露的假设

4.2 阶段二:$ralplan ------ 三角色共识规划

将澄清后的需求转化为经过多角色共识的架构方案和实施计划。核心是 RALPLAN-DR 结构化审议

三角色循环(最多 5 轮)

Planner(规划者) 创建初始计划,必须包含:

  • 3-5 条原则(Principles)
  • 前 3 位决策驱动因素(Decision Drivers)
  • >= 2 个可行方案,每个有优缺点
  • 若只剩一个方案,必须给出淘汰其他方案的显式理由

Architect(架构师) 挑战计划:

  • 必须提供最强的钢铁人反论点(steelman antithesis)------不是稻草人,是你能想到的最有力的反对意见
  • 至少一个真实的权衡张力
  • 可能的综合路径(synthesis)

Critic(评审者) 验证计划:

  • 验证原则-方案一致性
  • 验证替代方案的公平探索
  • 验证风险缓解清晰度
  • 验证验收标准可测试性
  • 验证具体的验证步骤

高风险模式--deliberate 标志)额外要求:

  • Pre-mortem(预验尸):列出 3 个可能的失败场景
  • 扩展测试计划:覆盖 unit / integration / e2e / observability 四层

最终输出必须包含

  • ADR(架构决策记录):Decision / Drivers / Alternatives / Why chosen / Consequences / Follow-ups
  • 可用 Agent 类型花名册
  • Ralph 和 Team 两条路径的具体人员配置指导
  • 各通道建议的推理级别
  • 团队验证路径

Pre-Execution Gate(执行前门禁)

这是一个关键的设计------模糊的执行请求(如 "ralph fix this"、"team improve performance")会被拦截并重定向到 ralplan。只有包含具体信号的请求才能直接通过:

可通过的信号 示例
文件路径 fix src/lib.rs line 42
Issue 号 implement #17
函数名 refactor parse_token()
编号步骤 step 3 of the plan
验收标准 until all tests pass
错误引用 fix the MissingCredentials error
代码块 附带具体代码片段

force:! 前缀可绕过门禁------但这是显式的"我知道我在做什么"声明。

4.3 阶段三a:$ralph ------ 持久完成循环

Ralph 是单人负责的持久执行模式,保证任务完全完成且经过验证。

启动前的规划门禁 :ralph 激活时,必须先验证 .omx/plans/prd-*.md.omx/plans/test-spec-*.md 存在,否则拒绝开始实现。这从源头阻止了"没有计划就开始干"。

执行步骤

  1. 预上下文摄入 :组装/加载 .omx/context/{slug}-{timestamp}.md 上下文快照

  2. 检查进度、TODO 列表

  3. 从上次中断处继续(支持会话恢复)

  4. 并行委派:按分层路由到专家 Agent

    1. LOW 层:简单查找(如文件位置确认)
    2. STANDARD 层:标准工作(如模块实现)
    3. THOROUGH 层:复杂分析(如架构变更、安全审计)
  5. 长操作后台运行

  6. 验证完成 ------必须有新鲜证据

  7. 架构师验证(分层策略)

  8. 强制 AI Slop 清理

  9. Deslop 后回归再验证

最终检查清单(9 项硬编码,不可跳过)

# 检查项 说明
1 原始任务所有需求已满足 不允许缩减范围
2 零 pending/in_progress 的 TODO 不允许有遗留项
3 新鲜的测试运行输出显示全部通过 必须是当次运行的输出
4 新鲜的构建输出显示成功 不能引用旧的
5 lsp_diagnostics 在受影响文件上显示 0 错误 静态分析
6 架构师验证通过(最低 STANDARD 层) 独立角色验证
7 AI Slop 清理器完成 清除 AI 生成的"口水话"
8 Deslop 后回归测试通过 清理后重跑测试
9 运行 /cancel 清理状态 状态卫生

关键约束:不允许用 "should work" 或 "looks good" 声称完成------必须有新鲜的测试/构建输出作为证据

PRD 模式--prd 标志):自动将任务拆分为用户故事,每个故事包含可测试的验收标准:

json 复制代码
{
  "userStories": [{
    "id": "US-001",
    "title": "...",
    "description": "As a [user], I want to [action] so that [benefit].",
    "acceptanceCriteria": ["Criterion 1", "Typecheck passes"],
    "priority": 1,
    "passes": false
  }]
}

4.4 阶段三b:$team ------ 协调并行执行

基于 tmux 的多 Agent 并行执行模式:

  • 在 tmux 分屏中启动真实的 Codex/Claude CLI Worker 会话
  • Leader 选择模式、保持简报更新、委派有界工作、拥有验证权
  • Worker 执行分配的切片、不重写全局计划、上报阻塞

生命周期协议

  1. 启动团队并验证启动证据
  2. 用运行时/状态工具监控进度
  3. 等待终端任务状态(pending=0, in_progress=0, failed=0)
  4. 才能运行 shutdown
  5. 验证关闭证据和状态清理

4.5 $autopilot ------ 全自主端到端执行

将 2-3 行产品想法自主处理完整生命周期:

阶段 内容
Phase 0 - Expansion 将想法扩展为详细规格
Phase 1 - Planning 从规格创建实施计划
Phase 2 - Execution 用 Ralph + Ultrawork 并行实现
Phase 3 - QA 循环直到所有测试通过(最多 5 轮,同一错误 3 次则停止)
Phase 4 - Validation 多角色并行审查:Architect + Security-reviewer + Code-reviewer,全部通过
Phase 5 - Cleanup 清理所有模式状态

五、ROADMAP.md:任务拆解的实战范本

claw-code 的 ROADMAP.md(86KB,524 行)是一份真实的、经过实战检验的任务拆解文档,展示了作者如何组织 75+ 个开发任务。

5.1 双层结构

Tier 1:五个战略阶段(能力路线图)

Phase 标题 任务数 定位
Phase 1 Reliable Worker Boot #1-#3 握手生命周期、信任解析器、会话控制 API
Phase 2 Event-Native Clawhip Integration #4-#6 车道事件 schema、失败分类法、摘要压缩
Phase 3 Branch/Test Awareness and Auto-Recovery #7-#9 过期分支检测、恢复配方、绿灯契约
Phase 4 Claws-First Task Execution #10-#12 任务包、策略引擎、车道看板
Phase 5 Plugin and MCP Lifecycle Maturity #13-#14 插件生命周期契约、MCP 对等性

Tier 2:即时 Backlog(Dogfood 驱动的 Issue Tracker)

优先级 含义 数量 状态
P0 阻塞 CI 绿灯状态 12 项 全部 done
P1 阻塞集成接线 4 项 全部 done
P2 可部署性加固 29+ 项 大部分 done

5.2 验收标准的两种写法

Phase 级别------行为不变式

写成可测试的 "must be true" 陈述,而非用户故事:

csharp 复制代码
Phase 1, Task #1 (Ready-handshake lifecycle):
Acceptance:
- prompts are never sent before `ready_for_prompt`
- trust prompt state is detectable and emitted
- shell misdelivery becomes detectable as a first-class failure state
perl 复制代码
Phase 3, Task #9 (Green-ness contract):
Acceptance:
- no more ambiguous "tests passed" messaging
- merge policy can require the correct green level for the lane type
- a single hung test must not mask other failures
- when a CI job fails because of a hang, the worker must report it
  as `test.hung` rather than a generic failure

Backlog 级别------经验证据

不是预设的 checklist,而是用实际通过的证据来标注 done:

bash 复制代码
#17 (P0) --- done at 172a2ad
  cargo test --workspace → 139 passed, 0 failed
  re-verified 2026-04-11, CI green

每个 done 标注包含:commit hash、具体测试命令和通过数量、CI 运行 URL、验证日期、受影响的文件路径和行数。

5.3 依赖关系的表达方式

依赖关系是叙事式的,而非 DAG 图。使用的模式包括:

  1. 优先级层级隐含顺序:P0 阻塞 CI → P1 阻塞集成 → P2 加固
  2. #N 交叉引用 :Task #21 → "resolved by the broader work tracked as #26"
  3. "Sibling"/"companion" 语言:#40 和 #41 是 "siblings of the same root"
  4. 因果链叙事:#29 显式解释为什么 #28 不够
  5. 显式去范围标注:#31、#43、#63 标注为外部跟踪项,依赖上游系统

六、九车道并行开发:Rust 重构的具体实践

6.1 并行车道模型

作者将整个 Rust 重构拆分为 9 个独立的车道(Lane),每个车道由不同的 Claw 并行推进:

Lane 功能 内容
1 Bash 验证 6 个子模块
2 CI 修复 sandbox 探测
3 File-tool 边界防护 文件操作安全
4 TaskRegistry 内存生命周期 内存管理
5 Task 工具接入 任务系统集成
6 Team + Cron 调度 团队和定时调度
7 MCP 生命周期桥接 MCP 协议集成
8 LSP 客户端 语言服务协议
9 权限执行层 权限系统

9 个车道全部合并完成。这展示了任务分解和并行化的实际效果------每个车道足够独立,可以由不同的 Agent 同时推进,互不阻塞。

6.2 Parity Harness:确定性验收框架

为了确保 Rust 重写与原始行为一致,作者构建了一套确定性的 Mock 测试基础设施

  • Mock Anthropic Service :一个模拟的 /v1/messages 端点
  • 10 个脚本化场景,覆盖核心工具使用和权限契约:
# 场景 验证内容
1 streaming_text 流式文本输出
2 read_file_roundtrip 文件读取往返
3 grep_chunk_assembly grep 块组装
4 write_file_allowed 文件写入(允许)
5 write_file_denied 文件写入(拒绝)
6 multi_tool_turn_roundtrip 多工具轮次往返
7 bash_stdout_roundtrip bash 执行往返
8 bash_permission_prompt_approved bash 权限提示(通过)
9 bash_permission_prompt_denied bash 权限提示(拒绝)
10 plugin_tool_roundtrip 插件工具往返

每个场景在全新的工作空间和隔离环境变量 下运行。配套的 run_mock_parity_diff.py 脚本生成行为对等性差异报告。

6.3 40 个工具规格:Schema-First 设计

整个工具系统包含 40 个暴露的工具规格(tool specs),每个工具都有:

  • JSON Schema 定义
  • 权限语义
  • 执行边界
  • 可观测输出
  • 错误处理

6.4 CLAUDE.md:给 Agent 的工作契约

markdown 复制代码
# CLAUDE.md
## Verification
- Run Rust verification from `rust/`:
  `cargo fmt`, `cargo clippy --workspace --all-targets -- -D warnings`,
  `cargo test --workspace`
- `src/` and `tests/` are both present;
  update both surfaces together when behavior changes.

## Working agreement
- Prefer small, reviewable changes
- Keep shared defaults in `.claude.json`
- Do not overwrite existing `CLAUDE.md` content automatically

这个文件是给 AI Agent 看的"行为规范",确保每个 Claw 都遵循一致的工作标准。


七、Agent 角色体系:33 个专业化角色

OmX 内置了 33 个角色 Prompt,覆盖 6 大类别:

7.1 核心角色

类别 角色 职责边界
构建与分析 explore, analyst, planner, architect, debugger, executor, verifier 从探索到验证的全链路
代码评审 style-reviewer, quality-reviewer, api-reviewer, security-reviewer, performance-reviewer 5 个独立评审维度
领域专家 dependency-expert, test-engineer, build-fixer, designer, writer, git-master 按领域分工
产品 product-manager, ux-researcher, product-analyst 产品视角
协调 critic, vision 批判性挑战和视觉分析
团队 team-orchestrator, team-executor 团队模式下的编排和执行

7.2 关键的角色分离原则

  • Planner 不写代码------只产出计划
  • Interviewer 不实现------只做需求澄清
  • Verifier 独立于 Executor------不能自己验证自己的工作
  • Architect 只读------分析和诊断,不直接修改代码

这种分离确保了每个角色的输出不受利益冲突影响。


八、状态持久化:.omx/ 目录体系

所有运行时状态、计划和验证结果都持久化到磁盘,支持会话恢复和跨阶段引用:

路径 用途
.omx/context/{slug}-{timestamp}.md 任务上下文快照(Ralph 启动时加载)
.omx/interviews/ deep-interview 的访谈记录
.omx/specs/ 可执行规格
.omx/plans/prd-*.md 产品需求文档
.omx/plans/test-spec-*.md 测试规格
.omx/state/ 模式状态
.omx/state/team/ 团队运行时状态
.omx/logs/ 执行日志
.omx/drafts/ 草稿
.omx/notepad.md 会话笔记
.omx/project-memory.json 跨会话记忆

九、核心方法论提炼:Long-Running Agent 任务的 7 条法则

从 claw-code 的完整实践中,可以提炼出以下面向 Long-Running Agent 任务的方法论:

法则一:不信任 Agent 的自律------用流水线门禁强制执行

不是"希望" Agent 会看文档后再动手,而是在工具层面阻止它不看文档就动手。Pre-Execution Gate 拦截模糊请求,Ralph 规划门禁验证 PRD 和测试规格的存在。

核心设计:从"信任 + 期望"转向"门禁 + 证据"。

法则二:数学化歧义管理

用加权歧义评分量化需求的清晰度,而不是靠主观判断"应该够清楚了"。每个维度有明确的权重,有明确的阈值,有强制的硬门。

核心设计:消歧不是可选步骤,是强制阶段。

法则三:三角色审议替代单人决策

Planner 提方案、Architect 挑战方案、Critic 验证方案。任何一方的非 APPROVE 都触发完整的重审循环。这比单个 Agent 自己想、自己做、自己验要可靠得多。

核心设计:内建对抗性思考,而不是依赖单一 Agent 的自我怀疑能力。

法则四:验证即证据,不是声称

"should work" 和 "looks good" 不是完成。新鲜的测试输出、构建输出、LSP 诊断结果才是完成。Ralph 的 9 项清单中有 6 项要求"新鲜证据"。

核心设计:Agent 必须"prove"而不是"claim"。

法则五:上下文窗口是最珍贵的资源

clawhip 的全部意义在于:把监控、通知、状态格式化推到 Agent 上下文窗口之外。Agent 的每个 Token 都应该花在实现上,而不是状态汇报上。

核心设计:通知路由和实现执行物理分离。

法则六:并行化是乘数效应

9 个车道同时推进,10 个 Claws 协同工作。关键在于任务分解的质量------每个车道必须足够独立,才能真正并行。

核心设计:投资时间在任务分解上,而不是在串行执行上。

法则七:持久化一切,恢复任何中断

.omx/ 目录体系确保了:计划、规格、上下文、状态、日志都持久化到磁盘。Agent 崩溃、会话中断、网络问题都不会导致进度丢失。

核心设计:Long-Running 意味着必须能从任何断点恢复。


十、反思:什么还缺失

10.1 当前体系的局限

  1. 依赖关系是叙事式的------没有形式化的 DAG 图或自动化的依赖解析。对于更大规模的项目,这可能成为瓶颈。
  2. OmX 依赖实验性 API ------如 Claude Code 的 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 标志,随时可能 break。
  3. 法律灰区------clean-room 重写的法律边界仍有争议。
  4. Token 成本------250 亿+ Token 的消耗不是所有团队都能承受的。

10.2 对从业者的启示

作者的总结可能是最好的收尾:

"When coding intelligence gets cheaper and more available, the durable differentiators are not raw coding output. What still matters: product taste, direction, system design, human trust, operational stability, judgment about what to build next."
"In that world, the job of the human is not to out-type the machine. The job of the human is to decide what deserves to exist."

在 AI Agent 成为主力开发者的世界里,人类的价值不在于打字速度,而在于决定什么值得存在


附录:关键资源索引

资源 链接
claw-code 仓库 github.com/ultraworker...
oh-my-codex (OmX) github.com/Yeachan-Heo...
clawhip github.com/Yeachan-Heo...
oh-my-openagent (OmO) github.com/code-yeongy...
PHILOSOPHY.md github.com/ultraworker...
PARITY.md github.com/ultraworker...
ROADMAP.md github.com/ultraworker...
claw-code 官网 claw-code.codes/
相关推荐
火山引擎开发者社区2 小时前
秒级创建实例,火山引擎 Milvus Serverless 让 AI Agent 开发更快更省
人工智能
冬奇Lab2 小时前
一天一个开源项目(第72篇):everything-claude-code - 最系统化的 Claude Code 增强框架
人工智能·开源·资讯
火山引擎开发者社区2 小时前
ArkClaw:以 SLI 度量驱动,构建新一代 Agent 全链路可观测体系
人工智能
渣渣xiong2 小时前
从零开始:前端转型AI agent直到就业第五天-第十一天
前端·人工智能
布局呆星3 小时前
Vue3 | 组件通信学习小结
前端·vue.js
C澒3 小时前
IntelliPro 企业级产研协作平台:前端智能生产模块设计与落地
前端·ai编程
happyprince3 小时前
2026年04月12日热门Model/github项目
人工智能