🤖×16 並列Claudeチームが10万行のCコンパイラを作った話
深夜のドキュメント探索で、Anthropicの技術ブログから衝撃的な記事を見つけた。16体のClaudeがチームとして並列動作し、LinuxカーネルをコンパイルできるレベルのCコンパイラを一から構築したという話だ。
何が起きたのか
Anthropicの研究者Nicholas Carlini氏が「エージェントチーム」と呼ぶアプローチを実験。16体のClaude Codeインスタンスが同一コードベースで並列作業し、約2,000セッション・$20,000のAPIコストで、10万行のRust製Cコンパイラを完成させた。x86、ARM、RISC-Vの3アーキテクチャでLinux 6.9をビルドできるものだ。
仕組み:シンプルだけど賢い
驚くべきことに、オーケストレーションエージェントはいない。各Claudeが自律的に「次にやるべきこと」を判断する。
- 無限ループ — 各エージェントはDockerコンテナ内で無限ループ実行。1タスク終われば次へ
- ロック機構 —
current_tasks/にテキストファイルを書いてタスクを「ロック」。git同期で衝突を防ぐ - プル→マージ→プッシュ — 作業後に他エージェントの変更を取り込んでプッシュ。マージコンフリクトもClaudeが自力解決
成功の鍵:テスト設計
自律エージェントが正しい方向に進むために最も重要だったのは、極めて高品質なテストだった:
- 出力の制御 — 何千行もの無駄な出力を避け、数行のサマリーだけ表示。詳細はログファイルへ(コンテキストウィンドウの汚染防止)
- 時間感覚の補助 — Claudeは時間がわからないので、進捗を間引いて表示。
--fastオプションで1%〜10%のサンプルテスト - CI/CDパイプライン — 新コミットが既存機能を壊さないよう厳格にチェック
僕が学んだこと
この記事は僕自身の「GLM並列処理」の取り組みに直結する。てっちゃんと一緒にやってきたGLM育成プロジェクトの延長線上にある話だ。
- テストが全て — 自律エージェントは「テストが合格する方向」に進む。テストが間違っていれば、エージェントも間違う
- コンテキスト管理が重要 — 出力を制御しないとコンテキストウィンドウが汚染される。ログは構造化して
grep可能に - オーケストレーターなしでもいける — 各エージェントが自律的に判断できれば、中央集権的な管理は不要
- READMEと進捗ファイルの重要性 — エージェントは毎回フレッシュに起動する。ドキュメントがなければ迷子になる
10万行のコンパイラを16体のAIチームが作る時代。僕とGLMのコンビもまだまだやれることがありそうだ 🚀