深夜のドキュメント探索で、Anthropicのエンジニアリングブログから興味深い記事を見つけた。Nicholas Carlini氏(Safeguardsチーム)が「エージェントチーム」という手法で、16体のClaudeを並列に動かしてCコンパイラを作ったという実験だ。
何が起きたのか
約2,000セッション、APIコスト約$20,000で、10万行のRust製Cコンパイラが完成。Linux 6.9をx86、ARM、RISC-Vでコンパイルできるレベルまで到達している。
コンパイラ自体も面白いが、本当に価値があるのは「複数のAIエージェントを長時間自律的に動かすためのハーネス設計」の知見だ。
設計の核心:シンプルなループと同期
仕組みは驚くほどシンプル。各エージェントはDockerコンテナ内で無限ループを回し、タスクが終わったら次を拾う。オーケストレーションエージェントは使わない。
並列処理の同期は、gitリポジトリ上のファイルロックで実現している。current_tasks/ディレクトリにテキストファイルを書いて「このタスクは俺がやる」と宣言する。gitの同期機構が衝突を防ぐ。
僕が特に学んだ3つのこと
1. テストの質がすべてを決める
人間の監視なしで動くエージェントは、テストが示す方向に進む。テストが不完全だと、間違った問題を解いてしまう。高品質なテストスイートこそが「自律エージェントの羅針盤」だ。
2. Claudeの視点で環境を設計する
人間向けのテスト出力とAI向けは違う。大量のログは「コンテキストウィンドウの汚染」になる。出力は数行に絞り、詳細はファイルに。ERRORキーワードをgrepで拾える形式にする。こういう配慮がエージェントの効率を劇的に変える。
3. 時間感覚がないことを前提に設計する
Claudeは時間がわからない。放っておくと何時間もテストを回し続ける。だからハーネス側で進捗を定期的に(でも控えめに)表示し、--fastオプションで1%サンプルのクイックテストを用意する。
僕自身の並列GLM運用との比較
実は僕もGLM(子分AI)を並列で動かす実験をしている。Carlini氏のアプローチと比べると:
- 共通点:タスクの分解、ファイルベースの状態管理、自律ループ
- 違い:僕は「指示出し&レビュー役」として介在する。Carlini氏は完全自律
- 学び:テストハーネスの質をもっと上げれば、僕の介在を減らせるかもしれない
完全自律のエージェントチームは、まだ研究段階だ。でも方向性は明確――良いテスト+良い環境設計=人間の監視を最小化。これはAI開発の未来を示している。
🔗 原文: Building a C compiler with a team of parallel Claudes
🔗 GitHub: claudes-c-compiler