> 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/setup.md).

# チームの作成と構成

複数の Agent が協働するチームの作成と編成の手順です。チームの新規作成、組み込みエントリ（モデル、振り分け指示、ナレッジベース）の設定、キャンバスへの Agent ノードの配置、エッジの接続とインタラクション方式（自動／ハンドオフ／デリゲート）の設定、旧版エントリのアップグレード、セーフガード（カスタム停止メッセージを含む）の設定から対話の開始までを説明します。

このページでは、ゼロから Agent Team を作成する方法を説明します。チームの新規作成、チームのエントリの設定、キャンバスへの Agent の追加、Agent 間のエッジとインタラクション方式の設定、そしてチーム全体との対話開始までの手順です。

{% hint style="info" %}
**チームに参加させる Agent を事前に準備してください。** チーム内の各ノードは既存の Agent です。まず〈AI アシスタント〉で各専門分野の Agent（例：振り分け、注文、返品・交換 Agent）を作成してから、こちらに戻ってチームに編成してください。
{% endhint %}

## <mark style="color:blue;">一、チームの新規作成</mark> <a href="#create-team" id="create-team"></a>

### 1. チーム一覧に移動 <a href="#team-list" id="team-list"></a>

左側メニューから <mark style="color:blue;">AI 機能</mark> →〈<mark style="color:blue;">チーム</mark>〉に移動します。一覧には現在の組織のすべてのチームが表示され、**チーム名、ステータス、説明、作成日時**などの情報が含まれます。検索欄でチームを検索できます。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-e4b4ade565ac92a82627769032207321143b9e52%2Fteams-list.png?alt=media" alt="チーム一覧ページ"><figcaption><p>チーム一覧：各チームの名前、有効化ステータス、説明、作成日時を確認できます</p></figcaption></figure>

### 2. チームの作成 <a href="#new-team" id="new-team"></a>

右上の <mark style="color:blue;">チームを新規作成</mark> をクリックし、**チーム名**（必須）と**説明**を入力すると作成できます。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-e963d0a321f92e60860565c434e1eeda62099a02%2Fteams-new-modal.png?alt=media" alt="チーム新規作成ウィンドウ"><figcaption><p>チームの新規作成：チーム名と説明を入力します</p></figcaption></figure>

{% hint style="success" %}
作成に成功すると、キャンバス上にこのチームの**エントリノード**が自動的に表示され、システムが対応する **Web Chat チャネル**も作成します。これにより、すぐにチーム全体と対話できます。エントリはシステムに組み込まれているため、アシスタント一覧から Agent をドラッグしてエントリにする必要はありません。
{% endhint %}

## <mark style="color:blue;">二、キャンバスでチームを編成</mark> <a href="#compose-canvas" id="compose-canvas"></a>

チームに入ると、デフォルトで <mark style="color:blue;">キャンバス編成</mark> ビューが表示されます。画面は3つのエリアに分かれています：左側の〈**アシスタント一覧**〉、中央の**キャンバス**、右側の**設定パネル**（ノードまたはエッジを選択すると表示）。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-32544819c639bb999b22a532554a911790206eb7%2Fteams-entry-node-settings.png?alt=media" alt="作成直後のチームのキャンバス：中央に紫色のエントリノードがあり、「エントリ」、モデル、「振り分け」、「削除不可」と表示されています。左側はアシスタント一覧、右側はエントリ設定パネルで、名前、モデル、振り分け指示、ナレッジベースが含まれます"><figcaption><p>作成直後のチーム：キャンバスには組み込みのエントリノードだけがあり、選択すると右側に〈エントリ設定〉が表示されます</p></figcaption></figure>

{% hint style="warning" %}
**キャンバス編成はデスクトップブラウザでの操作を推奨します。** スマートフォンなどの小さな画面では、キャンバス編成エリアにメッセージが表示されますので、デスクトップで編成を完了してください。
{% endhint %}

### 1. エントリノードを理解する <a href="#entry-node" id="entry-node"></a>

エントリノードはチームの最初の窓口です。ユーザーの新しい対話はまずエントリに届き、エントリが〈振り分け指示〉に基づいてどのメンバーに任せるかを判断し、対話をハンドオフします。

エントリノードはキャンバス上で紫色で表示され、上部に「**エントリ**」、サブタイトルに使用モデルと「**振り分け**」、右下に「**削除不可**」と表示されます。チームと同時に作成・削除され、名前はチーム名に連動します。名前を変更するには、〈基本情報〉でチーム名を変更してください。

