Playbook 是生成式代理的基本构建块。生成式代理通常具有许多 playbook,其中每个 playbook 都定义为处理特定任务。 playbook 数据被提供给 LLM,以便 LLM 获得回答问题和执行任务所需的信息。 每个 playbook 都可以提供信息、 向外部服务发送查询, 或者将对话处理推迟到 流程 或其他 playbook 来处理子任务。
限制
存在以下限制:
- 使用 playbook 的代理不支持从默认初始流中的默认欢迎意图路由发送 通话助手 短信,但您可以在标准流中启用通话 助手短信选项。
- Playbook 不支持来自电话系统的 DTMF 输入。
语言支持
请参阅Playbook 列在
语言参考中。
已针对 playbook 标记的语言使用 gemini-2.0-flash 模型进行了质量测试。
使用英语以外的语言时:
- 在大多数情况下,请使用英语来编写 playbook 说明。 对于某些语言和使用情形,如果您额外提供目标语言的说明,可能会获得稍好的响应。
- 在 playbook 说明中声明您的语言支持。 例如:“始终使用法语回答”。
- 使用目标语言定义示例。
模型支持
您可以在以下位置选择 playbook 中使用的 LLM 模型:
在代理级选择 LLM 模型。
- 在对话代理控制台的“代理设置”->“生成式 AI”->“Playbook”中,从所有可用模型的下拉列表中按显示名称选择模型。
- 如果您使用 API 更新代理设置(请参阅 GenerativeSettings),请在 GenerativeSettings.llm_model_settings.model 字段中指定模型名称。
在请求级替换模型选择。
- 在对话代理控制台模拟器中,测试 playbook 时,从下拉列表中按显示名称选择模型。
- 如果您通过 API 测试代理(请参阅 DetectIntentRequest),请在 DetectIntentRequest.query_params.llm_model_settings.model 字段中指定模型名称。
| 模型名称 | 模型规范 | 发布阶段 |
|---|---|---|
| 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 |
区域支持
globalasia-south1asia-southeast1asia-southeast2asia-northeast1australia-southeast1eu(多区域)europe-west1europe-west2europe-west3europe-west4europe-west6northamerica-northeast1us(多区域)us-central1us-east1us-west1
Playbook 数据
Playbook 由以下数据组成:
- Playbook 名称:简明自然的语言名称,有助于开发者和 LLM 了解 playbook 处理的任务
- 目标: 对 playbook 应实现的目标的简要说明
- 说明: 定义应采取的流程步骤以实现目标
- 示例: 示例对话,实际上是 LLM 的少样本提示示例
- 参数: 用于存储有关对话的信息,例如 用户输入、用户系统信息、操作结果、 等等。
LLM 提示
对于每个对话轮次, Dialogflow CX 都会使用设计时 playbook 数据 和运行时对话数据在 令牌限制内创建大语言模型提示。此提示的内容总结如下,其中标题仅用于说明,不一定是提示的一部分。
# 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。 它们用于对顺序对话阶段进行建模,其中每个阶段都是完整且独立的。 它们可以调用任务 playbook 将较大任务分解为较小的子任务,并且可以转换为其他例程 playbook 或流。
以下示例展示了一个例程 playbook (A) 转换为另一个例程 playbook (B),然后转换为流 (C):

- 例程 playbook A 可以在启动时读取会话参数,并在退出前写入会话参数。
- 例程 playbook A 退出并转换为例程 playbook B。
- 例程 playbook B 可以在启动时读取会话参数,并在退出前写入会话参数。
- 例程 playbook B 退出并转换为流 C。
- 流 C 可以读取和写入会话参数。
如果例程 playbook 未转换为另一个例程 playbook 或流,则会话将返回到上次活跃的流,如果没有活跃的流,则会话将结束。
例程 playbook 具有以下参数管理行为:
- 输入例程 playbook 时,其输入参数会被分配与同名会话参数等效的值。
- 退出例程 playbook 时,它会为其输出参数生成值,并将其分配给同名会话参数。
比较 playbook 类型
| 类别 | 任务 playbook | 例程 playbook |
|---|---|---|
| 延迟时间 | 每次任务 playbook 调用另一个任务 playbook 时,都会进行 LLM 调用。对于一个对话轮次中的长链任务 playbook,这可能会增加延迟时间。 | 一系列转换中的每个例程 playbook 都发生在单个对话轮次中,因此只有一个 LLM 调用,延迟时间有所缩短。 |
| 参数重新生成 | 当任务 playbook 调用另一个任务 playbook 时,需要重新生成参数值。如果存在长链任务 playbook,则此重新生成可能会导致上下文丢失。 | 例程 playbook 使用会话存储来存储参数,从而创建更可靠的上下文。 |
| 会话参数集成 | 任务 playbook 与会话参数的接口不佳,而是需要定义输入和返回参数。 | 例程 playbook 与会话参数的接口良好。 |
| 可重用性 | 由于每个任务 playbook 都具有固定的父子关系,因此任务紧密耦合。 | 例程 playbook 可以彼此独立定义。 |
默认 playbook
使用对话代理控制台创建生成式代理时,系统会自动创建默认生成式 playbook 。
默认 playbook 是对话的起点,因此它与其他 playbook 有一些重要的区别:
- 默认 playbook 不会收到先前对话轮次的摘要。
- 默认 playbook 无法定义或接收输入参数。
创建 playbook
如需创建 playbook,请执行以下操作:
- 点击控制台左侧导航栏中的 playbook 图标。
- 点击新建 按钮。
- 选择例程 或任务 playbook 类型。
- 提供 playbook 数据。
使用 AI 生成功能创建 playbook
创建 playbook 时,系统会打开一个生成式 AI 面板。 您可以使用此面板为您生成 playbook 数据。
导入和导出 playbook
使用对话代理控制台创建 playbook 后,您可以导出这些 playbook 以供其他代理使用。 如需导出 playbook,请执行以下操作:
- 前往 playbook 列表。
- 点击要导出的 playbook 的导出按钮。
- 选择导出选项。
- 点击导出 。
如需导入之前导出的 playbook,请执行以下操作:
- 前往 playbook 列表。
- 点击导入 。
- 选择导入选项。
- 点击导入 。