这些最佳实践可帮助您构建强大的代理。
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 时,您可以通过以下 JavaScript 函数将用户个性化信息从网页界面发送到 playbook:
规划性能
生成式功能通常需要几秒钟甚至几十秒钟才能生成回答。虽然 playbook 可以增强对话的自然度,但管理响应时间对于保持良好的最终用户体验至关重要。
如需优化性能,请使用以下策略:
- 平衡生成式功能的使用:仔细权衡执行多项生成式功能所需的时间与其为对话带来的价值。如果这些功能对用户目标的实现没有显著贡献,请避免过度使用。
- 尽量减少生成式功能输入:尽量收集和处理 AI 生成器生成有用回答所需的最少信息。这可以显著缩短处理时间。
- 使用上下文缓存:如果您通过工具使用 Gemini,并且初始上下文很大,请探索使用 Vertex AI 上下文缓存来缓存信息,以避免对同一数据发出重复请求。
- 实现固定响应以提高速度:如果您的应用不需要独特的动态内容,请考虑将常用响应存储在 Firebase 等传统数据库中。由于这些固定回复是预先定义且随时可用的,因此其响应速度比需要实时计算答案的生成式功能快得多。
- 指示 AI 生成器生成简明扼要的 playbook 回答:对于文本输入和输出,AI 生成器的回答时间在很大程度上取决于所使用的模型和输出长度。简短的回答可以显著提高性能。虽然输入长度也是一个因素,但输出长度的影响更大。