游戏手册可以使用显式定义的参数接受和发出上下文信息。参数用于存储有关对话的信息,例如用户选择、操作结果等。您可以在 Playbook 和流程之间传递这些参数的值。
参数声明
使用 Agent Builder 控制台时, 您可以在代理编辑器页面上定义参数。
使用 Dialogflow CX 控制台时,创建 playbook 后,您可以使用参数标签页为每个 playbook 定义参数。
参数包括名称、说明 以及以下任一类型:
- 字符串
- 数字
- 布尔值
- 特定于工具的参数类型
您还可以指定某个参数是否为列表。
输入参数
输入参数允许 playbook 使用传递的值 以及其他 playbook 中的操作。 例如,剧本可能作为参数接收用户的首选名称,并使用该名称亲自向用户致谢;或者,它可能作为参数接收订单标识符,并使用该标识符通过工具检索订单详情。
输入参数是按 playbook 定义的,而 playbook 则没有 公开范围 其他 Dialogflow CX 控制台参数类型 默认情况。 当流程转换为 Playbook 时,如果目标 Playbook 具有同名的输入参数,则页面和会话参数会传播到 Playbook。如需在过渡期间将信息从流传递到 playbook, 定义与会话同名的 playbook 输入参数 或页面参数。
创建示例以控制输入参数值对操作的影响。例如,如果输入参数应影响客服人员对用户的称呼方式,请创建示例来为该参数定义值,然后在示例中的语音指令操作中使用相同的值。如需了解详情,请参阅传递参数。
输出参数
借助输出参数,剧本可以发出供其他流程或剧本使用的相关信息。例如,playbook 可能会从 并通过输出参数发出 或者 playbook 可能会使用 工具 预订航班并通过输出参数发出确认号。
创建示例来控制策略方案应如何做出决定 每个输出参数的值。 例如,如果表示确认号的输出参数应从工具使用情况的输出中派生其值,请创建示例,其中工具使用情况的输出与 Playbook 输出参数的值相匹配。
传递参数
与流程不同,Playbook 不支持使用特定语法注入参数值。而是依靠说明和少样本问题示例来确定应如何使用参数值,以及在指定参数值时应如何确定值。
假设有一个专为销售活动门票而设计的客服人员,其具有以下 Playbook:
- 一个名为
Ticket ordering
的 playbook,使用工具下单 名为Ticket sales API
。- 此 Playbook 接受类型为
number
且名称为event_id
的输入参数。 Ticket sales API
工具预期收到包含event_id
的请求。
- 此 Playbook 接受类型为
- 名为
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
,每个示例中都不同。 - 添加
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
。手册依赖于具有不同参数值的示例,以帮助推断参数的使用方式。