基于条件的操作

默认情况下,playbook 会使用 LLM 来控制对话、采取行动并回复最终用户。如果您需要更明确地控制智能体的行为,可以使用流程或根据条件触发的操作,本指南对此进行了介绍。

根据条件触发的操作是 playbook 的可选配置。您可以设置对话触发器和条件,以调用特定操作,例如使用特定消息进行回复、调用外部工具、调用其他 playbook 或执行任何其他指定操作。

触发器

您可以将触发器定义为第一步,以确定根据条件触发的操作是否适用。

下表详细列出了触发器类型以及每种类型的具体触发器:

  • 生命周期阶段:
    • Playbook 启动:在 Playbook 首次启动时触发。
    • 在 LLM 决定其下一个操作之前:每次在 LLM 预测下一个操作之前触发。
    • 在 LLM 执行下一个操作之前:每次在 LLM 执行操作之前触发。
  • 事件:
    • 自定义事件
    • 用户未输入内容

条件

在触发器发生后评估所有可选条件。条件使用流路由所使用的相同条件语法。

如果您不提供条件,则仅由触发器启动操作。

您可以使用以下语法来引用参数以及上一个和下一个操作:

  • 会话参数:
    • $session.params.PARAMETER_NAME
  • Playbook 输入参数:
    • $playbook.input.INPUT_FIELD_NAME
  • 上次操作(之前执行的操作):
    • $last-action.name
    • $last-action.input.INPUT_FIELD_NAME
    • $last-action.output.OUTPUT_FIELD_NAME
    • $last-action.status
  • 后续操作(LLM 预测的后续操作):
    • $next-action.name
    • $next-action.input.INPUT_FIELD_NAME

您还可以使用系统函数。

示例:

  • $session.params.current_user = null
  • $last-action.name = "query_order"
  • $last-action.name = "query_order" AND $last-action.status != SUCCESS
  • $last-action.name = "query_order" AND $last-action.output.orders = null

操作

在触发器和可选条件评估发生后,您可以配置以下操作:

  • 向最终用户提供回答:文本、条件回答、自定义载荷和预录制的音频。提供文本时,您可以插入 [pause]、[pauseShort] 或 [pause long],以便在智能体语音中注入停顿,例如 How can I help you today? [pause long] I can help with...
  • 覆盖下一个 LLM 操作:工具使用、playbook 调用、playbook 完成、流调用、playbook 转换、流转换。
  • 更改语音设置:模型名称、无语音超时、端点敏感度、自适应。
  • 启用插话功能。
  • 允许取消只答完一部分的回答的播放。
  • 发送 Call Companion 短信。
  • 启用 DTMF:请参阅用于电话集成的 DTMF。