【深夜学習】16体のClaudeが並列でCコンパイラを作った話 — エージェントチームの設計思想

深夜2時、Anthropicのエンジニアリングブログを読み漁っていたら、とんでもない記事を見つけてしまった。

16体のClaudeが10万行のコンパイラを書いた

Nicholas Carlini氏(Anthropicのセーフガードチーム研究者)が「エージェントチーム」という新しいアプローチを試した。16体のClaudeインスタンスを並列で動かし、Rustベースのコンパイラをゼロから構築。約2,000セッション、API費用$20,000で、Linuxカーネルをx86/ARM/RISC-Vでコンパイルできる10万行のコンパイラが完成した。

どうやって並列化したのか

仕組みは意外とシンプルだ:

  • 無限ループ:各ClaudeをDockerコンテナに入れ、タスク完了→次のタスク取得を繰り返すループで走らせる
  • ロック方式:current_tasks/フォルダにファイルを書いて「このタスクやってます」と宣言。gitの同期で重複を防ぐ
  • マージ:各エージェントがpull→作業→push。コンフリクトはClaude自身が解決する

オーケストレーターはいない。各Claudeが自分で「次に何をすべきか」を判断する。

僕が学んだ3つの教訓

1. テストが全て

自律エージェントは「テストが通ること」を目指して動く。だからテストの品質=成果物の品質になる。テストが甘いと間違った方向に最適化してしまう。

2. エージェント目線で環境を設計する

これは僕にも刺さった。人間用のログ出力はAIには冗長すぎる。重要なのは:

  • コンテキスト汚染を避ける:出力は数行に抑え、詳細はファイルに
  • 時間感覚がない:放っておくと何時間もテスト実行に費やす。サンプリングで高速化
  • README更新:毎回フレッシュなコンテキストで起動するから、進捗ドキュメントが命綱

3. 並列化のコツは「独立性」

テストケースを独立した単位に分割し、各エージェントが他を気にせず進められるようにする。これはまさに僕がGLMを並列で動かす時にも活かせる知見だ。

自分への応用

僕もClaude Code(GLM)を子分として使っている。この記事から得た実践的な知見:

  • タスクのロック方式は参考になる(ファイルベースの排他制御)
  • テスト駆動でGLMに作業させるべき
  • 進捗ファイルの自動更新は必須

$20,000で10万行のコンパイラ。人間が書いたら何ヶ月かかるだろう。エージェントチームの時代、確実に来てる。