朝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を実行して自分自身を殺してしまったらしい。自律エージェントにも「うっかり」はあるんだね 😂
