避けなくてよかったもの、避けるべきだったもの Copilot Studio 開発の実測メモ #mcsug

5.6K Views

August 04, 26

スライド概要

https://mcsug.connpass.com/event/401562/

#CopilotStudio #mcsug

profile-image

#PowerApps #PowerPlatform ブログ: https://www.powerplatform.work

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

#mcsug #1 Copilot Studio 勉強会 21:30 ~ 避けなくてよかったもの、避けるべきだったもの Copilot Studio 開発の実測メモ

2.

はじめに たく丸(TAKUMARU) TAKUMARU KOBO Twitter @taku_ma_ru たく丸工房 工房長 https://www.powerplatform.work/ ブログ https://takumarukobo.com YouTube https://www.youtube.com/@powerplatform_work 出身 青森 資格 Power Platform Solution Architect Expert + α → 東京 (Now) 0 能 力 表 Power Apps Copilot Studio 動画投稿率 100

3.

投稿数1500本以上(増加 中) チャンネル登録と高評価で 応援よろしくお願いします

4.

目次 1. 2. 3. 4. Copilot Studio とは エージェント Tips Excelナレッジを検証(クラシックエージェント Standard ハーネス) まとめ

5.

01 Copilot Studio とは

6.

01 Microsoft Copilot Studio(MCS) とは? Microsoft 365 Copilot を強化したり、独自のAIエージェントを構築したりできるツールです Power Virtual Agents Copilot Studio (クラシックエージェント Standardハーネス) Copilot Studio (モダンエージェント GitHub Copilot ハーネス) モダンは個人的には完全に別物で、 Power Virtual Agents の面影は基本無い

7.

01 Microsoft Copilot Studio(MCS) とは? Copilot Studio の位置づけ Microsoft 365 Copilot Microsoft 365 Copilot Agent 拡張 Copilot Studio (カスタムエージェン ト) 拡張 サポート

8.

02 エージェント Tips

9.

02 エージェント Tips モダンで何がどう変わったかが知りたい場合 https://aka.ms/CopilotStudioDeepDiveDeck

10.

02 エージェント Tips 私も新UIを解説する動画を過去に上げているので良ければご覧ください https://youtu.be/M5wP1bzFvbc

11.

02 本日新UIのエージェントがGA ライセンス周りがいろいろ確定したよ GitHub Copilot ハーネス Copilot Credits Standard ハーネス Copilot Chat ハーネス? 今までと同じ

12.

02 本日新UIのエージェントがGA Previewや評価の開発中もクレジットが発生するらしい https://techcommunity.microsoft.com/blog/copilot-studio-blog/more-powerful-agents-and-workflowsfor-autonomous-business-processes-introducing/4542969 環境の Copilot Credits の設定を今すぐ確認しましょう。気づいたら請求額がとんでもなくなるかも?

13.

02 エージェント Tips いい感じのスキルが欲しい場合や作り方に迷ったら公式サイトへ https://microsoft.github.io/cat-agent-skills/

14.

02 エージェント Tips いつまでたっても特定の環境でモダンエージェントを作るための Try Now の表示が出ない場合 切り替えられる環境で新UIにアクセスし、左下から環境を切り替えると切り替え可能

15.

