创建并编辑主题

在 Copilot Studio 主题中定义代理对话的进度。

若要创作主题,您可以自定义提供的模板、从头开始创建主题或说明您想要的内容,让 AI 创建主题

In Copilot Studio 中,a 主题 表示用户与代理之间的聊天线程的某个部分。 您可以在创作画布上定义和处理主题。主题包含一个或多个对话节点,这些节点共同定义了主题可以采用的对话路径。 每个节点都执行一个操作,如发送消息或提出问题。

通常,主题有一组触发短语—客户可能会使用的与特定问题相关的短语、关键词和问题。 Copilot Studio 代理使用自然语言理解、客户的消息以及所有主题的扳机键短语来找到最佳扳机键。 消息不需要与主题的触发短语完全匹配即可触发主题。 例如,关于商店营业时间的主题可能包含触发短语 check store hours。 如果顾客输入“查看商店营业时间”,这将触发您的商店营业时间话题。

先决条件

自然语言理解

代理使用自然语言理解(NLU)来解析客户键入的内容并找到最佳触发短语或节点。

例如,用户可能会键入“Open hours”(开放时间)。代理将其与 Store hours 主题匹配,开始一个对话,询问客户对哪个商店感兴趣,然后显示商店的营业时间。

测试 代理 窗格显示代理对话在每个步骤的进度。 您可以使用 Test 代理 (测试 #)窗格来微调主题,而无需退出 Copilot Studio 门户。

有关代理和主题限制,请参阅 配额、限制、应用程序注册、证书和配置值

Copilot Studio 中的主题

主题类型

代理可以包含两种类型的主题: systemcustom 主题。 每个新的代理都以一组预定义的系统和自定义主题开始。

  • 系统主题支持基本行为,例如与某人交谈或结束对话的自定义请求。 一些系统主题有扳机键短语,您可以自定义这些短语以满足代理的需求。

    • 您无法创建系统主题。
    • 您不能删除系统主题,但可以禁用它们。
    • 您可以更改系统主题。 但是,在您能够轻松创建完整的代理体验之前,我们不建议编辑系统主题。

    有关详细信息,请参阅使用系统主题

  • 预定义的自定义主题涵盖常见行为,如问候客户、结束对话或重新启动对话。

    • 您可以更改预定义的自定义主题,也可以将其从代理中完全删除。
    • 您创建的所有主题都是自定义主题。

节点类型

以下是可用的节点类型:

选项 Description
发送邮件 给客户发送消息。
提出问题 向客户提问。
使用自适应卡片询问 创建一个 JSON 代码片段来与其他应用程序交换。
使用条件创作 根据条件转移对话。
变量管理 设置值、解析值或清除所有变量。
管理主题 重定向、传输或结束主题或对话。
调用流 调用类似 Power Automate 或 Excel Online 的流,或者使用连接器或插件。
高级 生成式答案HTTP 请求事件等等。

小费

重命名节点,使其更容易识别。 选择节点的名称字段以直接更新名称,或者选择节点的更多图标 (),然后从菜单中选择重命名。 您也可以在代码编辑器中重命名节点。

无法重命名触发器节点和转到步骤节点。

节点名称最长可达 500 个字符。

创建主题

  1. 从代理 页面的列表中 打开您的代理。 为了获得更好的可见性,请暂时关闭 Test your 代理 (测试你的 #)面板。

  2. 在顶部菜单栏上,选择主题

  3. 选择添加主题,然后选择从空白

    触发器节点出现在空白的主题创作画布上。

  4. 选择触发器节点的更多图标 (),然后选择属性。 将显示识别的意图属性面板。

  5. 识别的意图属性面板中,选择短语区域。 此时会出现短语二级面板。

  6. 添加短语下,为您的主题输入一个触发短语。

    您的代理需要 5 到 10 个扳机键短语来训练 AI 理解客户的反应。 若要添加更多触发短语,您可以:

    • 选择文本字段旁边的添加图标,并输入所需的短语。
    • 粘贴一组触发短语,每个短语单独一行,然后选择输入
    • 键入一组触发短语,在每个短语后按 Shift+Enter,将其放在单独的一行上,然后选择Enter

    您可以在触发短语中包含标点符号,但最好使用短句而不是长句。

  7. 选择工具栏上的详细信息,打开主题详细信息面板。

  8. 添加您的代理主题详细信息:

    • 输入名称以标识主题,例如“商店营业时间”。Topics (主题 )页面按此名称列出了代理中定义的所有主题。
    • 如果需要,请输入一个显示名称,当代理无法确定哪个主题与客户的消息匹配时,向客户显示。
    • 如果需要,请使用 Description 字段为您自己和团队中的其他代理制作者描述主题的用途。 客户永远不会看到主题描述。
  9. 选择顶部菜单栏上的保存,保存您的主题。

重要提示

避免在主题名称中使用句点 (.)。 无法导出包含任何主题名称中带有句点的代理的解决方案。

设计主题对话路径

创建主题时,触发器节点会自动出现在创作画布上。 然后,您可以添加不同类型的节点,实现您的主题所需的对话路径。

要在主题创作画布上的另一个节点之后或两个节点之间添加节点:

  1. 选择您要在其下添加新节点的节点下方的添加节点图标

  2. 从出现的列表中选择所需的节点类型

    用于选择在触发器节点后插入节点的选项的屏幕截图。

删除注释

选择您要删除的节点的更多图标 (),然后选择删除

用于编辑区域上的节点的控件

可以使用工具栏上的控件剪切、复制、粘贴和删除选定节点或选定相邻节点。

用于编辑创作画布上的节点的 toolbar 控件的屏幕截图。

工具栏还有一个撤销编辑的控件。 打开撤消菜单,将所有操作恢复到上次保存的状态,或重做上一个操作。

撤消菜单的屏幕截图。

粘贴节点

使用剪切复制工具将一个或多个节点放入剪贴板后,有两种方法可以将它们粘贴到画布中:

  • 如果选择某个节点,然后选择粘贴,则剪贴板上的节点会插入到所选节点之后。

  • 如果您选择“+”来查看添加节点菜单,然后选择粘贴,剪贴板上的节点将插入到该位置。

为主题添加输入和输出参数

主题可以有输入和输出参数。 当主题重定向到另一个主题时,您可以使用这些参数在主题之间传递信息。

此外,如果您的代理使用 生成模式,它可以自动填充对话上下文中的主题输入,或者在生成问题后从用户那里收集值。 此行为类似于操作的生成式时隙填充的工作方式。

要了解有关主题输入和输出参数的更多信息,请参阅管理主题输入和输出

使用代码编辑器编辑主题

代码编辑器在 YAML 中显示主题,这是一种易于读取和理解的标记语言。 使用代码编辑器复制和粘贴来自其他机器人的主题,甚至是其他作者创建的主题。

重要提示

不完全支持完全在代码编辑器中设计主题以及粘贴复杂主题。

在本例中,您将 YAML 复制并粘贴到代码编辑器中,以快速添加一个向客户询问运输信息的主题。

  1. 主题页面上,选择+ 创建>从空白

  2. 在创作画布的右上角,选择更多,然后选择打开代码编辑器

    如何打开主题的代码编辑器的屏幕截图。

  3. 选择并删除代码编辑器的内容。 然后复制并粘贴以下 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.
    
  4. 选择保存,然后选择关闭代码编辑器问题节点现在有许多关于运输的条件。

    Copilot Studio 代码编辑器中从 YAML 创建的对话的屏幕截图。

测试并发布您的代理

在更改主题时测试代理 ,以确保一切按预期工作。

设计并测试代理后, 将其发布到 Web、移动或本机应用程序或 Microsoft Bot Framework 渠道