Copilot エージェントビルダー入門 ― アーキテクチャから設定のコツまで

今回は、Copilot エージェントビルダーで、オリジナル エージェントを作成してみたいと思います。例えば、「社内ポータル検索エージェント」「新人向け案内エージェント」
「提案書レビューエージェント」など、業務に寄り添ったエージェントが、自然言語で簡単に作れてしまいます。
しかも嬉しい事に、エージェントビルダーは、Copilot(無償版)でも利用可能です。
※ただし、社内データ (SharePoint/Teams/Outlook) や、コネクタは利用不可
本記事では、エージェントビルダーのアーキテクチャから、各設定項目の細かいルール、
そして公式ドキュメントには載っていない「ちょっとしたコツ」までを、まるっと解説していきたいと思います。

1つでも当てはまる場合、エージェント作成の効果が期待できます!

・同じようなプロンプトを毎回コピペしている
・特定のナレッジソースを元に回答してほしい
・他のメンバーにも同じエージェントを利用してほしい
・出力形式を固定化したい

ちなみに、Copilot Studioだと、下記のような機能を利用できます。

・社内/外でのエージェント共有が可能
・Copilotポータル画面以外でもエージェントの共有が可能
・エージェントのバージョン管理やテスト環境
・マルチステップ、ワークフロー、分岐、承認機能
・エージェントへのアクセス権、ガバナンス機能
・情報ソースに、Dataverse、外部DB、カスタムコネクタが利用可能


Microsoft 365 Copilot エージェントビルダー アーキテクチャー図

①ユーザープロンプトをCopilotに送信。エージェント設定(指示・ナレッジ等)が適用される
②Microsoft Graph経由で、ユーザーのアクセス権範囲で[組織データ]を参照
(秘密度ラベル/DLP/Purviewによってこの段階で機密データは除外)
③グラウンディング済み構造化プロンプトをLLMに送信し回答を生成
※①〜③が前処理(Preprocessing/Grounding)
④LLM応答に対し、責任あるAI(Responsible AI)でコンテンツフィルタ適用
(有害表現・プロンプトインジェクション緩和等)
⑤Microsoft Graphに再アクセスし、グラウンディング再確認・セキュリティ・
コンプライアンスチェック(参照データとの整合性確認=ハルシネーション抑制)
※④⑤が後処理(Post-processing)
⑥プロンプトに応じたフォーマットで回答

※ Microsoft Purview/DLP/秘密度ラベルはフロー全体に作用
※ Enterprise Data Protection(EDP)はフロー全体で適用
※ データフローは全て暗号化(in transit)
※ Wave3からOpenAIモデルに加えAnthropic Claudeが追加

Copilotは、3つの頭脳から成り立っている。
Work IQ:業務データ(メール/会議/ファイル)から業務文脈を理解する基盤 ←メイン基盤
Foundry IQ:組織ナレッジの検索・推論(RAG)を担う
Fabric IQ:データに意味付け(セマンティクス)を加え、分析を可能にする

組織データ
①Microsoft365の業務コンテンツ [SharePoint / OneDrive / Outlook / Teams / Loop]
②組織情報 (氏名、役職、部署、組織階層、職務ロール、勤務地など)
③Microsoft Graph経由で参照されるデータ(ファイルアクセス権、参加した会議など)

責任あるAIの原則 (Responsible AI)
・公平性:すべての人を公平に扱うこと
・信頼性と安全性:予期しない状況でも、重大な誤作動や危険を起こさない設計であること
・プライバシーとセキュリティ:不正アクセスや情報漏えいを防ぐこと
・包括性:できるだけ多くの人が利用できること
・透明性:AI がどのように判断したのかを、人が理解できるようにすること
・説明責任:AI の判断や結果について、人間が責任を持つこと

エンタープライズデータ保護(EDP)
・保存したデータや転送中のデータも全て暗号化されます。
・使用したデータが公開される事はありません。
・ユーザーがアクセスできないファイルにはCopilotもアクセスできません。
・ユーザーが入力したデータはモデルの学習には利用されません。
・セキュリティと著作権のリスクから保護されます。
・Purviewを利用する事で、ログ収集、監査が可能

