次の方法で共有


方法: コード アプリを Microsoft Copilot Studio エージェントに接続する

Microsoft Copilot Studioエージェントは、AI を利用した機能をコード アプリに提供します。 この記事では、コード アプリに Microsoft Copilot Studio コネクタを追加し、エージェントを呼び出してユーザー入力を処理し、インテリジェントな応答を返す方法について説明します。

[前提条件]

  • 初期化されたコードアプリのプロジェクト
  • 環境内で公開されたMicrosoft Copilot Studio エージェント
  • コード アプリをデータに接続する方法の基本的な理解

Microsoft Copilot Studio接続があることを確認する

コード アプリを Copilot Studio エージェントに接続するには、環境内にMicrosoft Copilot Studio接続が必要です。 既に存在するかどうかを確認するか、新しく作成します。

既存の接続を確認する

pac connection list コマンドを使用して、Microsoft Copilot Studio接続が既にあるかどうかを確認するには:

pac connection list

API ID を使用して接続を探し、 値をコピーします。

新しいつながりの作成

既存の接続がない場合は、Power Apps Maker ポータル UI を使用して接続を作成する必要があります。 コード アプリをデータに接続し、をコピーする方法の手順に従います。

Microsoft Copilot Studio コネクタを追加する

Microsoft Copilot Studio接続を作成した後、PAC CLI pac code add-data-source コマンドを使用してコード アプリに追加します。

pac code add-data-source -a "shared_microsoftcopilotstudio" -c <connectionId>

このコマンドは自動的に次の操作を行います。

  • Copilot Studio データ ソースで power.config.json ファイルを更新します
  • フォルダーに TypeScript モデルとサービス ファイルを生成します

公開して、エージェント名を取得する

コード アプリからエージェントを呼び出すには、その前にエージェントを発行し、その名前を取得する必要があります。

エージェントを公開する

  1. Copilot Studio
  2. [ 発行] を選択してエージェントを発行する

エージェント名を取得する

  1. Copilot Studio で、Channels に移動します。
  2. [Web アプリ] を選択します。
  3. 接続文字列を表示して、エージェント名を見つけます。

URL の形式は

https://{id}.environment.api.powerplatform.com/copilotstudio/dataverse-backed/authenticated/bots/{agentName}/conversations?api-version=2022-03-01-preview

エージェント名の例:

ヒント

URL に表示されるとおりにエージェント名をコピーします。 エージェント名では大文字と小文字が区別され、通常は発行者プレフィックスが含まれます。

Copilot Studio エージェントを呼び出す

コネクタを追加すると、コード アプリから Copilot Studio エージェントを呼び出すことができます。 次の手順では、生成されたサービスをインポートし、エージェントにメッセージを送信し、その応答を処理する方法を示します。

アクションを使用する

アクションを使用して、コード アプリからエージェントを呼び出します。 このアクションは、エージェントの応答を同期的に返します。 エージェントの実行と待機アクションMicrosoft Copilot Studio コネクタに含まれています。

API パス:

生成されたサービスをインポートする

データ ソースを追加した後、生成された TypeScript サービスをインポートします。

import { CopilotStudioService } from './generated/services/CopilotStudioService';

エージェントにメッセージを送信する

メソッドを使用してメッセージを送信し、エージェントの応答を待機します。

const response = await CopilotStudioService.ExecuteCopilotAsyncV2({
  message: "What is the status of my order?",
  notificationUrl: "https://notificationurlplaceholder",
  agentName: "cr3e1_customerSupportAgent"
});

要求パラメーター

メソッドは、次のパラメーターを受け入れます。

パラメーター 必須 タイプ Description
message イエス 文字列 エージェントに送信するプロンプトまたはデータ。 構造化データの JSON 文字列を指定できます。
notificationUrl イエス 文字列 プレースホルダー URL ( を使用)。 API にはこの URL が必要ですが、同期モードでは使用されません。
agentName イエス 文字列 公開された Copilot Studio エージェントの名前。

応答の構造

応答には、次のプロパティが含まれています。

プロパティ タイプ Description
responses string[] エージェントからの応答文字列の配列
conversationId string 追跡用の会話 ID
lastResponse string エージェントからの最新の応答
completed boolean エージェントが処理を完了したかどうか

例: エージェントの応答を取得する

const response = await CopilotStudioService.ExecuteCopilotAsyncV2({
  message: "Summarize the latest product trends",
  notificationUrl: "https://notificationurlplaceholder",
  agentName: "cr3e1_trendAnalyzer"
});

if (response.data.completed) {
  const agentResponse = response.data.lastResponse;
  console.log("Agent response:", agentResponse);
}

例: JSON 応答を解析する

多くの場合、エージェントは応答を JSON 文字列として返します。 応答を解析して特定のデータを抽出します。

const response = await CopilotStudioService.ExecuteCopilotAsyncV2({
  message: JSON.stringify({ query: "monthly sales" }),
  notificationUrl: "https://notificationurlplaceholder",
  agentName: "cr3e1_dataAnalyzer"
});

if (response.data.responses && response.data.responses.length > 0) {
  // Parse the JSON response
  const parsedData = JSON.parse(response.data.responses[0]);
  const summary = parsedData.summary;
  const metrics = parsedData.metrics;

  console.log("Summary:", summary);
  console.log("Metrics:", metrics);
}

トラブルシューティング

Copilot Studio エージェントへの接続または呼び出しで問題が発生した場合は、次の解決策が最も一般的な問題に対処します。

エージェントが応答を返さない

ソリューション:操作 () を使用していることを確認します。 その他のエンドポイントには、既知の制限があります。

  • () - 応答ではなく、 のみを返します (fire-and-forget)。
  • () - 502 "サーバー応答を読み取ることができません" エラーが返されることがあります。

応答でのプロパティの大文字小文字の区別エラー

ソリューション: 応答プロパティの大文字と小文字は実装によって変わる場合があります。 すべてのバリエーションを確認します。

  • conversationId
  • ConversationId
  • conversationID

オプションのチェーンを使用するか、複数の大文字小文字のバリエーションを確認してください。

const convId = response.data.conversationId ??
               response.data.ConversationId ??
               response.data.conversationID;

エージェントから空または予期しない応答が返される

ソリューション: 次のことを確認します。

  1. Copilot Studio でエージェントを発行しました。
  2. エージェント名が正しく、発行されたエージェントと一致します。
  3. メッセージ形式は、エージェントが想定したものと一致します。
  4. エージェントに、入力を処理するように構成されたトピックがあります。

こちらも参照ください