策略方案

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

区域支持

以下区域支持 playbook

  • 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 由以下数据组成:

  • 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

  1. 调用方启动被调用方。
  2. 调用方为被调用方提供必要的输入参数。
  3. 被调用方处理此信息,执行其指定的功能,并返回输出参数。
  4. 调用方从被调用方接收参数。

任何例程或任务 playbook 都可以调用另一个任务 playbook,但任务 playbook 无法调用另一个例程 playbook。

例程 playbook

例程 playbook 是一种新型 playbook。 它们用于对顺序对话阶段进行建模,其中每个阶段都是完整且独立的。 它们可以调用任务 playbook 将较大任务分解为较小的子任务,并且可以转换为其他例程 playbook 或流。

以下示例展示了一个例程 playbook (A) 转换为另一个例程 playbook (B),然后转换为流 (C):

一个例程 playbook 调用另一个例程 playbook

  1. 例程 playbook A 可以在启动时读取会话参数,并在退出前写入会话参数。
  2. 例程 playbook A 退出并转换为例程 playbook B。
  3. 例程 playbook B 可以在启动时读取会话参数,并在退出前写入会话参数。
  4. 例程 playbook B 退出并转换为流 C。
  5. 流 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,请执行以下操作:

  1. 点击控制台左侧导航栏中的 playbook 图标。
  2. 点击新建 按钮。
  3. 选择例程任务 playbook 类型。
  4. 提供 playbook 数据

使用 AI 生成功能创建 playbook

创建 playbook 时,系统会打开一个生成式 AI 面板。 您可以使用此面板为您生成 playbook 数据。

导入和导出 playbook

使用对话代理控制台创建 playbook 后,您可以导出这些 playbook 以供其他代理使用。 如需导出 playbook,请执行以下操作:

  1. 前往 playbook 列表。
  2. 点击要导出的 playbook 的导出按钮。
  3. 选择导出选项。
  4. 点击导出

如需导入之前导出的 playbook,请执行以下操作:

  1. 前往 playbook 列表。
  2. 点击导入
  3. 选择导入选项。
  4. 点击导入