Microsoft 365 Copilotの API プラグインの確認プロンプト
重要
API プラグインは、 宣言型エージェント内のアクションとしてのみサポートされます。 Microsoft 365 Copilotでは有効になっていません。
既定では、Microsoft 365 Copilotは、外部システムで意図しない結果を防ぐために、プラグインに送信する前に、ユーザーにデータの送信を確認するよう求めます。 ユーザーは送信するデータを確認でき、許可または拒否を選択できます。 一部の API 操作では、ユーザーには常にデータの送信を許可するオプションが与えられます。これにより、その特定の操作に対する今後の確認プロンプトが表示されなくなります。
通常、Microsoft 365 Copilotはユーザーに HTTP GET 操作の常に許可オプションを示し、POST、PATCH、PUT、DELETE のオプションは表示されません。 API プラグイン開発者は、API 内の個々の操作に対してこの動作を変更できます。 開発者は、Copilot が確認プロンプトの一部としてユーザーに表示するテキストをカスタマイズすることもできます。
プロンプト動作のオーバーライド
開発者は、Microsoft 365 Copilot API の OpenAPI ドキュメントに x-openai-isConsequential
プロパティを追加することで、特定の操作の always allow オプションを表示するかどうかを制御できます。 このプロパティを true
に設定すると、always allow オプションが無効になり、有効 false
に設定されます。 原則として、外部システムの副作用を伴うアクションは、ユーザーが制御していることを確認し、外部システムの副作用を伴うアクションに対する意図しない結果を防ぐために、 true
でマークする必要があります。
たとえば、「 POST /reminders
」というリマインダーを作成する API を考えてみましょう。 これは POST 操作であるため、Microsoft 365 Copilotは、この API が使用されるたびにユーザーに確認を求め、常にこの操作を許可するオプションをユーザーに提供しません。
always allow オプションを有効にするには、次の例に示すように、 x-openai-isConsequential
プロパティセットを false に追加します。
post:
x-openai-isConsequential: false
summary: Create a new reminder
description: Create a new budget with a specified name and due date
operationId: CreateReminder
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Reminder'
required: true
次に、既存のアラームを取得する関連 API を想像してください: GET /reminders
。 GET であるため、Microsoft 365 Copilotは常に許可オプションをユーザーに表示します。
この動作は、true に設定 x-openai-isConsequential
追加することで変更できます。
get:
x-openai-isConsequential: true
summary: Get existing reminders
description: Gets a list of existing reminders
operationId: GetReminders
確認テキストのカスタマイズ
開発者は、プラグイン マニフェストの関数の Function capabilitiesオブジェクトの Confirmation オブジェクトで body
プロパティを設定することで、確認テキストを指定できます。
body
の値は、関数の動作を示す必要があります。 このプロパティがマニフェストに存在しない場合は、代わりに Function オブジェクトの description
プロパティが使用されます。
{
"name": "GetBudgets",
"description": "Returns details including name and available funds of budgets, optionally filtered by budget name",
"capabilities": {
"confirmation": {
"type": "AdaptiveCard",
"title": "Search budgets",
"body": "Do you want to allow searching for budgets?"
}
}
}