> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# マルチエージェントワークフローを構築する

> 既存の MoEngage Custom Agents をサブエージェントとしてコーディネーターエージェントに追加し、1 つのセッションで専門エージェントに作業を委任して出力を統合します。

Custom Agent は、明確に定義された 1 つのジョブを実行します。キャンペーンのワークフローには通常、キャンペーンデータの取得、分析、おすすめの作成、結果の確認など、複数のジョブが含まれます。これらすべてを処理する単一のエージェントを構築する代わりに、既存のエージェントを 1 つの **コーディネーター** エージェントに **サブエージェント** として追加します。コーディネーターは、作業の各部分を適切なサブエージェントに割り当て、結果を 1 つの応答として返します。

<Note>
  Agent Builder に **Sub Agents** セクションが表示されない場合は、カスタマーサクセスマネージャー(CSM)に連絡して、お使いのワークスペースで利用可能かどうかを確認してください。
</Note>

## 委任の仕組み

コーディネーターは、1 つの追加要素を持つ通常の Custom Agent です。追加要素とは、ツールと並んで配置されるサブエージェントのリストです。このリストがコーディネーターの **ロスター** です。それ以外はすべて同じで、[Custom Agents を作成・管理する](/docs/ja/user-guide/ai-and-intelligence/merlin-ai/custom-agents/create-and-manage-custom-agents)で説明されている作成、設定、テスト、公開、編集、一時停止、削除のライフサイクルも含まれます。

委任は次のルールに従います。

* **委任は 1 階層のみ:** コーディネーターはロスター上のエージェントに委任し、各サブエージェントは割り当てられたタスクを直接完了します。サブエージェントが、さらに独自のサブエージェントに委任することはできません。
* **1 つのセッションでワークフロー全体をカバー:** コーディネーターを実行すると、1 つのセッションが開きます。MoEngage は委任された作業をそのセッション内で実行し、**All tasks** 履歴に 1 つのタスクとして記録します。
* **実行ユーザーの権限が適用される:** サブエージェントは、その作成者が割り当てたツールを保持しますが、MoEngage は MoEngage のデータやキャンペーンに対する各アクションを、セッションを開始したユーザーの権限に照らして認可します。実行ユーザーが保持していない書き込みツールを持つサブエージェントは、そのアクションを完了できません。そのため、委任によって実行の到達範囲が広がることはありません。
* **サブエージェントは同時に実行される:** コーディネーターは、あるサブエージェントの完了を待たずに次のサブエージェントを開始します。

## 対象となるサブエージェント

表示可能な任意の **Live** エージェントを追加できます。つまり、チームメイトが構築したものを含む公開エージェント、または自分のプライベートエージェントです。**Sub Agents** ピッカーにはこれらのエージェントのみが一覧表示され、各エージェントはロスターに 1 回だけ追加できます。1 つのロスターには最大 20 個のサブエージェントを含めることができます。

ピッカーでは、次のエージェントは除外されます。

| エージェント | 追加できない理由 |
| :- | :- |
| Draft または一時停止中のエージェント | コーディネーターに代わってタスクを実行する準備ができているのは Live エージェントのみです。 |
| 他のユーザーのプライベートエージェント | プライベートエージェントは作成者のみに表示されます。 |
| 編集中のエージェント | エージェントは自分自身にタスクを委任できません。 |
| すでにサブエージェントを持つエージェント | 委任は 1 階層のみです。 |

## サブエージェントを割り当てる

エージェントにサブエージェントを追加するには、次の手順を実行します。

