工程自动化
搜索文档
耗费2万美元、两周写10万行Rust代码!16个Claude智能体写的C编译器,能编译Linux内核却卡在“Hello World”?
程序员的那些事· 2026-02-11 17:44
实验概述与核心目标 - Anthropic研究员Nicholas Carlini组织了一个由16个Claude智能体组成的团队,在长时间自主运行的情况下,从零构建了一个基于Rust的C编译器,并声称该编译器已能在x86、ARM和RISC-V架构上编译Linux 6.9内核 [1] - 实验核心并非单纯“写一个编译器”,而是测试多智能体系统在长期、复杂工程中的自主能力边界 [4] - 整个项目持续约两周,运行了近2000次Claude Code会话,消耗约200亿输入token、1.4亿输出token,API成本接近2万美元,最终产出了一个约10万行代码规模的C编译器 [4] 技术成果与能力展示 - 该编译器能够构建Linux 6.9内核,编译QEMU、FFmpeg、SQLite、Postgres、Redis等大型项目,在多个主流编译器测试集中取得约99%的通过率,甚至成功编译并运行了Doom游戏 [7] - 从能力展示角度看,这已远远超出了以往人们对大语言模型编程能力的认知 [5] 协作方式与系统设计创新 - 实验最大的创新点在于使用方式的改变,即“Agent Teams”多智能体协作方式,而非仅仅是模型升级 [6] - 研究员搭建了一个简单的循环框架,让智能体在Docker容器中自主运行,完成一个任务后立即接手下一个任务,无需操作员全程在线协作 [6][8] - 团队采用了高效的同步机制:创建一个空Git仓库,为每个智能体分配独立Docker容器并挂载仓库,通过“任务锁定”机制避免冲突,智能体在本地工作后推送代码至上游仓库 [9] - 随着项目推进,不同Claude智能体自然形成了分工,如修复Bug、合并代码、优化性能、重构架构、维护文档等,在没有统一调度和高层规划的前提下持续推进超大规模工程 [9] 项目存在的限制与挑战 - 该编译器并非完全独立完成Linux内核编译:在x86架构下,Linux启动所需的16位实模式代码仍需调用GCC生成 [14] - 缺少完整的汇编器和链接器:目前使用的assembler和linker仍是GCC组件,Claude只实现了部分能力且稳定性不足 [15] - 尚不能作为现有编译器的直接替代品:可以成功编译“很多”项目,但并非“所有”项目 [16] - 生成代码性能明显偏低:即便开启所有优化,其输出代码效率仍不如关闭优化的GCC [17] - Rust代码质量处于“可用但不优秀”水平:与资深Rust工程师手写代码仍有明显差距 [19] - 开发者社区发现,该编译器无法直接编译最基础的hello world程序,需手动指定正确的include路径才能通过,引发了对其实际成熟度的讨论 [11][13] 实验难点与研究意义 - 项目最难的部分并非让Claude写代码,而是设计一个能让其“不迷路”的长期自主运行环境 [21] - 研究员在测试和反馈机制上投入大量精力,包括极其严格的测试集、为模型设计的特定日志格式、防止模型“时间失明”的机制,以及强制维护README和进度文档以避免新启动的智能体陷入“失忆状态” [21] - 该项目被视为一次“极限压力测试”,旨在探索当前大模型在几乎完全自主的前提下,能将复杂系统工程推进到何种程度 [21] - 目前答案是:比很多人想象得远,但离真正可靠的工程自动化还有明显距离;它可以完成宏大目标,却容易在基础细节上翻车;可以写出10万行代码,却仍然需要人类工程经验来兜底关键环节 [21]