在 Bot Framework 机器人中使用经典聊天机器人作为技能

备注

本文仅适用于经典聊天机器人。 此功能在新的 Copilot Studio 体验中不可用。

当您将经典聊天机器人作为 Bot Framework 机器人的技能使用时,Bot Framework 机器人会确定用户所说的内容是否与经典聊天机器人的触发短语匹配。 如果匹配,Bot Framework 机器人会将对话转给经典聊天机器人。 经典聊天机器人会提取任何实体并触发匹配的主题。

您还可以将变量作为来自 Bot Framework Composer 的输入传递给 Copilot Studio 技能主题,并使用它返回的输出

重要提示

您必须拥有试用版 或完整 Copilot Studio 授权,才能将经典聊天机器人用作技能。 Teams Copilot Studio 许可证不提供此功能。

将经典聊天机器人设置为技能:

  1. 将 Bot Framework 机器人添加到经典聊天机器人的允许列表中

  2. 下载经典聊天机器人的技能清单

  3. 在 Bot Framework Composer 中使用下载的技能清单在机器人之间创建连接

  4. 使用 Bot Framework Emulator 确认机器人作为技能的工作情况

先决条件

将 Bot Framework 机器人添加到经典聊天机器人的允许列表中

将 Bot Framework 机器人的应用 ID 添加到要用作技能的经典聊天机器人的允许列表中。 机器人必须在同一个租户中。

  1. 在 Bot Framework Composer 中,打开将使用技能的机器人。 选择配置,然后选择开发资源。 复制 Microsoft 应用 ID 中的 ID。

  2. 在 Copilot Studio 中,打开您想要用作技能的经典聊天机器人。

  3. 在导航菜单中,转到设置,然后选择安全性。 然后选择允许列表

  4. 选择添加允许的呼叫者

  5. 粘贴您的 Bot Framework 机器人的应用 ID,然后选择下一步

    注意

    经典的聊天机器人不能作为其他经典聊天机器人的技能。 如果您尝试将属于 Power Virtual Agent 机器人的应用 ID 添加到允许列表,您将收到错误。 您只能为 Bot Framework 机器人添加应用 ID。

    Copilot Studio 将验证 Bot Framework 机器人的应用 ID,确认它属于位于同一租户中的机器人。

  6. (可选)为您添加到允许列表的聊天机器人添加显示名称

  7. 选择保存

如果您输入了显示名称,Bot Framework 机器人将以其显示名称显示,如果未输入,将以其应用 ID 显示。 任何时间要删除或进行编辑,选择机器人显示名称或应用 ID 右侧的图标。

备注

添加到允许列表的 Bot Framework 机器人不会作为机器人内容的一部分导出

下载经典聊天机器人技能清单,适用于您的经典聊天机器人

Bot Framework 机器人可以使用 Copilot Studio 技能清单配置与生成清单的经典聊天机器人的连接。

所有经典聊天机器人都有技能清单。 技能清单是一个 JSON 文件,包含技能名称、界面和触发短语。

Bot Framework 机器人可以使用技能清单获知何时触发经典聊天机器人(例如,响应用户对机器人所说的话)。

Copilot Studio 技能清单遵循 Bot Framework 技能清单架构版本 2.2 的架构,由 intents.lumanifest.json 文件组成。

根据清单数据,Bot Framework 机器人可能会决定由经典聊天机器人处理用户请求。 它将用户所说的一切传递给经典聊天机器人。 然后,经典聊天机器人会将用户所说的内容与 Copilot Studio 主题进行匹配,提取出填补空白所需的任何内容,并触发 Copilot Studio 主题。

Copilot Studio 技能清单会自动生成和更新。 经典聊天机器人有两个技能清单:

  • 测试清单:允许 Bot Framework 机器人连接到经典聊天机器人的测试版本。 使用测试清单在发布之前验证技能的更改。

    • 测试清单可立即用于每个新创建的经典聊天机器人。
    • 每次保存经典聊天机器人时,它都会自动更新以反映更改。
  • 已发布清单:允许 Bot Framework 机器人连接到经典聊天机器人的已发布版本。

    • 已发布清单仅可用于至少发布过一次的经典聊天机器人。
    • 每次发布代理时,它都会自动更新以反映更改。

备注

从未发布过的经典聊天机器人无法使用发布清单

要生成机器人的发布清单,请发布经典聊天机器人

这两个技能清单都将在管理允许列表面板上显示。

技能清单还会显示在助手的详细信息页面上。 在导航菜单中,选择设置,然后选择详细信息。 详细信息页面显示其他元数据,包括环境 ID租户 ID机器人应用 ID

