使用するプラグインMicrosoft 365 Copilot決定する方法
Microsoft 365 Copilotは、仕事のための個人的なアシスタントです。 これは、書き込み、要約、調査など、さまざまな一般的な タスクに役立ちます。 Copilot には、これらのさまざまな種類のタスクに対応するさまざまな スキル があります。 たとえば、Copilot では、会議のアクション アイテムを要約したり、ファイルへの編集を提案したり、organization内の特定のトピックに関するリソースや専門家を追跡したりできます。 各スキルには、特定のタスクに合わせて調整された独自のパラメーターと出力があります。
他の副操縦士と同様に、Microsoft 365 Copilotは一度にデータを使用してトレーニングされます。 新しい情報やリアルタイムの情報、特にorganizationやワークフローに固有のデータを取得して処理するには、Copilot にプラグインが必要です。 プラグインはエンド ユーザー Microsoft 365 Copilotのスキルとユーティリティを拡張し、レパートリーから適切なスキルを選択できるようにします。
しかし、Copilotはヘルプを求めるときに使用するスキルをどのように知っていますか? 要求をどのように解釈し、利用可能な最高のスキルと一致させますか? これは、Microsoft 365 Copilot オーケストレーターのジョブです。
この記事では、Copilot のスキル選択プロセスの背後にあるロジックと、Copilot がユーザーに利益をもたらすあらゆる機会にプラグインを確実に使用できるようにする方法について説明します。
重要
- API プラグインは現在、 宣言型エージェント内のアクションとしてのみサポートされています。 Microsoft 365 Copilotでは有効になっていません。 API プラグインを宣言型エージェントに追加する方法を示す例については、「 プラグインの追加」を参照してください。
- この機能は、すべてのMicrosoft 365 Copilotライセンステナントで既定で有効になっています。 管理者は、ユーザーとグループごとにこの機能を無効にし、個々のプラグインの使用を承認する方法と、有効にするプラグインを制御できます。 詳細については、「 統合アプリでの Copilot エージェントの管理」を参照してください。
Copilot オーケストレーター
エンド ユーザーの自然言語入力から Copilot の自然言語出力までの間で、Microsoft Copilot オーケストレーターは、エンド ユーザーの指定されたタスクに適したプラグインから適切なスキルを選択して実行するためにバックグラウンドで動作します。
オーケストレーション レイヤーは、基盤となる大きな言語モデル (LLM) と、顧客の作業方法に合わせて Copilot を拡張、強化、カスタマイズできるさまざまな方法の間のインターフェイスを表します。
次のグラフは、Microsoft 365 Copilot オーケストレーターが、適切なスキルを持つ適切なプラグインを適切なタイミングで選択する方法を示しています。選択できるオプションが複数ある場合でも、
自然言語の入力: ユーザーが Copilot にクエリを送信します 。たとえば、"現在割り当てられているチケットは何ですか?
予備チェック: Copilot は、責任ある AI チェックやセキュリティ対策など、クエリに対していくつかのチェックを行い、リスクが発生しないようにします。 クエリがこれらのチェックのいずれかに失敗した場合、Copilot は対話を終了します。
推論: Copilot オーケストレーターは、ユーザーのプロンプトに応答するために実行される複数のアクションで構成されるプランを作成します。
コンテキストとツールの選択: オーケストレーターは、コンテキスト ストアからユーザーの会話コンテキストを取得し、Microsoft Graph からデータを統合してコンテキストを絞り込みます。 次に、この更新されたコンテキストに基づいて最初のクエリを調整し、LLM (大きな言語モデル) に転送して、次の手順をガイドします。
LLM は、Copilot の組み込み機能を使用して応答の生成に進む場合や、追加のデータが必要であると判断される場合があります。
詳細情報が必要な場合、オーケストレーターは、プラグインの説明とその関数の説明に基づいて、ユーザーが有効なプラグインからタスクに適したスキルを持つプラグイン(ツール)を検索します。
関数の一致とパラメーターの決定: オーケストレーターは、ユーザーの最初のクエリ、更新されたコンテキスト、選択したプラグインを組み込んだ新しいプロンプトを作成し、LLM に表示します。 LLM は入力を評価し、そのプラグイン内でタスクに対処するための最適なプラグインと関数を指定します。 次に、必要な情報を収集するために必要な関数の詳細とパラメーターをオーケストレーターに提供します。
ツールの実行: オーケストレーターは LLM からの応答を使用して API 要求を作成し、その要求をツール Executor に送信します。これにより、Copilot のインフラストラクチャの外部にある要求された情報が安全に取得されます。 要求が実行され、結果がオーケストレーターに送信され、さらに処理されます。
結果分析と応答の定式化: オーケストレーターは、API 応答を進行中のコンテキストに統合し、LLM が最終的な応答を生成することが適切と判断されるまで、継続的な推論ループで LLM を参照します。
応答: オーケストレーターは、推論プロセス中に収集されたすべての情報をコンパイルし、LLM に送信して最終的な応答を作成します。 応答が責任ある AI ガイドラインに準拠していることを確認すると、応答がオーケストレーターに送信され、コンテキスト ストアにログが記録され、Copilot UI を介してユーザーに配信されます。
自然言語出力: 最後に、オーケストレーターはユーザーに応答を配信し、会話の状態を更新します。 Copilot は次のプロンプトの準備ができています。
建設プロジェクトのような Copilot へのユーザーのプロンプトを想像すると、Copilot オーケストレーターは、専門の下請け業者、プラグインの作業を調整および整理する一般請負業者です。 一般請負業者と同様に、オーケストレーターは、ユーザーの入力 (つまり、Copilot の応答が要求でユーザーの意図を満たすこと) によって示される仕様に従って、プロジェクトが "完了" されていることを確認する責任を負います。
ただし、各プラグインの責任は、Copilot にスキルの正確な説明を提供し、そのスキルを効果的に実行することです。 これにより、ユーザーに信頼感が浸透し、Copilot がスキルが必要になるたびにプラグインを呼び出します。 次のセクションでは、オーケストレーターが検索して使用できるようにプラグインと OpenAPI ドキュメントを最適化する方法について詳しく説明します。
プラグインの最適化
Microsoft 365 Copilotは、レパートリーの多くから適切なスキルを一意に選択できます。 しかし、Copilotが適切なスキルを提供するために プラグインを 選択することを確認するにはどうすればよいですか?
その答えは、プラグイン、そのスキル、スキル実行のパラメーターを記述する方法にあります。 プラグイン マニフェストで簡潔で正確な説明を指定することは、Copilot オーケストレーターがプラグインを呼び出すタイミングと方法を確実に認識するうえで重要です。
次の表に示すように、プラグインをオーケストレーターに記述する方法は、ビルドするプラグインの種類によって異なります。
プラグインの種類 | 説明: | 詳細情報 |
---|---|---|
API プラグイン | OpenAPI の説明 | Copilot を拡張する際に OpenAPI ドキュメントを有効にする方法 |
Copilot Studio アクション | 会話マップの名前と説明Copilot Studio | 生成的 AI を使用して副操縦士のトピックとアクションを調整する |
メッセージ拡張プラグイン | アプリ マニフェスト | メッセージ拡張プラグインのガイドライン |
照合メカニズム
ユーザーが Copilot にクエリを送信すると、オーケストレーターはインストールされているプラグインからスキル (関数) の完全なカタログを検索して、クエリに最も一致する最大 5 つのスキルを識別します。 オーケストレーターは、最初に正確な単語 (字句一致) で一致を試み、必要に応じて検索スコープを拡張して、説明的な意味 (セマンティック 一致) に対する一致を含め、特定の関数名から一般的なプラグインの説明まで、5 つの関数候補スロットがすべて入力されるまで動作します。 具体的には、Copilot プラグイン関数の選択のための一致メカニズムの階層を次に示します。
- 関数名に対する字句の一致。
- 関数の説明に対するセマンティック 一致。 この手順は現在プライベート プレビュー段階です。
- プラグイン名に対する構文の一致 (すべてのプラグイン関数を候補リストに追加します)。
- プラグイン名のセマンティック 一致 (すべてのプラグイン関数を候補リストに追加します)。
オーケストレーターは、5 つの関数候補スロットがすべて入力されるまで、上記の一覧を通じて動作します。
次の手順
プラグインの検出可能性と有用性を最適化するためのベスト プラクティスについて説明します。