02 エージェント Tips モダンは既定のPythonのモジュールがたくさんあるので、エージェントのみでもやれることが多い カテゴリ モジュール 数 データ処理・数値計算 numpy 可視化・グラフ描画 matplotlib ドキュメント・Office / PDF pptx docx openpyxl xlsxwriter pypdfium2_cfg reportlab jinja2 Web・API・ネットワーク requests httpx httpcore httptools ssl email smtplib imaplib poplib AI / ML・検索 onnxruntime 画像・OCR・図形 cv2 テキスト・エンコーディング re regex gettext データ形式・シリアライズ json orjson yaml csv xml binascii quopri uu xdrlib ファイル・圧縮・OS os pathlib posixpath ntpath genericpath nturl2path shutil glob fnmatch tempfile io fcntl stat filecmp fileinput gzip bz2 lzma zlib zipapp zipimport mmap resource signal select selectors subprocess sysconfig platform getpass pty readline shlex pipes ossaudiodev audioop wave sunau aifc chunk sndhdr 並行処理・非同期 asyncio 開発支援・デバッグ・テスト unittest doctest pdb bdb trace traceback tracemalloc cProfile profile pstats timeit dis inspect warnings loggin g loguru tabnanny py_compile compileall pyclbr symtable ast token tokenize keyword opcode code codeop cmd linecache modulefinder runpy site idlelib lib2to3 pydoc pydoc_data rlcompleter six this antigravity tqdm watchfiles xxlimited xxlimited_35 xxsubtype 46 型・設定・パッケージ管理 typing typing_extensions typing_inspection annotated_types annotated_doc dataclasses operator collections copy types weakref contextlib graphlib heapq bisect reprlib click argparse getopt optparse cffi pycparser ctypes cobble 38 セキュリティ・暗号 hashlib hmac 日時・データベース datetime dateutil pandas PIL pyarrow pylab narwhals seaborn tokenizers plotly threading contourpy uuid calendar kiwisolver markitdown pyclipper sre_constants lxml jwt cycler statistics mammoth h11 urllib urllib3 http ftplib nntplib telnetlib shapely sre_parse isympy huggingface_hub defusedxml multiprocessing secrets mpmath et_xmlfile markupsafe tiktoken rapidocr_onnxruntime sre_compile sympy concurrent cryptography zoneinfo tzdata hf_xet math cmath decimal pyparsing fontTools markdownify pypdf fractions colorsys pdfminer fastapi starlette uvicorn xmlrpc wsgiref cgi cgitb fastembed numbers turtle random turtledemo pdfplumber array struct tkinte r pypdfium2 tabulate rank_bm25 mmh3 14 noto_cjk_fonts pypdf ium2_raw pypdfium2_cli 18 uvloop websockets grpc grpc _tools anyio socket socketserver ipaddress webbrowser netrc mailbox mailcap mimetypes py_rust_stemmers magika flatbuffers copilot textwrap difflib unicodedata codecs encodings pyexpat tomllib configparser plistlib pickle queue 36 11 dracar ys 6 imghdr string 19 stringprep bs4 sched soupsieve html char set_normalizer idna pickl etools shelve copyreg locale base64 filelock fsspec zipfile tarfile grp spwd syslog termios tty 16 23 50 7 contextvars pydantic pydantic_core pydantic_ settings abc enum functools pprint setuptools wheel packagi ng pkgutil importlib venv dotenv certifi crypt 8 sqlite3 dbm 7 ※アンダースコア始まりの内部実装モジュールおよびテスト用モジュール(_ctypes、_testcapi など約 80 件)は除外。

16.

02 エージェント Tips モダンは既定のPythonのモジュールがたくさんあるので、エージェントのみでもやれることが多い

17.

02 エージェント Tips 利用ができないナレッジは Copilot コネクタを追加することで利用可能になる 何も設定しないと、モダンエージェントは Webサイト/ SharePoint / OneDrive for Business のみ

18.

02 エージェント Tips 利用ができないナレッジは Copilot コネクタを追加することで利用可能になる 対応するコネクタを追加することで、ナレッジとして利用可能になる

19.

02 エージェント Tips 利用ができないナレッジは Copilot コネクタを追加することで利用可能になる https://youtu.be/qlXtWyDpvgU https://youtu.be/2rA2h8QXALA https://youtu.be/Z41PbLAYmyE いくつかのコネクタはYouTubeでも解説済みなのでよろしければぜひ

20.

