Copilot Studioで Deep Reasoningする自律型エージェントを作成する

みなさん、こんにちは。
Copilot Studioの自律型エージェントが晴れてGAとなりましたので、このタイミングでご紹介したいと思います。

:::note info
2025年3月現在、言語が英語のエージェントのみ生成オーケストレーションモードのエージェントをサポートしています。
:::

# 前提
さっそく前提事項なのですが、現時点では設定された言語が英語でないと動きません。

理由としては、自律型エージェントは自律トリガーのもと動作する生成オーケストレーションモードのエージェントなのですが、生成オーケストレーションモードが英語でないと作成できないためです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/0c11ff6b-5e5d-4a85-8e80-298fe3b91c6a.png)

https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/advanced-generative-actions

https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/authoring-trigger-event


# 作成ステップ
おおよその作成ステップは以下のとおりです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/07217750-79f7-4cae-9d66-778476406fb8.png)

流れは以前のブログで紹介した生成オーケストレーションモードのエージェント作成手順と同様です。
ただし、自律型エージェントは自律トリガーのもと動作する生成オーケストレーションモードのエージェントなので、トリガーの作成が必要となります。

https://qiita.com/tomoyasasaki1204/items/aaeefc68e1b703073a59

## 作成するシナリオ
Power Platformのライセンス利用申請に対して、自動で対応するエージェントになります。
対応する基準は社内外のナレッジを検索し、判断し（Deep Reasoningさせます）、アクションでアウトプットを出力させます。

1. 指示の作成：エージェントに対して指示を作成します
1. トリガーの作成：トリガーはDataverseにレコードが作成されたら動くことにします
1. ナレッジの構成：ナレッジは社内外のソースを3つ指定します
1. アクションの構成（判断）：今回は新機能を試したいので、Deep Reasoningして諾否を判断させます
1. アクションの構成（出力）：アクションはエージェントフロー（新しい概念ですが、クラウドフローのようなものです）にします

以上の流れで作成していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/e72fc217-7379-407b-964d-87d23537f3da.png)

## 事前準備
それでは自律型エージェントの開発をはじめていきます。
通常の作成手順でこの段階においては[指示]は空白で構いません。

先に書いたように、自律型エージェントは生成オーケストレーションモードのエージェントに限るため、そこの設定をします。
現時点では言語は英語のみです。ただし、指示文に明記することで、日本語で回答してくれるので、利用にあたり問題はございません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/86edc38d-de76-4bac-b682-e1870eaa3cfc.png)

エージェントの概要タブより、生成オーケストレーションモードを有効にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/6076dc2e-9a02-4b1a-a329-58ff36115356.png)

https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/advanced-generative-actions#turn-on-generative-orchestration-for-an-agent


## 指示の作成
指示を作成していきますが、基本的にはLearnのベストプラクティスを参照してください。

今回は下記のように指示を作成しました。
エージェントのふるまいや参照するナレッジ、遂行してほしいタスクを自然言語で記載します。
そのため、**普段のビジネスプロセスを簡潔にかつ正確に**説明する能力が必要になるかもしれません。
ただ、エージェントをテストする段階でふるまいが揺れたりした場合、この指示文やその他の要素を構成しなおすことで修正することは可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/c2024ddf-d03f-409a-8a52-3c91816c6ee9.png)


https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/authoring-triggers-about

https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/advanced-generative-actions#best-practices


## トリガーの構成
トリガーは通常のPower Automateクラウドフローをイメージください。
エージェントのトリガーより、作成・追加することが可能です。Power Automateのクラウドフローを作成する流れと同様です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/3ace742f-843b-46c0-87ef-cfef14b8ce02.png)

今回は下記のような構成を取ります。
このクラウドフローがトリガーされたら、クラウドフローの情報を引数としてエージェントに渡すことができます。この段階でも指示を書いておくと動作が安定します。
作成のアクションでJSON形式に文字列操作しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/06ac032d-f09e-4fd0-8d89-e8aded518837.png)


https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/authoring-triggers-about


## ナレッジの構成
今回複数のナレッジを利用したいと思います。
エージェントが**利用申請をもとにデータソースを対象に検索させ、判断のプロセスで活用**させます。

1. Power PlatformのLearn（公開Webサイト）：利用申請からコネクタを検索する
1. Power Platformの利用規約（SharePointサイト）：利用規約や申請手順を検索する
1. Power Platformの禁止事項（ドキュメント）：禁止されているコネクタなど開発における禁止事項を検索する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/395ac41f-cc5e-4644-9598-8259823788bc.png)

それぞれのナレッジに対しても説明を記載します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/7a40c9d7-240a-41df-8636-7287e16e54bd.png)

## アクションの構成（判断）
今回は新機能を試す目的で Deep Reasoningを活用したいと思います。
プレビュー中ですが、O1のモデルを呼び出すことができ、複雑な推論が可能となります。
今回のユースケースでこれが必要かはさておき、試してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/16cfb86d-194e-4cf9-b038-e545f4a9f6b3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/c38d463f-ccdc-43db-a579-33bd80fb6e79.png)

https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/authoring-reasoning-models


## アクションの構成（出力）

仕上げです。これまでナレッジの検索と推論で諾否の判断をエージェントにさせました。
その結果をAgent Flow - エージェントフロー（ほぼクラウドフロー、課金がCopilot Studioで発生するもの）を利用して出力させます。

Copilt Studioのエージェントフロータブから作成することもできますし、直接エージェントアクションとして作成することもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/bc51362d-dd5b-41b9-a65d-8f8152d31994.png)


:::note info
クラウドフローのプランが"Copilot Studio"となっている必要があります。
この設定により、クラウドフローがCopilot Studioの課金と紐づき実行されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/18866e94-ea45-4abf-878e-bc678bcdfaf2.png)

:::

https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/flows-overview

エージェントフローの中身はこんな感じです。ごくごく簡単なものです。これくらいであれば、直接エージェントアクションにアクションを追加してもいいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/567f05fa-d3f0-48db-8782-0fe7b542d011.png)



Copilot Studio側の設定となります。こちらも説明や入力のパラメーターの説明が重要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/7dbc5d00-102b-49f3-b76c-9405df83e1c9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/048bde63-4510-4134-b938-843e629193e1.png)


# 動作させる
それでは、Power AppsをインターフェースにDataverseにレコードを追加するアプリを用意します。
トリガーされる条件はそろっているので、レコードを新規作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/f848f5ae-4237-4d3c-8f94-43a886c2cfc8.png)

:::note info
うまく動かない場合、トリガーが公開されていない、接続が構成されていないなどのケースが考えられます。
:::

なんとなく動作しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/a72efe2e-e148-47ad-b02a-39fc3965d68c.png)

ただし、実行内容の詳細が確認できないので、テストさせて[活動マップ]でその過程を確認します。
そのため、**公開する前に[活動マップ]で推論の流れを確認しつつ、指示や構成を見直していくことが重要となります**。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/017d00ca-0474-4abc-b4f0-4a7d6f3d4989.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/7ccb27a0-c0c3-4720-8022-110ab76aa828.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/760d431d-ecc2-42c0-9ffb-9d0c27102ad8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/c38d463f-ccdc-43db-a579-33bd80fb6e79.png)

# おわり
以上でCopilot Studioで Deep Reasoningする自律型エージェントを作成する流れをご紹介しました。
記事のなかでいくつかのベストプラクティスの記事もご紹介しましたので、ぜひチャレンジください。