针对智能 Microsoft 365 Copilot 副驾驶®的 API 插件的确认提示

重要

API 插件仅支持作为 声明性代理中的操作。 智能 Microsoft 365 Copilot 副驾驶®中未启用它们。

默认情况下,智能 Microsoft 365 Copilot 副驾驶®要求用户在发送数据之前确认将数据发送到插件,以防止外部系统中出现意外后果。 用户可以查看要发送的数据,并可以选择允许或拒绝。 对于某些 API 操作,会为用户提供始终允许发送数据的选项,这将阻止将来对该特定操作的确认提示。

通常,智能 Microsoft 365 Copilot 副驾驶®向用户显示 HTTP GET 操作的始终允许选项,并且不显示 POST、PATCH、PUT 和 DELETE 选项。 API 插件开发人员可以在其 API 中更改单个操作的此行为。 开发人员还可以自定义 Copilot 在确认提示中向用户显示的文本。

重写提示行为

开发人员可以通过在其 API 的 OpenAPI 文档中添加 x-openai-isConsequential 属性来控制智能 Microsoft 365 Copilot 副驾驶®是否显示特定操作的 always allow 选项。 将此属性设置为 true 将禁用 always allow 选项,并将其设置为 false 启用它。 通常,外部系统中具有副作用的任何操作都应标记为 true ,以确保用户处于控制状态,并防止外部系统中具有副作用的操作产生意外后果。

例如,假设有一个 API 创建提醒: POST /reminders。 因为它是 POST 操作,因此每次使用此 API 时,智能 Microsoft 365 Copilot 副驾驶®都会要求用户确认,并且不会为用户提供始终允许此操作的选项。

POST 操作的 Copilot 确认对话框。

若要启用始终允许选项,请将 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 副驾驶®向用户显示“始终允许”选项。

GET 操作的 Copilot 确认对话框。

可以通过将 set 添加到 x-openai-isConsequential true 来更改此行为。

get:
  x-openai-isConsequential: true
  summary: Get existing reminders
  description: Gets a list of existing reminders
  operationId: GetReminders

自定义确认文本

开发人员可以通过在插件清单中函数的 Function 功能对象中的 Confirmation 对象中设置 body 属性来指定确认文本。 的值 body 应指示函数的作用。 如果清单中不存在此属性, description 则改用 Function 对象 中的 属性。

{
  "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?"
    }
  }
}