概要
- 複数Claudeエージェント による自律型チーム開発の実験
- Rust製Cコンパイラ をゼロから構築し、Linuxカーネルのビルドを達成
- テスト設計・並列化・役割分担 など、エージェント運用ノウハウを蓄積
- 限界点・課題 も明確化し、今後のLLM活用の指針を提示
- コスト・効率・品質 の観点からも詳細に評価
エージェントチームによるRust製Cコンパイラ開発実験
- SafeguardsチームのNicholas Carlini による新アプローチ「agent teams」の実験
- 複数のClaudeインスタンス が 人間の介入なし で同じコードベースに並行作業
- 16エージェント を使い、 RustでCコンパイラ をゼロから開発し、Linuxカーネル(6.9)をx86、ARM、RISC-Vでビルド可能に
- 約2,000回のClaude Codeセッション、 APIコスト約2万ドル、 10万行のコンパイラ を生成
- 成果物自体の価値 もあるが、本稿は 長時間自律型エージェント運用ノウハウ に焦点
長時間自律型Claude運用の工夫
- 従来のClaude Code は人間の継続的な操作が必要
- 自律的な進行 を実現するため、Claudeをループで動かす ハーネス(制御環境) を設計
- 例: タスク終了後すぐ次のタスクを自動取得
- Bashスクリプト で永遠にClaudeを起動し続ける仕組み
- Claudeには問題分割・進捗管理・次タスク選択 を指示
- 無限ループ でClaudeが自分で止めない限り進行
並列化とタスク同期
- 1セッション1タスクの制約 を解消するため、 複数Claudeを並列実行
- 各エージェントはDockerコンテナで独立実行、/workspaceで作業後/upstreamにpush
- タスクロック用テキストファイル で作業の重複防止
- gitの同期機能 でロック競合時は他タスクへ自動切替
- マージ競合もClaudeが自律解決
エージェント間コミュニケーションと役割分担
- 現状は直接のコミュニケーションなし
- 各Claudeが「最も明白な次の課題」を自主的に選択
- バグで行き詰まると進捗ドキュメントを自動作成・管理
- 役割分担例
- 重複コード統合担当
- コンパイラの性能改善担当
- 出力コードの効率化担当
- Rust開発者視点での設計批評・構造改善
- ドキュメント整備担当
テスト設計とフィードバックの工夫
- 高品質なテスト設計 が自律作業の鍵
- タスク検証者(verifier)の精度向上 が必須
- オープンソースビルドスクリプトやテストスイート を活用
- 新機能追加時の既存機能破壊 を防ぐためCIパイプラインと厳格なテスト導入
- Claude向けのテスト出力設計
- コンテナごとに初期化されるため、進捗・README更新指示
- 無駄な出力を避け、重要情報はファイルに記録
- エラーはgrepで抽出しやすい形式 で記録
- 集計統計値は事前計算 し、Claudeの負担軽減
- タイムブラインド対策 として進捗出力頻度制御、サブサンプルテスト導入
並列化の課題と解決策
- 独立テスト多数→並列化容易
- 各エージェントが異なる失敗テスト担当
- Linuxカーネルのような巨大タスク→並列化困難
- 全エージェントが同じバグに集中し、修正の上書きが発生
- GCCを「正解オラクル」として利用
- 一部ファイルをGCCでコンパイルし、Claudeコンパイラのバグ箇所特定を分散
- 各エージェントが異なるファイルのバグ修正に専念可能
- delta debugging で複合的バグも特定
ストレステストと評価
- Opus 4.6モデルの限界試験
- 2週間、2,000セッション、20,000ドル、20億入力トークン、1.4億出力トークン消費
- Rust標準ライブラリのみ依存、完全クリーンルーム実装
- Linux 6.9、QEMU、FFmpeg、SQlite、Postgres、Redis等のビルド達成
- GCC torture test suite等で99%パス率
- Doomのビルド・実行にも成功
- 主な制約
- 16ビットx86コンパイラ未実装 (GCCに依存)
- アセンブラ・リンカの自前実装は未完成
- すべてのプロジェクトで完全なGCC互換は未達
- 最適化してもGCCほど効率的なコードは生成不可
- Rustコード品質は専門家レベルには未到達
- Opus 4.6の限界に近い成果
今後への示唆
- 複数LLMエージェントの自律並列開発 は大規模・複雑タスクでも有効性を示す
- テスト設計・進捗管理・役割分担 が運用の成否を左右
- 現行LLMの限界と今後の改善ポイント を明確化
- コスト・効率・品質のバランス を考慮したAI活用設計の重要性