要下载清单,选择它。 它将下载为标记为 <机器人名称>manifest对于已发布清单)或标记为 <机器人名称>test__manifest(对于测试清单)的 .zip 文件。

备注

技能清单不包括添加到经典聊天机器人的系统主题和 Composer 对话。 仅包括由助手作者创建的主题和作者添加到机器人的 Composer 意向触发器。

在 Composer 中连接到 Copilot Studio 技能

使用 Copilot Studio 技能清单在 Composer 中的 Bot Framework 机器人中创建技能连接。

  1. 在 Bot Framework Composer 项目中,选择添加,然后选择连接到技能

  2. 浏览到并选择 Copilot Studio 清单 .zip 存档,然后选择下一步

  3. 在您的 Bot Framework 机器人中选择要添加到经典聊天机器人的主题或意向,然后选择下一步

  4. 查看并编辑您的经典聊天机器人的触发短语,然后选择下一步

  5. 确保选择将业务流程协调程序用于多机器人项目,然后选择继续

  6. 验证 Copilot Studio 技能是否已正确添加到您的 Bot Framework 机器人,以及具有您的经典聊天机器人名称的新触发器是否出现在 Composer 中的项目中。

在技能清单中查找主题

使用事件在技能中触发 Copilot Studio 主题。 要从 Composer 调用特定主题,通过技能清单中关联事件的名称引用主题。

  1. 选择连接到技能操作。

  2. 技能对话名称下,选择显示技能清单

  3. 在清单中查找活动。 此属性包含表示经典聊天机器人中可用主题的嵌套属性。

  4. 找到您要调用的主题,查找它的 name 属性。 当 Copilot Studio 技能接收具有此名称的事件时,会触发主题。

    在此示例中,事件活动名称为 dispatchTo_new_topic_87609dabd86049f7bc6507c6f7263aba_33d

调用 Copilot Studio 技能主题

不依靠用户所说的内容触发 Copilot Studio 技能主题,您可以直接调用主题。 您只能直接调用技能清单中列出的 Copilot Studio 主题。

  1. 在 Composer 创作画布中,选择添加,然后选择访问外部资源,然后选择连接到技能

  2. 技能对话名称列表中,选择您的经典聊天机器人。

  3. 找到要调用的经典聊天机器人主题的事件活动名称。 复制该值,去掉引号,将其保存以在后续步骤中使用。

  4. 选择关闭

  5. 活动部分,选择显示代码

  6. 键入或粘贴以下代码。 将 TOPIC_ACTIVITY_NAME 替换为您的主题的事件活动名称。 确保 name 属性中没有引号。

    [Activity
        type = event
        name = TOPIC_ACTIVITY_NAME
    ]
    

将输入变量传递给 Copilot Studio 技能主题

Bot Framework Composer 可以将变量作为输入传递给 Copilot Studio 技能主题。 要了解如何创建接受输入变量的 Copilot Studio 主题,请参阅使用变量

如果可以接收输入变量的 Copilot Studio 主题在您的技能清单中列出,您可以将 Composer 变量传递给它。

  1. 在 Composer 创作画布中,选择添加,然后选择访问外部资源,然后选择连接到技能

  2. 技能对话名称列表中,选择您的经典聊天机器人。

  3. 找到要调用的经典聊天机器人主题的事件活动名称。 复制该值,去掉引号,将其保存以在后续步骤中使用。

  4. 查找主题的 value 属性。 value 属性包含 $ref 属性。 复制该值并保存以在下一步中使用。

    警告

    如果 Copilot Studio 主题没有输入,它将没有 value 属性。

  5. 找到 definitions 属性,然后查找与您在上一步中找到的 $ref 值匹配的嵌套属性。 注意 Copilot Studio 主题输入的名称和类型。 您将在接下来的步骤中用到它们。

  6. 选择关闭

  7. 活动部分下,选择显示代码

  8. 键入或粘贴以下代码。 替换以下值:

    1. TOPIC_ACTIVITY_NAME 替换为您的主题的事件活动名称。
    2. PVA_INPUT_VARIABLE 替换为您主题中的输入变量。
    3. COMPOSER_INPUT_VARIABLE 替换为将提供值的 Composer 变量。
    [Activity
        Type = event
        Name = TOPIC_ACTIVITY_NAME
        Value = ${addProperty(json("{}"), 'PVA_INPUT_VARIABLE', COMPOSER_INPUT_VARIABLE)}
    ]
    

    在本例中,Composer 变量 dialog.storeLocation 为经典聊天机器人主题 dispatchTo_new_topic_127cdcdbbb4a480ea113c5101f309089_21a34f16 中的输入变量 pva_StoreLocation 提供了一个值。

