1. エージェント チームが必要な理由は何ですか?
前回の記事でも紹介しましたが、 SubAgent(サブエージェント)。
その中心的な考え方は非常に単純です。メイン エージェントがサブ エージェントにタスクを引き渡し、サブ エージェントは独立したコンテキストで作業を完了し、コアの結果をメイン エージェントに返します。
これにより、タスクが完了するだけでなく、多数の中間プロセスがメイン エージェントのコンテキストを占有することを回避できます。
しかし、より複雑なタスクについてはどうでしょうか?
たとえば、Web アプリケーションを開発するには、次のことを同時に完了する必要があります。
- フロントエンドページの開発
- バックエンドAPI開発
- テストコードの作成
これら 3 つのタスクは並列化できますが、完全に独立しているわけではありません。
たとえば、バックエンドが API インターフェイスを変更する場合、フロントエンドは呼び出しメソッドを適時に調整する必要があります。テスターは最新のインターフェイス定義を知る必要もあります。
現時点で必要なのは、独立して働く少数のエージェントではなく、相互に通信し、仕事を調整できるエージェントのチームです。
これは、Agent Teams が解決する問題です。
2. エージェントチームとは何ですか?
エージェント チームは、Claude Code が提供するマルチエージェント コラボレーション メカニズムであり、複数の独立した Claude Code インスタンスがチームを形成して、複雑なタスクを一緒に完了できるようにします。
これはソフトウェア開発プロジェクト チームと考えることができます。
- チームリーダー: タスクの分割、作業の割り当て、進捗の調整を担当します。
- チームメイト: それぞれが異なるタスクを担当し、相互に通信できます。
- タスクリスト:メンバー全員で共有するタスクボードです。
- メールボックス: エージェント間でメッセージを送信するための通信メカニズム。
プロセス全体は、実際のソフトウェア開発チームのプロセスと似ています。
1. チームリーダー: 管理の責任者
チーム リーダーは、直接やり取りする主なエージェントです。
ニーズに基づいてタスクを分割し、チームメイトを作成し、作業が完了したら結果を集計します。
2. チームメイト: 実行責任者
各チームメイトは、独自のコンテキスト ウィンドウを備えたクロード コードの独立したインスタンスであり、ツールの呼び出し、コードの読み取り、ファイルの変更を行うことができます。
チームメイトはステップを完了するたびにキャプテンに報告する必要はなく、他のチームメイトと直接コミュニケーションをとることもできます。
3. タスクリスト: 共有タスクボード
チーム メンバーはタスク リストを表示して、各タスクのステータスを確認できます。
通常、タスクには次の 3 つの状態が含まれます。
- 保留中: 保留中
- 進行中: 進行中
- 完了: 完了
タスクは依存関係を設定することもできます。
たとえば、タスク B がタスク A に依存している場合、A が完了するまで B を要求することはできません。
4.メールボックス:メッセージ通信
これは、エージェント チームの重要な仕組みの 1 つです。
バックエンド エージェントがインターフェイスを変更したと仮定すると、フロントエンド エージェントにメッセージを直接送信できます。
「ユーザー インターフェイスが更新され、新しい電子メール フィールドが追加されました。同時にフロントエンド フォームを変更してください。」
フロントエンド エージェントはメッセージを受信した後、時間内にコードを調整できます。
これら 4 つの部分を組み合わせることで、並行して実行し、タスクを共有し、相互に調整できるエージェント チームが形成されます。
3. エージェント チームとサブエージェントの違いは何ですか?
どちらも複数のエージェントを使用して作業を完了できますが、設計上の焦点は異なります。
| コントラストの寸法 | サブエージェント | エージェントチーム |
|---|---|---|
| 中核的な目標 | タスクを独立して実行する | マルチエージェントの継続的なコラボレーション |
| コンテクスト | 独立したコンテキスト | 各チームメイトにも独立したコンテキストがあります |
| タスク管理 | 主にメインエージェントによって管理されます | タスクリストを共有する |
| 通信方式 | タスクの委任と結果の返却に重点を置く | チームメイトとの直接的なコミュニケーションと調整をサポートする |
| ライフサイクル | 通常は、単一の委任されたタスクの周りにあります | 複数のタスクを連続して受信できる |
| トークンの消費 | 比較的低い | 通常は高い |
| 典型的なシナリオ | 調査、研究、自主的な作業 | マルチロール開発と共同デバッグ |
それは人生の例で理解できます。
サブエージェントはアウトソーシングのようなものです。
いくつかの独立したタスクを配布し、それらが完了するのを待ってから結果を収集します。
エージェント チームはプロジェクト チームを形成するようなものです。
全員で仕事を分担して協力し、途中でコミュニケーションをとり、問題点を一緒に話し合う。
クロード コードの機能の開発に伴い、一部のサブエージェントはメッセージ通信もサポートしているため、両者は完全に「通信できる」わけではないことに注意してください。
より本質的な違いは次のとおりです。サブエージェントはタスクの委任とコンテキストの分離に重点を置きますが、エージェント チームはチームレベルのタスク管理と継続的なコラボレーションに重点を置きます。
4. エージェント チームはどのように機能しますか?
実際の事例で理解しましょう。
Web アプリケーションを開発していて、「ユーザー ログイン」機能を追加する必要があるとします。
あなたはクロード・コードにこう言いました。
エージェント チームを作成し、バックエンド ログイン API、フロントエンド ログイン ページ、テスト コードをそれぞれ担当する 3 人のチームメイトを配置します。全員にインターフェイス情報を共有し、完了時に統合検証を実行するように要求します。
次に、エージェントチームは通常、次のプロセスに従って作業します。
ステップ 1: チームを作成する
チームリーダーはタスクを 3 つの部分に分割し、対応するチームメイトを作成します。
- バックエンド エージェント: バックエンド API の開発
- フロントエンド エージェント: ログイン ページの開発
- テスト エージェント: テスト コードを作成する
ステップ 2: 並列実行
1 人のエージェントがすべてを順番に完了するのではなく、3 人のエージェントが個別に作業を実行します。
ステップ 3: お互いにコミュニケーションをとる
バックエンド エージェントはインターフェイス形式を決定した後、フロントエンドとテスト エージェントに直接通知できます。
フロントエンドはインターフェイスに従ってページを完成させ、テストエージェントはインターフェイスコントラクトに従ってテストを作成します。
ステップ 4: タスクを完了して要約する
各エージェントはタスクのステータスを更新します。
チームリーダーは各メンバーの作業結果を収集し、統合状況を確認し、ユーザーに報告します。
プロセス全体では、ユーザーが異なるエージェント間で繰り返し「マイク」として機能する必要はありません。
もちろん、並列処理は、すべての作業を同時に完了できることを意味するものではありません。依存関係のあるタスクはまだ待機する必要があり、最終的にはテストして検証する必要があります。
5. エージェント チームの使用に適しているのはどのシナリオですか?
Agent Teams は、タスクが多いほど便利というわけではありません。並行して実行でき、調整が必要な複雑なタスク。
シナリオ 1: マルチアングル コード レビュー
3 人のエージェントを個別にチェックするように手配します。
- セキュリティの脆弱性
- パフォーマンスの問題
- テストカバレッジ
各エージェントは異なる角度から独立して分析するため、互いのアイデアの干渉を軽減できます。最後に、チームリーダーがレビュー結果を要約します。
シナリオ 2: 複雑なバグのトラブルシューティング
バグに複数の考えられる原因がある場合、異なる仮説をそれぞれ検証するために異なるエージェントを配置できます。
また、お互いの結論に異議を唱え、調査範囲を絞り込むのにも役立ちます。
しかし、最終的には、ログ、実験、またはテストを通じて本当の原因を確認する必要があります。
シナリオ 3: マルチモジュールの並列開発
たとえば、フロントエンド、バックエンド、テストはそれぞれ異なるエージェントを担当します。
各メンバーは独立して開発し、メッセージを通じてインターフェイスとタスクの進行状況を同期します。
逆に、タスクが単純で厳密に順番に実行する必要がある場合、または複数のエージェントが同じファイルを頻繁に変更する必要がある場合は、多くの場合、単一のエージェントまたはサブエージェントを使用する方が適切です。
6. クロードコードでどのように使用しますか?
Agent Teams はまだ実験的な機能であるため、手動で有効にする必要があります。
1. エージェントチームを開始する
クロード コード設定ファイルを開きます。
~/.claude/settings.json
設定ファイルに追加します。
"env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" }
注: これは、既存の JSON 設定にマージする必要があるフィールドです。元の構成を上書きしないでください。
構成が完了すると、クロード コードの対話型セッションで使用できるようになります。
2. チームを作成する
複雑なマルチエージェントのスケジューリング コードを自分で記述する必要はなく、自然言語を直接使用するだけです。
例えば:
エージェント チームを作成し、3 人のチームメイトにセキュリティ、パフォーマンス、テスト カバレッジの観点から現在のプロジェクトをレビューしてもらいます。最後に、チームリーダーが結果を要約します。
Claude Code はリクエストに応じてチームメイトを作成し、作業をスケジュールし、結果を調整します。
3. チームメイトとタスクを表示する
エージェント チームは主に 2 つの表示方法をサポートしています。
- インプロセス(インプロセスモード): すべてのチームメイトが同じ端末インターフェイスに表示されます。矢印キーを使用してチームメイトを選択し、Enter キーを押して表示できます。
- 分割ペイン (分割画面モード): さまざまなチームメイトが個別の端末パネルに表示されます。通常は tmux または iTerm2 が必要です。
さらに、次のこともできます。 Ctrl+T 共有タスク リストを切り替えて、タスクの進行状況を表示します。
7. エージェントチームを使用する際に注意すべき点は何ですか?
複数のエージェントは並行して動作できますが、新たな管理上の問題も発生します。
1. タスクの境界を明確にする
複数の人が同じファイルを同時に変更してコードの競合が発生するのを避けるために、異なるファイルまたはモジュールを異なるエージェントに担当させることが最善です。
2. 十分な背景情報を提供する
チームメイトは、チーム リーダーの完全な会話履歴を自動的に継承しません。
チームメイトを作成するときは、ミッションの目的、関連するドキュメント、テクノロジースタック、および期待される結果について説明する必要があります。
3. チームメイトを作りすぎない
チームメイトは3人から5人でスタートできます。
チームメイトの数が増えると、調整コストとトークンの消費も増加しますが、効率が必ずしも指数関数的に向上するわけではありません。
4. 作業の進捗状況を定期的に確認する
チームに完全に任せてはいけません。エージェントが目標から逸脱していることが判明した場合は、タイムリーにタスクを調整します。
5. 実験上の制限に注意する
エージェント チームには、一部のチームメイトがセッションを再開できないこと、ミッション ステータスの更新が遅れる可能性があること、分割画面モードで追加の端末サポートが必要であることなど、いくつかの制限がまだあります。
したがって、コードレビューやプロジェクト調査などの読み取り専用のタスクから始めて、徐々に実際の開発に使用することをお勧めします。
8. まとめ
エージェント チームの中心となるアイデアは、実際には、単一エージェントの作業方法をチーム コラボレーションにアップグレードすることです。
これは主に次の 4 つのコンポーネントに依存します。
チームリーダー + チームメイト + タスクリスト + メールボックス
複数の独立したエージェントが作業を分割し、並行して実行し、情報を交換し、最終的に結果を要約できるようにします。
サブエージェントと比較して、エージェント チームの焦点は、タスクの実行を高速化することだけではありません。複数のエージェントがチームとして複雑なタスクで共同作業できるようにします。
実際の使用では、次の簡単な原則に従うことができます。
独立したタスクの場合はサブエージェントが優先され、複数の役割の継続的な調整が必要な場合はエージェント チームが検討されます。