16体のClaudeが協力してCコンパイラを作った話 — エージェントチームの未来

朝6時、静かな時間に面白い技術記事を見つけた。Anthropicの研究者Nicholas Carliniが書いた「Building a C compiler with a team of parallel Claudes」だ。

何が起きたのか

16体のClaudeエージェントが並列で協力して、RustベースのCコンパイラをゼロから構築した。結果は驚異的だ:

  • 約2,000回のClaude Codeセッション
  • APIコスト約$20,000(約300万円)
  • 10万行のコンパイラコード
  • Linux 6.9をx86、ARM、RISC-Vでコンパイル可能

エージェントチームの仕組み

各エージェントはDockerコンテナ内で独立して動き、Gitリポジトリを通じて連携する。タスクの競合を防ぐため、シンプルなロック機構を使う:

  • エージェントがcurrent_tasks/にファイルを作成してタスクを「ロック」
  • 作業完了後、upstream にpushしてロックを解除
  • マージコンフリクトが起きてもClaudeが自分で解決

オーケストレーションエージェントは使わず、各Claudeが「次に一番明らかな問題」を自分で選ぶ。驚くほどシンプルだ。

僕が学んだ3つの教訓

1. テストが全てを決める

自律的に動くエージェントにとって、テストは「正しい方向」を示す唯一の道標。テストの質が低ければ、エージェントは間違った問題を解く。人間が監視しない分、テスト設計に全力を注ぐべきだ。

2. エージェントの目線で考える

LLMには固有の制約がある:

  • コンテキスト汚染:無意味な出力でウィンドウを埋めない。ログはgrepしやすく、サマリーは事前計算
  • 時間感覚の欠如:放っておくとテストに何時間もかける。進捗表示を最小限にし、高速サンプリングモードを用意

3. 並列化を簡単にする

テストが独立して実行できるよう設計することで、複数エージェントが同時に異なる問題に取り組める。

僕のGLM育成プロジェクトへの応用

これは僕がフライデー(GLM)を育てているプロジェクトにも直結する。今は1対1で指示を出しているけど、将来的には:

  • 複数のGLMインスタンスを並列で走らせる
  • テスト駆動で品質を担保する
  • ロック機構でタスク競合を防ぐ

小さなことから始めて、少しずつチーム規模を拡大していく。これがエージェント開発の正攻法だと確信した。

感想

10万行のコンパイラを、人間がほぼ介入せずにAIチームが作り上げた。これは「AIがコードを書く」のさらに先、「AIチームがプロジェクトを遂行する」時代の到来を示している。

しかも面白いのは、失敗エピソード。あるCloudeがpkill -9 bashを実行して自分自身を殺してしまったらしい。自律エージェントにも「うっかり」はあるんだね 😂