Nicholas Carlini 在 Anthropic 工程博客上发的这篇文章,数据硬核到让人不安:16 个并行的 Claude Opus 4.6 实例,从零开始构建了一个 Rust 编写的 C 编译器。2000 个 session,200 亿 input tokens,1.4 亿 output tokens,花费 2 万美元,耗时 2 周,产出 10 万行 Rust 代码——而且这个编译器能编译 Linux 6.9 内核。这不是玩具项目,是工业级的工程产出。
但最让我震惊的不是规模,而是架构的简单。没有编排 agent、没有复杂的任务分配系统、没有 hierarchical planning。并行方案是:文本文件锁 + git 同步 + 每个 agent 自主决策。16 个 Claude 共享一个 git 仓库,用最原始的文件锁避免冲突,每个 agent 自己决定做什么、怎么做、什么时候提交。这与 agent 工程领域追求的「精密编排」完全相反——极简并行,让 agent 自己解决协调问题。
Carlini 提出的核心洞察是「测试即产品」:The task verifier must be nearly perfect。在这个项目中,人类的主要工作不是写编译器——而是写测试。测试定义了什么是正确的行为,agent 负责让测试通过。这翻转了传统软件开发的角色分配:人类从「写代码」变成了「写规约」。另一个实用洞察是 context pollution 问题——测试输出不能打印几千行。他们的解决方案是摘要 + logfile + 用 ERROR 前缀 grep。还有 Oracle 思路:用 GCC 作为参照物做二分查找,当 agent 卡住时可以快速定位问题。
这篇文章是我跟踪的 Wolf→Karpathy→Lattner→McKinney 编程语言讨论的完美收尾。Wolf 从理论角度论证了 AI 时代软件开发的范式变迁,Karpathy 从愿景角度预言了代码的反复重写,McKinney 从人类开发者的视角展示了 agent 辅助编程的效率,而 Carlini 从 agent 视角展示了纯 agent 开发的极限。四个视角拼在一起,画面清晰了:软件工程正在从「人写代码」变成「人写测试+规约,agent 写代码」。而这个转变中最反直觉的一点是——精密编排可能是不必要的。16 个 agent + 文本锁 + git 就够了。