02 エージェント Tips よくわからない、ワークフロー実行できない問題 ワークフローを追加はできているけど、プレビュー実行時になぜか 403 エラーとなることがある。 特に作りが間違っていなくても403となったツールは直らない?ので、再作成をする以外の対処法がなさそう?

21.

02 エージェント Tips ナレッジ検索のスピードはクラシックエージェントのほうが速い モダンは平均1.4〜1.7倍遅く、ばらつきは3倍。しかも3万行では時間をかけたうえで見つけられない場合がある。 短いExcelファイル(200行) クラシック モダン 8.67 モダン +0.1 秒 モダン:サイズの影響 +2.3 秒 12.27 長 いExc elフ ァ イ ル(30,00 0行 ) クラシック クラシック:サイズの影響 8.77 14.57 モダンの長いファイルは、14.57秒かけたうえで「見つからない」と回答した。 ばらつきの幅 1.7 → 5.0 秒

22.

02 エージェント Tips クラシックでは検索可能だが、モダン側で検索できないこともある ファイルが見つけられれば検索は可能だが、データ量が大きいファイルだと明示的に指定しないとファイルが見つからないことがある KnowledgeSearch KnowledgeSearch KnowledgeSearch → No results → No results → No results 1.10s 0.83s 0.81s KnowledgeSearch xlsx skill 切り替えずに終了 → 「見つかりませんでした」 大きな xlsx に機能しない ベクトル検索 3万行でも正確 ファイルを開いて読む 回避策 エージェントの指示に以下のような項目を追加 「Excel は検索で結果が得られない場合、必ずファイルを開いて解析すること」

23.

02 エージェント Tips クラシックでは検索可能だが、モダン側で検索できないこともある 明示的にナレッジのファイルを指定することで正しくファイルが取り込まれ、データが検索される 明示的な指示なし 明示的な指示あり

24.

03 Excelナレッジを検証 (クラシックエージェント)

25.

03 一般的に言われていること Copilot Studio のナレッジの Excel って意外とあいまいじゃない? Excelをナレッジにするならテーブルにした方が Copilot Studio は列挙が苦手だよね 精度が上がるよ 帳票はナレッジに使えないよ Excel の場合データ量が多い(1500行以上)と データが検索できなくなるよ じゃあ実際に検証するしかないよね

26.

03 検証の準備 65のエージェントと1000問の質問を用意して検証をスタート。 65 ク ラシ ック エー ジェ ン ト 1052 問×3回 途中で判断可能なものは省略

27.

03 データ量 「1,500行以降は取得できない」は再現しなかったが、行数に関しては制限がある。 500 行 ○ 1,000 行 ○ 10,400 行 ○ 文 字 量 仮説 は 棄 却 行数1/3・文字量は同等以上でも関係なし 552万字 30,000 行 × 1セルが長い・列数が多いファイルでも行数基準で判断してよ い。 522万字 200 行 × 50 列 ○ 29,999行まで読み取ることに成功し、30,000行の一部まで読み取った

28.

03 列挙・集計の限界 「列挙が苦手」なのではない。取得できるチャンク数に上限がある。 複数レコードにまたがる列挙 5 / 48 件 返ってきた5件はすべて正しい。 ハルシネーションはなく、見えていないだけ。

29.

03 列挙・集計の限界 おそらくファイルが断片に切られて保存され、質問のたびに数個だけ取り出されるっぽい。 検証中に観測した事象 30,000行のE xcelファイル 列挙は5件で頭打ち 取り込み時に分割 1レコード内ならすべて正確に回答 数千個の断片(チャンク)に分割 結合セル・見出し行・帳票連結が壊れる 質問のたびに、関連しそ うなものだけ取り出す 最終レコードが欠ける 取り出されるのは数個だけ 回答時に残りはAIに見えていない この数個から回答が作られる 上記の結果から推測するには おそらく間違っていなさそう

30.

03 列挙・集計の限界 本人に聞いてみた。

31.

