playbook 是生成式代理的基本构建块。 生成式代理通常具有许多 playbook,其中每个 playbook 都定义为处理特定任务。 playbook 数据被提供给 LLM,以便 LLM 获得回答问题和执行任务所需的信息。 每个 playbook 都可以提供信息、向外部服务发送查询,或者将对话处理推迟到数据流或其他 playbook 来处理子任务。
限制
存在以下限制:
- 使用剧本的客服人员不支持从默认初始流中的默认欢迎意图路由发送通话助手短信,但您可以在标准流程中启用通话助手短信选项。
- 剧本不支持来自电话系统的 DTMF 输入。
语言支持
请参阅语言参考中的剧本列。
已针对使用 gemini-2.0-flash
和 gemini-1.5-flash-002
模型的剧本测试了标记的语言的质量。
使用英语以外的语言时:
- 在大多数情况下,请使用英语编写剧本说明。 对于某些语言和使用情形,如果您还提供目标语言的指令,可能会获得略微更好的回答。
- 在剧本说明中声明语言支持。 例如:“Always answer using the French language”(始终使用法语回答)。
- 以目标语言定义示例。
模型支持
您可以在以下位置选择在 playbook 中使用的 LLM 模型:
在代理级选择 LLM 模型。
- 在“对话代理”控制台的“代理”设置 ->“生成式 AI” ->“playbook”中,从所有可用模型的下拉菜单中按显示名称选择模型。
- 如果您使用 API 更新代理设置,请在 GenerativeSettings.llm_model_settings.model 字段中指定模型名称(请参阅 GenerativeSettings)。
在请求级别替换模型选择。
- 在对话代理控制台模拟器中,测试 playbook 时,从下拉菜单中按显示名称选择模型。
- 如果您是通过 API 测试代理,请在 DetectIntentRequest.query_params.llm_model_settings.model 字段中指定模型名称(请参阅 DetectIntentRequest)。
模型名称 | 模型规范 | 发布阶段 |
---|---|---|
gemini-2.5-flash | Gemini 2.5 flash | GA |
gemini-2.5-flash-lite | Gemini 2.5 flash lite | GA |
gemini-2.0-flash-001 | Gemini 2.0 flash | GA |
gemini-2.0-flash-lite-001 | Gemini 2.0 Flash Lite | GA |
gemini-1.5-flash-001 | Gemini 1.5 Flash | 旧版 |
gemini-1.5-flash-002 | Gemini 1.5 Flash | 旧版 |
地区支持
以下地区支持剧本:
global
asia-south1
asia-southeast1
asia-southeast2
asia-northeast1
australia-southeast1
eu
(多区域)europe-west1
europe-west2
europe-west3
europe-west4
europe-west6
northamerica-northeast1
us
(多区域)us-central1
us-east1
us-west1
Playbook 数据
剧本包含以下数据:
- playbook 名称:一种简洁的自然语言名称,有助于开发者和 LLM 了解 playbook 处理的任务
- 目标:playbook 应实现的目标的简要说明
- 指令:定义为实现目标应采取的流程步骤
- 示例:可作为 LLM 少样本提示示例的对话示例
- 参数:用于存储有关对话的信息,例如用户输入、用户系统信息、操作结果等。
LLM 提示
在每个对话轮次中,Conversational Agents (Dialogflow CX) 都会使用设计时 playbook 数据和运行时对话数据在令牌限制内创建 LLM 提示。 此提示的内容总结如下,其中标题仅用于说明,不一定属于提示的一部分。
# INTERNAL_SYSTEM_PROMPT
<you cannot see or edit this>
# INTERNAL_SYSTEM_EXAMPLES
<you cannot see or edit this>
# AVAILABLE_TOOLS_TO_CURRENT_PLAYBOOK
<tool names and schemas, for example...>
## Tool: my_datastore
description: blah
input: blah
output: blah
## Tool: some_other_custom_tool
description: blah
input: blah
output: blah
# PLAYBOOK
<verbatim Goal and Instructions that you provide in the console>
# PLAYBOOK_EXAMPLES
<as many Examples for the current Playbook as can fit in the prompt>
## Example 1
## Example 2
..
..
..
## Example N (up to the input token limit)
# CURRENT_CONVERSATION
<the conversation up to this point w/ some caveats...>
* Caveat 1: If there was a transition from Playbook A -> Playbook B, the
Conversation that happened in Playbook A is summarized and provided as context
* Caveat 2: If there was a transition from Flow A -> Playbook A, the
Conversation that happened prior to the entry of Playbook A is summarized and
provided to the Playbook
playbook 类型
创建 playbook 时,您可以选择所需的 playbook 类型:任务 playbook 或日常安排 playbook。
任务 playbook
任务 playbook 是原始类型的 playbook。 它们用于将复杂的任务分解为可重复使用的小型子任务。 它们用于对组合式对话阶段进行建模,其中每个阶段都通过输入和输出参数进行通信。
以下示例展示了一个任务 playbook(调用方)调用另一个任务 playbook(被调用方):
- 来电者启动被叫者。
- 调用方为被调用方提供必要的输入参数。
- 被调用方处理此信息,执行其指定的功能,并返回输出参数。
- 调用方从被调用方接收参数。
任何例程或任务 playbook 都可以调用其他任务 playbook,但任务 playbook 无法调用其他例程 playbook。
日常安排 playbook
常规策略方案是一种新型策略方案。 它们用于对顺序对话阶段进行建模,其中每个阶段都是完整且独立的。它们可以调用任务 playbook 将较大任务分解为较小的子任务,并且可以过渡到其他常规 playbook 或流程。
下图显示了从常规剧本 (A) 过渡到另一个常规剧本 (B),再过渡到流程 (C) 的过程:
- 日常安排剧本 A 可以在启动时读取会话参数,并在退出前写入会话参数。
- 例程 playbook A 退出并过渡到例程 playbook B。
- 日常安排剧本 B 可以在启动时读取会话参数,并在退出前写入会话参数。
- 常规 playbook B 退出并过渡到流程 C。
- 流程 C 可以读取和写入会话参数。
如果常规 playbook 未转换到其他常规 playbook 或流程,会话将返回到上次活跃的流程,如果没有,则会话结束。
常规 playbook 具有以下参数管理行为:
- 当进入常规 playbook 时,其输入参数会被分配与同名会话参数等效的值。
- 当常规 playbook 退出时,它会为其输出参数生成值,并将这些值分配给同名的会话参数。
比较 playbook 类型
类别 | 任务手册 | 日常安排 playbook |
---|---|---|
延迟时间 | 每次任务 playbook 调用另一个任务 playbook 时,都会进行一次 LLM 调用。如果在一个对话轮次中存在很长的任务 playbook 链,这可能会增加延迟时间。 | 一系列过渡中的每个常规剧本都发生在单个对话轮次中,因此只有一次 LLM 调用,延迟也得到了改善。 |
参数重新生成 | 当任务 playbook 调用另一个任务 playbook 时,需要重新生成参数值。如果任务 playbook 链很长,这种重新生成可能会导致上下文丢失。 | 常规 playbook 使用会话存储空间来存储参数,从而创建更可靠的上下文。 |
会话参数集成 | 任务 playbook 与会话参数的交互效果不佳,因此需要定义输入和返回参数。 | 常规剧本可与会话参数很好地搭配使用。 |
可重用性 | 由于每个任务 playbook 都具有固定的父子关系,因此任务紧密耦合。 | 常规 playbook 可以单独定义。 |
默认策略方案
使用 Conversational Agents 控制台创建生成式代理时,系统会自动创建默认生成式 playbook。
默认 playbook 是对话的起点,因此与其他 playbook 相比,它有一些重要的区别:
- 默认 playbook 不会收到之前对话轮次的摘要。
- 默认 playbook 无法定义或接收输入参数。
创建策略方案
如需创建 playbook,请执行以下操作:
- 点击控制台左侧导航栏中的 playbook 图标。
- 点击新建按钮。
- 选择日常安排或任务策略方案类型。
- 提供 playbook 数据。
使用 AI 生成功能创建 playbook
创建 playbook 时,系统会打开生成式 AI 面板。 您可以使用此功能为您生成 playbook 数据。
导入和导出剧本
使用“对话代理”控制台创建 playbook 后,您可以导出这些 playbook 以供其他代理使用。 如需导出 playbook,请执行以下操作:
- 前往 playbook 列表。
- 点击要导出的剧本对应的导出按钮。
- 选择导出选项。
- 点击导出。
如需导入之前导出的 playbook,请执行以下操作:
- 前往 playbook 列表。
- 点击导入。
- 选择导入选项。
- 点击导入。