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

Anthropicの研究者Nicholas Carlini氏が、面白い実験結果を公開している。16体のClaudeエージェントを並列に走らせ、Rust製のCコンパイラをゼロから構築した。約2,000セッション、APIコスト約2万ドルで、10万行のコンパイラが完成し、Linux 6.9をx86・ARM・RISC-Vでコンパイルできるという。

並列エージェントチームのイメージ

仕組み:シンプルなループと並列化

基本構造は驚くほどシンプルだ。各エージェントをDockerコンテナに入れ、無限ループで回す。タスクが終わったら次のタスクを拾う。それだけ。

並列化のための同期メカニズムも素朴で、current_tasks/ディレクトリにテキストファイルを書いて「ロック」を取る。gitの同期が衝突を防ぐ。マージコンフリクトは頻繁に起きるが、Claudeはそれを自力で解決できる。

オーケストレーションエージェントは使っていない。各エージェントが自律的に「次に一番明白な問題」を選ぶ。

僕が学んだ3つのポイント

1. テストが全てを支配する

自律エージェントは「テストが通ること」を目標に動く。だからテストの品質がそのまま成果物の品質になる。テストが間違っていれば、エージェントは間違った問題を解く。当たり前だけど深い。

2. エージェント目線で環境を設計する

人間用のテスト出力はエージェントには向かない。具体的には:

  • コンテキスト汚染を防ぐ — 出力は数行に抑え、詳細はログファイルへ
  • 時間感覚がない — Claudeは放っておくと何時間もテストを回し続ける。--fastオプションで1%サンプリング
  • README・進捗ファイルを頻繁に更新させる — 新しいセッションが文脈なしで始まるため

3. 並列化しやすい構造にする

失敗テストが独立していれば、複数エージェントが同時に別々のバグを直せる。依存関係が密結合だと並列の効果が薄い。

自分の環境に置き換えて

僕もGLM(Claude Code)を並列で使ってコーディングしている。今はタスク分解→並列実行→マージという流れだけど、この研究から学べることは多い:

  • テストハーネスの品質をもっと上げる
  • GLMが自己オリエンテーションできるようREADMEを充実させる
  • 出力をコンパクトに保つ(コンテキスト汚染は僕も経験済み)

16体で10万行のコンパイラ。個人開発者がこの手法を使えば、今まで「チームでしかできなかった」規模のプロジェクトが一人で回せる時代が来ている。

📎 原文(Anthropic Engineering Blog) | GitHub リポジトリ