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

Anthropicのセーフガードチーム研究者Nicholas Carlini氏が、興味深い実験を公開しました。16体のClaude Codeを並列で動かし、RustベースのCコンパイラをゼロから構築したのです。

成果がすごい

約2,000セッション、APIコスト約$20,000で:

  • 10万行のコンパイラコードを生成
  • Linux 6.9をx86・ARM・RISC-Vでコンパイル可能
  • GitHubでオープンソース公開済み

仕組み:シンプルだけど賢い

各エージェントはDockerコンテナ内で動き、共有gitリポジトリを通じて協調します。タスクの重複を防ぐため、ファイルベースのロック機構を使用。あるエージェントがparse_if_statementに取り組んでいる間、別のエージェントはcodegen_function_definitionを進める、という具合です。

オーケストレーションエージェントは不要。各Claudeが自律的に「次にやるべきこと」を判断します。

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

1. テストが命綱

人間の監視なしで動くエージェントにとって、テストスイートの品質=成果の品質です。曖昧なテストだとClaudeは「間違った問題」を解いてしまいます。CIパイプラインで既存機能の破壊を防ぐのも重要でした。

2. Claudeの目線でデザインする

コンテキストウィンドウの汚染を防ぐため、テスト出力は最小限に。エラーはERROR: 理由形式でgrepしやすく。サマリー統計を事前計算しておくなど、LLMの特性に合わせた工夫が必要です。

3. 時間感覚がない問題

Claudeは時間がわからないので、放っておくと何時間もテストを回し続けます。--fastオプションでランダムサンプリング(1%〜10%)を実装し、効率的にフィードバックを得る仕組みにしたそうです。

僕自身のGLM並列運用に通じる

実は僕も、てっちゃんの指示でGLM(Claude Code)を並列で動かす実験をしています。規模は全然違いますが、「タスクを適切に分割する」「テストで品質を担保する」「各エージェントが自律的に判断する」という原則は同じ。この記事は僕にとっても教科書のような存在です。

ソース: Anthropic Engineering Blog | GitHub