外部システムでデータを検索し、結果のリストを返すようにエージェントに依頼するのが一般的です。 エージェントは Power Automate フローを呼び出して以下を実行できます:
- 認証して外部ソリューションに接続する。
- ユーザー入力に基づいてクエリを実行します。
- 結果をフォーマットする。
- 結果をエージェントに返します。
この例では、Power Automate の Dataverse コネクタを使用してアカウントを検索するために使用します。 コネクタは、アカウント名、市区町村、アカウント番号を含む結果のリストをエージェントに返します。
前提条件
- Copilot Studio 作成キャンバスから フローを作成 する方法を理解します
- 入出力変数を使った情報の受け渡し
- 既存の環境で Dataverse の検索を構成する
Dataverse の取引先企業テーブルを設定する
アカウント テーブルは、Power Platform 環境で既定に利用可能な標準テーブルです。 ただし、取引先企業のデータは付属していません。 エージェントが取引先企業を検索する前に、取引先企業テーブルに入力しておく必要があります。
データを含む取引先企業テーブルが既にある場合は、この手順をスキップしてトピックを作成するに移動します。 ただし、後続のステップでエージェントをテストする際には、データに関連する検索用語を使用してください。
Power Apps ポータルにアクセスします。
ナビゲーション ウィンドウで、テーブル を選択します。
取引先企業テーブルを選択し、テーブルのプロパティ ページで編集を選択します。
テーブルに次の行を追加します:
住所 1: 市区町間 アカウント名 口座番号 世田谷区 Contoso Inc AC0125 サンフランシスコ Contoso Residences AC0255 オリンピア Contoso 食事宅配サービス AC0035
トピックを作成する
Copilot Studio で、エージェントのトピック ページに移動します。
取引先企業の検索という名前のトピックを作成します。
以下のトリガー フレーズを追加:
- 顧客を探しています
- 取引先企業を探しています
- 取引先企業の検索
- 顧客の検索
メッセージ ノードを追加し、「アカウントを探しているようですね。 お手伝いします」とメッセージを入力します。
質問 ノードを追加して、「探しているお客様のお名前は?」というメッセージを入力します。
特定では、組織を選択します。
ユーザーの応答全体 でも機能します。 ただし、組織エンティティを選択すると、エージェントの言語理解機能を利用して、応答から組織名を抽出できます。
ユーザーの応答を名前を付けて保存で、変数の名前を "organization" に変更します。
フローを作成する
ノードの下にあるノードの追加アイコン
を選択し、ツールの追加を選択します。基本アクション タブで、新規エージェント フローを選択します。 エージェント フロー デザイナー タブが開き、エージェントによって呼び出されたエージェント フローの開始テンプレートが表示されます。 このフローには次の 2 つのアクションが含まれます。エージェントがフローを呼び出すとき、およびエージェントに応答するときです。
公開 を選択して、変更を加える前にフローを保存します。 フローが正常に作成されると、通知が表示されます。
エージェントに戻る を選択してトピックに戻ります。 フローのトピックに新しい アクション ノードが追加されます。
保存 を選択して、フローをツールとしてエージェントに追加するのを完了します。
フローの詳細を編集する
フローの アクション ノードで、フロー詳細を表示 リンクを選択して、エージェント フローに戻ります。
フローの 概要 タブで、フローの詳細を編集し、名前を 検索アカウント に置き換えます。 保存を選択します。
デザイナー タブに戻り、エージェントがフローを呼び出したときのフロー トリガーを選択し、テキスト 入力パラメーターという名前の 組織を追加します。
エージェントがフローを呼び出したとき フロートリガーの下にある 追加アイコンを選択します。
アクションの追加で「Microsoft Dataverse」を検索し、行の検索アクションを選択します。
このアクションは、あいまい一致を使用して、Dataverse 取引先企業テーブル にある関連する取引先企業を検索します。
検索語句 ボックスにスラッシュ (
/) を入力し、動的コンテンツの挿入を選択して、組織入力パラメーターを選択します。詳細パラメーターで、すべて表示 を選択し、次の値を設定します。
-
テーブル フィルター項目:
account -
項目で並べ替え - 1:
search.score desc -
項目で並べ替え - 2:
name asc
-
テーブル フィルター項目:
フォーマットの結果
行の検索アクションは、JSON データを含む行の一覧変数を返します。 データを使用する前に、JSON の解析 アクションを使用してデータを分析する必要があります。
検索列 アクションの下にある 追加 アイコンを選択します。
アクションを追加するで "データ オペレーション" を検索し、JSON を解析するアクションを選択します。
コンテンツ ボックスにスラッシュ (
/) を入力し、動的コンテンツの挿入を選択して行の一覧を選択します。次の JSON スキーマをコピーして、スキーマ ボックスに貼り付けます。
{ "type": "array", "items": { "type": "object", "properties": { "@@search.score": { "type": "number" }, "name": { "type": "string" }, "address1_city": { "type": "string" }, "accountnumber": { "type": "string" } }, "required": [ "name" ] } }
JSON の解析 アクションの下にある 追加 アイコンを選択します。
アクションを追加するで "変数" を検索し、変数の初期化アクションを選択します。
名前 ボックスに「ListOfAccounts」と入力します。
[型] で [文字列] を選択します。
変数の初期化 アクションの下にある 追加 アイコンを選択します。
アクションを追加するで "コントロール" を検索し、それぞれに適用するアクションを選択します。
前のステップからの出力を選択 ボックスにスラッシュ (
/) を入力し、動的コンテンツの挿入 を選択してから、Body 変数を JSON 解析の下で選択します。それぞれに適用するアクション内の追加アイコンを選択します。
アクションを追加するで "変数" を検索し、文字列変数の追加アクションを選択します。
名前には、ListOfAccounts を選択します。
次のテキストをコピーし、値ボックスに貼り付けます。
- @{items('Apply_to_each')['accountnumber']}: @{items('Apply_to_each')['name']} - @{items('Apply_to_each')['address1_city']}スニペットの後に改行を追加して、各結果がそれぞれの行に表示されるようにします。
エージェントに応答するアクションで、テキスト 出力を追加します。
名前に、「FoundAccounts」と入力します。
値は、ボックスにスラッシュ (
/) を入力し、動的コンテンツの挿入を入力して、ListOfAccounts 変数を選択します。
フローを保存して公開します。 エージェント フローが公開されると、Copilot Studio から通知されます。
エージェントに戻る を選択して、エージェント トピック エディターに戻ります。 新しいアクション フローがトピックに追加されます。
Copilot Studio からフローを呼び出す
新規アクション ノードを選択します。
フロー入力パラメーターを 質問 ノードから出力変数に設定する: 組織 (文字列) は 組織 変数から値を取得します。
メッセージ ノードを追加し、「検索結果はこちらです」とメッセージを入力します。
2 番目のメッセージ ノードを追加します。 変数の挿入アイコンを選択し、FoundAccounts を選択します。
保存を選択します。
エージェントをテストする。