Copilot Studioの基礎知識_クラシックオーケストレーションモードと生成オーケストレーションモード


みなさん、こんにちは。
日本マイクロソフトの佐々木です。

本日は、Copilot Studioでクラシックオーケストレーションモードと生成オーケストレーションモードのエージェントについて解説していきたいと思います。

長くなりそうなので、何回かに分けてお送りしていきます。
本ブログでご説明するのは概要となります。次回は実例を交えた開発行為のなかでご説明していきます。


# はじめに
Copilot Studioで作成するエージェントには2種類の動作パターン（動作ロジック）があります。
クラシックオーケストレーションモードと生成オーケストレーションモードです。
本日はCopilot Studioにおける開発の基礎知識をおさらいしつつ、クラシックオーケストレーションモードと生成オーケストレーションモードを解説していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/efe06824-08ad-48fd-bedc-3e522f09b80e.png)


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

# ライセンス関連、消費メッセージについて

別の記事で紹介したようにクラシックオーケストレーションモードと生成オーケストレーションモードでライセンス要件や消費メッセージの考え方が異なります。

**Copilot Studio in Microsoft 365 Copilotのユーザーライセンスが割り当てされたユーザー**はMicrosoft 365 Copilot Channelに公開されたクラシックオーケストレーションモードのエージェントを利用できる権利があります。つまり、**Copiot Studioのメッセージを消費しない**ということです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/e6c42300-8fbc-4b72-bc8b-fb43d1137164.png)


ただし、**Copilot Studio in Microsoft 365 Copilotのユーザーライセンスが割り当てされているユーザー**であっても、生成オーケストレーションモードのエージェントを利用し、自律アクションを利用する場合は、メッセージを消費することになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/d624c19c-3d2a-48f6-88b0-b283fab66a01.png)



また、**Copilot Studio in Microsoft 365 Copilotのユーザーライセンスが割り当てされていないユーザー**においては、Copiot Studioのメッセージを消費するわけですが、
クラシックオーケストレーションモードで作成されたエージェントを利用するよりも生成オーケストレーションモードのエージェントを利用する場合のほうが、ほとんどのケースにおいて、自律アクションを利用するため、消費メッセージは増えるでしょう。


詳細は下記のLearnをご確認ください。

:::note info
最新情報の確認のお願い
Copilot Studio含めたCopilot関連のライセンス体系については、最新のライセンスガイドをご参照ください。
:::

https://learn.microsoft.com/ja-jp/microsoft-copilot-studio/requirements-messages-management#message-scenarios

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


# 前提知識
クラシックオーケストレーションモードと生成オーケストレーションモードの説明をする前に、Copilot Studioで開発するエージェントの構成要素について説明していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/faf061b0-e061-4295-8985-73c2636d6bf3.png)

詳細は割愛しますが、大枠のイメージをとらえていただければと思います。


## トピック
エージェントの構成要素としてまず挙げられるのが**トピック**になります。

まずはじめに、**クラシックオーケストレーションモードの場合、トピックを構成することが非常に重要になります**


会話内容毎に呼び出される会話のまとまりを意味しており、**トリガーと複数のノード**で構成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/0c9d649c-9a82-40a9-bcb9-ed7dbf5d7a42.png)


質問ノードや生成型の回答をおこなうノードやアクションを呼び出すノードを構成することが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/bb20bdf3-528f-4f82-a593-6454d22dffd4.png)


上述のように個々で開発したトピックを組み合わせて、**想定される会話の流れに対応できるようにトピックを設計していく**のがトピックの構築となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/1f671ef1-f729-449d-9a13-1948cbd28d84.png)

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



## ナレッジ
Copiot Studioで開発するエージェントの肝となる機能です。
こちらで指定したナレッジからエージェントが回答を生成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/d65ceacf-4e82-40aa-878f-65711df2d81b.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/66ad6788-1ae2-474e-8dea-fe754e23e9b7.png)

対象となるナレッジ：
・公開Webサイト
・SharePoint / OneDrive
・Dataverse
・ファイルアップロード
・エンタープライズデータ（Graph）
・Azure AI
他
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/6d7bdd86-a468-439d-ac72-15a9878575aa.png)

詳細の制限等はLearnをご確認ください。

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


## アクション
エージェントがタスクを遂行するためにアクションを構成することが可能です。
Power PlatformのコネクタやPower Automateなどを利用することであらゆるサービスやシステムと連携することが可能となり、**単なるFAQチャットボットではなく、ユーザーのタスクを遂行するエージェントとしての役割**を果たすことが可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/c3c83c07-6e51-4059-82d1-d0198147f66a.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/eceaffd4-0f7b-4113-aca9-4728a2d01abd.png)


アクションの種類：
・事前構築されたコネクタ アクション
・ユーザー定義コネクタとアクション
・Power Automate クラウド フロー
・AI Builder プロンプト (トピック内)
・REST API 接続
他

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


# 本題
以上でエージェントの主な構成要素である、トピック、ナレッジ、アクションについて説明しました。
こちらを説明した意図としては、**動作ロジックであるクラシックオーケストレーションモードと生成オーケストレーションモードにおいて、動作パターンや開発行為に差が出る**ためです。

こちらの図はざっくりイメージなので、詳細は次項で説明していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/cad3422c-6f7b-40da-a632-6193d6deae51.png)




## クラシックオーケストレーションモードと生成オーケストレーションモードについて
再掲となりますが、Copilot Studioで作成するエージェントには、クラシックオーケストレーションモードと生成オーケストレーションモードという2種類の動作パターン（動作ロジック）があります。


**クラシックオーケストレーションモード**：事前に定義されたトピックに従って動作します。
ユーザーに応答するため、単一のトピックをトリガーしてユーザーに応答します。 **あらかじめ決められたトピックやアクションに基づいてエージェントの動作を設計**しています。

**生成オーケストレーションモード**：最適なアクション、ナレッジ、トピック を選択し、ユーザーのクエリに回答したりイベントトリガーに応答できる自律型エージェントを開発することができます。**ユーザーの意図ややりとりを考慮して動的に応答を生成させるエージェントの動作を設計**していきます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/bb0726b0-fdca-4baa-8633-2d79af9ebe19.png)

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


## 動作の違い
上述のとおり、ある程度決められたトピックの枠組みのなかで、ナレッジ検索やアクションを実行する**クラシックオーケストレーションモードと**AIがユーザーの入力などを判断し、動的にトピック選定からナレッジ検索やアクションなどを選択する**生成オーケストレーションモード**について概要を説明しました。

細かな違いは下記の図を理解いただくと分かりやすいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/a3d9e6cf-9ddd-49a5-bdf6-d9d5a357b835.png)


# おわりに
ここまででクラシックオーケストレーションモードと生成オーケストレーションモード概要についてご説明していきました。次回は各々のモードでの開発行為や振る舞いについて説明していきます。