エージェントチームを使用する場合
エージェントチームは、並列探索が実際の価値を追加するタスクに最も効果的です。完全なシナリオについては、ユースケース例を参照してください。最も強力なユースケースは以下の通りです。- 調査とレビュー:複数のチームメンバーが問題のさまざまな側面を同時に調査し、その後、各自の調査結果を共有して相互に検証できます
- 新しいモジュールまたは機能:チームメンバーが互いに干渉することなく、それぞれ別々の部分を担当できます
- 競合する仮説でのデバッグ:チームメンバーが異なる理論を並列でテストし、より迅速に答えに収束できます
- クロスレイヤー調整:フロントエンド、バックエンド、テストにまたがる変更で、それぞれ異なるチームメンバーが担当します
subagents との比較
エージェントチームと subagents の両方を使用すると、作業を並列化できますが、動作方法が異なります。チームなしでメッセージを相互に渡す別々のセッションについては、クロスセッションメッセージングを参照してください。

Subagents は結果をメインエージェントに報告します。エージェントチームでは、チームメンバーがタスクリストを共有し、作業を要求し、互いに直接通信します。
結果を報告する必要がある迅速で焦点を絞ったワーカーが必要な場合は subagents を使用してください。チームメンバーが調査結果を共有し、互いに検証し、独立して調整する必要がある場合は、エージェントチームを使用してください。
エージェントチームを有効にする
エージェントチームはデフォルトでは無効になっています。CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 環境変数を 1 に設定して有効にしてください。シェル環境または settings.json を通じて設定できます。
settings.json
-p フラグを含む 非インタラクティブモード では、Agent SDK セッションを含めて、Claude はチームメイトを生成せず、Claude が名前を付けたサブエージェントはエージェントチームが有効な場合でも通常の サブエージェント として実行されます。
最初のエージェントチームを開始する
エージェントチームを有効にした後、実行したいタスクとチームメンバーを自然言語で説明してください。Claude がチームメンバーを生成し、プロンプトに基づいて作業を調整します。 この例は、3 つの役割が独立しており、互いに待つことなく問題を探索できるため、うまく機能します。- 上下矢印: チームメンバーを選択する
- Enter: 選択したチームメンバーのトランスクリプトを開き、直接メッセージを送信する
- Escape: 選択を解除します。チームメンバーのトランスクリプトを表示している間、Escape はそのチームメンバーの現在のターンを中断します
2 idle agents のようになります。それを選択して Enter キーを押すと折りたたまれた行が展開され、Esc キーを押すと再び折りたたまれます。作業中のチームメンバー、失敗したチームメンバー、および表示中のチームメンバーは常に独自の行を保持します。
各チームメンバーを独自の分割ペインに配置したい場合は、表示モードを選択を参照してください。
エージェントチームを制御する
リーダーに自然言語で実行したい内容を指示してください。チーム調整、タスク割り当て、および指示に基づいた委任を処理します。表示モードを選択する
エージェントチームは 2 つの表示モードをサポートしています。- In-process:すべてのチームメンバーがメインターミナル内で実行されます。エージェントパネルで上下矢印キーを使用してチームメンバーを選択し、Enter キーを押してそれを表示して、直接メッセージを入力してください。追加のセットアップなしで任意のターミナルで動作します。
- 分割ペイン:各チームメンバーが独自のペインを取得します。すべてのユーザーの出力を一度に表示でき、ペインをクリックして直接対話できます。tmux または iTerm2 が必要です。
tmux には特定のオペレーティングシステムでの既知の制限があり、従来は macOS で最も効果的に動作します。iTerm2 で tmux -CC を使用することが、tmux への推奨エントリーポイントです。"in-process" です。"auto" を設定して、既に tmux セッション内で実行している場合または使用しているターミナルが iTerm2 で it2 CLI がインストールされている場合は分割ペインを有効にし、それ以外の場合は in-process にフォールバックします。"tmux" 設定は分割ペインモードを有効にし、ターミナルに基づいて tmux または iTerm2 を使用するかどうかを自動検出します。
"iterm2" を設定して iTerm2 ネイティブ分割ペインを明示的に使用してください。このモードは it2 CLI が必要で、it2 が見つからない場合はインストールコマンド付きでエラーを表示します。it2 をインストールするか tmux に切り替えるオプションを提供するセットアッププロンプトは、ターミナルが iTerm2 で tmux がフォールバックとして利用可能な場合、"auto" または "tmux" の下に表示されます。
デフォルトをオーバーライドするには、~/.claude/settings.json で teammateMode を設定してください。
--teammate-mode フラグは実験的であり、claude --help に表示されません。
分割ペインモードには、tmux または it2 CLI を備えた iTerm2 が必要です。手動でインストールするには、以下を実行してください。
- tmux:システムのパッケージマネージャーを通じてインストールしてください。プラットフォーム固有の手順については、tmux wiki を参照してください。
- iTerm2:
it2CLI をインストールし、iTerm2 → Settings → General → Magic → Enable Python API で Python API を有効にしてください。
チームメンバーとモデルを指定する
Claude はタスクに基づいて生成するチームメンバーの数を決定するか、正確に実行したい内容を指定できます。- スポーンプロンプトがそのチームメンバーに対して指定するモデル。
- サブエージェント定義からスポーンされたチームメンバーの場合、定義の
model。ここでinheritはリーダーのモデルを選択します。 CLAUDE_CODE_SUBAGENT_MODEL。inherit以外に設定されている場合。- リーダーの現在のモデル。
agent.spawn フックでモデルを設定している場合、Claude Code は最初のソースの代わりにそのモデルを使用します。
CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 を設定した場合、最初の 2 つのソースは適用されません。Claude Code は CLAUDE_CODE_SUBAGENT_MODEL が inherit 以外に設定されている場合はそこからすべてのチームメンバーのモデルを選択し、それ以外の場合はリーダーの現在のモデルから選択します。Claude Code v2.1.257 以降が必要です。
v2.1.251 より前は、CLAUDE_CODE_SUBAGENT_MODEL がこの順序で最初に来ていました。
teammateDefaultModel は v2.1.234 で削除されました。Claude Code は残された値を無視します。代わりにプロンプトでモデルを指定してください。availableModels 許可リストに対してチェックします。許可リストが値をブロックすると、Claude Code は別のモデルを代替します。
opusなどのファミリーエイリアス:Anthropic API および AWS 上の Claude Platform では、Claude Code はチームメンバーを許可リストが許可するそのファミリーの最新バージョンで実行します。プロバイダー固有のモデル ID を持つプロバイダーでは、代替が動作しない場合、ブロックされたエイリアスは次の箇条書きに従って他のブロックされた値のようにフォールバックします。- プロバイダー固有のモデル ID を持つプロバイダーで代替が動作しないファミリーエイリアス、またはそのファミリーに許可されたバージョンがないもの、またはその他のブロックされた値:Claude Code はチームメンバーをリーダーのモデルで実行します。
CLAUDE_CODE_SUBAGENT_MODELを設定した場合、Claude Code はそのモデルを最初に試し、これらの同じルールの下で実行します。
チームメンバーが実装前にプランを立てるようにする
複雑またはリスクの高いタスクの場合、チームメンバーが実装前にプランを立てることができます。リーダーが plan モードにある間に Claude がスポーンするチームメンバーも、プランが準備できるまで plan モードで動作します。まずリーダーを plan モードに切り替えてから、チームメンバーを要求してください。Shift+Tab を押してそのチームメイトを plan モードにした場合、その実行のプランは Claude Code が承認するのではなく、リーダーがレビューします。ユーザーに承認は求められません。リーダーがプランを承認するか、修正のために差し戻します。
チームメンバーと直接通信する
各チームメンバーは、完全で独立した Claude Code セッションです。任意のチームメンバーに直接メッセージを送信して、追加の指示を与えたり、フォローアップの質問をしたり、アプローチをリダイレクトしたりできます。- In-process モード:エージェントパネルで上下矢印キーを使用してチームメンバーを選択し、Enter キーを押してそのセッションを表示して、メッセージを入力してください。選択したチームメンバーで
xを押してそれを停止してください。Ctrl+T を押してタスクリストを切り替えてください。 - 分割ペインモード:チームメンバーのペインをクリックして、セッションと直接対話してください。各チームメンバーは独自のターミナルの完全なビューを持っています。
/compact、/clear、/rewindはリーダーの会話に作用するため、このビューからいずれかを実行する前に Claude Code が確認を求めます。/modelと/fastはチームメイトではなくリーダーのモデルと fast mode を設定するため、このビューからは実行されません。その理由を示す通知が表示されます。
タスクを割り当てて要求する
共有タスクリストはチーム全体の作業を調整します。リーダーがタスクを作成し、チームメンバーがそれらを処理します。タスクには 3 つの状態があります。保留中、進行中、完了。タスクは他のタスクに依存することもでき、その場合は依存先のタスクが完了するまでタスクリストでブロック中として表示されます。チームメンバーはブロックされたタスクを自己要求しませんが、ユーザーまたはリーダーは引き続きそのタスクを割り当てることができます。 Task ツールを持たないエージェントは、共有タスクリストの代わりにメッセージを通じて調整します。 リーダーはタスクを明示的に割り当てるか、チームメンバーが自己要求できます。- リーダーが割り当て:リーダーにどのタスクをどのチームメンバーに与えるかを指示してください
- 自己要求:タスクを完了した後、チームメンバーは独立して次の未割り当て、ブロック解除されたタスクを選択します
チームメンバーをシャットダウンする
チームメンバーのセッションを適切に終了するには、名前で参照してください。例えば、researcher という名前のチームメンバーの場合:hooks で品質ゲートを実施する
hooks を使用して、チームメンバーが作業を完了したときまたはタスクが作成または完了したときのルールを実施してください。TeammateIdle:チームメンバーがアイドル状態になろうとしているときに実行されます。終了コード 2 でフィードバックを送信し、チームメンバーを動作させ続けてください。TaskCreated:タスクが作成されているときに実行されます。終了コード 2 で作成を防止し、フィードバックを送信してください。TaskCompleted:タスクが完了としてマークされているときに実行されます。終了コード 2 で完了を防止し、フィードバックを送信してください。
エージェントチームの仕組み
このセクションでは、エージェントチームの背後にあるアーキテクチャと仕組みについて説明します。使い始めたい場合は、上記のエージェントチームを制御するを参照してください。Claude がエージェントチームを開始する方法
チームを開始するには、Claude にチームメイトを依頼します。エージェントチームが有効な状態で、Claude がname を指定して Agent ツールを呼び出すと、Claude はチームメイトを起動します。ただし、その呼び出しがフォークである場合や、呼び出し自体に isolation を渡している場合は除きます。Claude Code は起動の確認を求めません。
Claude は、後でメッセージを送れるように、通常のサブエージェントにも自ら名前を付けます。これらの呼び出しにも同じルールが適用されるため、ユーザーがチームを依頼していなくてもチームが形成されることがあります。チームではなくサブエージェントを使いたい場合は、エージェントチームをオフにしてください。
アーキテクチャ
エージェントチームは次の要素で構成されます。
各エージェントのメールボックスは、
~/.claude/teams/{team-name}/inboxes/{agent-name}.json にある JSON ファイルです。Claude Code はメールボックスファイルを読み込む際に、すべてのエントリを検証します。メッセージ形式に一致しないエントリはエラーとして報告され、ファイルから削除されます。有効なメッセージは引き続き配信されます。
Claude Code は、受信者のメールボックスファイルへの書き込みが成功した場合にのみ、メッセージを送信済みとして報告します。これは、メッセージがプレーンテキストであっても、プラン承認やシャットダウン要求などの構造化プロトコルメッセージであっても同様です。ディスクがいっぱいである、メールボックスディレクトリに書き込めないなどの理由で書き込みが失敗した場合、送信側のエージェントはエラーを受け取り、何も送信されません。エラーメッセージと復旧手順については、チームメイトの受信箱への書き込みに失敗した場合を参照してください。
Claude Code はタスクの依存関係を自動的に管理します。他のタスクが依存しているタスクをチームメイトが完了すると、ユーザーが何も操作しなくても、依存しているタスクのブロックが解除されます。
チームとタスクは、セッションから派生した名前でローカルに保存されます。名前は session- の後にセッション ID の最初の 8 文字が続く形式です。
- チーム設定:
~/.claude/teams/{team-name}/config.json。Claude Code はセッション終了時にチーム設定ディレクトリを削除します。 - タスクリスト:
~/.claude/tasks/{team-name}/。このディレクトリはセッション終了後もディスク上に残ります。Claude Code がこれを保持する期間を変更するには、cleanupPeriodDaysを設定してください。
members 配列が含まれています。リーダーのエントリには、常にエージェントタイプ team-lead が付きます。チームメイトのエントリには、リーダーが生成時に指定したエージェントタイプが付きます。これは組み込みタイプの場合もサブエージェント定義の場合もあり、リーダーが何も指定しなかった場合はこのフィールドは省略されます。チームメイトはこのファイルを読み取って、他のチームメンバーを把握できます。
チーム設定に相当するプロジェクトレベルの設定はありません。プロジェクトディレクトリ内の .claude/teams/teams.json のようなファイルは設定として認識されず、Claude は通常のファイルとして扱います。
チームメイトにサブエージェント定義を使用する
どちらの表示モードでチームメイトを生成する場合でも、プロジェクト、ユーザー、管理、またはプラグインのサブエージェントスコープにあるサブエージェントタイプを参照できます。これにより、security-reviewer や test-runner などの役割を一度定義するだけで、委任されたサブエージェントとしても、エージェントチームのチームメイトとしても再利用できます。 サブエージェント定義を使用するには、Claude にチームメイトの生成を依頼する際にその名前を指定します。tools: Claude Code は、チームメイトが使用できるツールを定義のtoolsリストにあるツールに限定します。インプロセスのチームメイトの場合、Claude Code はそのリストにSendMessageを追加し、Task ツールを持つセッションではTaskCreate、TaskGet、TaskList、TaskUpdateも追加します。model: 生成プロンプトでモデルが指定されていない場合、Claude Code はどちらの表示モードでも定義のmodelを使用します。Claude Code がチームメイトのモデルを選択する方法を参照してください。disallowedTools: インプロセスのチームメイトの場合、Claude Code は定義のdisallowedToolsにあるツールをチームメイトのツールセットから削除します。SendMessageと Claude Code が追加する Task ツールは、リストに含まれていても引き続き使用できます。effort: インプロセスのチームメイトの場合、Claude Code はフロントマターの effort ルールに従って定義のeffortを適用します。autoCompactWindow: インプロセスのチームメイトの場合、Claude Code はこのフィールドのルールに従って定義のautoCompactWindowを適用します。分割ペインのチームメイトはこのフィールドを無視します。Claude Code v2.1.296 以降が必要です。- 本文: インプロセスのチームメイトの場合、Claude Code は定義の本文を追加の指示としてデフォルトのシステムプロンプトに追記します。分割ペインのチームメイトの場合、Claude Code はデフォルトのシステムプロンプトの代わりに本文を使用します。
skills: Claude Code は、どちらの表示モードでも定義のskillsをチームメイトに適用しません。チームメイトはプロジェクト設定とユーザー設定からスキルを読み込みます。mcpServers: 分割ペインのチームメイトの場合、Claude Code はこのフィールドのルールに従って定義のmcpServersを適用します。このルールは--agentで開始したセッションにも適用されます。インプロセスのチームメイトはこのフィールドを無視し、プロジェクト設定とユーザー設定から MCP サーバーを読み込みます。
.claude/agents/ ディレクトリまたは --add-dir ディレクトリから取得した定義を、エージェントファイルがあるフォルダーを信頼している場合にのみ再適用します。親フォルダーを信頼していても対象にはなりません。信頼するまでは、チームメイトは定義のツールや指示を一切持たずに復帰し、Claude Code がすべてのインプロセスのチームメイトに追加するツールのみを保持します。通知テキストについては、チームメイトのエージェント定義が復元されなかった場合を参照してください。
権限
実行中のチームメイトの権限モードを切り替えるには、Shift+Tab を押します。ただし、インプロセスのチームメイトは代わりにリーダーのモードで実行される場合があります。分割ペインのチームメイトの場合は、そのペインで押します。インプロセスのチームメイトの場合は、そのセッションを表示している間に押すと、チームメイトは次のターンを開始する際にモードを確認します。
plan モードではないインプロセスのチームメイトは、リーダーが
acceptEdits、auto、または bypassPermissions モードである間、リーダーのモードで実行されます。チームメイトを Manual に切り替えても、ステータスバーに Manual と表示されていても、この動作は変わりません。編集前に確認を求めるようにするには、エージェントパネルの main 行で Enter を押し、リーダーも Manual モードに切り替えてください。これにより、リーダーも確認を求めるようになり、Manual モードの他のチームメイトも同様に確認を求めます。--dangerously-skip-permissions によってオンになる bypassPermissions モードも含まれます。リーダーが dontAsk モードの場合、チームメイトは代わりに Manual モードで開始されます。リーダーが Manual モードまたは dontAsk モードである分割ペインのチームメイトの場合、これには Claude Code v2.1.317 以降が必要です。
インプロセスのチームメイトはリーダーの現在の許可ルールと拒否ルールの下で実行されるため、--disallowedTools、--tools、--allowedTools はすべてこのチームメイトに適用されます。分割ペインのチームメイトの場合は、フラグごとに確認してください。
--disallowedToolsと--tools: チームメイトは、リーダーのコマンドラインの拒否ルールとツールリストを持った状態で開始されます。Claude Code v2.1.309 以降が必要です。--allowedTools: Claude Code はこのフラグを分割ペインのチームメイトに渡さないため、このフラグだけで許可したアクションは、分割ペインのチームメイトでは事前承認されません。これらのアクションを事前に承認するには、リーダーを開始する際に--settingsのpermissions.allowにルールを記述します。たとえば、シェルでclaude --settings '{"permissions":{"allow":["Bash(npm *)"]}}'を実行します。このルールは、そのセッションのリーダーと各分割ペインのチームメイトに適用されます。
エージェント間のメッセージ
あるエージェントがSendMessage を介して別のエージェントにメッセージを送ると、Claude Code は受信側のエージェントに、そのメッセージがユーザーからではなく別の Claude セッションから来たものであることを伝えます。チームメイトはユーザーに代わって権限プロンプトを承認したり同意を与えたりすることはできず、アクションを拒否されたチームメイトがチェックを回避するためにそのアクションを別のチームメイトに中継することもできません。チームの外部にあるユーザーの他の Claude Code セッションのいずれかから届いたメッセージにも、同じルールが適用されます。
auto モードでは、分類器はエージェント間のメッセージに 2 つのチェックを適用します。
- 別のエージェントから中継された承認の主張を、ユーザーからの確認ではなく、信頼できない入力として扱います。
- プレーンなメッセージであっても、シャットダウン要求やプラン承認の応答などの構造化プロトコルメッセージであっても、Claude Code が配信する前に各メッセージを確認します。ブロックされたメッセージが受信者に届くことはありません。
コンテキストと通信
各チームメイトは独自のコンテキストウィンドウを持ちます。生成されると、チームメイトは通常のセッションと同じプロジェクトコンテキスト(CLAUDE.md、MCP サーバー、スキル)を読み込みます。--setting-sources を指定してリーダーを開始した場合、チームメイトも同じ制限されたソースのリストから読み込みます。v2.1.281 より前は、分割ペインのチームメイトはすべての設定ソースを読み込んでいました。
チームメイトはリーダーから生成プロンプトも受け取ります。リーダーの会話履歴は引き継がれません。
チームメイトが情報を共有する方法:
- メッセージの自動配信: チームメイトがメッセージを送信すると、受信者に自動的に配信されます。リーダーが更新をポーリングする必要はありません。
- アイドル通知: チームメイトは作業を終えて停止すると、自動的にリーダーに通知し、その通知に最終的な回答を含めます。API エラーでターンが終了したチームメイトは、失敗したことをリーダーに通知し、エラーテキストを含めます。
- 共有タスクリスト: Task ツールを持つエージェントは、タスクのステータスを確認し、引き受け可能な作業を引き受けることができます。
- チームメイトへのメッセージ送信: 特定のチームメイト 1 人に名前を指定してメッセージを送信します。全員に届けるには、受信者ごとに 1 通ずつメッセージを送信します。
トークン使用量
エージェントチームは、単一のセッションよりも大幅に多くのトークンを使用します。各チームメイトは独自のコンテキストウィンドウを持ち、トークン使用量はアクティブなチームメイトの数に比例して増加します。調査、レビュー、新機能の開発では、通常、追加のトークンに見合う価値があります。日常的なタスクでは、単一のセッションの方が費用対効果に優れています。使用量のガイダンスについては、エージェントチームのトークンコストを参照してください。 インプロセスのチームメイトのリクエストはメインの会話のキャッシュ TTL バケットの対象外となるため、Claude サブスクリプションを利用している場合も含め、そのキャッシュはデフォルトで 5 分間保持されます。1 時間保持するには、subagentPromptCacheTtl を 1h に設定してください。API では、1 時間のキャッシュ書き込みはより高い料金で課金されます。
ユースケース例
これらの例は、エージェントチームが並列探索が価値を追加するタスクをどのように処理するかを示しています。並列コードレビューを実行する
単一のレビュアーは一度に 1 つのタイプの問題に傾く傾向があります。レビュー基準を独立したドメインに分割することで、セキュリティ、パフォーマンス、およびテストカバレッジがすべて同時に徹底的に注意を受けます。プロンプトは各チームメンバーに異なるレンズを割り当てるため、重複しません。競合する仮説で調査する
根本原因が不明な場合、単一のエージェントは 1 つのもっともらしい説明を見つけて停止する傾向があります。プロンプトはチームメンバーを明示的に敵対的にすることでこれと戦います。各チームメンバーの仕事は、独自の理論を調査するだけでなく、他の理論に異議を唱えることです。ベストプラクティス
チームメンバーに十分なコンテキストを提供する
チームメンバーはプロジェクトコンテキスト(CLAUDE.md、MCP servers、および skills を含む)を自動的にロードしますが、リーダーの会話履歴は継承しません。詳細については、コンテキストと通信を参照してください。生成プロンプトにタスク固有の詳細を含めてください。適切なチームサイズを選択する
チームメンバーの数に厳しい制限はありませんが、実際の制約が適用されます。- トークンコストは線形にスケール:各チームメンバーは独自のコンテキストウィンドウを持ち、独立してトークンを消費します。詳細については、エージェントチームトークンコストを参照してください。
- 調整オーバーヘッドが増加:より多くのチームメンバーは、より多くの通信、タスク調整、および競合の可能性を意味します
- 収穫逓減:ある時点を超えると、追加のチームメンバーは作業を比例的に高速化しません
タスクを適切にサイズ設定する
- 小さすぎる:調整オーバーヘッドが利益を超える
- 大きすぎる:チームメンバーはチェックインなしで長時間動作し、無駄な努力のリスクが増加します
- ちょうど良い:関数、テストファイル、またはレビューなど、明確な成果物を生成する自己完結型ユニット
チームメンバーが完了するまで待つ
時々、リーダーはチームメンバーを待つ代わりに、タスク自体を実装し始めます。これに気付いた場合は、以下を実行してください。調査とレビューから開始する
エージェントチームが初めての場合は、明確な境界があり、コードを書く必要がないタスクから開始してください。PR をレビューする、ライブラリを調査する、またはバグを調査します。これらのタスクは、並列実装に伴う調整の課題なしに、並列探索の価値を示しています。ファイルの競合を回避する
2 人のチームメンバーが同じファイルを編集すると、上書きが発生します。作業を分割して、各チームメンバーが異なるファイルセットを所有するようにしてください。監視と操舵
チームメンバーの進捗をチェックし、機能していないアプローチをリダイレクトし、調査結果が入ってくるにつれて統合してください。チームを長時間無人で実行させると、無駄な努力のリスクが増加します。トラブルシューティング
チームメンバーが表示されない
Claude にチームメンバーを生成するよう指示した後、チームメンバーが表示されない場合は、以下を実行してください。- In-process モードでは、チームメンバーはプロンプト入力の下のエージェントパネルに表示されます。上下矢印キーを使用して 1 つを選択し、Enter キーを押して表示してください。
- アイドル状態で消えたチームメンバー行は停止されていなく、非表示になっています。アイドル行はパネル全体がアイドル状態になってから 30 秒後に非表示になり、チームメンバーの次のターンで再表示されます。3 人以上のチームメンバーがアイドル状態の場合、余剰行は
N idle agentsという 1 つの行に折りたたまれ、Enter キーで展開されます。チームメンバーに名前でメッセージを送信して、非表示の行を戻してください。 - Claude に提供したタスクがチームを必要とするほど十分複雑であることを確認してください。Claude はタスクに基づいてチームメンバーを生成するかどうかを決定します。
- 明示的に分割ペインをリクエストした場合は、tmux がインストールされ、PATH で利用可能であることを確認してください。
- iTerm2 の場合、
it2CLI がインストールされ、Python API が iTerm2 の設定で有効になっていることを確認してください。
Claude がサブエージェントの代わりにチームメンバーを生成する
エージェントチームが有効な場合、Claude がリーダーのセッションで名前を付けたサブエージェントはチームメンバーとして起動します。Claude は独自にサブエージェントに名前を付けることができるため、これはチームワークとしてフレーム化したことのない委任中に発生する可能性があります。 名前付きサブエージェントをサブエージェントとして再度起動するには、CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS を 0 に設定してエージェントチームをオフにしてください。
settings.json
env 値を再適用し、Claude がサブエージェントを生成するたびに変数を再読み込みするため、次に Claude が名前を付けたサブエージェントはサブエージェントとして起動します。
ユーザー settings.json で変数を 0 に設定すると、シェルエクスポートがオーバーライドされます。他の設定ソースはエージェントチームを有効にできます。
- 優先度の高い設定ファイル:プロジェクト設定、ローカル設定、および
--settingsペイロードはユーザー設定の後に適用されるため、それらのいずれかで変数を1に設定するenvエントリが優先されます。設定の優先度を参照してください。 - マネージド設定:マネージド設定は他のすべてのソースの後に適用されます。組織がそこでエージェントチームを有効にしている場合は、管理者にマネージド値の変更を依頼してください。
SendMessage アドレスとして機能し続けます。Claude は各サブエージェントが完了したときにその結果を受け取ります。
権限プロンプトが多すぎる
チームメンバーの権限リクエストはリーダーにバブルアップし、摩擦を生じさせる可能性があります。チームメンバーを生成する前に、権限設定で一般的な操作を事前承認して、中断を減らしてください。エージェントが早期に停止する
チームメンバーはエラーが発生した後、回復する代わりに停止する可能性があります。In-process モードでエージェントパネルでチームメンバーを選択して Enter キーを押すか、分割モードでペインをクリックして出力を確認し、以下のいずれかを実行してください。- 直接追加の指示を与える
- 作業を続行するために置き換えチームメンバーを生成する
孤立した tmux セッション
チームが終了した後、tmux セッションが持続する場合、完全にクリーンアップされていない可能性があります。セッションをリストして、チームによって作成されたセッションを終了してください。制限事項
Agent teams は実験的な機能です。現在の制限事項は以下の通りです。- インプロセス teammates でのセッション再開非対応:
/resumeと/rewindはインプロセス teammates を復元しません。セッションを再開した後、lead が存在しなくなった teammates にメッセージを送ろうとする可能性があります。この場合、lead に新しい teammates をスポーンするよう指示してください。 - タスク状態が遅延することがある: teammates は時々タスク完了のマークに失敗し、これが依存タスクをブロックします。タスクが止まっているように見える場合、実際に作業が完了しているかどうかを確認し、タスク状態を手動で更新するか、lead に teammate に促すよう指示してください。
- シャットダウンが遅い可能性がある: teammates は現在のリクエストまたはツール呼び出しを完了してからシャットダウンするため、時間がかかる可能性があります。
- セッションごとに 1 つのチーム: セッションは正確に 1 つのチームを持ち、そのセッションにスコープされています。追加の名前付きチームを作成したり、セッション間でチームを共有したりすることはできません。
- ネストされたチーム非対応: teammates は独自の teammates をスポーンできません。lead のみがチームを管理できます。
- インプロセスのチームメイトからのバックグラウンドサブエージェント非対応: インプロセスのチームメイト自身のサブエージェントはフォアグラウンドで実行されます。これはチームメイトのバックグラウンド作業がチームリーダーのプロセスより長く存続できないためです。Claude Code は、チームメイトが
background: trueを設定する定義を持つサブエージェントをスポーンする場合、エラーを返します。チームメイトのrun_in_background: trueリクエストも失敗し、エラーが発生するか、フォアグラウンドで静かに実行されます。メイン会話から起動されたサブエージェントはバックグラウンドのデフォルトに従います。 - Lead は固定: メインセッションはその存続期間中、lead です。teammate を lead に昇格させたり、リーダーシップを譲渡したりすることはできません。
- スポーン時のチームメイトごとの権限モード設定非対応: チームメイトは権限で説明されている権限モードで開始します。
- 分割ペインは tmux または iTerm2 が必要: デフォルトのインプロセスモードはすべてのターミナルで機能します。分割ペインモードは VS Code の統合ターミナル、Windows Terminal、または Ghostty ではサポートされていません。
次のステップ
並列作業と委任の関連アプローチを探索してください。- 軽量委任:subagents はセッション内で調査または検証用のヘルパーエージェントを生成し、エージェント間調整が必要ないタスクに適しています
- セッション間のメッセージング:クロスセッションメッセージング により、Claude は自分で実行するセッション間で検出結果を渡すことができます
- 手動並列セッション:Git worktrees を使用すると、自動チーム調整なしで複数の Claude Code セッションを自分で実行できます