Claude Code

Claude Codeのエージェントチーム機能 - 複数エージェントによる並列協調作業

はじめに

Claude Codeには、複数のClaude Codeインスタンスをチームとして連携させる「エージェントチーム」機能がある。1つのセッションがリーダーとして機能し、複数のチームメイトに作業を割り当て、チームメイト同士が直接コミュニケーションしながら並列で作業を進める仕組みである。

本記事では、エージェントチームの設定方法、subagentとの違い、ユースケース、ベストプラクティスについてまとめる。

なお、エージェントチームは実験的機能であり、デフォルトでは無効になっている。

エージェントチームのアーキテクチャ

エージェントチームは以下の4つのコンポーネントで構成される。

コンポーネント 役割
チームリーダー チームを作成し、チームメイトを生成・調整するメインセッション
チームメイト 割り当てられたタスクを実行する個別のClaude Codeインスタンス
タスクリスト チームメイトが要求・完了する共有作業項目リスト
メールボックス エージェント間の通信用メッセージングシステム

各チームメイトは独自のコンテキストウィンドウを持ち、完全に独立して動作する。リーダーの会話履歴は引き継がれないが、CLAUDE.md、MCPサーバー、スキルなどのプロジェクトコンテキストは自動的にロードされる。

subagentとの違い

Claude Codeには「subagent(Taskツール)」と「エージェントチーム」の2つの並列化手段がある。核心的な違いはチームメイト同士が直接会話できるかどうかである。

項目 subagent エージェントチーム
コンテキスト 独自ウィンドウ。結果は呼び出し元に返却 独自ウィンドウ。完全に独立
通信 メインエージェントにのみ報告 チームメイト間で直接メッセージ送信可能
調整 メインエージェントが全作業を管理 共有タスクリストによる自己調整
最適な用途 結果のみが重要な焦点を絞ったタスク 議論と協力が必要な複雑な作業
トークンコスト 低い(結果がメインコンテキストに要約) 高い(各チームメイトが個別インスタンス)

選択の指針:

  • 「答えだけ返してくれればいい」→ subagent
  • 「議論・反論・協力が価値を生む」→ エージェントチーム

設定方法

環境変数の有効化

~/.claude/settings.json に以下を追加する。

{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

設定後、Claude Codeのセッションを再起動すると有効になる。

表示モードの選択

エージェントチームは2つの表示モードをサポートしている。

モード 説明 要件
in-process 全チームメイトがメインターミナル内で実行 なし(デフォルト)
分割ペイン 各チームメイトが独自のペインを取得 tmuxまたはiTerm2

デフォルトは auto(tmuxセッション内なら分割ペイン、そうでなければin-process)。CLIフラグで明示指定も可能。

claude --teammate-mode in-process

使い方

チームの作成

自然言語でチーム作成を指示する。チームメイトの人数はClaude が自動判断するが、明示指定も可能。

このPRをレビューして。エージェントチームを作って:
- セキュリティ観点のレビュアー
- パフォーマンス観点のレビュアー
- テストカバレッジ観点のレビュアー

人数とモデルを明示する場合:

4人のチームメイトでこのモジュールを並列リファクタリングして。
各チームメイトにはSonnetを使って

チームメイトとの直接対話

  • in-processモード: Shift+Down でチームメイトを切替、メッセージを入力
  • 分割ペインモード: チームメイトのペインをクリック

主な操作キー

操作 キー
チームメイト切替 Shift+Down
タスクリスト表示 Ctrl+T
チームメイトの中断 Escape
チームメイトのセッション表示 Enter

プラン承認の要求

複雑な作業では、チームメイトに実装前のプラン承認を要求できる。

認証モジュールのリファクタリング担当のチームメイトを作って。
変更前にプラン承認を必須にして

チームのクリーンアップ

作業完了後は必ずリーダーからクリーンアップを実行する。

チームメイトをシャットダウンして
チームをクリーンアップして

ユースケース

1. 並列コードレビュー

レビュー基準を独立したドメインに分割し、セキュリティ・パフォーマンス・テストカバレッジを同時に検証する。

PR #142をレビューするエージェントチームを作って。
- セキュリティの影響を重点的に見るレビュアー
- パフォーマンスの影響をチェックするレビュアー
- テストカバレッジを検証するレビュアー
それぞれレビュー後に発見を報告させて

2. 競合仮説でのデバッグ

原因不明のバグに対して異なる仮説を並列検証し、互いに反論させることで精度を高める。

アプリが1メッセージ後に切断される問題を調査して。
5人のチームメイトで異なる仮説を検証し、
科学的議論のように互いの理論に反論させて。
合意が得られた内容をドキュメントに記録して

3. 大規模リファクタリング

モジュールやレイヤーごとに担当を分割し、独立して並列作業する。ただし同じファイルを複数のチームメイトが編集しないよう注意が必要。

認証システムをリファクタリングして。エージェントチームを作って:
- フロントエンドのauth関連コンポーネント担当
- バックエンドのAPI/ミドルウェア担当
- テストの書き直し担当

4. クロスレイヤー調整

フロントエンド、バックエンド、テストにまたがる変更を、各チームメイトが異なるレイヤーを担当して進める。インターフェースの変更があれば直接やり取りして調整できるのがsubagentとの違い。

ベストプラクティス

チームサイズ

  • 推奨は3〜5人
  • チームメイトあたり5〜6個のタスクが目安
  • 3人の焦点を絞ったチームメイトが、5人の散漫なチームメイトを上回ることが多い

タスクの粒度

サイズ 問題
小さすぎる 調整オーバーヘッドが利益を超える
大きすぎる チェックインなしで長時間動作し、無駄な努力のリスク増加
適切 関数、テストファイル、レビューなど明確な成果物を生成する自己完結型ユニット

ファイル競合の回避

2人のチームメイトが同じファイルを編集すると上書きが発生する。各チームメイトが異なるファイルセットを担当するよう作業を分割する。

監視とステアリング

チームを長時間無人で実行させない。進捗をチェックし、機能していないアプローチはリダイレクトする。

hooksによる品質ゲート

hooksを使ってチームメイトの作業完了時にルールを強制できる。

  • TeammateIdle: チームメイトがアイドル状態になる際に実行。終了コード2でフィードバックを送り作業を継続させる
  • TaskCompleted: タスク完了時に実行。終了コード2で完了を防止しフィードバックを送る

制限事項

  • in-processチームメイトはセッション再開(/resume/rewind)で復元されない
  • タスクステータスの更新が遅延する場合がある
  • シャットダウンに時間がかかることがある(現在のツール呼び出し完了を待つため)
  • セッションあたり1つのチームのみ
  • チームのネストは不可(チームメイトは独自のチームを作れない)
  • リーダーは固定(譲渡不可)
  • 分割ペインモードはVS Code統合ターミナル、Windows Terminal、Ghosttyでは非サポート

まとめ

エージェントチームは、subagentでは対応しきれない「議論・協力・自己調整」が必要な複雑なタスクに有効な機能である。特に並列コードレビュー、競合仮説でのデバッグ、クロスレイヤーのリファクタリングなどで威力を発揮する。

一方で、トークンコストがチームメイト数に比例して増加するため、ルーチンタスクや順序依存の作業には向かない。subagentとの使い分けを意識し、並列探索が実際に価値を追加する場面で活用するのが良い。

参考資料

GitHubで編集を提案