MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

【Copilot Studio】エージェントのトリガーは加工が必須!

はじめに

AIアシスタントをローコードで作成できる Copilot Studio では、従来のボットのようなチャットの入り口だけでなく、チャット以外の入力でAIエージェントを起動する機能が提供されています。

例えばメール受信をきっかけに、事前に定義したナレッジベースを検索して、質問を記録しつつ自動で回答を返信するような自律型のAIエージェントを比較的簡単に構成できます。

AIを動作させるきっかけ=トリガー には、Microsoftの提供するM365系のサービスのほか、Gmail, Google Calendar, またその他の3rd partyサービスが多くあります。

今回はトリガーを利用してエージェントを起動する際の注意事項について共有します。

トリガーの設定

Copilot Studioで適当なエージェントを作ってみると、エージェントの概要タブの中ほどに「トリガー」の項目が表示されます。

このトリガーの設定で事前に定義されているサービスとそのイベントを選択します。この部分はPower Automateのクラウドフローのトリガー(の一部)が並んでいるので、Automateやってる人にはなじみ深いですね。

ここではFormsの「新しい応答が送信されるとき」のトリガーを利用します。

設定では利用するフォームの選択と、トリガーをもとにエージェントにどのように指示を行うかを指定します。(利用するフォームは質問が一個で、複数行のテキストを入力できるだけのフォーム)

トリガーの設定はこれだけです。

フォームに回答が送信されると、エージェントの活動には以下のように自動実行されたことが記録されています。

トリガーの内容と課題

設定を完了して試しに動作させてみます。活動の履歴からどのようにエージェントが動作したかを確認してみましょう。

活動の内容をクリックして、画面右上の選択から「トランスクリプト」を選ぶと実行の詳細(トリガーによる指示とエージェントの回答)を確認することができます。

「あれ?なんかよくわからないJSONが書かれてるぞ???」 となりますよね。(ぼくはなった)

そう、先ほどトリガーの指示にあった「Body」はtriggerBody()なんです。つまりもろのJSONデータ。

これじゃあだめですね。Formsでいえばフォームに入力された内容はトリガーには含まれませんので。

Formsだけでなく、例えばメールの受信トリガーでもBodyはメール本文のことではなくtriggerBody。なのでメールの送信者や受信者、件名や本文がクシャっとはいったJSONになるので、エージェントへの指示内容としては適当ではありません。

ということで、トリガーの内容からどうにかしてエージェントへの指示を構成しなければならないです。

トリガーデータの加工とエージェントへの指示

追加したトリガーの右側にある・・・をクリックしてみると、「Power Automateで編集」のメニューが表示されます。

ここをクリックすると、はい!Automateのクラウドフローですね!!!(勝った)

つまりトリガーは、Power Automateのクラウドフローで、選択したトリガーからエージェントを呼び出しているだけなわけです。

そこまでわかればあとはいつもの手続きですね。Formsでいえばトリガーしたら次に応答の詳細を取得して加工、エージェントにコンテンツを渡せばOKです。

このフローを保存、発行して再度トリガーを試します。トランスクリプトを確認してみると期待通り、Formsの質問内容を反映したエージェントへの指示になっていますね。

このように、エージェントにトリガーを設定した後には必ずPower Automateでトリガーデータの加工とエージェントへの指示の書き直しが必要になります。

おわり

今回は Copilot Studioで作成するエージェントにチャット以外のトリガーを追加した際の注意点について解説しました。

トリガーを追加した際には必ずトリガーデータを加工してエージェントに適切な指示ができるよう、Power Automate側でフローの編集を行いましょう。

Copilot Studioを活用するにはやはりPower Automateの理解が重要になるね という内容でした。