1. Agent Builder でエージェントを開きます。新しいエージェントの場合は、[Custom Agent を作成する](/docs/ja/user-guide/ai-and-intelligence/merlin-ai/custom-agents/create-and-manage-custom-agents#create-a-custom-agent)を参照してください。既存の公開済みエージェントの場合は、エージェントの詳細ページで **Manage** > **Edit** に移動します。Draft の場合は、Custom Agents ダッシュボードでそのカードをクリックしてビルダーを開きます。
2. 右側のパネルで、**Tools** の下にある **Sub Agents** セクションを見つけます。
3. エージェントを名前で検索して選択します。
4. 追加する前にエージェントを確認するには、その **Agent Info** ビューを開きます。Agent Info は新しいブラウザータブで開き、エージェントの作成者、作成日時、最終更新者が表示されます。
5. サブエージェントの使用方法をコーディネーターに指示します。指示の中で、タスクの各部分を担当するサブエージェントを指定し、コーディネーターがそれらの結果をどのように統合するかを記述します。コーディネーターは、指示に記述された内容のみを委任します。ガイダンスについては、[エージェントの指示を設定する](/docs/ja/user-guide/ai-and-intelligence/merlin-ai/custom-agents/create-and-manage-custom-agents#configure-your-agents-instructions)を参照してください。
6. **Test agent** セッションを実行して、各委任が期待どおりに動作することを確認してから、**Make live** をクリックします。

<Note>
  エージェントをロスターに追加すると、コーディネーターはそのエージェントを使用できるようになりますが、制御できるようになるわけではありません。サブエージェントを変更するには、Custom agents ダッシュボードから直接開きます。設定の編集、公開範囲の変更、削除ができるのは、その作成者のみです。
</Note>

### 公開範囲のルール

MoEngage では、他のユーザーのプライベートエージェントをロスターに追加することはできません。そのため、コーディネーターが自分から見えないエージェントに委任することはありません。

自分のプライベートな Live エージェントは引き続き対象となります。コーディネーターを公開する前にロスターを確認し、コーディネーターが自分のどのエージェントにアクセスするかを把握してください。公開範囲の詳細については、[公開範囲を設定する](/docs/ja/user-guide/ai-and-intelligence/merlin-ai/custom-agents/create-and-manage-custom-agents#set-visibility)を参照してください。

### ロスターを更新する

コーディネーターを保存するたびに、MoEngage はロスター上のすべてのサブエージェントの公開バージョンを記録します。コーディネーターは記録されたバージョンを使用し続けるため、チームメイトがサブエージェントを再公開しても、Live のコーディネーターの動作は変わりません。

サブエージェントの最新バージョンを使用するには、ビルダーでコーディネーターを開いて保存し、**Make live** をクリックします。

エージェントをロスターから外すには、ビルダーでコーディネーターを開き、**Sub Agents** セクションからエージェントを削除します。

<Note>
  MoEngage は、エージェントがいずれかのコーディネーターのロスターに含まれている間はそのエージェントの削除をブロックし、そのエージェントを使用しているコーディネーターの名前を表示します。エージェントを含むすべてのロスターからエージェントを削除してから、エージェントを削除してください。[エージェントを削除する](/docs/ja/user-guide/ai-and-intelligence/merlin-ai/custom-agents/create-and-manage-custom-agents#delete-an-agent)を参照してください。
</Note>

## コーディネーターを実行する

コーディネーターは、他のエージェントと同じ方法で開始します。つまり、エージェントカード、エージェントの詳細ページ、またはビルダーの **Test agent** から開始します。セッションの開始、監視、再開の詳細については、[エージェントセッションを実行・管理する](/docs/ja/user-guide/ai-and-intelligence/merlin-ai/custom-agents/run-and-manage-agent-sessions)を参照してください。

委任された実行は次のように動作します。

* トランスクリプトには委任された作業がリアルタイムで表示され、各サブエージェントのメッセージはコーディネーターのステップの下にインデントされて表示されます。そのため、どのサブエージェントがタスクのどの部分を処理しているかを確認できます。
* サブエージェントは、コーディネーターのセッション、添付ファイル、認証情報を共有します。
* サブエージェントが生成したファイルは、コーディネーター自身が生成したファイルとともに、コーディネーターのセッション出力に表示されます。[Session Outputs パネル](/docs/ja/user-guide/ai-and-intelligence/merlin-ai/custom-agents/run-and-manage-agent-sessions#session-outputs-panel)を参照してください。
* **All tasks** 履歴には、実行が 1 つのタスクとして記録され、コーディネーターと呼び出されたすべてのサブエージェントをカバーする単一のトランスクリプトが含まれます。

<Warning>
  コーディネーターを公開する前に、ロスター上のすべてのエージェントに割り当てたツールを確認してください。委任された作業は、他の実行と同じルールに従います。書き込みツールを持つエージェントは、Live の実行だけでなく Test の実行でも、ワークスペースに実際の変更を加えます。
</Warning>

## よくある質問

<AccordionGroup>
  <Accordion title="サブエージェントは独自のサブエージェントを持つことができますか?">
    いいえ。委任は 1 階層のみです。コーディネーターはサブエージェントに委任し、各サブエージェントはタスクを直接完了します。ロスターを構築する際、ピッカーではすでにサブエージェントを持つエージェントは除外されます。
  </Accordion>

  <Accordion title="サブエージェントは誰の権限を使用しますか?">
    セッションを開始したユーザーの権限です。サブエージェントはその作成者が割り当てたツールを保持するため、ロスターには、コーディネーター自体が保持していないツールを持つエージェントを含めることができます。ただし、このリストによってアクセス権が付与されるわけではありません。MoEngage は、MoEngage のデータやキャンペーンに対する各アクションを実行ユーザーの権限に照らして確認するため、そのユーザー自身が実行できない場合、委任された書き込みは失敗します。詳細については、[Custom Agent の基本: 権限とセキュリティ](/docs/ja/user-guide/ai-and-intelligence/merlin-ai/custom-agents/custom-agents-essentials-permission-and-security)を参照してください。
  </Accordion>

  <Accordion title="他のコーディネーターが使用しているエージェントを更新しました。それらのコーディネーターには変更が自動的に反映されますか?">
    いいえ。各コーディネーターは、最後に保存した時点で記録されたサブエージェントのバージョンを使用します。コーディネーターで更新を使用するには、その作成者がビルダーでコーディネーターを開いて保存し、**Make live** をクリックする必要があります。
  </Accordion>

  <Accordion title="チームメイトのプライベートエージェントを自分のエージェントのロスターに追加できますか?">
    いいえ。ロスターにチームメイトのエージェントを追加できるのは、そのエージェントが公開されていて Live である場合のみです。自分のプライベートな Live エージェントは引き続き対象となります。ワークフローでチームメイトのプライベートエージェントの機能が必要な場合は、その作成者にエージェントを公開するよう依頼してください。
  </Accordion>

  <Accordion title="MoEngage は委任された実行を標準の実行とは異なる方法で記録しますか?">
    いいえ。委任はコーディネーターの単一セッション内で実行され、MoEngage はそれを **All tasks** 履歴に 1 つのタスクとして記録します。その際、コーディネーターと呼び出されたすべてのサブエージェントをカバーする 1 つのトランスクリプトが含まれます。
  </Accordion>
</AccordionGroup>
