最佳实践

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

简洁的目标

目标应该是对代理目的的简要说明。

提供质量说明

说明应:

  • 体现解决最终用户问题的分步方法
  • 是简明扼要的自然语言语句,其中包含高级指令
  • 简单明了,并指定工具使用场景

每个代理至少有一个示例

每个代理都应至少有一个示例,但建议至少具有四个。 示例应包含满意路径场景。

如果没有足够多的示例,代理可能会导致不可预测的行为。如果代理未按预期响应或行为,则可能是缺少示例或定义不清楚的原因。请尝试改进您的示例或添加新的示例。

说明和示例的精确度

虽然写出清晰的描述性说明很有帮助,但真正重要的是样本的质量和数量决定了代理行为的准确性。 换言之,要花更多时间编写详尽的示例,而不是编写完美的指令。

工具架构 operationId 字段

为工具定义架构时,operationId 值非常重要。您的代理说明将引用此值。 以下是有关此字段的命名建议:

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

工具架构验证

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

处理空的工具结果

如果您的代理依赖于某个工具作为响应,那么空的工具结果可能会导致不可预测的代理行为。有时,代理 LLM 会在回答中产生幻觉,而不是工具结果。为防止出现这种情况,您可以添加具体说明,以确保代理 LLM 不会尝试自行回答。

某些用例要求代理响应以工具结果或提供的数据为基础,并且仅需要根据代理 LLM 的知识来减少响应。

减少幻觉的说明示例:

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

使用 Gemini 生成架构

Gemini 可以为您生成架构。例如,尝试“可以为 Google 日历创建示例 openAPI 3.0 架构吗”。

专注客服人员

避免创建非常大型和复杂的代理。 每个代理都应完成明确具体的任务。 如果您的代理较为复杂,可考虑将其拆分为多个较小的分代理。

避免循环和递归

在说明中关联代理应用时,请勿创建循环或递归。

为示例提供路由信息

当某个代理应路由到另一个代理时,您应该将此信息提供给示例。 这是输入和输出示例部分的包含输出信息的结束示例字段中的示例。

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

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

使用 Dialogflow CX Messenger 时,以下函数对于将用户个性化信息从网页界面发送到代理非常有用: