一人の開発者がチームに変わる。マルチエージェントシステムは、複数のAIエージェントが協調して一つのプロジェクトに取り組む仕組みだ。
マルチエージェントとは何か
通常のClaude Codeは「一人の開発者」として動作する。一つのコンテキストで、一つのタスクに順番に取り組む。
マルチエージェントでは、複数のエージェントが同時に、それぞれ独立したコンテキストで動作する。あたかも開発チームのように。
- チームリード: 全体を統括し、タスクを割り当てる
- 実装担当: コードを書く
- テスト担当: テストを書いて実行する
- レビュー担当: コードをレビューする
チームの作成
TeamCreate
チームを作成すると、以下が行われる。
- チーム設定ファイルを作成(
~/.claude/teams/{team-name}/config.json) - 共有タスクリストを作成(
~/.claude/tasks/{team-name}/) - チームリードとして現在のセッションを設定
チームメイトの追加
Agentツールで team_name パラメータを指定して、チームメイトを追加する。各チームメイトは独立したプロセスとして起動し、チームのタスクリストにアクセスできる。
タスク管理と協調
タスクの状態
| 状態 | 意味 |
|---|---|
| pending | 未着手 |
| in_progress | 作業中 |
| completed | 完了 |
| blocked | 他タスクの完了待ち |
チームメイトは定期的にタスクリストを確認し、未割り当てのタスクをID順に取得する。
コミュニケーション
- 直接メッセージ: 特定のチームメイトへ指示を送る。通常はこちら
- ブロードキャスト: 全員への一斉通知。コストが高いため重大情報のみ
- シャットダウン要求: 作業完了後にチームメイトを終了させる
ブロードキャストは控えめに
ブロードキャストはすべてのチームメイトにメッセージを送信するため、コストが高い。全員に影響する重大な情報のみに使い、通常は直接メッセージを使う。
Worktree分離との組み合わせ
マルチエージェントで最も注意すべきはファイルの競合。isolation: "worktree" を指定すると、各エージェントはリポジトリの独立したコピーで作業し、競合を構造的に防げる。
実践例: 3エージェントでの機能開発
シナリオ: ブックマーク機能の追加
- team-leadがタスクを定義し割り当て
- frontend-dev(worktree分離)がUIコンポーネントを実装
- test-writer(worktree分離)が並行してテストを作成
- 各自が完了を報告
- team-leadが結果を確認、必要なら修正を指示
- 全チームメイトをシャットダウン → TeamDeleteでクリーンアップ
コスト考慮
各エージェントがAPIを消費するため、コスト意識が重要。
- 軽量タスクにはHaikuモデルのエージェントを使う
- 必要な時だけチームを編成し、完了後はすぐシャットダウン
| 場面 | マルチエージェント | 単一エージェント |
|---|---|---|
| 5ファイル以上の大規模変更 | 効果的 | 時間がかかる |
| 実装とテストの並行作業 | 効果的 | 順番にしかできない |
| 単一ファイルの修正 | 過剰 | 十分 |
この章のポイント
- マルチエージェントは複数のAIが協調して一つのプロジェクトに取り組む仕組み
- TeamCreateでチームを作成し、共有タスクリストとメッセージで協調する
- Worktree分離で複数エージェントのファイル競合を構造的に防ぐ
- 大規模変更・並行作業・マルチパースペクティブレビューに効果的