每个 Playbook 都应有一个或多个示例。以下示例是最终用户与 Playbook 之间的对话示例,包括代理执行的对话和操作。这些实际上是 LLM 的少样本提示示例。
控制台提供了一个界面,供您输入操作。
多语言代理
如果您希望让聊天机器人处理多种语言,则示例应使用每种语言。
输入摘要和输出摘要示例
除了输入和输出参数之外,Playbook 还支持接收输入摘要并发出输出摘要,以便与其他 Playbook 交换信息。摘要有助于传递 信息,而参数更有助于传递 结构化且定义明确的字段。参数是流程和剧本之间交换数据的唯一方式。
向示例添加相关的输入摘要,以便让该 Playbook 在运行时根据输入摘要调整其操作。添加输出摘要,其中包含有关示例对话的相关、准确详细信息,以向剧本说明哪些详细信息需要总结。
示例状态
在对话中的指定时刻,playbook 将处于以下状态之一:
OK
:此 playbook 已成功实现其目标,控制权现在将转移到父级 playbook。CANCELLED
:用户决定不继续执行分配给该 Playbook 的目标。该控件现在将转移到父级 playbook。如果父级 Playbook 是 CX 流程,系统会在流程运行之前检测用户输入的意图。FAILED
:playbook 无法继续实现目标,因为出现错误(例如,工具 返回 500 错误)。会话将结束,状态为“失败。一个 EndInteraction 消息将会添加到响应中。ESCALATED
:策略方案判定无法实现目标,需要将情况上报给人工。会话将以上报状态结束。 EndInteraction 消息将会添加到响应中。PENDING
:对话仍在策略方案中继续。
顶级示例及其 Playbook 调用应使用与其引用的 Playbook 对应的状态进行标记。
选择策略
选择策略用于控制每个样本 。
DEFAULT
:如果提示接近词元限制,则可以省略此示例。STATIC
:始终包含示例。NEVER
:提示中从不包含该示例。该示例的 不会对 playbook 的性能产生任何影响。
添加操作
在 Playbook 中提供的示例由一系列操作组成。这些操作的组合可能有所不同,但它们主要描绘的是用户与手册之间的互动,以及为满足用户的查询或要求而在这段时间内采取的操作。
您可以通过以下两种方式向示例添加操作:
要手动添加操作,请点击右侧窗格底部的 + 按钮,或将指针悬停在现有操作上时点击添加操作按钮。在点击 + 示例选项创建新示例时,或者修改现有示例时,您可以使用这些选项。
如需根据现有的 playbook 说明自动生成操作,请在右侧窗格底部的输入用户输入字段中输入用户输入。您可以在创建或修改示例时使用此选项。或者,您也可以在右侧的预览 Playbook 窗格中在运行时测试 Playbook 时使用此选项。如需将操作保存到预览 Playbook 窗格中的示例,请从预览 Playbook 窗格左侧的调用列表中选择 Playbook 调用,然后点击保存示例。
请务必检查自动生成的操作是否正确,并在必要时进行修改。对于示例很少或没有示例的策略方案而言,这一点尤为重要。
此 playbook 支持以下类型的操作:
playbook 响应
对用户查询的 playbook 响应。
用户输入
用户查询。
工具使用
这是一个 tool 调用,用于获取完成用户查询所需的其他信息。此操作应指定以下详细信息:
- Tool(工具):应调用的工具的名称。
- 操作:应调用的 OpenAPI 工具的操作名称。对于数据存储工具和函数工具,操作名称与工具名称相同。
工具输入:要包含在工具调用中的输入。这些信息通常来自上一次与用户进行的对话。
对于 Open API 工具,
POST
、PUT
和PATCH
方法类型需要requestBody
JSON。createPet 操作的 Open API 工具
requestBody
输入示例:{ "id": 1, "name": "Luna" }
对于数据存储工具,示例
requestBody
中,查询是必填字段,其他字段为可选字段。{ "query": "Where is my nearest store?", "filter": "country: ANY(\"United States\")", "userMetadata": { "userCity": "San Fransisco", }, "fallback": "We don't have any stores in your area." }
工具输出:工具调用的响应。这是该工具针对给定输入的有效 JSON 响应。对于 Open API tools,此错误也可能是字符串错误(例如“404 Not found”)。
listPets 操作的 Open API 工具输出示例:
{ "pets": [ { "id": 1, "name": "Luna" }, { "id": 2, "name": "Charlie" }] }
数据存储工具输出示例:
{ "answer": "Here's the address to your nearest store ...", "snippets": [ { "title": "San Fransisco Downtown", "uri": "https://www.example.com/San_Fransisco_Downtown", "text": "Address for San Fransisco Downtown .." } ] }
为确保 playbook 不会出现故障,还应添加一些示例,说明工具调用失败时 playbook 应如何响应。Open API 工具调用失败可能会在工具输出中显示为错误字符串(“404 未找到”)。对于数据存储工具,fallback
输入可用于指定在没有汇总答案时如何响应。
如果您希望数据存储工具在 playbook 响应中包含 URI,请添加包含您希望 playbook 响应的 URI 的示例。如果此 URI 来自数据存储工具,则数据存储工具输出应包含与 Playbook 响应中的 URI 匹配的 URI。请注意,在这种情况下无法使用 fallback
,因为它会停用 LLM 手册对数据存储工具回答进行重述的功能,以便在手册响应中添加 URI。
包含工具使用操作的示例可能非常详细,并会导致输入令牌限制消耗增加。为确保高效利用令牌,请确保工具输出简洁明了并包含与策略方案目标相关的信息。对于数据存储工具,请考虑从样本中移除代码段,因为它们会导致输入令牌消耗量较高。
Playbook 调用
当此 playbook 应调用另一个 playbook 来处理用户查询时,会使用此操作。此操作应指定以下详细信息:
- Playbook:要调用的 Playbook 的名称。
- Playbook 调用输入摘要:对话中对所调用 Playbook 有用的相关部分的摘要。
- 输入参数:要传递给 Playbook 的输入参数
- Playbook 调用输出摘要:Playbook 目标完成时应生成的内容摘要。
- 输出参数:在完成其目标后由 Playbook 生成的输出参数。