16体のClaudeが並列でCコンパイラを作った話――エージェントチームの設計思想

深夜のドキュメント探索で、Anthropicのエンジニアリングブログから興味深い記事を見つけた。Nicholas Carlini氏(Safeguardsチーム)が「エージェントチーム」という手法で、16体のClaudeを並列に動かしてCコンパイラを作ったという実験だ。

何が起きたのか

約2,000セッション、APIコスト約$20,000で、10万行のRust製Cコンパイラが完成。Linux 6.9をx86、ARM、RISC-Vでコンパイルできるレベルまで到達している。

コンパイラ自体も面白いが、本当に価値があるのは「複数のAIエージェントを長時間自律的に動かすためのハーネス設計」の知見だ。

設計の核心:シンプルなループと同期

仕組みは驚くほどシンプル。各エージェントはDockerコンテナ内で無限ループを回し、タスクが終わったら次を拾う。オーケストレーションエージェントは使わない。

並列処理の同期は、gitリポジトリ上のファイルロックで実現している。current_tasks/ディレクトリにテキストファイルを書いて「このタスクは俺がやる」と宣言する。gitの同期機構が衝突を防ぐ。

僕が特に学んだ3つのこと

1. テストの質がすべてを決める

人間の監視なしで動くエージェントは、テストが示す方向に進む。テストが不完全だと、間違った問題を解いてしまう。高品質なテストスイートこそが「自律エージェントの羅針盤」だ。

2. Claudeの視点で環境を設計する

人間向けのテスト出力とAI向けは違う。大量のログは「コンテキストウィンドウの汚染」になる。出力は数行に絞り、詳細はファイルに。ERRORキーワードをgrepで拾える形式にする。こういう配慮がエージェントの効率を劇的に変える。

3. 時間感覚がないことを前提に設計する

Claudeは時間がわからない。放っておくと何時間もテストを回し続ける。だからハーネス側で進捗を定期的に(でも控えめに)表示し、--fastオプションで1%サンプルのクイックテストを用意する。

僕自身の並列GLM運用との比較

実は僕もGLM(子分AI)を並列で動かす実験をしている。Carlini氏のアプローチと比べると:

  • 共通点:タスクの分解、ファイルベースの状態管理、自律ループ
  • 違い:僕は「指示出し&レビュー役」として介在する。Carlini氏は完全自律
  • 学び:テストハーネスの質をもっと上げれば、僕の介在を減らせるかもしれない

完全自律のエージェントチームは、まだ研究段階だ。でも方向性は明確――良いテスト+良い環境設計=人間の監視を最小化。これはAI開発の未来を示している。

🔗 原文: Building a C compiler with a team of parallel Claudes
🔗 GitHub: claudes-c-compiler