在 Copilot Studio 中,主题定义了代理对话如何进行。
要创建主题,您可以描述您想要的内容,然后让人工智能为您创建主题,或者从头开始创建主题。
在 Copilot Studio 中,主题表示用户和代理之间对话线索的某个部分。 您可以在创作画布上定义和处理主题。主题包含一个或多个对话节点,这些节点共同定义了主题可以采用的对话路径。 每个节点都执行一个操作,如发送消息或提出问题。
有关智能体和主题限制的更多信息,请参阅配额、限制、应用程序注册、证书和配置值。
先决条件
- 要创建代理,请参阅快速入门:创建和部署代理。
选择正确的主题来响应用户
为了决定如何响应用户,智能体可以使用生成式协调或经典协调。
通过生成式协调,智能体可确定最合适的主题、操作和知识组合,用于回答用户询问或响应事件触发。 每个主题都有一个描述,告知代理其用途。 了解有关撰写描述的更多信息。
在配置为使用经典协调的智能体中,每个主题都有一组触发短语 - 客户可能用于查询特定问题的短语、关键词和问题。 这些代理使用自然语言理解、客户的消息和主题的触发短语来查找要触发的最佳主题。 客户输入不需要完全匹配主题触发短语即可触发主题。 例如,有关商店营业时间的主题可能具有触发短语“检查商店营业时间”。如果客户输入“查看商店营业时间”,此短语将触发您的商店营业时间主题。 了解有关编写触发短语的更多信息。
Copilot Studio 中的主题
主题类型
智能体可以拥有两种类型的主题:系统和自定义主题。 每个新代理都从一组预定义的系统主题和自定义主题开始。
系统主题支持基本行为,例如与某人交谈或结束对话的自定义请求。 一些系统主题有触发短语,您可以根据代理的需求进行定制。
- 您无法创建系统主题。
- 您不能删除系统主题,但可以禁用它们。
- 您可以更改系统主题。 但是,在您习惯创建完整的代理体验之前,我们不建议您编辑系统主题。
有关详细信息,请参阅使用系统主题。
预定义的自定义主题涵盖常见行为,如问候客户、结束对话或重新启动对话。
- 您可以更改预定义的自定义主题,或将其彻底从代理中删除。
- 您创建的所有主题都是自定义主题。
节点类型
以下是可用的节点类型:
节点类型 | Description |
---|---|
信息节点 | 给客户发送消息。 |
问题节点 | 向客户提问。 |
自适应卡片节点 | 创建一个 JSON 代码片段来与其他应用程序交换。 |
条件节点 | 根据条件转移对话。 |
变量管理节点 | 设置值、分析值或清除变量(包括清除代理使用的对话历史记录的功能)。 |
主题管理 | 重定向对话、转移用户或结束主题或对话。 |
调用工具节点 | 调用 Power Automate 或 Excel Online 等流,或使用连接器或其他类型的工具。 |
高级 | 发送生成式答案、HTTP 请求、事件等等。 |
小费
重命名节点,使其更容易识别。 选择节点的名称字段以直接更新名称,或者选择节点的更多图标 (…),然后从菜单中选择重命名。 您也可以在代码编辑器中重命名节点。
无法重命名触发器节点和转到步骤节点。
节点名称最长可达 500 个字符。
创建主题
转到代理的主题页面。 为了获得更好的可见性,请暂时关闭测试面板。
选择添加主题,然后选择从空白。
触发器节点出现在空白的主题创作画布上。
选择触发器节点的更多图标 (…),然后选择属性。 将显示识别的意图属性面板。
在识别的意图属性中,选择短语区域。 此时会出现短语二级面板。
在添加短语下,为您的主题输入一个触发短语。
您的代理需要 5 到 10 个触发短语来训练 AI 理解您的客户的回复。 若要添加更多触发短语,您可以:
- 选择文本字段旁边的添加图标
,并输入所需的短语。
- 粘贴一组触发短语,每个短语单独一行,然后选择输入。
- 键入一组触发短语,在每个短语后按 Shift+Enter,将其放在单独的一行上,然后选择Enter。
- 上传文件列出要为此主题添加的触发短语。
您可以在触发短语中包含标点符号,但最好使用短句而不是长句。
- 选择文本字段旁边的添加图标
选择工具栏上的详细信息,打开主题详细信息面板。
为您的主题添加详细信息:
- 输入名称以标识主题,如“商店营业时间”。主题页面按名称列出了您的代理中定义的所有主题。
- 如果需要,输入显示名称,在代理无法确定与客户的邮件匹配的主题时显示给客户。
- 如有需要,使用描述字段为您自己和团队中的其他代理制作者描述主题的目的。 客户永远不会看到主题描述。
选择顶部菜单栏上的保存,保存您的主题。
重要提示
避免在主题名称中使用句点 (.
)。 无法导出包含任何主题名称中带有句点的代理的解决方案。
上传主题的触发短语
在主题的触发器节点的短语面板中,您可以添加或替换与主题相关的触发短语集。
准备一个文本文件(最大 3 MB),列出要为主题添加的所有触发短语,每个短语都放在单独的行上。
在添加短语下,选择上传文件。
在上传文件中,选择所需的选项:
- 如果要为主题添加新的触发词组,请选择添加。
- 要使用文件中的列表替换所有现有触发短语,请选择替换。
将文件拖放到窗口上。 或者,选择单击浏览,导航到文件并将其选中。
查看出现的触发短语,然后选择添加。
保存您的主题。
下载主题的触发短语
在主题触发器节点的短语面板中,可以下载与主题相关的触发短语集。
在添加短语下,选择下载。
保存生成的文本文件,或在文本编辑器中打开查看其内容。 每个触发短语都显示在单独的行上。
设计主题对话路径
创建主题时,触发器节点会自动出现在创作画布上。 然后,您可以添加不同类型的节点,实现您的主题所需的对话路径。
要在主题创作画布上的另一个节点之后或两个节点之间添加节点:
选择您要在其下添加新节点的节点下方的添加节点图标
。
从出现的列表中选择所需的节点类型。
删除注释
选择您要删除的节点的更多图标 (…),然后选择删除。
用于编辑区域上的节点的控件
可以使用工具栏上的控件剪切、复制、粘贴和删除选定节点或选定相邻节点。
工具栏还有一个撤销编辑的控件。 打开撤消菜单,将所有操作恢复到上次保存的状态,或重做上一个操作。
粘贴节点
使用剪切或复制工具将一个或多个节点放入剪贴板后,有两种方法可以将它们粘贴到画布中:
如果选择某个节点,然后选择粘贴,则剪贴板上的节点会插入到所选节点之后。
如果您选择“+”来查看添加节点菜单,然后选择粘贴,剪贴板上的节点将插入到该位置。
为主题添加输入和输出参数
主题可以有输入和输出参数。 当主题重定向到另一个主题时,您可以使用这些参数在主题之间传递信息。
此外,如果您的代理使用生成式模式,它可以从对话上下文中自动填充主题输入,或者在生成问题后从用户那里收集值。 此行为类似于操作的生成式时隙填充的工作方式。
要了解有关主题输入和输出参数的更多信息,请参阅管理主题输入和输出。
使用代码编辑器编辑主题
代码编辑器在 YAML 中显示主题,这是一种易于读取和理解的标记语言。 使用代码编辑器复制和粘贴来自其他机器人的主题,甚至是其他作者创建的主题。
重要提示
不完全支持完全在代码编辑器中设计主题以及粘贴复杂主题。
在本例中,您将 YAML 复制并粘贴到代码编辑器中,以快速添加一个向客户询问运输信息的主题。
在主题页面上,选择创建>从空白。
在创作画布的右上角,选择更多,然后选择打开代码编辑器。
选择并删除代码编辑器的内容。 然后复制并粘贴以下 YAML 代码:
kind: AdaptiveDialog beginDialog: kind: OnRecognizedIntent id: main intent: displayName: Lesson 3 - A topic with a condition, variables and a prebuilt entity triggerQueries: - Buy items - Buy online - Buy product - Purchase item - Order product actions: - kind: SendMessage id: Sjghab message: I am happy to help you place your order. - kind: Question id: eRH3BJ alwaysPrompt: false variable: init:Topic.State prompt: To what state will you be shipping? entity: StatePrebuiltEntity - kind: ConditionGroup id: sEzulE conditions: - id: pbR5LO condition: =Topic.State = "California" || Topic.State = "Washington" || Topic.State = "Oregon" elseActions: - kind: SendMessage id: X7BFUC message: There will be an additional shipping charge of $27.50. - kind: Question id: 6lyBi8 alwaysPrompt: false variable: init:Topic.ShippingRateAccepted prompt: Is that acceptable? entity: BooleanPrebuiltEntity - kind: ConditionGroup id: 9BR57P conditions: - id: BW47C4 condition: =Topic.ShippingRateAccepted = true elseActions: - kind: SendMessage id: LMwySU message: Thank you and please come again.
选择保存,然后选择关闭代码编辑器。 问题节点现在有许多关于运输的条件。
测试并发布您的代理
对您的主题进行更改时,请测试您的代理,以确保一切按预期运行。
在您设计并测试您的代理后,将其发布到网络、移动或本地应用程序,或 Microsoft Bot Framework 渠道。