接收 Copilot Studio 技能主题的输出变量

可以在 Composer 中接收 Copilot Studio 技能主题的输出。 要了解如何创建返回输出的 Copilot Studio 主题,请参阅使用变量

  1. 在 Composer 创作画布中,选择添加,然后选择访问外部资源,然后选择连接到技能

  2. 技能对话名称列表中,选择您的经典聊天机器人。

  3. 为您要调用的经典聊天机器人主题查找事件活动名称。 复制该值,去掉引号,将其保存以在后续步骤中使用。

  4. 查找主题的 resultValue 属性。 resultValue 属性包含 $ref 属性。 复制该值并保存以在下一步中使用。

    警告

    如果 Copilot Studio 主题没有输出,它将没有 resultValue 属性。

  5. 找到 definitions 属性,然后查找与您在上一步中找到的 $ref 值匹配的嵌套属性。 注意 Copilot Studio 主题输出变量的名称和类型。 您将在接下来的步骤中用到它们。

    在本例中,Copilot Studio 主题会返回两个字符串类型的输出:pva_Statepva_Item

  6. 选择关闭

  7. 活动部分,选择显示代码

  8. 键入或粘贴以下代码。 将 TOPIC_ACTIVITY_NAME 替换为您的主题的事件活动名称。 确保 name 属性中没有引号。

    [Activity
        type = event
        name = TOPIC_ACTIVITY_NAME
    ]
    
  9. 在代码区域下,将属性设置为 Composer 变量以接收和存储来自 Copilot Studio 技能主题的输出值。

  10. 在 Composer 创作画布中,选择添加,然后选择管理属性,然后选择设置属性

  11. 属性设置为应该存储提取值的 Composer 值。 然后将设置为您存储主题输出的 Composer 变量。

    在此示例中,dialog.skillResult.pvaStatedialog.skillResult.pvaItem 的输出值被提取到新的 Composer 变量 dialog.Statedialog.Item

用 Bot Framework 机器人测试经典聊天机器人的技能

使用 Bot Framework Emulator 测试您的 Bot Framework 机器人是否能正确调用经典聊天机器人作为技能。

重要提示

Bot Framework 机器人必须添加到经典聊天机器人的允许列表中,技能连接才能正常工作。

将多租户 Bot Framework 机器人更新为单租户机器人

下图显示了基于 Bot Framework SDK 的 Bot Framework 机器人调用经典聊天机器人作为技能的场景。

图示显示了 Bot Framework 机器人和经典聊天机器人之间的交互。

Bot Framework 机器人和经典聊天机器人都有一个 Microsoft Entra ID 应用程序注册,Azure 机器人实例会引用它。 这些 Microsoft Entra ID 应用程序注册是作为多租户创建的。 Bot Framework 机器人向 Bot Framework 租户请求一个令牌,并使用该令牌通过 Azure 机器人服务对 Copilot Studio 进行身份验证。 Copilot Studio 使用相同的机制联系 Bot Framework 机器人。

现在,Copilot Studio 聊天机器人的应用程序注册是作为单一租户创建的,因此这种通信不再有效。 Microsoft Entra ID 拒绝为不在同一租户中的单租户应用程序注册创建令牌。

此外,Copilot Studio 会验证传入的令牌,并拒绝来自它不希望出现的租户的请求,比如经典聊天机器人应用注册的创建租户 ID。

若要解决此问题,有两种可能的修复方法。

与 Bot Framework 机器人在同一租户中的经典聊天机器人

如果 Copilot Studio 聊天机器人已经部署在与 Bot Framework 机器人相同的租户中,并且只被该机器人使用,请将该机器人更新为单租户配置,然后重新部署 Bot Framework 机器人。 有关如何为单租户配置 Bot Framework 聊天机器人的更多信息,请参阅配置和发布机器人

无法更新为单一租户的 Copilot Studio 聊天机器人

如果 Copilot Studio 聊天机器人已经部署在与 Bot Framework 机器人相同的租户中,但无法更新为单一租户,则需要更新 Bot Framework 机器人中的代码,以创建与 Copilot Studio 聊天机器人通信的令牌。 该标记需要为 Copilot Studio 聊天机器人创建的租户创建。 此外,响应必须被接受,这可能需要您按照将现有技能从多租户转换为单租户中的步骤操作。

了解详情