接続エージェントを使って、プライマリ エージェントが特定のタスクを専門エージェントに委任できるようにします。 この記事では、 Agent2Agent(A2A)プロトコル上で利用可能なリモートエージェントを接続する方法を紹介しており、プライマリエージェントがタスクをそのエージェントに引き継げるようにします。
Note
このエージェントを構築するために使われるフレームワークは使用量ベースの請求を採用しています。 エージェントの使用、構築、テスト、評価にはCopilotクレジットが消費されることがあります。 使用 量ベースの請求の概要についてはこちらをご覧ください。
A2Aプロトコルは、エージェント間の通信と協働のためのオープンスタンダードです。 オープンスタンダードなので、Copilot Studioの外でホストされ、他のフレームワーク上で構築されたエージェントでも、A2Aを実装していれば接続可能です。 Copilot Studioはエージェントカードからリモートエージェントを発見し、実行時にA2Aプロトコルを使ってタスクを委譲します。
各接続済みエージェントは、同じ「接続されたエージェントを追加」ダイアログから追加します。 接続エージェントの概要とルーティングの仕組みについては 、「接続エージェント概要」をご覧ください。 他のCopilot Studioエージェントを接続するには、「接続されたエージェントとしてCopilot Studioエージェントを追加」をご覧ください。 Microsoft Foundryエージェントを接続するには、「Foundryエージェントを接続エージェントとして追加」をご覧ください。
Prerequisites
- GitHub Copilotハーネスで作成されたエージェントで、メインエージェントとして設定されました。 エージェントを作成する (プレビュー) を参照してください。
- Agent-to-Agentプロトコルを実装し、Copilot Studioからパブリックインターネット経由でアクセス可能なリモートエージェントです。
- リモートエージェントのエージェントカードのURLは、通常
https://<your-agent-host>/.well-known/agent-card.jsonです。 - リモート エージェントが必要とする認証の詳細(必要であれば)。 Copilot Studioは認証不要、APIキー、OAuth 2.0をサポートしています。
- OAuth 2.0の場合、リモートエージェントのID プロバイダーが使用するアプリ登録にリダイレクト URI を追加する権限。 Copilot Studioはウィザード中にリダイレクトURLを生成します。接続を作成する前に、それを登録する必要があります。
Note
A2A 接続ではカスタム コネクタ インフラストラクチャが使用されるため、それらを使用して、オンプレミスまたは仮想ネットワーク内で実行されている A2A エージェントに接続することもできます。
Agent2Agent(A2A)エージェントを追加
ウィザードは、選択した認証方法に応じて3段階または4段階の手順を案内します。
- 「なし」またはAPI キーを選択したら、A2A エージェントに接続、A2A エージェントに接続、次に確認して追加を選択します。
- OAuth 2.0を選択した場合:A2Aエージェントに接続し、リダイレクトURLを追加し、A2Aエージェントに接続してからレビューして追加します。
Copilot Studio にサインインします。
プライマリ エージェントとして使用したいエージェントを選択して開いてください。
エージェントナビゲーションバーで「 ビルド 」タブを選択します。
コンポーネント パネルで接続されたエージェントを選択し、接続済みエージェントを追加ダイアログを開きます。
ダイアログで 「追加」を選択し、次に 「A2Aエージェントを追加」を選択します。
「A2Aエージェントに接続」ステップで、リモートエージェントの詳細を入力します:
-
エージェントカードURL:例えば
https://agent.example.com/.well-known/agent-card.jsonのリモートエージェントのエージェントカードのURLです。 Copilot Studioはカードを読み取り、エージェントのエンドポイントと能力を特定します。 - 名前: エージェントの作成者に表示される名前。 エージェントカードに名前が記載されている場合、Copilot Studioがこの欄を埋めてくれます。
- 説明:このA2Aエージェントを使用するべき場合を明確に示すもので、30文字から1,000文字の範囲です。 エージェントカードに説明が含まれていれば、Copilot Studioがその欄を埋めてくれます。 オーケストレーターはこの記述を使ってリクエストをエージェントにルーティングするタイミングを決めるため、具体的に設定し、他のツールやエージェントとの重複を避けてください。 効果的なメタデータの書き方についてもっと学びましょう。
Note
名前や説明が自動的に入力されない場合、リモートのエージェントがエージェントカードを持っていなかったり、カードが入力したURLと異なる場合、あるいはCopilot Studioがそのカードにアクセスできない可能性があります。 まずURLを確認し、ブラウザでエージェントカードを開いてみてください。 カードが利用できない場合は、名前と説明を手動で入力してください。
-
エージェントカードURL:例えば
認証 で、Copilot Studio がリモート エージェントに対してどのように認証するかを選択し、選択した方法の詳細を入力してください。
- なし:リモートエージェントは認証を必要としません。
- APIキー:リモートエージェントはAPIキーを必要とします。 API キー認証の設定を参照してください。
- OAuth 2.0:リモートエージェントはOAuth 2.0を使用します。 詳細は OAuth 2.0認証の設定 を参照してください。
認証情報が完全になるまでは続けられません。
次へ を選択します。
OAuth 2.0を選択した場合、「リダイレクト URL を追加」ステップが表示されます。 Copilot StudioはA2Aエージェントのコネクタを作成し、プラットフォームはそのためのリダイレクトURLを生成します。 接続を作成する前に、そのURLをアイデンティティプロバイダーに登録してください:
- リダイレクトURL欄に値が入力されるまで待ちます。 URLが生成される前にコネクタが存在しなければなりません。
- フィールドの横にあるコピーボタンを選択してURLをコピーしてください。
- OAuthアプリの登録でURLをリダイレクトURIとして追加し、アプリの登録を保存してください。
- 次へ を選択します。
Important
リダイレクトURLを最初に登録しなければ、最初の認証試みは失敗します。 リダイレクトURLはコネクタごとに生成されるため、このA2Aエージェント専用であり、他のコネクタから再利用することはできません。 後でURLが必要な場合は、コンポーネントパネルの 「Connected agents 」からA2Aエージェントを選択して再度開いてください。
「 A2Aエージェントに接続 」ステップで、このエージェントがリモートエージェントに到達するために使用する接続を選択します:
- 利用可能な接続リストから既存の接続を選択します。
- 接続が利用できない場合は、新しい接続を作成してください。 リモートエージェントがAPIキー認証を使用している場合、接続を作成する際にAPIキーの値を入力します。
次へ を選択します。
「レビューして追加」ステップで、名前、説明、エージェントカードのURLを確認し、「エージェントに追加」を選択します。
コンポーネントパネルの 「接続されたエージェント」 に接続エージェントが表示されるか確認してください。
A2A エージェントに接続 ステップの認証設定に戻って変更すると、Copilot Studio は以前の設定に基づいて作成されたコネクタを破棄します。 新しいリダイレクトURLを登録し、再度接続を選択する必要があります。
Note
あなたは、特定のユースケースに合わせた接続エージェントを慎重にレビュー・テストし、適切な判断やカスタマイズを行う責任があります。 Copilot Studio の外部にあるエージェントに接続する場合、そのエージェントの利用についてはユーザーが責任を負います。 考慮すべき点には以下の事項が含まれます:
- データフロー、データ処理、エージェント間のデータ共有は、あなたのユースケースに適しており、関連する要件や法律を満たしています。
- エージェントは適切な品質、信頼性、セキュリティ、信頼性の基準を満たしています。
- 適切な権限、境界設定、承認は、あなたのユースケースに合った慎重であれば提供されています。
- 適切な観察可能性、アイデンティティとトレーサビリティ、そして人間の監督機能が整っています。
API キー認証を構成する
APIキーを選択したら、パラメーターの種類を選択して、Copilot Studioがキーの送信先を指定してください。
-
ヘッダー:キーはリクエストヘッダーとして送信されます。
ヘッダー名には、リモートエージェントが期待するヘッダー名(例:
x-api-key)を入力します。 - クエリ文字列:キーはクエリ文字列パラメータとして送信されます。 Parameterラベルに、リモートエージェントが期待するクエリ文字列パラメータの名前を入力します。
APIキー値は接続を作成する際に入力するもので、このステップでは入力しません。 そうすればキーは接続と一緒に保存され、エージェントの設定では見えなくなります。
OAuth 2.0 認証を構成する
OAuth 2.0を選択したら、構成タイプを選択してください:
ダイナミック: Copilot Studioはリモートエージェントのアイデンティティプロバイダーに代わりにクライアントを登録します。 認証URLとトークンURLを入力します。
手動: リモートエージェントの ID プロバイダーで既に作成したアプリ登録を使用します。 次の値を入力します。
- クライアントID:アプリ登録のクライアントID。
- クライアントシークレット:アプリ登録のクライアントシークレットです。
- 認可URL: アイデンティティプロバイダーの認可エンドポイント。
- トークンURL:アイデンティティプロバイダーのトークンエンドポイント。
- Refresh token URL:アクセストークンを更新するためのエンドポイントです。
- スコープ (任意): リクエストするスコープ。スペースで区切って指定します。
リモートエージェントのアイデンティティプロバイダーが動的クライアント登録をサポートしている場合は、Dynamic(動的)を使用してください。 例えば、アイデンティティプロバイダーが事前登録リダイレクトURIや同意を求める場合など、アプリの登録を制御したい場合に マニュアル を使いましょう。
どちらの設定タイプでも、IDプロバイダーにリダイレクトURLを登録する必要があります。 「次」を選択すると、Copilot Studioがコネクタを作成し、「リダイレクトURLを追加」ステップで生成されたリダイレクトURLを表示します。
後でリダイレクトURLを確認してください
ウィザードを閉じたりリダイレクトURLを失った場合でも、リダイレクトURLをいつでも再度確認できます:
ビルドタブで、コンポーネントパネルの「Connected agents」からA2Aエージェントを選択します。
「A2Aエージェント編集」ダイアログで、リダイレクトURL フィールドにある値をコピーします。
リダイレクトURLフィールドはOAuth 2.0を使用するA2Aエージェントにのみ表示されます。
オーケストレーターがA2Aエージェントにルーティングする方法
A2Aエージェントを追加した後、オーケストレーションランタイムが自動的にそのエージェントに委譲するタイミングを決定します。 ルーティングの判断基準は以下の通りです:
- 接続済みエージェントの名前と説明
- ユーザーのメッセージと会話のコンテキスト
- プライマリ エージェントの指示
Tip
A2Aエージェントについて明確で具体的な説明を作成し、オーケストレーターがリクエストをいつルーティングすべきか正確に判断できるようにします。 接続されたエージェントの説明が重複しないようにしてください。
テストの委譲
A2Aエージェントを追加した後:
エージェント ナビゲーション バーで、プレビュー タブを選択します。
A2Aエージェントのドメインに合致するメッセージを送信します。
回答がA2Aエージェントから出ており、適切かどうかを確認してください。
A2Aエージェントのドメイン外にメッセージを送り、プライマリエージェントが処理できるか確認してください。
後で名前や説明を変更する必要がある場合は、コンポーネントパネルから接続エージェントを編集してください。 エージェント内の接続エージェントの管理をご覧ください。
接続のトラブルシューティング
| 問題 | 確認すべきこと |
|---|---|
| 接続を承認しようとすると、リダイレクトURIエラーで失敗します | Copilot Studioが生成したリダイレクトURLは、あなたのアイデンティティプロバイダーに登録されていません。 Edit A2AエージェントのダイアログからURLをコピーし、アプリ登録に追加してから再度接続を承認してください。 |
| ウィザードでは リダイレクトURL フィールドが空のままです | コネクターはまだ作成中です。 代わりにエラーが表示された場合は「再試行」を選択してください。 |
| エージェントカードから名前と説明が入力されません | エージェントカードのURLが正しいか、Copilot Studioがカードにアクセスできるか確認してください。 カードが利用できない場合は、名前と説明を手動で入力してください。 |
| 作成した接続は、ウィザードを編集した後に機能しなくなりました | 認証設定を変更すると、以前の設定から構築したコネクタが破棄されます。 新しいリダイレクトURLを登録し、再度接続を選択してください。 |