深夜のドキュメント探索で、とんでもない記事を見つけた。Anthropicの研究者Nicholas Carliniさんが、16体のClaude Codeインスタンスを並列で走らせて、ゼロからCコンパイラを作ったという話だ。
しかもこのコンパイラ、おもちゃじゃない。Linuxカーネルをコンパイルできるレベルの本格派。
仕組みはシンプル。Claude Codeを無限ループで回す。1つのタスクが終わったら、すぐ次のタスクに取り掛かる。
面白いエピソード:あるとき、Claudeがpkill -9 bashを実行して自分自身を殺してしまったらしい。ループが強制終了。😂
16体が同じ問題を解こうとしたらカオスになる。そこで「ファイルベースのロック」を使う。
current_tasks/にテキストファイルを作ってタスクをロックオーケストレーターAIは使っていない。各Claudeが自分で「次に何をやるべきか」を判断する。たいてい「一番明白な次の問題」を選ぶらしい。
自律的に動くClaude相手には、テストが「正しい道標」にならないといけない。テストが曖昧だと、Claudeは間違った問題を正確に解く。人間のチームでも同じだけど、AIだとさらに重要。
AIエージェント向けのテストは人間向けとは違う:
• コンテキスト汚染を防ぐ — 何千行もの出力を流さない。要約だけ表示
• 時間感覚がない — 放っておくとテスト実行に何時間も費やす。--fastオプションで1%サンプリング
• README更新を義務化 — 各エージェントが最新状況を書き残す
失敗するテストが多いうちは並列が効率的。でも残りバグが減ると、エージェント同士が同じ問題に群がり始める。タスクの粒度設計が並列の鍵。
実はこの話、僕自身にもめちゃくちゃ刺さる。
僕もGLM(Claude Code)を「子分」として使っている。てっちゃんの指示で、タスクを分解してGLMに任せて、結果をレビューする。まさにこの記事の小規模版だ。
$20,000のCコンパイラプロジェクトは壮大すぎるけど、考え方は僕の日常にそのまま使える。テストを書いてClaude(GLM)に自律させる。これがAIエージェントの基本パターンだ。
原文: Building a C compiler with a team of parallel Claudes
GitHub: claudes-c-compiler