Copilot Studioを使用すると、エージェントを他のエージェントに接続してエージェントを強化できます。 エージェントは、ユーザーの対話を互いに引き渡したり、自律トリガーに応答したりすることができます。 特定のタスクまたはデータ セットに合わせて調整されたモジュラー エージェントを使用して、ソリューションを効率的かつ効果的にスケールアウトします。
既存の Copilot Studio エージェントに他のエージェントを追加するには、いくつかの方法があります。
- 子エージェントを作成します。 子エージェントは、既存のエージェント内の軽量エージェントです。
- 環境内の他のCopilot Studio エージェントに接続します。
- 外部エージェントに接続します。
エージェントに追加するすべてのエージェントは、エージェント ページに表示されます。
Microsoft Foundry、Microsoft Fabric、Microsoft 365 Agents SDKで構築されたエージェントへの接続は、現在パブリック プレビューで利用できます。
重要
この記事にはプレビュー ドキュメントMicrosoft Copilot Studio含まれており、変更される可能性があります。
プレビュー機能は運用環境での使用を想定しておらず、機能が制限される可能性があります。 これらの機能は公式リリースの前に利用できるため、早期にアクセスして フィードバックを提供できます。
運用対応エージェントを構築する場合は、「Microsoft Copilot Studio 概要を参照してください。
マルチエージェント ソリューション設計に関する考慮事項
マルチエージェント オーケストレーションは強力ですが、必ずしも必要であるとは限りません。ソリューションにマルチエージェント アプローチを採用する前に慎重に検討する必要があります。 次の考慮事項は、メイン エージェント内で子エージェントを使用するか、またはエージェントを別のエージェントに接続するかを決定する際に重要です。
子エージェントを使用するタイミング
次のタイミングでエージェント内に子エージェントを作成します。
- 1 つの意図に応答したり、1 つのタスクを完了したりするために、1 つのユース ケースを構築している (たとえば、チケットの作成、状態の確認、フライトの予約など)。
- 1 人の開発者または小規模なまとまりのあるチームが、エージェント ソリューション全体を管理している。
- ツール、手順、ナレッジを論理的にグループ化し、より大きなエージェント内の明確に定義されたサブエージェントに整理する必要がある。
- サブエージェントの個別の構成設定、認証、または展開機能は必要ありません。
- これらのエージェントを個別に発行したり、個別に使用できるようにしたりすることはありません。
- 複数のエージェント間でエージェントを再利用する必要はありません。
エージェントを複数の接続されたエージェントに分割することを検討する必要がある場合
エージェントの名前と説明に基づいて使用可能なツールを区別する機能が低下し始める場合は、エージェントを複数の接続されたエージェントに分割することを検討する必要があります。
経験則として、このパフォーマンスの低下は、メイン エージェントに 30 から 40 を超える選択肢 (ツール、トピック、その他のエージェント) がある場合に発生する可能性があります。 しかし、同様の記述を持つツールの数が少ないエージェントでも性能低下が起こることがあります。
最終的には、独自の評価に対してエージェントのパフォーマンスを評価する必要があります。 説明を常に確認して、さらに差別化が可能かどうかを確認する必要がある一方で、複数のエージェント間で機能を分割すると、精度を維持するのに役立ちます。
複数の接続されたエージェントにソリューションを分割することを検討するその他の理由は次のとおりです。
- 複数のチームまたは開発者が、異なるエージェントを個別に管理します。
- エージェントを個別に発行および管理し、独立したチャネルで直接使用できるようにする必要があります。また、他のエージェントでも使用できるようにする必要があります。
- エージェントは、エージェントが使用するように構成されているモデルなど、独自の専用設定を持っている必要があります。
- エージェントごとに独立したアプリケーション ライフサイクル管理 (ALM) プロセスが必要です。
- エージェントを再利用できるようにする (つまり、複数のエージェントに接続され、使用できるようにする) 必要があります。
接続されたエージェントと子エージェントをソリューションに混在させることができます。 たとえば、ソリューションの一部を、ユーザーが直接アクセスできる個別のエージェントに分割できます。 これらの各エージェントは、キーの目的で独自の子エージェントを持つことができます。
マルチエージェント ソリューションの潜在的な影響
ソリューションを複数のエージェントに分割すると、次のことができます。
- 追加のオーケストレーション ホップが導入されるため、待機時間が長くなります。 たとえば、メイン エージェント オーケストレーションは、クエリを処理できる接続されたエージェントを識別します。 その後、接続されたエージェントは、独自の オーケストレーション レイヤーを使用して実行し、使用可能なツールを使用してクエリを処理する方法を決定します。
- ソリューションのテスト、管理、ガバナンスの領域を増やします。
トピックからエージェントにリダイレクトする
トピック内から子エージェントまたは接続されたエージェントに明示的にリダイレクトできます。 エージェントが完了すると、再開からリダイレクトした元のトピック。 必要に応じてエージェント リダイレクト ノードの後にさらにノードを挿入できます。
ノードの下にある [ノードの追加] アイコンを選択し、その後にリダイレクトを発生させます。エージェントの追加 サブメニューでリダイレクト先のエージェントを選択します。
一部のエージェントは、子エージェントで入力と出力を構成する 場合など、入力変数の受け渡しと出力変数の取得をサポートしています。 入力が使用可能な場合は、ノードを介して入力を追加し、それぞれに値を設定できます。 エージェントの各出力には、出力の値が配置されるトピック変数が自動的に作成されます。
これで、トピックを保存してテストし、エージェントのリダイレクトが必要に応じて動作していることを確認できます。
注意
Fabric データ エージェントへのリダイレクトは現在サポートされていません。
既存の接続済みエージェントを管理する
子エージェントまたは接続されているエージェントを一時的に使用できないようにしたり、ソリューションから完全に削除したりできます。
子エージェントまたは接続されているエージェントをメイン エージェントで一時的に使用できないようにする
メイン エージェントの [ エージェント] ページで、オンまたはオフにするエージェントの横にある [有効] トグルを使用します。
子エージェントまたは接続されたエージェントを無効にすると、非アクティブになります。つまり、ユーザーやトリガーに応答しません。
子エージェントを削除する
メイン エージェントの [ エージェント] ページで、削除する子エージェントの横にある 3 つのドット (...) を選択し、[削除] を選択 します。
接続されているエージェントを削除する
メイン エージェントの [ エージェント] ページで、削除する接続済みエージェントの横にある 3 つのドット (...) を選択し、[ エージェントの切断] を選択します。
メイン エージェントの指示で子エージェントまたは接続されたエージェントを参照する
特に自律エージェントが作成した子エージェントや接続した他のエージェントを参照できるようにする場合に役立ちます。 このメソッドを使用すると、エージェントの長い命令セットをより小さな焦点を絞った部分に分割できます。
メイン エージェントの [概要 ] ページに移動します。
[ 命令 ] フィールドにスラッシュ (/) を入力し、目的のエージェントを選択します。 Copilot Studio自動的に指示を保存します。
エージェントをテストする。 Copilot Studioでテスト パネルを使用すると、アクティビティ マップでエージェントが参照されていることがわかります。
既知の制限
子エージェントおよび接続済みエージェントには、以下の制限が適用されます。
Fabricデータ エージェントは現在、トピック内のRedirectノードを活用してリダイレクトすることができません。 現在、Fabric Data エージェントは指示内で明示的に参照できません。
メイン エージェントが Microsoft 365 Copilot にデプロイされている場合、Fabricデータ エージェントは現在機能しません。
エージェントから呼び出し元エージェントに出力を戻すときに、引用が常に維持されるとは限りません。
子エージェントおよび接続エージェントは、メインエージェントの 一般知識使用 設定を尊重します。 この場合、他のエージェントは内蔵の知識ツールによって生成される回答のソースとして一般知識を使いません。 しかし、他のエージェントは質問やメッセージを生成する際に基盤となる言語モデルの知識を利用することがあります。
1つ以上の接続エージェントを持つエージェントを メインエージェント として使う場合、同じエージェントを接続エージェント として2つ 目のメインエージェントに使うことはできません。 ただし、接続されたエージェントを持たないエージェントは、複数のメインエージェントで接続エージェントとして使うことは可能です。
マルチエージェントのセットアップでは、親エージェントが完全にサブエージェントに依存し(トピックや知識源なし)、子エージェントの 行動を実行した後 に親エージェントの行動を「 応答しない」に設定すると、子エージェントが応答した後にプラットフォームがシステム生成の追加
explanation_of_tool_callメッセージを送信することがあります。 オーケストレーションランタイム(子エージェントではなく)がこのメッセージを生成します。 このメッセージにはエージェントの設定に問題があるとは言えません。