ネットワーク要件として、下記を通す必要があります。
Microsoft365のURLとIPアドレスの範囲
「*.cloud.microsoft」「*.office.com」「*.api.powerplatform.com」

加えて、Copilot固有の追加エンドポイント
「copilot.microsoft.com」「*.copilot.microsoft.com」
「*.bing.com」「*.bingapis.com」
「challenges.cloudflare.com」

※WebSocket(WSS)接続が必須です。TLSインスペクションやプロキシの
タイムアウト設定により接続が阻害される場合があります。


それでは、やってみよう!!

エージェントの作成は簡単で、自然言語で作成する事ができるようになりました!

[構成にスキップ]を選択すると、エージェント作成画面になります。
※自然言語で作成した場合、下記を自動的に埋めてくれます。とても便利!
※特に[指示]の書き方には細かいルールがあるので、自然言語での作成を推奨します。

各設定項目を見ていきましょう!

【名前】
表示名。30文字以内

【アイコン】
生成:プロンプトに基づいて画像を生成もしくは、エージェントの内容から画像を生成
参照:規定の画像から選択
アップロード:1MB以内、PNG、192x192px

【説明】
LLMがエージェントを識別する際に利用するメタ情報。役割/用途を記述。1000文字以内

【指示】
LLMへの動作指示。8000文字以内
①避けるべき事ではなく、やって欲しい動作を書く
②動詞を使う
③出力例を書く
④専門用語を定義しておく

【ナレッジ】
Webサイト:最大4件。2階層まで[cloudou.net/a/b]。パラメータ不可
添付ファイル:最大20件。1ファイル180万文字以下推奨。SharePoint Embeddedに保存
ー1ファイル最大512MB[doc/docx/pdf/ppt/pptx/txt] ※htmlは制限なし
ー1ファイル最大30MB[xls/xlsx] ※1シート目しか読まない
SharePoint(ファイル指定):20個以下推奨(最大100)。合計300ページ以内推奨
SharePoint(フォルダ/サイト指定):1ファイル36000文字以下推奨
自分のTeams 全体/チャット/会議、自分の(全ての)Outlookメール

すべてのWebサイトを検索する:上記の特定のWebサイトでは無く、Web全体を対象にする
指定したソースのみを使用する:指定ナレッジを優先的に使う。Webを禁止するものでは無い
※[指示]に書く事で、Web検索は行うが、回答をブロックする事はできる。
組織図とプロフィール情報を参照する:名前/役職/スキル/組織の関係性を検索対象にする
他のデータ ソースを追加する:Copilot コネクタを利用して、社外/非MSソースを追加する

【機能】
使う条件や出力形式を[指示]に記載しておく
・データ分析(Excel・CSV解析、計算、変換)
・グラフ・チャート生成
・Word/Excel/PowerPointドキュメントの生成
・アップロードされたファイルの読み込みと加工
・プロンプトに基づいて画像を生成

【推奨プロンプト】
作成したエージェントの役割や使い方を利用者に伝えるために使う。
エージェントのトップページにサンプルとなるプロンプトを表示させる。※赤枠

ちょっとしたコツ

添付ファイルが20件以上もしくは、容量512MB以上ある場合は、SharePointに置くことで、ナレッジとして利用できます。

[添付ファイル]の保存先はテナント管理外の「SharePoint Embedded」となり、エージェントを共有すると、アクセス権を与える事になる。

Outlookをナレッジにしたエージェントの場合、相手はメールへのアクセス権が無いためエージェントの共有には不向き

[指示]の8000文字を回避するために、[ナレッジ]に指示文を格納することは、クロス プロンプト インジェクション攻撃(XPIA)とみなされる。

[ナレッジ]に、SharePointサイト全体を指定するのは、ノイズの温床となる。ナレッジの範囲を絞るほど精度があがる

[ナレッジ]の中にプロンプトを書くことは、クロス プロンプト インジェクション攻撃(XPIA)とみなされる。

[ナレッジ]でWeb検索を完全に禁止にしたい場合は、[Microsoft 365 Apps 管理センター]で[無効]にする必要がある。もしくは、Copilot Studioでエージェントを作成する。

作成したエージェントは、共有する事ができます。
※ちなみに、共有されたエージェントの[指示][ナレッジ]は見る事ができません。