Microsoft 365 Copilot用 API プラグイン
API プラグインを使用すると、Microsoft 365 Copilotの宣言型エージェントが OpenAPI の説明を持つ REST API と対話できます。 API プラグインを使用すると、ユーザーは宣言型エージェントに対して、REST API に対して情報のクエリを実行するだけでなく、データとオブジェクトを作成、更新、削除するように求めることができます。 REST API でできることは、自然言語プロンプトを介してアクセスできます。
重要
API プラグインは、 宣言型エージェント内のアクションとしてのみサポートされます。 Microsoft 365 Copilotでは有効になっていません。
API プラグインは、OpenAPI 記述ドキュメントと、Copilot が API の機能を学習するために使用するプラグイン マニフェストを提供します。 その後、Copilot は、インストールおよび有効化されたプラグインの API が、特定のプロンプトに応答するのに適しているタイミングを決定できます。 API プラグインに必要なマニフェスト ファイルの詳細については、Microsoft 365 Copilotの API プラグイン マニフェスト スキーマに関するページを参照してください。
たとえば、予算の照会と作成、経費の請求、または既存の予算への資金の追加を可能にする予算 API を考えてみましょう。 "Contoso 旅行予算に残っている量" というプロンプトは、予算プラグインをトリガーして、次の API 呼び出しを行う可能性があります。
GET /budgets?name=contoso%20travel
Copilot は API 呼び出しからの応答を使用してその応答を生成します。"Contoso の旅行予算には現在、利用可能な資金が 5,000 ドルです。 あなたが特定のカテゴリに資金を割り当てるか、経費を追跡する必要がある場合は、私もあなたに支援することができます。 私が助けることができる方法を教えてください!
"Megan の航空券の Contoso 旅行予算に $500 を請求する" というプロンプトは、次の API 呼び出しに変換できます。
POST /budgets/charge
Content-Type: application/json
{
"budgetName": "Contoso travel",
"amount": 500,
"description": "Megan's airline ticket"
}
Copilot は、返された情報を使用してユーザーに応答します。"Megan の航空券に対する 500 ドルの料金が正常に処理されました。 Contoso の旅行予算には、利用可能な資金が 4,500 ドル残っています。 これ以上取引を行う必要がある場合や、予算に関するさらなる支援が必要な場合は、お知らせください。
アクションの確認
Copilot は、API プラグインにデータを送信する前にユーザーに質問します。
既定では、データのみを取得する API はユーザーに "常に許可" オプションを提供しますが、データを変更する API は許可しません。 プラグイン開発者は、これらの既定値をオーバーライドできます。 詳細については、「Microsoft 365 Copilotの API プラグインの確認プロンプト」を参照してください。
応答プレゼンテーションのカスタマイズ
Copilot は、API 応答からのデータを使用して会話型応答を生成します。 プラグインは、アダプティブ カード テンプレートを提供して構造化された方法でデータを表示することで、これらの応答をカスタマイズできます。
API プラグイン パッケージの生成
開発者が API プラグイン パッケージを生成するために使用できる 2 つのツールがあります。
- Visual Studio または Visual Studio Code の Teams Toolkit では、既存の OpenAPI の説明に基づいてプラグイン パッケージを作成できます。 既存の API がない場合、Teams Toolkit には、API の例と対応するプラグイン パッケージを含むスターター プロジェクトもあります。
- Kiota は、コマンド ライン ツールであり、既存の OpenAPI の説明に基づいてプラグイン パッケージを生成できる Visual Studio Code 拡張機能です。
制限事項
API 応答の URL が編集されます
ユーザーのプライバシーを保護するために、Copilot は API 応答に含まれるすべての URL を編集します。 この動作の唯一の例外は、Response semantics properties オブジェクトの url
プロパティで指定されたプロパティ内の任意の URL です。