今回はCopilot Studioのノード「手順に移動」が非常に便利だったので、メモ。
手順に移動
ノード「手順に移動」は、トピック内の任意のノードに移動することができる機能。
この機能を使うことで、会話の中でループを実現でき、ユーザーへの確認やフィードバックループなどで活用できそう。
今回実現すること
前回構築した「会議の設定」トピックではユーザーに「誰と会議を設定するか」を聞いた後、即時MTGの設定へ進んでいた(※サンプルなのでMTGの設定自体は省略)。
今回はユーザーの入力から情報を抽出した後、「本当にこの人たちでいいですか?」の確認を実現してみる。
構築
まずはユーザーの回答から「日本人の名前」を抽出した後に、「質問する」を追加し、
抽出した人名をユーザーに確認し、回答をブール型の変数に代入する。
※Power Fx式の中身は、抽出した人名をConcatで結合しているだけ。
Concat(Topic.result.structuredOutput,ThisRecord.name, ", ")
続いて「条件」を追加して、
先ほどの質問の結果を条件に設定。
ユーザーが「いいえ」と言ったときのみ、「手順に移動」を追加して、
最初の質問(誰と会議を設定するか)を選んで、
最初の質問からやり直すよう設定する。
以上で構築は完了。
動作確認
会議の設定を依頼して、人物名を入力すると「はい」と「いいえ」がでるようになるので、「いいえ」を選ぶと、
もう一度最初の質問に戻ることができる。
この「手順に移動」を使用することで、ループ処理やgoto文を実現することも可能だし、自律型のエージェントの「Human in the loop」や「フィードバックループ」なども実現できそう。
ただし、乱用するとソースが読みにくくなるので注意。
2025/1/2追記:シンプルにForeachループを使いたい場合はこちら
Copilot Studio 会話の中でForeachループを使う|テーブルや配列の操作に便利
Copilot Studioにおけるループについて調べていたらおもしろい記事を見つけたので紹介。会話の中でループを作る方法Copilot Studioにおいて、会話内のループを構築する場合は「手順に移動」ノードを使用していた。これはCとかの...