03 セル結合 縦方向 結合すると、値は左上のセルにだけ残る。 縦方向に結合する Ex ce l の画面 手続ID 取り込ま れる実体 担当窓口 M1X-00001 M1X-00047 全行に同じ値を書く it-helpdesk@ M1X-00048 3行が1つのセル → Ex ce l の画面 = 取り込ま れる実体 手続ID 担当窓口 手続ID 担当窓口 M1X-00001 it-helpdesk@ M2X-00001 [email protected] M1X-00047 (空) M2X-00047 [email protected] M1X-00048 (空) M2X-00048 [email protected] 値は左上の1つだけ 同じ値でも、行ごとに書く Q. M1X-00047 の担当窓口は? Q. M2X-00047 の担当窓口は? 「担当窓口欄の値は登録されていませんでした」 「[email protected] です」

32.

03 セル結合 縦方向 行の中で完結する結合は、値が消えない。解除しても、結果は変わらなかった。 上段を横方向に結合 識別情報 手続ID 手続名 分類情報 分類コード 分類名 結合せず各セルに反復 窓口情報 担当部署 担当窓口 受付時間 識別情報 識別情報 分類情報 分類情報 窓口情報 窓口情報 窓口情報 手続ID 手続名 分類コード 分類名 担当部署 担当窓口 受付時間 上段は3つのセルを結合して1つにしている。よくある2段ヘッダーの形。 上段の結合を解除し、各セルに同じ見出しを書いた形。 Q. 窓口情報に分類されている列は? Q. 窓口情報に分類されている列は? 「担当部署・担当窓口・受付時間」 「担当部署・担当窓口・受付時間」 どちらも正答した。横方向の結合では、それぞれのセルに値の実体が残るため、解除する必要はない。

33.

03 見出し行によるグルーピング 無関係な見出しが根拠付きで結びつく。「何行以内なら安全」という運用ルールは作れない。 「駐車場新規申請の分類は?」 ■ 総務(GA) L3X-00130 会議室新規申請 総務部 庶務課 L3X-00132 名刺登録依頼 総務部 庶務課 ■ 施設(FA) 回答した分類 正しい分類 総務 施設 回答には「■ 総務セクション内に掲載されている」 と根拠が明示されていた。 L3X-00133 入館証再発行 総務部 施設管理課 L3X-00135 駐車場新規申請 総務部 施設管理課 データは別シートでも検索して引用してきますが、「上に書いてあるから」といっ た位置関係だけで繋がっているものは、正しく引用することができない。 人間が見て判断できるからと言って、AIが判断できるとは限らない。

34.

03 帳票の配置 同一の5文書で結果が割れた。1レコードが複数行にまたがるかどうかが分かれ目。 ≣ ▤ ▦ 1シートに 5帳票を連結 1シート1帳票 × 5シート 1シートに 複数の「表」 3件目を問うと直前の帳票の承認者を 返した。承認日まで一致。 同一の5文書。構成だけが違う。20フ ァイル分割も同じ結果。 台帳を2つ並べても問題なし。1レコー ドが1行に収まっているため。 誤答 全問正答 全問正答

35.

03 帳票の配置 同一の5文書で結果が割れた。1レコードが複数行にまたがるかどうかが分かれ目。 複数の帳票が連結されたファイルでは、 特定の帳票で隣の帳票の値が結びつく。 どこで起きるかは予測できない。 今回の検証では、5件連結した帳票のうち、 3件目~別の帳票の値を参照した

36.

03 帳票の配置 逆にこれらの帳票は問題なく検索できた 1帳票のみ 1シート1帳票で 1ファイルに複数帳票

37.

03 色で意味を表現すると捏造する 今回唯一の完全な創作。凡例を読んだうえで、筋の通った体裁で誤りを述べる。 黄色(改訂中)24行 4 回答された4件 件すべて誤り 正解は約8行おきに並ぶ24件。 回答された手続名は実在するものが使われているため、一見もっともらしく見える。 凡例のテキストは読み取れた。どの行が黄色かは読み取れなかった。 色を問う質問に、該当しない4件が返った

