Copilot for Microsoft 365 如何决定使用哪个插件

Microsoft 365 Microsoft Copilot 是你的个人工作助理。 它有助于完成各种常规 任务,例如写作、总结、研究等。 Copilot 具有与这些不同类型的任务相对应的不同 技能 。 例如,Copilot 可以汇总会议中的操作项、建议对文件的编辑,或跟踪组织中给定主题的资源和专家。 每个技能都有自己的参数和输出,这些参数和输出是针对特定任务定制的。

与任何副驾驶一样,适用于 Microsoft 365 的 Copilot 在某个时间点使用数据进行训练。 若要检索和处理新的实时信息,尤其是特定于组织和工作流的数据,Copilot 需要 插件插件 扩展 Copilot for Microsoft 365 的技能和最终用户的实用工具,使其能够从其剧目中选择正确的技能。

但是,当你寻求帮助时,Copilot 如何知道要使用哪种技能呢? 它如何解释你的请求并将其与可用的最佳技能相匹配? 这是Microsoft 365 业务流程协调器的 Copilot 的工作。

本文将介绍 Copilot 技能选择过程背后的逻辑,以及如何确保 Copilot 在每一个机会时都使用插件,使用户受益。

重要

  • 适用于 Microsoft 365 Microsoft Copilot 的插件以公共预览版提供,仅在 Microsoft Teams 中的 Copilot 聊天中工作。
  • 默认情况下,所有 Microsoft 365 个 Copilot 许可租户中都启用此功能。 管理员可以基于用户和组禁用此功能,并控制各个插件的批准使用方式以及启用哪些插件。 有关详细信息,请参阅: 在集成应用中管理 Copilot 的插件

Copilot 业务流程协调程序

在最终用户的自然语言输入到 Copilot 的自然语言输出之间,Microsoft Copilot 业务流程协调程序在后台工作,从正确的插件 () 选择和执行正确的技能, (最终用户给定任务的) 。

业务流程层表示基础 LLM 之间的接口,以及可为客户工作方式扩展、扩充和自定义 Copilot 的多种方式。

Microsoft Copilot 技术堆栈的示意图。从下到上:Microsoft云、AI 基础结构、你的数据、基础模型、AI 业务流程Microsoft Copilots |副驾驶、Teams AI 库、图形连接器、插件扩展性

下图演示了 Copilot for Microsoft 365 业务流程协调程序如何在正确的时间选择正确的插件,即使有多个选项可供选择也是如此。

此图像后面的文本中顺序步骤的直观插图。

  1. 自然语言输入

用户向 Copilot 提交查询,例如“现在向我分配了哪些票证?”

  1. 初步检查

Copilot 对查询进行多项检查,包括负责任的 AI 检查和安全措施,以确保它不会带来任何风险。 如果查询未通过上述任一检查,Copilot 将终止交互。

  1. 原因

Copilot 业务流程协调程序会制定一个计划,其中包含多个操作,这些操作将尝试响应用户的提示。

3a. 上下文和工具选择:

业务流程协调程序从上下文存储中检索用户的聊天上下文,并集成来自 Microsoft Graph 的数据以优化上下文。 然后,它会根据此更新的上下文调整初始查询,并将其转发到 LLM (大型语言模型,) 指导后续步骤。 LLM 可以使用 Copilot 的内置功能继续生成响应,或者可能确定需要其他数据。 如果需要进一步的信息,业务流程协调程序会根据插件说明及其函数说明,搜索插件 (工具,) 具有用户启用的插件中任务的正确技能。

3b. 函数匹配和参数确定:

业务流程协调程序会制定包含用户初始查询、更新的上下文和所选插件的新提示,并将其呈现给 LLM。 LLM 评估输入,并指定该插件中用于处理任务的最佳插件和函数。 然后,它为业务流程协调程序提供收集所需信息所需的函数详细信息和参数。

3c。 工具执行:

业务流程协调程序使用来自 LLM 的响应来构造 API 请求并将请求发送到工具执行程序,该工具执行程序可安全地检索位于 Copilot 基础结构外部的请求信息。 它执行请求并将结果发送回业务流程协调程序以供进一步处理。

三维。 结果分析和响应表述:

业务流程协调程序将 API 响应集成到正在进行的上下文中,并在持续推理循环中咨询 LLM,直到 LLM 认为适合生成最终响应。

  1. 响应

业务流程协调程序编译在推理过程中收集的所有信息,并将其提交给 LLM 以创建最终响应。 在确保响应符合负责任 AI 准则后,它会将响应发送回业务流程协调程序,业务流程协调程序将其记录在上下文存储中,并通过 Copilot UI 将其传送给用户。

  1. 自然语言输出

最后,业务流程协调程序向用户提供响应并更新会话状态。 Copilot 已准备好迎接下一个提示。

如果你想象用户向 Copilot 发出提示,就像建筑项目一样,那么 Copilot 业务流程协调程序就是 总承包商,负责协调和组织专业 分包商(即插件)的工作。 与总承包商类似,业务流程协调程序负责确保根据用户输入 (隐含的规范“完成”项目,换句话说,即 Copilot 的响应满足用户在请求) 中的意图。

但是,每个插件的责任是向 Copilot 提供对其技能的准确描述,并有效地执行其技能。 这将为你的用户灌输信任感,并确保 Copilot 每次需要其技能时都会调用你的插件。 下一部分提供了有关如何优化插件和 OpenAPI 文档的更多详细信息,供业务流程协调程序查找和使用。

插件优化

copilot for Microsoft 365 可以独一无二地从其剧目中的许多技能中选择正确的技能。 但是,如何确保 Copilot 会选择 你的插件 来提供正确的技能呢?

