> For the complete documentation index, see [llms.txt](https://docs.maiagent.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.maiagent.ai/maiagent-user-guide/ja/build/teams.md).

# Agent Teams

Agent Teams：マルチ Agent 連携。それぞれ専門を持つ複数の Agent をチームに編成し、「ハンドオフ」と「デリゲート」で、ある Agent が別の Agent（サブ Agent）を呼び出して自動的に分業します。ユーザーは1つのエントリポイントと対話するだけで、システムが最適な Agent に問い合わせを振り分けます。

## <mark style="color:blue;">一、Agent Teams とは？</mark> <a href="#what-is-teams" id="what-is-teams"></a>

これまで1つの Agent がすべてを担当していました。カスタマーサポートの振り分け、注文照会、返品・交換、商品レコメンドなど、すべてを同じロール指示、同じナレッジベース、同じツール群に詰め込んでいたのです。タスクが増えると、この「万能アシスタント」は対応しきれなくなります。ロール指示が長くなりすぎ、ナレッジベース同士が干渉し、コストも下げられません。

**Agent Teams では、「1人のジェネラリスト」を「専門家の集団」に置き換えることができます。** 既存の複数の Agent をチームに編成し、各 Agent にそれぞれの役割を担当させ（例：振り分け Agent、注文 Agent、返品・交換 Agent、レコメンド Agent）、ビジュアルキャンバスで「いつ、誰に問い合わせを渡すか」を定義します。

ユーザーに見えるのは**1つの対話エントリポイント**だけです。裏側ではチームが問い合わせを最適な Agent へ自動的にルーティングして回答するため、まるで専門家チーム全体とやり取りしているような体験になります。

{% hint style="success" %}
**メリット：** 各 Agent が独立したナレッジベース、ツール、モデル設定を持つため、互いに干渉しません。実際に問い合わせを処理する Agent だけが関連コンテンツを読み込むので、トークンを節約でき、各 Agent がより集中して正確に回答できます。新しい業務シナリオを追加するときも、Agent ノードを1つ追加して接続線を1本引くだけで済み、既存の Agent を書き直す必要はありません。
{% endhint %}

## <mark style="color:blue;">二、「単一アシスタント + スキル」との違いは？</mark> <a href="#vs-single-agent" id="vs-single-agent"></a>

| 観点       | 単一 Agent（スキル含む）            | Agent Teams                        |
| -------- | -------------------------- | ---------------------------------- |
| 分業       | 1つの Agent がすべてのシナリオを処理     | 複数の Agent がそれぞれの専門領域を担当            |
| ナレッジとツール | すべて同じ Agent に紐づくため干渉しやすい   | 各 Agent が独自のナレッジベース、ツール、モデルを保持     |
| モデルコスト   | 1つのモデルですべてのタスクをこなす必要がある    | 簡単なタスクは軽量モデル、複雑な判断は高性能モデルと、個別に設定可能 |
| 連携方法     | Agent 間でのハンドオフやデリゲートはできない  | Agent 間の**ハンドオフ**と**デリゲート**に対応     |
| 拡張       | 新しいシナリオでは既存 Agent の設定変更が必要 | ノードと接続線を1つずつ追加するだけ                 |

## <mark style="color:blue;">三、3種類のインタラクション：ハンドオフ、デリゲート、自動</mark> <a href="#interaction-types" id="interaction-types"></a>

チーム内の Agent は\*\*接続線（有向矢印）\*\*を通じて連携します。各接続線には1種類のインタラクション方式を設定でき、「相手に問い合わせが渡った後、制御権がどう動くか」が決まります。以下の3種類は、図と合わせて理解してください。

### ハンドオフ <a href="#type-handoff" id="type-handoff"></a>

ハンドオフは、会話全体の制御権を**手放す**方式です。送り元の Agent が「これは別の Agent が対応すべきだ」と判断すると、会話をターゲット Agent に渡し、ターゲット Agent が**引き継いで**ユーザーとの対話を続けます。カスタマーサポートが電話を別の部署に転送し、以降は引き継いだ担当者が対応するのと同じイメージです。

**適したシナリオ**：それぞれの役割に応じた並列的な分業。例えば、振り分け Agent がユーザーの意図を判断した後、会話を注文照会 Agent や返品・交換 Agent にハンドオフして対応を引き継ぎます。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-b4bdcab485a980765804effea04ffbd7e0f7fad3%2Fteams-concept-handoff.png?alt=media" alt="ハンドオフの図：送り元 Agent が会話の制御権をターゲット Agent に渡して引き継がせる"><figcaption><p>ハンドオフ：送り元 Agent が制御権を手放し、ターゲット Agent が引き継いでユーザーとの対話を続けます</p></figcaption></figure>

### デリゲート <a href="#type-delegate" id="type-delegate"></a>

デリゲートは、サブタスクを**外部に委託する**方式です。送り元の Agent がターゲット Agent に何かの処理を依頼し、ターゲット Agent は完了後に**結果を返します**。制御権は引き続き送り元の Agent が持ちます。同僚に資料を調べてもらって報告を受け、最終的な回答は自分でまとめるのと同じイメージです。

**適したシナリオ**：階層的な連携。例えば、カスタマーサポートアシスタントが在庫確認の依頼を受けたとき、倉庫 Agent に在庫の照会をデリゲートし、その結果をカスタマーサポートアシスタントがまとめてお客様に回答します。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-6c884168d164fa8f6171dcc0a853adb3525cfb08%2Fteams-concept-delegate.png?alt=media" alt="デリゲートの図：送り元 Agent がサブタスクをターゲット Agent に委託し、結果を受け取る"><figcaption><p>デリゲート：送り元 Agent がサブタスクをターゲット Agent に渡し、結果を受け取った後、自分でまとめて回答します</p></figcaption></figure>

### 自動（デフォルト） <a href="#type-auto" id="type-auto"></a>

自動は、ハンドオフとデリゲートのどちらを使うかを、AI が**その場の状況に応じて自ら判断する**方式です。どちらを使うべきか迷うときや、柔軟性を残したいときは自動を選択してください。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-9fb6d9b2817640519f728da4c5a9f8847470b799%2Fteams-concept-auto.png?alt=media" alt="自動の図：AI が状況に応じてハンドオフとデリゲートのどちらにするかを自ら決定する"><figcaption><p>自動：AI がその場の状況に応じて、ハンドオフとデリゲートのどちらにするかを自ら決定します</p></figcaption></figure>

### 3種類の方式におけるやり取りの量とコストの違い <a href="#cost-comparison" id="cost-comparison"></a>

複数の Agent が連携する場合に最もよくある懸念は、**トークンコストが制御不能になるのではないか？** ということです。ポイントは、3種類の方式で「Agent 間で受け渡される内容の量」が異なることです。

| 観点                   | ハンドオフ                                    | デリゲート                                                                       | 自動                      |
| -------------------- | ---------------------------------------- | --------------------------------------------------------------------------- | ----------------------- |
| **制御権**              | ターゲット Agent に渡り、引き継がれる                   | 送り元 Agent に残る                                                               | その場で AI が決定             |
| **Agent 間で受け渡される内容** | ターゲット Agent は引き継ぎ時に、それまで蓄積された会話の文脈を読み込む  | 送り元 Agent はターゲット Agent に「1つのサブタスク」だけを渡すため、範囲が簡潔で明確                          | その場の選択によって異なる           |
| **トークン／コストの特性**      | 会話の長さとハンドオフの回数に応じて増加。同時に動作する Agent は1つだけ | 本来のそのターンに加えて、サブ Agent の処理が1回追加される（LLM 呼び出しが1回増える）が、サブ Agent への入力は簡潔で範囲も制御可能 | 選ばれた方式に準じるため、事前に見積もりにくい |
| **予測可能性**            | 中                                        | 高（タスクの範囲が明確）                                                                | 低（状況によって変動）             |

{% hint style="success" %}
**コストは制御でき、観測もできます。** チームには複数の安全策が組み込まれています。

* **最大イテレーション数**（デフォルト `25`）：1回の会話で Agent 間が最大何往復できるかを制限し、無限ループを防ぎます。
* **全体のトークン上限**（デフォルト `200000`）：チーム全体が1件のメッセージを処理する際のトークン予算の上限です。
* **タイムアウト秒数**、および各ノードで個別に設定できる**このノードの1メッセージあたりのトークン上限**。
* **コンテキスト戦略**：ノードの〈元のユーザー入力を表示〉をオフにすると、その Agent は会話全体ではなく、上流で整理された要約だけを受け取るため、トークンをさらに節約できます。
* **実行ログ**：実行のたびに合計トークンと**各 Agent のコスト内訳**が記録されるため、どの Agent にどれだけかかったかが一目で分かります（[チーム実行ログ](/maiagent-user-guide/ja/build/teams/traces.md)を参照）。
  {% endhint %}

{% hint style="info" %}
**会話は「今だれが対応しているか」を記憶します。** ハンドオフ後は、引き継いだ Agent が、さらに別の Agent へハンドオフが必要だと判断するまで、以降の会話を対応し続けます。次のメッセージが再びエントリポイントに戻って振り分け直されることはありません。
{% endhint %}

## <mark style="color:blue;">四、代表的な活用シナリオ</mark> <a href="#scenarios" id="scenarios"></a>

* **EC カスタマーサポートチーム**：振り分け Agent が意図を判断 → 注文／返品・交換／レコメンドの各 Agent に**ハンドオフ**し、各 Agent が自分のナレッジベースとツールで対応します。
* **社内問い合わせ対応**：HR Agent、IT Agent、経理 Agent が、従業員の質問に応じて適切な窓口へ自動的に振り分けます。
* **テクニカルサポートチーム**：L1 Agent が初期調査 → L2 Agent に**デリゲート**して詳細分析 → 結果を L1 に返し、L1 がまとめて回答します。

## <mark style="color:blue;">五、仕組み（コンセプト）</mark> <a href="#how-it-works" id="how-it-works"></a>

Agent Teams は、**1つの有向グラフ**でチームを表現します。

* **ノード（Agent）**：グラフ上の各ノードは既存の Agent で、それぞれ独自のロール指示、ナレッジベース、ツール、モデルを持っています。
* **エントリノード**：チームがメッセージを受け取ると、このノードから会話の処理を開始し、振り分け指示に従って適切なメンバーにハンドオフします。新しく作成したチームには組み込みのエントリノードが自動的に付くため、別途指定する必要はありません。1つのチームにエントリノードは1つだけです。
* **接続線（有向矢印）**：「どのアシスタントから、どんな条件で、どのインタラクション方式で、どのアシスタントに渡すか」を定義します。
* **セーフティガードレール**：チーム全体に、最大イテレーション数、全体のトークン上限、タイムアウト秒数の上限があり、Agent 間の無限の往復を防ぎます。ガードレールによって回答が停止された場合にユーザーに表示されるメッセージはカスタマイズできます（[ガードレールのカスタムメッセージ](/maiagent-user-guide/ja/build/teams/setup.md#guardrail-stop-message)を参照）。

チームを作成すると、システムがそのチームの**エントリ**と対応する **Web Chat 対話プラットフォーム**を自動的に作成するため、対話プラットフォームからチーム全体と直接対話できます。エントリのモデル、振り分け指示、ナレッジベースは、チームキャンバス上で設定します（[エントリの設定](/maiagent-user-guide/ja/build/teams/setup.md#entry-settings)を参照）。

## <mark style="color:blue;">六、次のステップ</mark> <a href="#next-steps" id="next-steps"></a>

* チームの作成を始めたい方は、[チームの作成とオーケストレーション](/maiagent-user-guide/ja/build/teams/setup.md)をご覧ください。チームの新規作成、エントリの設定、Agent ノードの配置、接続線によるインタラクション方式の設定、対話の開始方法を説明しています。
* チームの動作を確認したい方は、[チーム実行ログ](/maiagent-user-guide/ja/build/teams/traces.md)をご覧ください。実行ごとにどの Agent を経由したか、それぞれが何トークン使用したか、どれくらい時間がかかったかを確認できます。

{% hint style="info" %}
**前提条件：** Agent Teams は、MaiAgent が貴組織向けに有効化する必要があります。管理画面の〈AI 機能〉配下に〈チーム〉メニューが表示されない場合は、MaiAgent チームまでお問い合わせいただき、有効化をご依頼ください。
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.maiagent.ai/maiagent-user-guide/ja/build/teams.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
