エージェント フローを構築する

完了

エージェント フローは、Microsoft Copilot Studio のツールであり、カスタム Power Automate ワークフローを通じてエージェントの機能を拡張できます。 このユニットでは、Dataverse テーブルのレコードを更新することで、ユーザーによるコーヒー メーカー注文のキャンセルに対応するフローを作成する方法を学習します。 入力を構成して、特定のレコードをフィルター処理し、動的な式を使用してユーザー プロンプトに基づいてデータを変更します。 このユニットの最後には、エージェント フローが、会話エクスペリエンスとバックエンド ロジックおよびデータ操作を橋渡しする強力なツールとしてどのように機能するかを理解できるようになります。

エージェント フローを構築する

  1. エージェントのツール ページで、+ ツールの追加 ボタンを選択します。

  2. 新しいツールを追加するには、開いた ツールの追加 ウィンドウから + 新しいツール を選択します。

  3. 次の画面でエージェント フローを選択し、新しいエージェント フローを作成します。

  4. Copilot が顧客やスタッフに代わって注文のキャンセルなどのアクションを実行可能にする新しいエージェント フローが作成されました。 画面にはすでに 2 つの項目があります。1 つはプロセスを開始して Copilot Studio から入力を受け取る項目、もう 1 つはアクションの実行後に Copilot Studio に応答を返す終了項目です。 開始するには、エージェント フローに送信される一覧を追加します。 エージェントがフローを呼び出したときトリガー カードを選択し、左側に開いたペインで + 入力の追加オプションを選択して入力変数を追加します。

    使用する予定の入力は、コーヒー メーカー注文テーブルの注文 ID フィールドです。 このフィールドはオートナンバーの種類です。このフィールドのデータ型は実際にはテキストですが、エージェント フローでは数値入力を使用します。 これは、注文 ID に数字のみが含まれているためです。そのため、エージェント フローの入力では、エージェントがユーザーの応答から解析する数値を探すことになります。

  5. エージェントがフローを呼び出すとき ペインで、ユーザー入力の種類の選択 メニューの下にある数値オプションを選択します。

  6. 左側の入力の名前を注文 ID に変更します。 これは、エージェントに、入力として数値が期待されることと、その名前が "注文 ID" であることを伝えます。

  7. 入力変数が設定されたので、コーヒー メーカー注文テーブルで指定された注文 ID に一致するレコードを検索できるアクションを追加する必要があります。

  8. 新しいアクションを追加するには、トリガー カードとエージェントに応答するアクションの間の + 記号を選択します。

  9. 左側に開いた アクションの追加 ウィンドウで、List rows Dataverse を検索し、Microsoft Dataverse セクションの行を一覧にするアクションを選択します。

    このアクションは、Dataverse テーブルを調べて、そのテーブルの個々のレコードからデータを変更または取得可能にします。

    • 接続の作成画面が開いたら、接続名を設定し、認証の種類として Oauth を選択し、サインインを選択します。

    • この接続を作成するには、Copilot Studio のポップアップを許可する必要がある場合があります。

    • 次に、アカウント選択画面で、コース全体を通じて使用してきた Microsoft アカウントを選択し、アクセスを許可を選択します。

  10. テーブル名 フィールドをコーヒー メーカー注文テーブルに設定します。これにより、アクションにコーヒー メーカー注文テーブルのレコードを参照するよう指示します。

    次の手順では、指定した注文 ID に一致するレコードのみを取得するようアクションに指示するフィルター式を追加します。

  11. フィルター行 フィールドを選択し、テキスト ppcat_orderid eq '' を入力します。 これは、単一引用符で囲まれた内容と等しい行のみ必要であることをアクションに伝えます。

    ppcat_orderid は注文 ID 列の論理名であり、eq等しいを示すフィルター クエリ式です。 Dataverse テーブルのセクションに移動すると、各列の論理名を見つけることができます。 一重引用符を使用する理由は、提供している動的コンテンツがテキスト文字列であることを示すためです。

  12. 次に、カーソルを一重引用符の間に置き、右側の稲妻アイコンを選択して、一重引用符の間に動的なコンテンツを挿入します。

  13. 開いた動的コンテンツ メニューで、エージェントがフローを呼び出したとき の下にある Order ID 動的コンテンツを選択します。 動的コンテンツが一重引用符で囲まれていることを確認してください。

    リスト行アクションが完了し、指定した注文 ID に一致するレコードを取得する準備が整いました。 次のステップでは、一致するレコードの注文ステータス フィールドをキャンセル済みに設定する Update a row Dataverse アクションを追加します。

  14. 新しいアクションを挿入するには、行を一覧にするアクションの下の + シンボルを選択します。

  15. 左側に開いた アクションの追加 ウィンドウで、Update a row Dataverse を検索し、Microsoft Dataverse行を更新するアクションを選択します。

  16. 左側に開いた 行の更新 ウィンドウで、コーヒー メーカー注文テーブルを選択して、更新された行がコーヒー メーカー注文テーブルに含まれることを示します。 メッセージが表示された場合は、前に作成した接続を選択します。

    コーヒー メーカー注文テーブルが選択されました。次に、更新中のレコードをアクションに示す必要があります。 通常、"行を一覧表示する" アクションの出力を見ると、一致する各レコードを操作できるようループが作成されます。 ただし、今回のケースでは、注文 ID 列が一意の値であるため、1 つのレコードのみ取得します。たとえば、各コーヒー メーカー注文には、他のコーヒー メーカー注文には設定できない独自の注文 ID があります。

    次の手順では、Power Fxを使用して、"行を更新する" アクションで、"行を一覧表示する" アクションから取得された最初のレコードのみ使用するよう指示します。

  17. 行 ID フィールドを選択し、右側の fx 記号を選択して Power Fx 式エディターを開きます。

  18. Power Fx エディター ウィンドウで、式 first(outputs('List_rows')?['body/value'])?['ppcat_machineorderid'] をコピーして貼り付けます。次に、追加 ボタンを選択して、行 ID フィールドに追加します。

    この式は、行を一覧表示するアクションから取得された最初のレコードをチェックし、そのレコードのコーヒー メーカー注文 ID行 ID として使用します。 行 ID は、テーブル内の各レコードに添付されるグローバル一意識別子 (GUID) です。

    行 ID フィールドに、ピンクの fx シンボルとその横に first(...) が表示されます。 このピンク色のボックスを選択すると、エディターが開き、追加した式が確認されます。

  19. 更新するレコードを選択したので、更新するフィールドを指定する必要があります。 "行を更新する" アクションの詳細パラメーター セクションの すべて表示ボタンを選択します。

  20. 注文ステータス フィールドを選択し、キャンセルに設定します。 これにより、ユーザーがエージェントに注文のキャンセルを依頼してこのエージェント フローをトリガーすると、指定された注文 ID の行の注文ステータスが "キャンセル済み" に更新されます。

  21. エージェント フローを公開する準備が整いました。 右上隅の 公開 ボタンを選択して、フローを確定します。

  22. フローが公開された後、成功ウィンドウが表示されます。 青い エージェントに戻る ボタンを選択してフロー デザイナーを終了し、エージェントのツール ページに戻ります。

  23. 数秒後、エージェント フローがツール ページに無題として表示されます。 このフローを選択して詳細を開きます。

  24. 詳細セクションで、名前Order Cancellation Flow に設定します。

  25. フローに This flow sets a Machine Order record to canceled when a user asks to cancel an order. のような説明を記入します。

  26. 次に、完了セクションまで下にスクロールします。 実行後 の下のドロップダウンを選択し、特定の回答を送信する オプションを選択します。 表示するメッセージ フィールドにテキスト Your order has been canceled, thank you for choosing Contoso Coffee! を追加します。

  27. これらの変更を送信するには、フローの詳細の右上隅にある 保存 ボタンを選択します。 最後に、エージェントの指示にツールを追加します。

  28. 保存したら、エージェントの概要ページに移動し、ツールを指示に追加します。 これを行うには、スラッシュを挿入し、Order Cancellation Flow を選択して、When a user wants to cancel an order, use Order Cancellation Flow など、指示の説明を入力します。

    指示にツールを動的コンテンツとして追加するには、スラッシュ / を入力して動的コンテンツ ウィンドウを開き、Order Cancellation Flow を選択します。

