2025年10月27日 (月)

Copilot Studio エージェント フローと Multistage approval (preview) :多段階承認の取り扱いについて

Adobestock_1654244361

Copilot Studio にはエージェント フローという機能が用意されています。ベースは Power Automate で作成されているので基本的には Power Automate と似ているのですが、高度な承認フローが使えるなど機能面でも異なる点がいろいろとあります。

ですが、そもそも Power Automateがすでにあるのに類似するフロー作成ツールとしてエージェント フローが登場することになったのか? という疑問がわきます。これには経緯があります。

これまで Power Automate の Premium コネクターを使う場合は基本的にはそのフローを使うユーザーごとに Premium ライセンスが必要でした。が、Copilot Studio のエージェントには Premium コネクターの利用権が含まれているため、追加で Pwoer Automate Premium のライセンスを必ずしも購入する必要はないわけです。

特に Microsoft 365 Copilot 有償版ライセンスを持つユーザーは一般的な業務利用の場合はフェアユース規制が設けられており、基本的には追加料金なくこうしたコネクターも使えます。ただエージェント フローの中でも一部の機能はフェアユースにはなっておらず、Copilot クレジットや AI Builder のを消費するものもあり、ライセンス体系は少々複雑です。

詳しくは Microsoftの資料で確認してください。

Copilot クレジット制ライセンス | Microsoft Learn

Human in the Loop: Multistage approval (多段階承認)

さてこのエージェントフロー内で注目したいのが、「Human in the loop」というコネクターです。

20251027_205444

現在、Power Automate にある承認機能は、従来は「承認」コネクターと呼ばれていたのが、今年に入ってから急に「Standard Approval」コネクターという名称に変わりました。つまり、Power Automate で提供される承認機能は標準的なものであり、より高度な承認機能はエージェント フローの Human in the loop というコネクターが持つよ、ということです。

Human in the loop とは、生成AIで用いられる概念であり、「完全な自動化ではなく人間の判断や介入を意図的に組み込む設計思想のこと」を指します。つまり、今回の話では承認にAIによるものと人によるものがくわわるというニュアンスですね。

このコネクター自体まだプレビューですが、ここに含まれるアクションの一つが「Run a multistage approval(preview)」です。要は多段階承認の仕組みですね。

このアクションでは次の3つの要素を利用できます。

  • 手動での承認ステージ
  • AI承認ステージ
  • 条件または条件による承認

20251027_205933

AI ステージは興味深く、人が判断するだけでなく、AIによる自動承認が可能になるというこのが画期的なところです。ちなみに、AI承認ステージはプロンプトを使って承認を判定するのですが、Copilot クレジットを必ず消費するので注意してください。

さて、このAI承認ステージなどの仕組みですが、まだプレビューというともあり、使い方についてあまり詳しい情報がありません。

基本的には次の公式情報を手掛かりに探ることになります。

ということで、いろいろと承認を試したのですが、今のところいろいろと"クセ" があるようなので、試行錯誤したところを箇条書きでまとめておきますね。

自分も試してみようとする方の参考になれば。ただし、あくまでも 2025年10月26日ごろに試した話でプレビューですし状況は変わるでしょうから、あくまで備忘録です。

1. 条件ステージの分岐先が未設定で Bad Gateway エラー

条件ステージで True または False の分岐先ステージが設定されていない場合、フローが停止し Bad Gateway エラーになります。UI上で「承認で終了」などが選択できるように見えても、実際には AI ステージまたは手動ステージを明示的に接続する必要があります。ただ、Microsoft Learn を読むと分岐でも承認判断ができるはずなので、現時点の不具合なのかもしれません。

2. 条件ステージは最初に配置できない

Copilot Studioでは、条件ステージをフローの最初に配置することはできません。金額によって AI か手動かを分岐したい場合は、AI ステージで判定を行う設計にする必要があります。

3. AI ステージの 'Rejected' 出力がフロー結果に確定される

先にAI ステージで 'Rejected' と出力すると、後続に手動ステージがあって、そこで "Approved" にしても最終結果が 'Rejected' になるようです。これは仕様に近いのですが、実質的にはバグ的にも思います。最終的に人が判断した内容で上書きしたいですからね。

今のところ、仕方がないので、AIステージでは判断できないため、最終的な人の判断を優先するようにしたければ、あえで AI ステージでエラーを出すようにしてエラー時の進み先のステージを手動承認ステージにしておくと、承認ステータスが決まらずに進められるため最終的な人の判断が優先されます。

4. 手動ステージで承認・却下ボタンが押せない

AI ステージで次ステージを明示すると、手動ステージが表示されても操作できないことがあります。「続行」設定にすることで、手動ステージが有効になります。

5. AI ステージの変数は必ずテキスト型で渡す

AI ステージに数値型や Boolean 型の変数を渡すと、暗黙的な型変換は行われず Bad Gateway エラーになります。必ず string() などで明示的にテキスト型に変換して渡す必要があります。

6. 手動ステージの後の分岐は明示できない

手動ステージでは承認・却下後の分岐先を明示的に指定することはできません。次のステージが存在すれば、自動的に続行されると考える必要があります。

7. 英語表記の重要性

Teams の承認アプリでは、日本語の文字列が文字化けすることがあるため、承認タスクのタイトルや説明文、AI ステージの出力は英語で記述するのが安全です。そもそもプレビューですし、英語前提でょうから変数名なども英語の方が無難なようです。

日本語で変数名を指定すると、一度作成した変数名が消えてくれなくて、どんどん増えていったりして、仕方がないのでいったん Multistage approval のアクションを削除して作り直したりしました。

と、とりあえず、覚えている範囲でのメモを共有しておきます。これを読んだだけだとわからないと思いますが、実際に構成してみるといくつかは参考になるのでは? 

最後にコース宣伝!

2025年11月より Copilot Studio の入門コースを弊社で開催を始めます。生成AIの基本から、応用利用まで深く学べる2日になっているので、よかったらご参加ください。

そもそもこのコース用のデモを作っていてハマっていたんですよ。。。

【オフィスアイ株式会社】Microsoft 365 Copilot ユーザーのためのCopilot Studioで始めるAIエージェント開発入門

Copilot_studio

コメント