【2025年更新】Copilot Studio 会話の中でForeachループを使う|テーブルや配列の操作に便利

⚠️ 2025年更新:この機能は正式リリースされました
記事執筆時点では裏技的な実装が必要でしたが、現在はCopilot Studioの標準機能として「ループ処理(Foreach)」が正式に追加されています。
コードエディタを開く必要はなく、リスト変数を選択するだけで実装可能です。
※記事末尾の内容は、正式リリース前の実装ログとして、またYAML構造の理解のために残しています。
スポンサーリンク

2025年に新しく追加された方法

やりたいこと

会話の中でこのようなテーブルや配列をループで回したいときの話。

構築

[変数管理]の[リストの管理]から[リスト全体をループする]を選ぶ。
[ループする項目]にループ対象のテーブルや配列を設定すれば構築完了。ちなみにループの中では「値」と「インデックス」の両方を使用できるのが便利。

動作確認

このトピックを起動するとこんな感じでループが実現できている。

以下、過去の情報のアーカイブ

【アーカイブ】コードエディタによる実装方法(旧仕様)

Copilot Studioにおけるループについて調べていたらおもしろい記事を見つけたので紹介。

会話の中でループを作る方法

Copilot Studioにおいて、会話内のループを構築する場合は「手順に移動」ノードを使用していた。

これはCとかのgoto文と同じ機能で、この「手順に移動」を使用して、前のステップに戻ることでループをつくっていた。

ただ、今回見つけたこちらの記事にトピック内でForeachループを使うことができる、と書いてあったので試してみた。
Top Content on LinkedIn
Explore top LinkedIn content from members on a range of professional topics.

構築

今回はサンプルとして指定した数のループを実行するトピックを構築。

まずは適当なトリガーを用意して、ループする回数をスロット充填で取得する。
そしたらForeachを追加するためコードエディタを開いて、
actionsの中にkindとしてForeachを追加する。(YAML記法っぽい)
idは適当でよいみたいなので、適当なIDを採番してコードエディタを閉じる。
するとフローにForeachループが追加される。
指定した数のループを実行するため、[ループする項目]にはSequence関数を追加して、
ループの各項目が入る[ループ値の変数]には新しい変数を追加。
※プロパティからループのインデックスも取得可能。
最後に現在の数字をメッセージで送信するノードを追加したいんだけど、[変数の選択]からは変数iにアクセスできないよう。
そこで再度コードエディタを開いて、関数と変数を直接入力する。
フローに戻って関数が入力されていれば完成。

動作確認

こんな感じで回数を指定すると、トピック内でループが実行される。

Power Virtual Agent時代の名残なのか、またはCopilot Studioにおいて今後追加する機能なのかはわからないけど、コードエディタからであればForeachを使うことができる。

コメント

タイトルとURLをコピーしました