答案在于如何描述插件、其技能和技能执行参数。 在插件清单中指定简洁准确的说明对于确保 Copilot 业务流程协调程序知道何时以及如何调用插件至关重要。

匹配机制

当用户向 Copilot 提交查询时,业务流程协调程序会从已安装的插件) 搜索其技能 (函数 的完整目录,以识别最多五个与查询最匹配的技能。 业务流程协调程序首先尝试在词 法匹配) (精确字词进行匹配,并根据需要扩展其搜索范围,以包括描述性含义的匹配 (语义匹配) ,从特定函数名称到常规插件说明,直到填充所有五个候选函数槽。 具体而言,下面是 Copilot 插件函数选择的匹配机制的层次结构:

  1. 函数名称上的词法匹配。
  2. 函数说明上的语义匹配。
  3. 插件名称上的词法匹配 (将所有插件函数添加到候选列表) 。 此步骤目前以个人预览版提供。
  4. 插件名称上的语义匹配 (将所有插件函数添加到候选列表) 。

业务流程协调程序将遍历上述列表,直到填充所有五个候选函数槽。

以下部分提供有关创作插件、技能 (函数) 和参数的名称和说明的指导和示例。

插件说明

插件说明应包括用户操作、输入类型和输出类型,插件应针对这些操作。

应用清单中的长篇和短应用说明必须明确定义应用的范围。 若要在 Copilot 中将应用呈现为插件,必须修改应用说明以满足以下插件要求:

  • 应用长说明必须清楚地说明用户如何在 Copilot 中使用消息扩展插件,以及他们可以期望的功能。 例如,在 Copilot 中使用 Contoso 云搜索和汇总任务。
  • 简短说明必须以自然语言简要描述应用的功能,并且可以包含应用的名称。

下表列出了各种插件方案的简短说明示例:

说明:创建、搜索、查看票证、bug 和项目。

应用说明示例:

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
  "version": "1.0.0",
  "manifestVersion": "1.16",
  "id": "2bxxxxc5-5xxx-4xxx-aXXX-94xxxx8919e5",
  "name": {
    "short": "Tasks",
    "full": "Contoso Tasks"
  },
  "description": {
    "short": "Create, search, view tickets, bugs, and projects",
    "full": "Contoso Tasks makes it easy to stay organized. Create, assign, and track tasks individually or collaboratively with your team, and see everything come together in one place."
  },

技能说明

技能说明用于将用户的提示解释为意向,然后将其映射到 Copilot 可用的最相关的技能。 包括技能处理的操作,以及输出的预期输入和说明格式。

目前 Teams 消息扩展插件支持仅限于搜索命令,即将推出对操作命令的支持。

搜索技能说明应:

  • 重点介绍命令以自然语言 (详细列表) 搜索的内容和方式。
  • 包括谓词和同义词(如果适用)。
  • 关注本机应用的搜索功能中可能使用的关键字。

语义说明

semanticDescription 属性用于提供 copilot for Microsoft 365 命令的详细说明。 命令的语义说明最多支持 5,000 个字符,并且不会显示在用户界面中。 如果属性 semanticDescription 留空,则 copilot for Microsoft 365 将使用 字段中的信息 description 。 编写 时, semanticDescription必须包含有关命令的预期值、限制和范围的信息。

属性 semanticDescription 不是必填字段。 但是,如果在 semanticDescription 应用清单中添加,则对简短说明、参数说明和命令说明的现有验证检查也适用于语义说明。

下表列出了各种插件方案的命令和语义说明示例:

说明:搜索明天到期的与 Northwind 相关的高优先级任务。

命令说明示例:

"commands": [
        {
          "id": "Search",
          "type": "query",
          "title": "Tasks",
          "description": "Search for high priority tasks related to Northwind that are due tomorrow",
          "semanticDescription": "Search for issues, epics, stories, tasks, sub tasks, bugs + additional details.",
          "initialRun": true,
          "fetchTask": false,
          "context": [
            "commandBox",
            "compose",
            "message"
          ],

参数说明

良好的参数说明说明了参数是什么,而不是参数的作用以及预期的格式。

直接在 Microsoft Teams 聊天和 Outlook 邮件撰写中使用时,可以使用邮件扩展一次查询一个参数。 当用作插件时,消息扩展搜索命令最多支持五个参数, (一个参数必须在消息扩展搜索栏中可见) 。 参数必须具有良好的说明,该说明应描述预期的输入,包括格式或类型。

semanticDescription 属性用于为 Microsoft Copilot 提供命令的详细说明。 参数的语义说明最多支持 2,000 个字符,并且不会显示在用户界面中。 如果 属性 semanticDescription 留空,则 Copilot 将使用 字段中的信息 description 。 编写 时, semanticDescription必须包含有关命令的预期值、限制和范围的信息。

下面是各种插件方案的基本和高级搜索请求的几个示例:

基本搜索:搜索与 Northwind 相关的任务。
高级搜索:搜索明天到期的与 Northwind 相关的高优先级任务。

参数说明示例:

"parameters": [
    {
        "name": "Name",
        "title": "Project or Task Name",
        "description": "Project name or task name as keyword",
        "inputType": "text"
    },
    {
        "name": "Time",
        "title": "Time",
        "description": "Date or number of days for which to find tasks. Output: Number",
        "semanticDescription": "Date or number of days for which you need tasks for. Output: Number",
        "inputType": "text"
    },
    {
        "name": "Priority",
        "title": "Priority",
        "description": "Priority of tasks. Acceptable values: high, medium, low, NA ",
        "semanticDescription": "Priority of tasks. Acceptable values are high, medium, low, NA",
        "inputType": "text"
    }]

后续步骤

了解在 Copilot for Microsoft 365 中优化插件可发现性和实用性的最佳做法。