フローのテスト

エージェントがエージェント フローにアクセスし、その使用方法を理解したので、以前に Machine Ordering アプリでコーヒー メーカー注文の作成をシミュレートしたときに作成したサンプル データを使用してテストできます。 これは、エンド ユーザーが実行するプロセスをエミュレートします。ユーザーがコーヒー メーカーを注文すると、その注文に関連付けられた注文 ID を持つレコードが作成されます。

まず、コーヒー メーカー注文テーブルのレコードの 1 つから注文 ID を取得する必要があります。

  1. Agents in a Day ソリューションを開いているブラウザー タブに戻ります。 戻る必要がある場合、Copilot Studio の左側のナビゲーション メニューから省略記号を選択し、上部のソリューションを選択します。

  2. Agents in a Day ソリューションを開いた後、コーヒー メーカー注文テーブルに移動して、使用できるレコードを確認します。

  3. Machine Order の列およびデータ ビューで注文 ID 列と注文ステータス列を表示するには、これらを追加する必要が生じることがあります。 これを行うには、右側の 詳細 ドロップダウンを選択し、既存の列を表示 メニューで注文 ID 列と注文ステータス列を選択して、保存を選択します。

  4. 次に、テーブルの右側にスクロールして、注文 ID を表示します。 テストに使用する注文 ID を 1 つ選択します。

  5. Copilot Studio でエージェントを開いた状態でブラウザー タブに戻ります。 右側のテスト ペインで、I'd like to cancel a machine order などの注文をキャンセルするように求めるプロンプトを送信します。

  6. エージェントにより注文 ID を尋ねられたら、テストする注文 ID 番号を入力します。

  7. フロー完了の詳細で指定した成功メッセージが表示されます。 活動マップには、指定した注文 ID 入力によりフローが完了したことも表示されます。

  8. Agents in a Day ソリューションで開いたコーヒー メーカー注文テーブルのあるタブに戻ります。 エージェントに提供した注文 ID のレコードの注文ステータスがキャンセル済みになります。 更新された変更を表示するため、ページの更新が必要となる場合があります。

エージェント フローは、エージェントが Power Automate を通じて外部ロジックを呼び出せるようにすることで、Copilot Studio に自動化と柔軟性をもたらします。 このユニットでは、ユーザー指定の注文 ID を使用して、コーヒー メーカー注文テーブル内のレコードを検索および更新するキャンセル ワークフローを作成しました。 入力パラメーターを渡す方法、レコードをフィルタリングする方法、Power Fx 式を適用する方法、カスタム回答を定義する方法を学習しました。 このツールを使用すると、ユーザーはバックグラウンドでデータ操作をトリガーしながら、そのエージェントと対話することができます。

Copilot Studio のツールとその使用方法をしっかりと理解できたので、次のモジュールでは、Contoso Support Agent に自律機能を追加します。 自律エージェントは、外部イベントをリッスンするトリガーを利用して、定義されたツールを実行します。