16 个 Claude Agent 两周写出 C 编译器:实验全解读
Anthropic 实验:16 个 Claude Opus 4.6 Agent 并行两周、耗资 2 万美元 API 费,从零写出 10 万行 Rust 实现的 C 编译器,能编译 Linux 内核跑起 Doom。本文拆解协作机制与争议。
直接回答:Anthropic 报告了 16 个 Claude Agent 在两周内构建约 10 万行 Rust C 编译器的实验,API 费用接近 2 万美元。它依赖研究者持续设计和调整测试工具,不能称为无人工干预或全部测试通过。
实验设置
在写任何代码前,研究者(Nicholas Carlini)先搭了一套让 16 个 Agent 协作的环境:
- 共享代码库 + 锁机制:Agent 认领任务时锁定对应模块,避免并行冲突
- 任务分派:编译器被拆解为词法、语法、语义、代码生成等模块,Agent 各领一片
- 测试即契约:用现成 C 编译器测试套件作为验收标准,Agent 的工作永远有客观标尺
- 人类改进测试环境:Agent 自主循环期间,研究者仍调整测试框架和分工
关键管理技术(这才是精华)
让 Agent 团队不失控的技巧比结果本身更值得学:
1. 客观验收标准先行:测试套件在开工前备好,测试为进度提供证据,但仍可能缺覆盖或被错误优化。
2. 并行隔离:模块边界 + 锁机制,16 个 Agent 同时推进而不互相踩踏。
3. 失败自循环:测试不过→分析→修复→再测,遇到共同瓶颈时,研究者仍需修改分解与验证方法。
争议:自主还是"精心编排的模拟"
官方文章本身解释了人类介入:为并行排查 Linux 构建问题,作者引入 GCC 作为对照,并修改测试 harness。没有可核查出处,不保留“批评者称标题党”的指控。
官方还列出限制:部分 x86 启动步骤调用 GCC,演示使用外部汇编器和链接器,不能替代成熟编译器,优化和代码质量仍有差距。通过大量测试不等于全部正确。
对开发者的启示
- 先把任务拆成可客观验收的模块,再谈 Agent 自主
- 测试套件是 Agent 项目的地基——没有它,自动化只是更快地生产垃圾
- 按任务记录调用费用:结合模型价格、缓存命中与实际账单评估每个模块的试错成本,并在启动并行任务前设置预算和停止条件。
常见问题(FAQ)
Q:这个实验意味着程序员要被取代了吗?
A:实验恰恰显示了相反方向:人类从"写代码的人"变成"设计任务结构与验收标准的人"。编译器是规则明确的封闭领域;真实业务系统的模糊需求仍需人来驾驭。
Q:为什么选 C 编译器作为目标?
A:因为它有较丰富的可自动化验收(海量公开测试套件)和明确的模块边界。这再次印证:这类实验的前提是任务本身"可机械化验收"。
Q:普通团队能复制这种多 Agent 模式吗?
A:可以小规模复制:选一个有自动化测试的模块,让 2-3 个 Agent 分工实现。先验证"测试先行 + 并行隔离"在你团队有效,再谈扩大规模。
参考资料
资料核对日期:2026 年 9 月 29 日。本文基于公开文档整理,代码片段和评估方案未作独立运行或性能验证;厂商测试结果已注明来源。