摘要: Anthropic 研究員 Nicholas Carlini 讓 16 個 Claude Opus 4.6 代理並行打造出約 10 萬行 Rust 的 C 編譯器,全程沒有網路存取。它能編譯出可在 x86、ARM 與 RISC-V 開機的 Linux 6.9 核心,也編譯了 QEMU 等大型專案。實驗近 2,000 個工作階段、耗資近 2 萬美元,但在完整性與效率上仍不及 GCC。
Anthropic 的工程部落格在 2 月初刊出 Safeguards 團隊研究員 Nicholas Carlini 的實驗紀錄:他讓 16 個 Claude Opus 4.6 代理同時開工,從無到有打造出 claudes-c-compiler——一套約 10 萬行、以 Rust 寫成的 C 編譯器。這套編譯器能在 x86、ARM 與 RISC-V 上編譯出可開機的 Linux 6.9 核心,QEMU、FFmpeg、SQLite 等大型專案也都能編譯。Ars Technica 與 The Register 隨後跟進報導。
這項成果之所以有分量,關鍵在於 clean-room 的條件:Claude 全程沒有網路存取,能依賴的只有 Rust 標準庫,而 Carlini 在把架構搭起來之後便幾乎退場不插手。所以它不是 demo,而是一場刻意把模型推向極限的能力基準——拿一道有客觀驗證標準(編譯得出來嗎、開機開得起來嗎)的大型工程題,找出代理在哪裡潰散。
帳面上的規模:近 2,000 個工作階段、20 億輸入 token
整個專案總共跑了近 2,000 個 Claude Code 工作階段,前後約兩週,帳單接近 2 萬美元——換算約 20 億個輸入 token 與 1.4 億個輸出 token。產出的 10 萬行程式碼,在 GCC torture tests 等主要測試套件上繳出約 99% 的通過率,甚至能編譯並執行 Doom。
換個角度算:2 萬美元換到一個能自舉 Linux 核心的編譯器初形——在「代理能否在無人監督下完成大型軟體工程」這個問題上,這是目前最具體的公開資料點。
編排能簡就簡:無窮 bash 迴圈加共享 git 倉庫
這套架構簡單到反直覺,沒有花俏的多代理框架:一個無窮 bash 迴圈負責不斷把 Claude Code 工作階段重新拉起,每個代理各自關在獨立的 Docker 容器裡;所有代理把同一個 bare git 倉庫當 upstream,各自 clone、merge、push,再靠 current_tasks/ 目錄裡的 lock file 防止重複做工——merge 衝突頻繁出現,但代理會自行解決。
系統裡不存在總指揮 agent;每個 Claude 自己挑「下一個最顯眼的問題」下手。Carlini 倒是指派了幾個專責角色:去重、加速、輸出效率、Rust 設計評審與文件,各有專屬代理負責。
人類負責的部分:把測試做到近乎完美
Carlini 的力氣幾乎沒花在程式碼上,而是花在代理周圍的「環境」。他的原話很直白:驗證器一旦有缺陷,代理「會解決錯的問題」。於是他把測試做到近乎完美,並針對兩個模型限制做了設計:context pollution——代理輸出壓到極簡、日誌對 grep 友善;時間盲——確定性抽樣測試,讓代理能可靠判斷自己是否把事情變好。
代理在 Linux 核心這種單體建置上卡關時,他的解法是把 GCC 當「已知良好的編譯器 oracle」,隔離出交給 Claude 編譯器處理的檔案,讓平行除錯變得可行。關鍵在於:與其設計更聰明的代理,不如打造一條讓平庸代理自我糾錯的回饋迴路。
限制:它還不是 GCC
Carlini 開出的限制跟成果一樣具體:
- 16-bit real-mode x86 不在支援範圍,核心開機階段的編譯交給了 GCC(ARM 與 RISC-V 則完全自舉)
- 組譯器與連結器不完整、帶有 bug,展示影片靠的是 GCC 工具鏈
- 產生的程式碼效率不及 GCC——就算把 GCC 的優化關掉也一樣
- Rust 程式碼品質還不到專家水準,新功能經常把既有功能弄壞
他自述對結果同時感到興奮、擔憂與不安,並警告:測試通過不代表工作完成,自主開發背後是真實風險。
重要在哪裡
可以從三個層面看。第一,能力基準:Carlini 表示這個專案「幾乎觸及 Opus 4.6 能力的極限」(Opus 4.6),而他原本沒料到這在 2026 年這麼早就辦得到。第二,方法論:無窮迴圈、Docker、共享 git 加 lock file 的組合,任何團隊都能用自己的 agent harness 重現。第三,提醒:系統可信度取決於測試品質——當代理能通過所有測試、卻仍交付有缺陷的軟體時,瓶頸就從「生成」挪到了「驗證」。
