Playbook 最佳实践

以下最佳实践可帮助您构建强大的代理。

Playbook 的自然语言名称

Playbook 名称应清晰、具有描述性,并使用自然英语。这有助于提升 AI 生成器在运行时的性能。例如,“客户帮助中心 Playbook”比“company_specialist”更好。

所有名称(包括英文字母和空格)均不得超过 64 个字符。

简洁的目标

目标应简明扼要地描述 playbook 的用途。

提供高质量的指令

指令应该:

  • 反映解决最终用户问题的分步方法。
  • 使用简明扼要的自然语言句子,提供高级指令。
  • 请直截了当,并指定工具的使用场景。

每个 playbook 至少有一个示例

每个 playbook 应至少有一个示例,但建议至少有四个。示例应包含理想路径场景。

如果没有足够的示例,playbook 可能会导致不可预测的行为。如果您的 playbook 未按预期方式响应或运行,则可能是因为缺少示例或示例定义不当。请尝试改进示例或添加新示例。

说明和示例的精确度

虽然编写清晰且具有描述性的指令会有所帮助,但实际上,示例的质量和数量决定了 playbook 行为的准确性。换句话说,与其花时间编写完美精确的指令,不如花更多时间编写详尽的示例。

在示例中引用工具

如果 playbook 旨在通过使用工具提供回答,请在与此类请求对应的示例中引用这些工具。

工具架构 operationId 字段

为工具定义架构时,operationId 值非常重要。您的 playbook 指令将引用此值。

以下是此字段的命名建议:

  • 只能使用字母、数字和下划线。
  • 在架构中描述的所有 operationId 中必须是唯一的。
  • 必须是反映所提供功能的有意义的名称。

工具架构验证

您应验证工具架构。您可以使用 Swagger Editor 检查 openAPI 3.0 架构语法。

处理空工具结果

如果 playbook 依赖工具来提供回答,那么空工具结果可能会导致 playbook 行为不可预测。有时,Playbook AI 生成器会在回答中编造信息,而不是提供工具结果。 为防止出现这种情况,您可以添加具体指令,确保 Playbook AI 生成器不会尝试自行回答。

在某些应用场景中,Playbook 回答需要充分依据工具结果或提供的数据,并且需要减少仅基于 Playbook AI 生成器知识的回答。

以下是旨在减少幻觉的指令示例:

  • “您必须使用该工具回答所有用户问题”
  • “如果工具未返回任何数据,请回答您不知道用户查询的答案”
  • “如果未从工具中获取任何数据,请勿杜撰回答”

使用 Gemini 生成架构

Gemini 可以为您生成架构。 例如,尝试输入“你能为 Google 日历创建一个示例 openAPI 3.0 架构吗?”

专注型 Playbook

避免创建非常庞大且复杂的 playbook。每个 playbook 都应完成一项具体而明确的任务。如果您有复杂的 playbook,请考虑将其拆分为较小的子 playbook。

避免循环和递归

在指令中关联智能体时,请勿创建循环或递归。如果您尝试路由到直接或间接调用当前 playbook 的祖先 playbook,则可能会发生循环。

提供示例的路由信息

如果某个 playbook 应路由到另一个 playbook,您应在示例中提供此信息。此字段是为输入和输出示例部分的包含输出信息的结束示例字段中的示例提供的。

例如,此字段的最后一句话可以是“重新路由回默认 playbook,以处理进一步的查询。”

使用 Dialogflow CX Messenger JavaScript 函数实现个性化

使用 Dialogflow CX Messenger 时,以下函数可用于将用户个性化信息从网页界面发送到 playbook:

规划性能

生成式功能通常需要几秒钟甚至几十秒钟才能生成回答。虽然 playbook 可以增强对话的自然度,但管理响应时间对于保持良好的最终用户体验至关重要。

以下是一些优化性能的策略:

  • 平衡生成式功能的使用:仔细权衡执行多项生成式功能所需的时间与其为对话带来的价值。如果这些功能对实现用户目标没有显著贡献,请避免过度使用。
  • 尽量减少生成式功能输入:尽量收集和处理 AI 生成器生成有用回答所需的最少信息。这可以显著缩短处理时间。
  • 使用上下文缓存:如果您通过工具使用 Gemini,并且初始上下文很大,请探索使用 Vertex AI 上下文缓存来缓存信息,以避免对同一数据发出重复请求。
  • 实现固定响应以提高速度:如果您的应用不需要独特的动态内容,请考虑将常用响应存储在 Firebase 等传统数据库中。由于这些固定回答是预先定义且随时可用的,因此与需要实时计算答案的生成式功能相比,其响应速度要快得多。
  • 指示 AI 生成器生成简明扼要的 playbook 回答:对于文本输入和输出,AI 生成器的回答时间在很大程度上取决于所使用的模型和输出长度。简短的回答可以显著提高性能。虽然输入长度也是一个因素,但输出长度的影响更大。