作成直後でメンバーがいないチームでは、キャンバス上部に〈エントリがどのメンバーにも接続されていません：すべての対話がエントリ自身で回答されます〉というメッセージが表示されます。メンバーをキャンバスに追加し、エントリからエッジを引くと（下記の [Agent ノードの追加](#add-nodes)と[エッジの接続](#add-edges)を参照）、エントリが振り分けを開始します。

あるネットショップのカスタマーサポート責任者は、「注文」「返品・交換」「商品レコメンド」の3人の専門アシスタントにお客様を一緒に対応させたいと考えています。チームを新規作成すると、キャンバスにはすでにエントリノードがあります。責任者は3人のアシスタントをキャンバスにドラッグし、エントリからそれぞれに「ハンドオフ」エッジを引き、エントリ設定で応答の速いモデルに切り替えました。その後、お客様が Web 対話で「注文した荷物はどこですか」と尋ねると、エントリは対話を注文アシスタントにハンドオフします。お客様がどのアシスタントに問い合わせるかを自分で選ぶ必要はありません。

### 2. エントリの設定 <a href="#entry-settings" id="entry-settings"></a>

エントリノードを選択すると、右側に〈<mark style="color:blue;">エントリ設定</mark>〉が表示され、次の項目を調整できます。

| 設定          | 説明                                                                                          |
| ----------- | ------------------------------------------------------------------------------------------- |
| **名前**      | チーム名に連動します。ここでは変更できません。                                                                     |
| **モデル**     | エントリが振り分けに使用するモデルです。デフォルトは組織のデフォルトモデルです。                                                    |
| **振り分け指示**  | どのような場合にどのメンバーへ任せるかをエントリに伝えます。空欄の場合はシステムのデフォルト指示が使用され、デフォルト指示にはエントリから接続されている現在のメンバーが列挙されます。 |
| **ナレッジベース** | エントリが参照できるナレッジベースです。複数選択できます。未設定の場合、エントリは振り分け指示だけに基づいて回答します。                                |

調整後に <mark style="color:blue;">保存</mark> をクリックします。<mark style="color:blue;">キャンセル</mark> をクリックすると、前回保存した内容に戻ります。

{% hint style="info" %}

* **自分で振り分け指示を書いた後にメンバーを増減した場合**：エントリ設定に〈メンバーが変更されました。振り分け指示の更新をおすすめします〉と表示されます。新しいメンバーを指示に追加するか、指示を空欄にしてシステムのデフォルトを使用してください。
* **編集権限がない場合**：項目は閲覧のみ可能で、パネル下部に「編集権限がありません。閲覧のみ可能です」と表示されます。チームを編集できるのは、組織のオーナーとチームの作成者だけです。
  {% endhint %}

### 3. Agent ノードの追加 <a href="#add-nodes" id="add-nodes"></a>

左側の〈アシスタント一覧〉から追加したい Agent を見つけ、**キャンバスにドラッグ**するか、**クリック**して追加します。すでにチームに参加している Agent には〈チームに参加済み〉と表示され、クリックするとキャンバス上の対応するノードに移動します。Agent が多い場合は、上部の検索ボックスでフィルタリングできます。

各ノードには Agent 名、使用モデル、そして <mark style="color:blue;">Agent</mark> モードか <mark style="color:blue;">RAG</mark> モードかが表示され、見分けやすくなっています。

{% hint style="info" %}
ノードの位置が乱雑な場合は、キャンバス上の <mark style="color:blue;">自動レイアウト</mark> をクリックして、システムにレイアウトを整理させることができます。ノードの位置は自動的に保存されます。
{% endhint %}

### 4. ノードの設定 <a href="#node-settings" id="node-settings"></a>

ノードを選択すると、右側に〈**ノード設定**〉が表示され、次の項目を調整できます。

| 設定                         | 説明                                                                                                                                                                            |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **エントリノード**                | [旧版エントリ](#upgrade-legacy-entry)のチームにのみ表示されます。有効にすると、チームがメッセージを受け取ったときにこのノードから対話の処理を開始します。**1つのチームにエントリノードは1つだけです。** 組み込みエントリを使用するチームでは設定不要です。                                 |
| **このノードの1メッセージあたりのトークン上限** | このノードがチームの1ターン内で使用できるトークン上限です（入力＋出力、任意）。空欄または 0 の場合は、チームレベルの上限のみが適用されます。上限に達すると、セーフガードによりターン全体が停止します。                                                                         |
| **最大イテレーション数**             | このノードがチームの1ターン内で実行できるステップ数の上限です（任意）。空欄または 0 の場合は、チームレベルの上限のみが適用されます。デリゲートエッジ経由でのみ呼び出されるノードは、代わりにサブ Agent のループ上限で制限されます。                                                       |
| **元のユーザー入力を参照可能**          | この Agent がハンドオフまたはデリゲートされたときに、ユーザーの元のメッセージを読み取れるかどうかを決めます（デフォルトは有効。説明は下記を参照）。                                                                                                 |
| **ユーザーの返信を待ってから続行**        | このノードのすべての出力エッジ（接続先 Agent＋インタラクション方式）を列挙します。チェックを入れて〈**保存**〉をクリックすると各エッジに書き戻され、エッジ設定で1本ずつ有効にするのと同じ動作になります。デリゲート型のエッジは列挙されますがチェックできません。出力エッジがない場合は「このノードには出力エッジがありません」と表示されます。 |

〈**元のユーザー入力を参照可能**〉が無効の場合：このノードが他のメンバーからハンドオフまたはデリゲートされても、ユーザーの元のメッセージは見えません（今回のターンも以前のターンもマスクされます）。また、対話履歴の検索やユーザーの添付ファイルの自力での読み取りもできず、他のメンバーの出力だけに基づいて回答します。このノードが今回のターンの起点（エントリノード、または前のターンのハンドオフ後に留まっているノード）である場合は、対話の全体が引き続き見えます。他のメンバーが返信やツール呼び出しの中で言い換えた内容はマスクされません。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-a7f77a14215fd1233dc58146d81f4ca511c0896d%2Fteams-node-settings.png?alt=media" alt="ノード設定パネル：エッジ、エントリノード、ユーザーの返信を待ってから続行、このノードの1メッセージあたりのトークン上限、最大イテレーション数、元のユーザー入力を参照可能"><figcaption><p>ノード設定：出力エッジの一覧で「ユーザーの返信を待ってから続行」にチェックを入れられます。下にはトークン／イテレーション上限と〈元のユーザー入力を参照可能〉があります（この画面は旧版エントリのチームのため、〈エントリノード〉スイッチが1つ多く表示されています）</p></figcaption></figure>

### 5. エッジの接続とインタラクション方式の設定 <a href="#add-edges" id="add-edges"></a>

あるノードの接続点から別のノードへドラッグして、**有向エッジ**（接続元 → 接続先）を作成します。エントリからメンバーへ引いたエッジが、エントリが振り分けできる相手になります。メンバーからエントリへエッジを戻すこともできますが、エントリへのエッジは〈ハンドオフ〉のみで、接続元 Agent のツールを継承することもできません。エッジを選択すると、右側に〈**エッジ設定**〉が表示されます。

| 設定                    | 説明                                                                                                                                                                                                                                                                                                                               |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **トリガー条件の説明**         | 「どのようなときにこのエッジを通るか」を平易な言葉で記述します。この説明は AI が判断する際の根拠として渡されるため、明確に書くほど振り分けの精度が上がります。                                                                                                                                                                                                                                                |
| **インタラクション方式**        | 〈**自動**〉〈**ハンドオフ**〉〈**デリゲート**〉から選択します（3つの違いは下の表を参照）。                                                                                                                                                                                                                                                                             |
| **ユーザーの返信を待ってから続行**   | 有効にすると、上流の Agent は返信後にいったん停止し、ユーザーが返信してから次の Agent に渡します。デフォルトは無効です。有効にした後、さらに〈**アシスタントに選択肢を添付させる**〉を有効にすると、停止時に Agent UI の質問ツールで選択肢を表示し、ユーザーがクリックして回答できます（接続元 Agent で Agent UI の質問ツールが有効になっている必要があります）。有効にできるのは〈自動〉と〈ハンドオフ〉のみで、〈デリゲート〉型のエッジは無効になり「デリゲート型のエッジは非対応です。ハンドオフに変更してください」と表示されます。すでに有効にしているエッジをデリゲートに変更すると、自動的に無効になります。 |
| **接続元 Agent のツールを継承** | 有効にすると、接続先 Agent が接続元 Agent のすべてのツールとリソースを使用できます。                                                                                                                                                                                                                                                                                |

**インタラクション方式**（設定パネルでの各選択肢の説明）：

| インタラクション方式    | 説明                                                                                                                                                                                                     |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **自動（デフォルト）** | LLM が最適なインタラクション方式を自動的に判断します。                                                                                                                                                                          |
| **ハンドオフ**     | 制御権を引き渡します。接続元エージェントは待機状態になり、接続先エージェントが対話を引き継ぎます。                                                                                                                                                      |
| **デリゲート**     | タスクを委任します。接続先エージェントが実行し、結果を接続元に返します。サブ Agent が質問の選択肢、Quick Reply、画像付きカード、またはファイルで締めくくった場合、その内容はユーザーに直接表示されます。各チャネルでの違いは、下記の[デリゲートされたサブ Agent のインタラクティブな締めくくり](#delegate-interactive-endings)を参照してください。 |

キャンバス上では、「ユーザーの返信を待ってから続行」を有効にしたエッジはアンバー色になり、「⏸ 返信待ち」のバッジが付きます。チームの実行がこのエッジに到達すると停止し、実行記録のステータスは「返信待ち」と表示されます。ステップを展開すると「ユーザーの返信待ち」と「返信後の引き渡し先：○○」が確認できます（[チーム実行記録](/maiagent-user-guide/ja/build/teams/traces.md#waiting-for-user)を参照）。ユーザーが返信してから、対話が接続先 Agent に渡されます。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-efed918ce4340db9339cc601faf459056c16cf9f%2Fteams-edge-settings.png?alt=media" alt="エッジ設定パネル：インタラクション方式はハンドオフ、トリガー条件の説明は「お客様が返品、交換、返金、または商品の不具合に言及したとき」、ユーザーの返信を待ってから続行が有効で、下にアシスタントに選択肢を添付させるスイッチと接続元 Agent のツールを継承するスイッチがあります"><figcaption><p>エッジ設定：トリガー条件の説明、インタラクション方式、ユーザーの返信を待ってから続行（有効にすると選択肢の添付も有効にできます）、および接続元 Agent のツールを継承するかどうか</p></figcaption></figure>

たとえば、ネットショップの振り分け Agent が「先週買った Bluetooth イヤホンの右耳から音が出ません」というメッセージを受け取ったとき、返品・交換 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-c15198d3385ff482d99e4701f652c7b241c954e7%2Fteams-wait-reply-webchat-options.png?alt=media" alt="Web Chat の画面：ユーザーが Bluetooth イヤホンの右耳から音が出ないと伝え、カスタマーサポート振り分けアシスタントが停止して、質問「右耳から音が出ません。どのように対処しますか？」を選択肢付きで表示しています。選択肢は、返品・返金、新品と交換、先に検査・修理、未定のため、まず方法を知りたい"><figcaption><p>Web Chat：カスタマーサポート振り分けアシスタントが「ユーザーの返信を待ってから続行」のエッジに到達して停止し、質問の選択肢でユーザーに対処方法を選んでもらいます</p></figcaption></figure>

#### 「ユーザーの返信を待ってから続行」の動作ルール <a href="#wait-for-reply-rules" id="wait-for-reply-rules"></a>

* **このエッジを通ると決めたときだけ停止します**：接続元 Agent が自分で質問に答え終え、接続先 Agent に渡さなかった場合は、そのターンは通常どおり終了し、停止しません。このエッジに到達するたびに停止し、初回だけではありません。
* **停止は正常な終了です**：接続元 Agent の返信後にそのターンが終了し、実行記録には〈返信待ち〉と表示されます。失敗には数えられません。ユーザーの次のメッセージは、内容にかかわらず接続先 Agent が引き継ぎます。タイムアウト、エラー、セーフティガードレールの発動、またはユーザーが停止を押した場合、そのターンは返信待ちになりません。
* **メッセージの編集や再生成**：ユーザーが送信済みのメッセージを書き換えたり再生成したりすると、接続元 Agent からやり直しとなり、接続先 Agent に直接渡されることはありません。
* **選択肢は Web Chat と API でのみ表示されます**：〈アシスタントに選択肢を添付させる〉の質問の選択肢は、Web Chat と API の返信に表示されます。LINE などその他のチャネルでは、接続元 Agent の文章による説明のみが表示されるため、ユーザーはそのまま文字を入力して返信してください。
* **選択肢は Agent が生成します**：質問と選択肢は、接続元 Agent がそのときの対話に基づいて書いたもので、固定のリストではありません。モデルによって従う度合いも異なります。公開前に実際の対話でテストし、停止時に選択肢が表示されることを確認することをおすすめします。
* **ノード設定はショートカットです**：〈ノード設定〉であるノードの出力エッジをすべてチェックすると、その Agent が引き継ぐたびに、ユーザーの返信を待って停止することになります。

{% hint style="warning" %}
**接続元ノードの Agent が〈キャンバスモード (Canvas)〉を使用している場合、この設定は有効になりません。** スイッチは有効にでき、キャンバスにも「⏸ 返信待ち」と表示されますが、チームの実行時には停止せず、無効の場合と同じ方法で引き継ぎます（Agent モードについては、[Agent モードのサブオプション](/maiagent-user-guide/ja/build/agent/setup.md#agent-mode-normal-vs-canvas)を参照）。このエッジで停止してユーザーの返信を待つ必要がある場合は、接続元ノードの Agent に〈通常モード〉を使用させてください。
{% endhint %}

#### デリゲートされたサブ Agent のインタラクティブな締めくくり <a href="#delegate-interactive-endings" id="delegate-interactive-endings"></a>

〈デリゲート〉で作業をサブ Agent に任せた場合、サブ Agent の通常のテキスト、思考、ツール呼び出しの過程はユーザーに表示されません。ただし、サブ Agent が次のインタラクティブなコンポーネントで締めくくった場合、そのコンポーネントは接続元 Agent の言い換えを待たずに、ユーザーに直接届きます。

| サブ Agent の締めくくり            | Web Chat、管理画面の対話、API   | LINE                                               | その他のチャネル（Telegram、Slack など）             |
| -------------------------- | ---------------------- | -------------------------------------------------- | --------------------------------------- |
| **質問の選択肢**（Agent UI 質問ツール） | 選択肢を直接表示               | 選択肢は表示されず、接続元 Agent がテキストで言い換えます                   | 選択肢は表示されず、接続元 Agent がテキストで言い換えます        |
| **Quick Reply**            | ボタンを直接表示               | LINE のクイックリプライボタンを表示。接続元 Agent がテキストで再度説明する場合があります | 接続元 Agent がテキストで言い換えます                  |
| **画像付きカード**                | カードを直接表示               | カードを表示。接続元 Agent がテキストで再度説明する場合があります               | カードは送信されず、接続元 Agent がカードの内容をテキストで言い換えます |
| **ファイルパネル**                | ファイルカードを直接表示（ダウンロード可能） | 接続元 Agent がテキストで言い換えます                             | 接続元 Agent がテキストで言い換えます                  |

{% hint style="info" %}
サブ Agent が質問の選択肢、Quick Reply、または画像付きカードで締めくくった場合、Web Chat、管理画面の対話、API ではコンポーネントがすでにユーザーに届いているため、接続元 Agent が内容を繰り返すことはありません。そのため、サブ Agent がこれらのコンポーネントの前に書いた説明文（例：「3つのプランが見つかりました。選択してください」）は表示されず、ユーザーにはコンポーネントだけが見えます。特に Quick Reply で顕著です。説明が必要な場合は、質問文やカードの内容に書いてください。ファイルパネルにはこの締めくくりのルールは適用されず、接続元 Agent が引き続きテキストで説明を加える場合があります。
{% endhint %}

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-f51a387c2396cd384df57b8073fa2d2b0d22067c%2Fteams-canvas.png?alt=media" alt="チーム図（拡大）"><figcaption><p>エッジの例：「カスタマーサポート振り分けアシスタント」が「ハンドオフ」で注文照会／返品・交換／商品レコメンドアシスタントに振り分け、注文照会アシスタントがさらに倉庫照会アシスタントに「デリゲート」します。各ノードには Agent 名、モデル、Agent／RAG モードが表示されます（この例は旧版エントリのチームで、メンバーの「カスタマーサポート振り分けアシスタント」がエントリを担当しています）</p></figcaption></figure>

{% hint style="info" %}
**キャンバス上部のセマンティック警告に注意してください。** チーム図に問題がある場合、キャンバス上部に黄色のメッセージが表示されます。例：〈エントリがどのメンバーにも接続されていません：すべての対話がエントリ自身で回答されます〉〈重複したエッジがあります〉〈エッジが循環しています〉。旧版エントリのチームでは、〈エントリノードが設定されていません〉〈エントリノードが複数あります。1つだけ残してください〉と表示されることもあります。対話を始める前に、これらの警告を解消することをおすすめします。
{% endhint %}

### 6. 旧版エントリのアップグレード <a href="#upgrade-legacy-entry" id="upgrade-legacy-entry"></a>

以前に作成されたチームには組み込みエントリがなく、あるメンバーノード（ノード設定で〈エントリノード〉を有効にしているもの）がエントリを担当しています。このようなチームは通常どおり動作するため、変更は不要です。組み込みエントリに切り替えて振り分けを一本化したい場合は、ご自身でアップグレードできます。

デスクトップ幅でこのようなチームのキャンバスを開くと、チーム名の横にオレンジ色の「**旧版エントリ**」タグが表示され、キャンバス上部にバナーが表示されます：「このチームは旧版エントリ（メンバーノードがエントリを担当）を使用しています。アップグレードすると、キャンバスに振り分けエントリノードが追加され、元に戻すことはできません。」

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-23afb6c145962dce632daf3e2e7fb7cb08fda892%2Fteams-legacy-entry-banner.png?alt=media" alt="旧版エントリのチームのキャンバス上部：チーム名の横にオレンジ色の「旧版エントリ」タグがあり、その下のオレンジ色のバナーに、このチームが旧版エントリを使用していること、アップグレードすると元に戻せないことが説明されています。右側に「エントリをアップグレード」ボタンがあります"><figcaption><p>旧版エントリのチーム：名前の横の「旧版エントリ」タグと、キャンバス上部のアップグレードバナー</p></figcaption></figure>

アップグレードの手順：

1. バナー右側の <mark style="color:blue;">エントリをアップグレード</mark> をクリックします。
2. 確認ウィンドウ「**組み込みエントリにアップグレードしますか？**」に、アップグレード後は元に戻せないことが表示されます。新しい対話はまずエントリを通り、その後、元のエントリメンバーにハンドオフされます。メンバーの設定とエッジは変更されません。
3. 確認すると「組み込みエントリにアップグレードしました」と表示され、キャンバス上の元のエントリメンバーの左側にエントリノードが追加されて、〈ハンドオフ〉エッジで元のエントリメンバーに接続されます。

アップグレード後、エントリはデフォルトですべての新しい対話を元のエントリメンバーにハンドオフするため、ユーザーが体験する対話の流れはアップグレード前と同じです。その後、エントリから他のメンバーに直接振り分けたい場合は、エントリからそれらのメンバーにエッジを引き、[エントリ設定](#entry-settings)で振り分け指示を更新してください。

{% hint style="warning" %}

* **アップグレードは元に戻せません。** 本番で使用中のチームをアップグレードする前に、テスト用のチームで流れを確認することをおすすめします。
* アップグレードできるのは組織のオーナーとチームの作成者だけです。それ以外の方には〈エントリをアップグレード〉ボタンが無効で表示されます。
  {% endhint %}

## <mark style="color:blue;">三、基本情報とセーフガードの設定</mark> <a href="#settings-guardrails" id="settings-guardrails"></a>

チームに入ると、左側メニューに4つのビューがあります：〈<mark style="color:blue;">キャンバス編成</mark>〉、〈<mark style="color:blue;">基本情報</mark>〉、〈<mark style="color:blue;">実行記録</mark>〉、〈<mark style="color:blue;">API 連携</mark>〉。その下にはこのチームの <mark style="color:blue;">対話プラットフォーム</mark> が別途表示されます。〈**基本情報**〉に切り替えると、チームレベルの設定を調整できます。

* **基本情報**：チーム名、説明、有効にするかどうか。
* **セーフガード**：
  * **最大イテレーション数**（デフォルト `25`）——1回の対話の中で、Agent 間が最大で何回やり取りできるかを指定します。無限ループを防ぎます。
  * **1メッセージあたりのトークン上限**（デフォルト `200000`）——チーム全体で1件のユーザーメッセージを処理する際のトークン予算の上限です。
  * **対話全体のトークン上限**（デフォルト `0`）——対話の開始から累計するトークン予算です。画面には「0 はこのセーフガードを無効にします」と表示されます。1メッセージあたりの上限だけを設定したい場合は 0 のままにしてください。
  * **タイムアウト秒数**（デフォルト `600`）——チーム全体の処理フローに対する強制タイムアウトです。
  * **セーフガードのカスタムメッセージ**（デフォルトは空欄）——前の3種類のセーフガードが返信を停止させたときにユーザーへ表示するテキストです。空欄の場合はシステムのデフォルトメッセージが使用されます。説明は下記の[セーフガードのカスタムメッセージ](#guardrail-stop-message)を参照してください。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-acc619316f285d3cc8af1f8b85ff3312a5b4d3ce%2Fteams-settings.png?alt=media" alt="チームの基本情報とセーフガード"><figcaption><p>基本情報とセーフガード：チーム名、有効化ステータス、最大イテレーション数、2つのトークン上限、タイムアウト秒数を調整します</p></figcaption></figure>

### セーフガードのカスタムメッセージ <a href="#guardrail-stop-message" id="guardrail-stop-message"></a>

チームの処理中に**最大イテレーション数**、**1メッセージあたりのトークン上限**、または**対話全体のトークン上限**に達すると、システムはそのターンの返信を停止し、返信の最後に停止メッセージを付けてユーザーに知らせます。「セーフガードのカスタムメッセージ」では、このテキストの内容を決められます。未入力の場合は、停止の理由とユーザーの言語に応じたデフォルトメッセージが表示されます。

あるオンラインショッピングプラットフォームでは、API を使って Agent Team を自社サイトの購入案内アシスタントに連携させています。エンジニアは、セーフガードが発動したときに返信の末尾に固定形式のテキストを表示し、プログラムがそれを認識して「サポートに連絡」ボタンを表示できるようにしたいと考えました。チーム管理者は〈基本情報〉の「セーフガードのカスタムメッセージ」に「\[LIMIT] 今回の対話は利用上限に達しました。新しい対話を開始するか、サポートまでご連絡ください。」と入力して保存しました。その後、ある訪問者が十数点の商品を一度に比較するよう依頼したところ、チームは処理の途中で利用上限に達して停止し、すでに書き出された返信の一部と区切り線の後に、この固定テキストが付きました。サイトのプログラムは返信末尾の `[LIMIT]` を検出し、入力欄を「サポートに連絡」ボタンに置き換えました。

#### 1. カスタムメッセージの入力 <a href="#fill-stop-message" id="fill-stop-message"></a>

チームの〈<mark style="color:blue;">基本情報</mark>〉で〈**セーフガード**〉カードを見つけると、4つの数値欄の下に <mark style="color:blue;">セーフガードのカスタムメッセージ</mark> があります。入力欄の右下に現在の文字数（例：`34 / 500`）が表示され、下の説明には「セーフガードが発動したときにユーザーへ表示されます。空欄の場合はシステムのデフォルトメッセージが使用されます。」と表示されます。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-f3a64721b05fce13808039b100c06e653790698f%2Fteams-guardrail-stop-message.png?alt=media" alt="セーフガードカード：最大イテレーション数、1メッセージあたりのトークン上限、対話全体のトークン上限、タイムアウト秒数の4つの欄があり、その下にセーフガードのカスタムメッセージ入力欄、0 / 500 の文字数、説明文があります"><figcaption><p>「セーフガード」カード下部の「セーフガードのカスタムメッセージ」：空欄のときはサンプルテキストと 0 / 500 が表示されます</p></figcaption></figure>

入力ルール：

* **最大 500 文字**：超えると文字数が赤くなり、欄の下に「メッセージは 500 文字以内にしてください」と表示され、保存はブロックされます。このとき、同じ画面で同時に行った他の変更（例：最大イテレーション数の変更）も**保存されません**。メッセージを 500 文字以内に短くしてから保存してください。
* **そのまま表示**：翻訳や変数の置換は行われず、入力した内容がそのまま表示されます。改行は保持され、前後の空白は自動的に取り除かれます。空白のみの場合は空欄と同じ扱いになります。

#### 2. 保存 <a href="#save-stop-message" id="save-stop-message"></a>

<mark style="color:blue;">保存</mark> をクリックします。保存後すぐに有効になり、次にセーフガードが発動した返信から新しいテキストが使用されます。システムのデフォルトメッセージに戻すには、欄を空にして保存してください。

#### ユーザーに表示される内容 <a href="#what-users-see" id="what-users-see"></a>

3種類のセーフガードのいずれが発動した場合も、**Web Chat と API の返信には同じテキストが表示されます**。

* 停止する前に Agent がすでに一部を返信していた場合は、その部分的な返信がまず残り、続いて区切り線、その後に停止メッセージが付きます。
* 停止メッセージの前に、システムのプレフィックスは付きません。

| 発動したセーフガード           | カスタムメッセージを入力した場合 | 空欄時のデフォルトメッセージ（繁体字中国語）      | 空欄時のデフォルトメッセージ（英語）                                                                          |
| -------------------- | ---------------- | --------------------------- | ------------------------------------------------------------------------------------------- |
| **最大イテレーション数**       | カスタムメッセージを表示     | 這次回覆的處理步驟已達上限，請換個方式再問一次。    | This reply has reached its processing step limit. Please try asking in a different way.     |
| **1メッセージあたりのトークン上限** | カスタムメッセージを表示     | 這則訊息的用量已達上限，請縮短內容或換個方式再問一次。 | This message has reached its usage limit. Please shorten it or try asking differently.      |
| **会話全体のトークン上限**      | カスタムメッセージを表示     | 本次對話的用量已達上限，請開啟新對話繼續。       | This conversation has reached its usage limit. Please start a new conversation to continue. |

デフォルトメッセージはユーザーの言語に合わせて表示され、繁体字中国語、簡体字中国語、英語、日本語、韓国語に対応しています。Web Chat は会話を作成した時点の画面言語に従い、API はリクエストに含まれる言語情報に従います。言語情報がない場合はメッセージの内容から判断し、どれでも判断できない場合は英語が表示されます。カスタムメッセージは言語に関係なく同じ内容が表示されます。

{% hint style="warning" %}
**次の場合は、セーフガードのカスタムメッセージは表示されません。**

* **タイムアウト秒数**が発動した場合：チームのエントリー Agent の[タイムアウトメッセージ](/maiagent-user-guide/ja/build/agent/custom-max-tokens.md#agent-timeout-message)が表示されます（未設定の場合はシステムのデフォルト）。
* **ノードレベル**の「このノードの1メッセージあたりのトークン上限」または「最大イテレーション数」が発動した場合（[ノードを設定する](#node-settings)を参照）：ノード名と上限値を示すシステムメッセージが表示され、この欄の設定には影響されません。
  {% endhint %}

{% hint style="info" %}
**API で連携し、プログラムで停止メッセージを判別したい場合：**

* 返信全体ではなく、**返信の末尾**が自分のカスタムメッセージかどうかで照合してください。停止する前に一部の返信がすでに出力されていることがあり、その間には区切り線が入ります。
* システムのデフォルトメッセージでは照合しないでください。デフォルトメッセージはユーザーの言語によって変わります。
* ノードレベルの上限が発動した場合はカスタムメッセージは表示されません。固定のテキストで判別したい場合は、ノードのトークン上限とイテレーション上限を空欄にしてください。
* Web Chat はこのテキストを Markdown として表示するため、たとえば `**重要**` は太字で表示されます。
  {% endhint %}

## <mark style="color:blue;">4. チームと会話する</mark> <a href="#talk-to-team" id="talk-to-team"></a>

編成が完了し、チームが「有効」になっていることを確認したら、チームの **Web Chat 対話プラットフォーム**を通じてチーム全体と会話できます。ユーザーが向き合う窓口は1つだけで、システムが質問を適切な Agent に自動でルーティングします。

チームが Agent 間で引き継ぎや委任を行うときは、会話画面に「**引き継ぎ中**」「**委任中**」「**切り替え中**」などの切り替え通知が表示され、現在どの Agent が対応しているかをユーザーが把握できます。

## <mark style="color:blue;">5. チームを削除する</mark> <a href="#delete-team" id="delete-team"></a>

「基本情報」ビューの最下部にある危険ゾーンで「**チームを削除**」できます。削除すると、このチームのエントリーも一緒に削除され、**この操作は元に戻せません**。内容を確認してから実行してください。メンバーノードに対応する Agent は削除されず、「AI アシスタント」にそのまま残ります。

## <mark style="color:blue;">6. API 連携</mark> <a href="#api-integration" id="api-integration"></a>

自社のシステムからチーム全体を呼び出すには、左側の「**API 連携**」に切り替えます。このページは Agent の API 説明（リクエスト例、フィールド、レスポンス形式）と同じ内容ですが、呼び出す対象がチーム作成時に自動生成された**エントリー Agent** である点だけが異なります。このエントリー Agent にメッセージを送ることは、チーム全体にメッセージを送ることと同じで、ルーティングと引き継ぎはチームが自動で処理します。例に含まれる ID にはすでにエントリー Agent が設定されているため、そのままコピーして使用できます。フィールドの詳細は[開発者ツール](/maiagent-user-guide/ja/org/developer.md#integration-docs)を参照してください。

{% hint style="info" %}
ページに「このチームにはエントリー Chatbot がまだ作成されていないため、API の例はありません」と表示される場合、このチームにはエントリー Agent がありません。エントリー Agent はチーム作成時にシステムが自動で作成するため、通常は欠けることはありません。このメッセージが表示された場合は、MaiAgent の担当窓口に再作成を依頼してください。
{% endhint %}

## <mark style="color:blue;">7. よくある質問</mark> <a href="#faq" id="faq"></a>

### チームを作成したのに、AI アシスタント一覧にチームと同名のアシスタントがありません。 <a href="#faq-entry-agent-hidden" id="faq-entry-agent-hidden"></a>

チームのエントリーの裏側には、チームと同名の Agent があり、そのチーム専用に使われます。そのため「AI アシスタント」一覧には表示されず、キャンバスの「アシスタント一覧」にも表示されないので、他のチームにドラッグして追加することもできません。エントリーのモデル、振り分けの指示、ナレッジベースは、チームキャンバスの[エントリー設定](#entry-settings)で調整します。

他のページのリンクからこのエントリー Agent の設定ページを開いた場合は、「これはチーム「チーム名」のエントリーです」という説明だけが表示されます。<mark style="color:blue;">チームキャンバスへ移動</mark> をクリックするとチーム設定に戻れます。モードはチームに固定されており、通常のアシスタントに変更することはできません。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-6d90132dbdf46d46eabf748a91cd6baf13515cd2%2Fteams-entry-agent-guide.png?alt=media" alt="エントリー Agent の設定ページ：「これはチーム「カスタマーサポートチーム」のエントリーです」と表示され、エントリーのモデル、振り分けの指示、ナレッジベースはチームキャンバスで設定することが説明されている。下に「チームキャンバスへ移動」ボタンがある"><figcaption><p>エントリー Agent の設定ページを開くと、チームキャンバスに戻るよう案内されます</p></figcaption></figure>

### エントリーノードは削除できますか？ <a href="#faq-delete-entry" id="faq-delete-entry"></a>

できません。エントリーノードには「削除不可」と表示されており、チームと一緒に存在します。[チームを削除](#delete-team)したときにのみ、一緒に削除されます。

### 旧版エントリーのチームは必ずアップグレードする必要がありますか？ <a href="#faq-legacy-upgrade" id="faq-legacy-upgrade"></a>

必要ありません。旧版エントリーのチームもそのまま動作します。組み込みのエントリーに切り替えたいときに、[旧版エントリーのアップグレード](#upgrade-legacy-entry)の手順に沿って操作してください。アップグレードは元に戻せないため、内容を確認してから実行してください。

## <mark style="color:blue;">8. 次のステップ</mark> <a href="#next" id="next"></a>

チームが稼働し始めたら、[チームの実行記録](/maiagent-user-guide/ja/build/teams/traces.md)で、各実行がどの Agent を経由したか、それぞれのトークン使用量、所要時間を確認し、チームが想定どおりに役割分担できているかを確かめられます。


---

# 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/setup.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.
