Microsoft Build の Copilot Studio のナレッジ関係アップデート①


# はじめに

2025 年 5 月に開催された Microsoft Build で、Copilot Studio 関係の多くのアップデートが発表されました。

今回は、そのうちの一つの以下の機能について説明します。
正式名称 Power Platform connectors for unstructured data?

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/2eebc8c1-355f-4f84-b14b-1a3245d2b81f.png)

こちら何かというと、今までのファイルをアップロードしてナレッジを追加する方法の場合、手動で一つずつアップロードする必要がありました。アップロードしたファイルは内部的に Dataverse に保存されておりました。
こちらの機能、ベクトルインデックスが利用されており、個人的に精度が高いという認識です。
そのため、Copilot Studio で何かを作成する際の手段の一つとなっていたのですが、以下のような課題がありました。

* 毎回手動でファイルをアップロード、削除する必要があり、ファイルの数が多い場合面倒
* 上記作業に伴い、再度公開作業が必要になり、定期的にファイルのメンテナンスが必要な場合面倒

そのため、少し裏技な感じですが、以前以下のような記事を書きました。

https://qiita.com/Takashi_Masumori/items/c5b7008332b7ed5df32d

端的に言うと、今回、上記のようなことが不要になります。つまり、例えば、ナレッジとして SharePoint のフォルダーを指定すると、勝手に Dataverse に同期してくれるため、上記のような課題が解消します。また、`利用者の SharePoint に対するアクセス権をベースに動作するようです。つまり、良いところどり`な感じです。実際に、そのように動作するか検証してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/536bd41f-b5b3-45b3-ad0c-990560283ae9.png)

同期における制約は上記 learn に書いていますが、SharePoint の場合以下のような感じで、指定可能なファイルやフォルダー数、ファイルごとのサイズ、対応している拡張子、同期のサイクル (6hours) 辺りは意識しておいた方がいいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/0360710c-c336-494d-b5d6-bc9f5c747b49.png)

そして、こちらの機能、既に展開されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/400fa8cf-8719-4786-882e-617d73f69314.png)

前置きが長くなりましたが、今回、こちらの機能を試してみます。

# ナレッジの用意

今回は、以下のような FAQ 用の Excel ファイルを二つ用意して、SharePoint のフォルダーに追加しておきました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/67410e5d-f488-4660-9ed1-ba1db483b43b.png)

片方は一般的な IT に関する FAQ、もう片方は、Microsoft 365 関係の FAQ です。フォルダー単位で同期するようにすることで、どちらのファイルからも回答を得られるか確認したいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/f8802391-1ca4-4480-ab2e-f65db4b8c8ea.png)

# ナレッジの追加

Copilot Studio 側でナレッジを追加します。以下のファイルアップロードの画面で SharePoint 側を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/400fa8cf-8719-4786-882e-617d73f69314.png)

そして、対象のフォルダーを選択して追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/21518320-9c20-44c0-bc52-11374f399018.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/0453a2b1-dbc7-45c7-b15c-83a994bd1831.png)


こちらが「準備完了」になるまで待ちます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/efb93a3c-788e-46fd-ba76-a96baeef61b2.png)

思ったより早く準備完了になりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/882afce7-25b1-4ae1-895b-bff0f5089cce.png)

# 動作確認

動作確認してみます。
まず、前提として以下の設定はオフにしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/26136dfc-c22b-4d28-bdf6-02649b5a0d0c.png)

質問してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/557b59c0-fc57-43ee-9ec3-14dbaa7e4782.png)

接続を作成します。ナレッジとしては Datavese に同期しますが、利用者の SharePoint に対する権限ベースで動くのかも？つまり、いいとこどりな感じで動くかも？しれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/5a956d0f-e843-480c-b6e7-3c8762df1c8f.png)

回答が返ってきました。フォルダー内の「faq_1000_m365.xlsx」ファイルを基に回答しているようです。ファイルをクリックすると、ファイルがダウンロードされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/7ebb60f9-893e-451c-8769-feab9da7f84c.png)

