白杨商业智能工作室
#Power Apps#Power Platform#低代码#最佳实践#公众号:BaiYangBIStudio

在全新 Copilot Studio 中不使用主题(Topics)来编排对话

· 白杨BI工作室
在全新 Copilot Studio 中不使用主题(Topics)来编排对话

在全新 Copilot Studio 中不使用主题(Topics)来编排对话

📢 本文同步发布於公众号:Power Platform · 最佳实践
🔗 原文链接:https://www.matthewdevaney.com/how-to-orchestrate-chat-without-topics-in-new-copilot-studio/


在全新 Copilot Studio 中不使用主题(Topics)来编排对话

无广告、无废话,只有 Power Platform 干货。

在全新的 Copilot Studio 体验中,你可以仅使用代理指令(Agent Instructions)和代理技能(Agent Skills)来编排基于聊天的对话。之所以需要这样做,是因为我们无法再使用主题(Topics)来为这些新代理构建结构化对话。取而代之的是,我们可以在代理的指令中定义核心对话模式,并为仅在特定条件下才会触发的对话路径创建技能。

引言:餐厅服务员代理(Restaurant Crew Member Agent)

餐厅服务员代理负责为一家快餐店接单。顾客可以通过与该代理聊天来选择菜单项,代理会计算总价并下单。

在 Copilot Studio 中编写指令来编排对话

打开 Copilot Studio,创建一个名为 Restaurant Crew Member Agent 的新代理。

全新的 Copilot Studio 体验不包含主题(Topics)。因此,我们无法通过添加主题来编排对话会话。相反,我们必须使用代理指令来完成这一任务。代理指令应包含对代理角色的简要描述、按顺序排列的基本对话步骤,以及整个对话过程中必须遵循的通用规则。

将以下指令复制并粘贴到代理中。

与代理聊天以测试核心指令

要测试初始指令,请转到预览选项卡并开始与代理聊天。代理应该能够将菜单项添加到订单中,询问顾客是否还需要其他东西,并计算最终总价。

如果对话没有按预期进行,请返回代理指令进行修改,然后重新测试。请注意,设计代理的对话模式是一个迭代过程。

将餐厅菜单上传到 SharePoint

餐厅菜单信息存储在一个 JSON 文件中,你可以从 Github 下载该文件。菜单数组中的每个对象代表一个单独的菜单项,并包含以下属性:

  • id:菜单项的唯一标识符
  • name:菜单项的名称
  • description:菜单项的简要描述
  • price:菜单项的价格
  • category:菜单项所属的类别(如汉堡、饮料、小食等)
  • variant_type(可选):如果菜单项有多个变体(如大小杯),则标识变体的类型

一些菜单项(如饮料)具有多个变体。例如,顾客可以点小杯、中杯或大杯可口可乐,每种规格的价格各不相同。

具有变体的菜单项包含 variant_type 属性(对于可口可乐来说就是“规格”),以及一个包含以下属性的变体数组:

  • variant_name:变体的名称(如小杯、中杯、大杯)
  • variant_price:该变体的价格

创建一个名为 Restaurant Menu 的新 SharePoint 文档库,并上传 RestaurantMenu.json 文件。

从 SharePoint 获取餐厅菜单文件内容

通常情况下,我们会使用知识(Knowledge)将 SharePoint 文档库连接到代理。但在本例中,我们处理的是一个基于文本的文件。因此,我们将添加一个新工具。

添加 SharePoint – Get File Content Using Path 工具。

“Get file content using path” 工具会出现在菜单中。选择该工具以打开工具详情菜单。

将该工具重命名为 Get Restaurant Menu。

将 Site Address 设置为 Restaurant Menu 文档库的 URL 值。

然后将 File Path 设置为 RestaurantMenu.json 的路径(包括文件夹名称)。

创建技能(Skills)来处理特定对话路径

由于我们无法使用主题来定义条件对话路径,因此需要使用技能(Skills)来实现。技能允许代理在满足特定条件时执行特定任务。

技能 1:计算订单总价

创建一个名为 Calculate Order Total 的技能。该技能将负责计算顾客订单的总价,包括任何适用的税费和折扣。

技能 2:处理特殊请求

创建一个名为 Handle Special Requests 的技能。该技能将处理顾客的特殊请求,例如“多加芝士”或“不要生菜”等。

测试完整的代理体验

完成上述所有配置后,回到预览选项卡,测试完整的代理体验。尝试以下操作:

  1. 点一个汉堡和一杯饮料
  2. 询问总价
  3. 提出一个特殊请求(如“不要洋葱”)
  4. 完成下单

代理应该能够无缝处理所有这些对话路径,而无需使用任何主题(Topics)。

总结

在全新的 Copilot Studio 体验中,虽然我们不再拥有主题(Topics)功能,但通过巧妙地结合代理指令(Agent Instructions)、代理技能(Agent Skills)和工具(Tools),我们仍然可以构建强大且灵活的对话式代理。关键是要:

  1. 在指令中清晰定义核心对话流程——这取代了传统主题中的主对话流
  2. 使用技能来处理条件性对话路径——相当于旧版中的子主题
  3. 利用工具来集成外部数据源——如从 SharePoint 获取菜单文件

这种新的编排方式不仅更加灵活,而且更符合自然语言处理的最佳实践。通过迭代测试和优化,你可以创建出用户体验极佳的对话式代理。


本文首发于 Matthew Devaney,原文链接:How To Orchestrate Chat Without Topics In New Copilot Studio

相关文章

有问题?加企业微信 1 对 1 交流 👇
➕ 添加企业微信
备注「白杨」优先通过 · 数据洞察与智能决策
企业微信
企业微信
备注「白杨」优先通过