Playbook 参数

剧本可以使用显式定义的参数接受和发出上下文信息。参数用于存储有关对话的信息,例如用户选择、操作结果等。您可以在 Playbook 和流程之间传递这些参数的值。

参数声明

您可以定义输入参数输出参数

使用 Agent Builder 控制台时,您可以在代理编辑器页面上定义参数。

使用 Dialogflow CX 控制台时,创建 playbook 后,您可以使用参数标签页为每个 playbook 定义参数。

参数具有名称、说明,以及以下类型之一:

  • 字符串
  • 数字
  • 布尔值
  • 特定于工具的参数类型

您还可以指定参数是否为列表。

输入参数

借助输入参数,剧本可以使用从流程和其他剧本传递的值。例如,剧本可能作为参数接收用户的首选名称,并使用该名称向用户表示个人感谢;或者,它可能作为参数接收订单标识符,并使用该标识符通过工具检索订单详情。

输入参数是按 Playbook 定义的,Playbook 默认情况下无法看到 其他 Dialogflow CX 控制台参数类型。当流程转换为 Playbook 时,如果目标 Playbook 具有同名的输入参数,则页面和会话参数会传播到 Playbook。如需在转换期间将信息从流程传递到剧本,请定义与转换前存在的会话或页面参数同名的剧本输入参数。

创建示例以控制输入参数值对操作的影响。例如,如果输入参数应影响客服人员对用户的称呼方式,请创建示例来为该参数定义值,然后在示例中的语音指令操作中使用相同的值。如需了解详情,请参阅传递参数

输出参数

借助输出参数,剧本可以发出供其他流程或剧本使用的相关信息。例如,Playbook 可以从用户收集订单号,并通过输出参数发出该订单号;Playbook 也可以使用工具预订航班,并通过输出参数发出确认号。

创建示例以控制 Playbook 应如何确定每个输出参数的值。例如,如果表示确认号的输出参数应从工具使用情况的输出中派生其值,请创建示例,其中工具使用情况的输出与 Playbook 输出参数的值相匹配。

传递参数

与流程不同,Playbook 支持使用特定语法注入参数值。而是依靠说明和少样本问题示例来确定应如何使用参数值,以及在指定参数值时应如何确定值。

假设有一个专为销售活动门票而设计的客服人员,其具有以下 Playbook:

  1. 名为 Ticket ordering 的 Playbook,该 Playbook 使用名为 Ticket sales API 的工具下单。
    1. 此 Playbook 接受类型为 number 且名称为 event_id 的输入参数。
    2. Ticket sales API 工具预期收到包含 event_id 的请求。
  2. 名为 Event selection 的 Playbook,用于帮助用户选择活动,然后将他们定向到 Ticket ordering(并带有参数 event_id),以便购买票券。

在此示例中,为了确保 event_id 能够可靠地从 Event selection 传递到 Ticket ordering,并从 Ticket ordering 传递到 Ticket sales API,需要多个示例

Ticket ordering Playbook 应包含多个示例,这些示例应满足以下条件:

  • 为输入参数 event_id 指定一些实际值,每个示例中的值都不同。
  • 在请求正文中添加工具使用操作,其中包含与输入参数中指定的相同的真实 event_id 值。

Event selection Playbook 应包含多个示例,这些示例应满足以下条件:

  • 添加用户语句,其中用户选择了具有一些现实 event_id 的事件,每个示例中的 event_id 都不同。
  • 添加 Ticket ordering 的 Playbook 调用,将 event_id 参数设置为与用户选择决定的相同的真实 event_id

除了添加示例之外,不妨尝试在说明目标工具详情中添加具体说明,说明应如何使用参数。例如,操作手册 Ticket ordering 包含以下说明:

- Use parameter event_id to send a buy_tickets request with ${TOOL: Ticket sales API}

在提供所述示例和说明的情况下,Event selection 手册会根据用户的选择正确确定 event_id,并将其作为名为 event_id 的输入参数传递给 Ticket ordering playbook。然后,Ticket ordering 会将请求正文中的相同 event_id 传递给 Ticket sales API。手册依赖于具有不同参数值的示例,以帮助推断参数的使用方式。