もう一つ質問してみます。別のファイルの方からも回答がありました。中々いい感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/e5b89953-fe26-47a8-95d4-b5471b6676ca.png)

# フォルダー内にファイルを追加してみる

次に、フォルダー内に別のファイルを追加してみます。同期するまでに最大 6 時間くらいかかるかもしれないため、少し寝かせます。今回は、社内勤怠管理システムの FAQ です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/821804b1-379c-4870-8a3b-54583990a71b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/c6232cca-ea09-4392-bd15-634e224a2a9a.png)

:::note warn
本来は沢山の類似するワードが含まれるナレッジを混在させると、別のファイルの方から回答される可能性が出てくるため、避けた方が良いと個人的に考えます。

以下は、残業申請に関する質問を購買管理システム用の FAQ のナレッジが回答をしてしまっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/97e098a8-5573-425f-bae2-88f4a9c544a7.png)
:::

時間空けたあとに質問をしてみると、新しいファイルから回答が来ました。つまり、Copilot Studio が定期的に自動でフォルダーの内容を更新してくれているようです。良い感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/c29030b6-cdd1-4d80-9374-8e191c85f307.png)

# 別のファイルをアップロードする

別のファイルをアップロードします。今回、以下のような感じの設定をしてみて、A だけから回答を入手できるか確認します。今回は、社内購買管理システムの FAQ です。

A 別のユーザーにこちらのファイルに対するアクセス権を付与する
B 元々あったフォルダーの方のアクセス権はなしにする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/e26bea5a-ec30-4e5f-a943-f1fc3a51f4c0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/aaa24a3f-56e2-404c-a27e-6ea4e8570b97.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/0e68449c-7020-46ab-9aab-02f4564943d9.png)

一旦、準備完了になったため、両方アクセスできるユーザーで試してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/7167ef38-0d03-4342-8b20-c90bfc9df97a.png)

新しく登録したファイルから回答が返ってきました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/9dcc4028-0208-4bc8-9e20-9cf607b1aa73.png)

それでは、上記の通り、権限を付与するため、まず、takmas というサイトのメンバーに対して、フォルダーのアクセス権を外します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/c69cbed5-5683-4284-88b1-07e0f920f9ed.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/b7cc3cf5-c47c-44c6-820d-8a8c7a6f6b9a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/652b8765-a6e6-4b11-8911-6e2666344f61.png)

作成したエージェントを Teams に追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/28d4ef21-74ec-4fef-afd6-03837db495f5.png)

接続を作成します。この辺は Power Apps とかと一緒ですが、別のページに移動して操作する必要があり、感覚的には、ちょっと面倒かもです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/ba4d41e7-fddd-49d3-a470-9be22e29264b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/c78e7f10-8d42-4d08-a789-bad6f4d00084.png)

アクセスできるファイル (社内購買管理システムに関する QA) に関する質問の回答を得ることができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/91505823-9ef4-471a-9a15-9c08f2f097ce.png)

フォルダー内のファイル (一般的な IT に関する FAQ、社内勤怠管理システムの FAQ) に関する質問については回答を得ることができませんでした。こちらのフォルダーについてはアクセス権がないためいい感じの動きです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/aa1d7c7a-e36e-4d94-acb7-348cf5d75598.png)

なお、フォルダーにアクセスできるユーザーは、同じ質問をした際に回答を得ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/8c5ad0aa-6a63-44c7-85a9-32fb0234d3f4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/39935e33-8cd8-466d-b926-eec1b5ba2e35.png)

# まとめ

Microsoft Build の Copilot Studio のナレッジ関係アップデートとして、ファイルアップロードの同期機能について紹介しました。

SharePoint 内に存在する非構造化データをナレッジとして扱いたい、また、その際に精度高いインデックスを利用したいといった際の一つの手段になると考えます。