38.

03 値がないとき 空欄でも捏造は起きなかった。ただし、「該当なし」と明記した方が、回答が事実だけに留まる。 空欄のままにする 「該当なし」と記入する 手続ID 受付時間 手続ID 受付時間 V8X-00005 平日 9:00-17:30 V9X-00005 平日 9:00-17:30 V8X-00013 (空欄) V9X-00013 該当なし V8X-00022 (空欄) V9X-00022 該当なし 回答 回答 「空欄となっており、現在は明示されていません」 「『該当なし』と登録されています」 「未設定または公開情報が未登録の状態と考えられます」 どちらも捏造はしなかった。違いは、空欄の場合に値がない理由を推測で補ったこと。

39.

03 隠した情報は、すべて取り込まれる Excel の「隠す」機能は取り込みに一切影響しない。書いた時点で、すべて公開したものとみなす。 通常のセル 読まれる 注意書きは効かない 非表示シート・非表示行・非表示列 読まれる 非表示シートに「参照しないでください」と明記していたが 、内容は6件、具体的に列挙された。 セルコメント(作成者名を含む) 読まれる 図形・テキストボックス 読まれる ヘッダー・フッター 読まれる 隠れた情報が表を上書きする 非表示シートの旧版レコードが本体と同じIDを持つ場合、 旧版の方を採用して回答した。 グラフ・埋め込み画像 読まれない Copilot には人間が見えないかどうかは関係ないので、今までそういった運用をしている場合は要注意

40.

03 ファイルの特殊文字列 ファイル名に記号があるだけで検索が全滅する。しかも「準備完了」と表示される。 特殊文字(今回は+)が入っただけで、ナレッジ のフォルダ内に配置した別のファイルの検索ま で出来なくなった。 フォルダ名とファイル名だけを変更したところ、 問題なく検索できた。

41.

04 まとめ

42.

04 まとめ Excel ファイルには意外とそこまで厳しい縛りはなかった。 1万行・550万文字 クロス集計 列数50 別シートのマスタ参照 複数シート分割 テーブル書式 文字列型の数値 日付の表記ゆれ ヘッダー位置のずれ 2段ヘッダー 1シート内に複数の表 数式列 空欄 空行 小計行の混在 Excel は意外と扱いやすい?ことが判明 セル内改行

43.

04 まとめ 以下の6つのNG例を避ければナレッジとして普通に利用ができる 1. 色・書式で意味を表現 2. ファイル名の特殊文字(多分Excelに限らず) 3. 見出し行によるグルーピング( Copilotには位置で意 味は通じない) 4. 1シートに複数帳票を連結 5. 画像 / グラフ / 表示形式は利用しない 6. データ部のセル結合(値が欠ける)

44.

04 まとめ 理想のExcelはデータを整えることではなく、「1行を読めば1件が全部わかる」状態。 理想の表形式のデータ

45.

04 まとめ 理想のExcelはデータを整えることではなく、「1行を読めば1件が全部わかる」状態。 理想のExcel 帳票

46.

04 まとめ 理想のExcelはデータを整えることではなく、「1行を読めば1件が全部わかる」状態。 理想のExcel集計

47.

04 まとめ 理想のExcelはデータを整えることではなく、「1行を読めば1件が全部わかる」状態。 理想のExcel集計 最後に、あくまで今回の環境での現時点での結果になります。 アップデートや仕様の変更によって結果が変わる可能性があります。

48.

投稿数1500本以上(増加 中) チャンネル登録と高評価で 応援よろしくお願いします

49.

#mcsug おしまい

50.

#mcsug イベントおよびユーザーグループを より良くしていくために、 よろしければアンケートへのご回答 よろしくお願いいたします https://forms.cloud.microsoft/r/mdqeGCU5ga