Skip to content

提示和常见问题#

组合多个触发器#

如果您的工作流中已经有另一个触发器,您就有两个潜在的起点:该触发器和评估触发器。为了确保您的工作流无论执行哪个触发器都能按预期工作,您需要将这些分支合并在一起。

合并触发器分支
将两个触发器分支合并在一起的逻辑,使它们具有相同的数据格式并可以从单个节点引用。

要做到这一点:

  1. 获取其他触发器的数据格式
    • 执行其他触发器。
    • 打开它并导航到其输出窗格的 JSON 视图。
    • 点击右侧的复制按钮。
  2. 重新塑造评估触发器数据以匹配
    • 在评估触发器后插入一个编辑字段(设置)节点并将它们连接在一起。
    • 将其模式更改为 JSON
    • 将您的数据粘贴到 'JSON' 字段中,删除第一行和最后一行的 []
    • 将字段类型切换到表达式
    • 通过从输入窗格拖动来映射触发器的数据。
    • 对于字符串,确保替换整个值(包括引号)并在表达式末尾添加 .toJsonString()
  3. 使用 'No-op' 节点合并分支:插入一个 No-op 节点并将其他触发器和设置节点都连接到它。'No-op' 节点只是输出它接收到的任何输入。
  4. 在工作流的其余部分引用 'No-op' 节点输出:由于两个路径都将以相同格式流过此节点,您可以确保您的输入数据始终在那里。

避免评估破坏聊天#

n8n 的内部聊天读取工作流中最后执行节点的输出数据。添加带有'设置输出'操作的评估节点后,此数据可能不是预期格式,甚至不包含聊天响应。

添加第二个输出分支

解决方案是添加一个从您的代理出来的额外分支。较低的分支在 n8n 中稍后执行,这意味着您附加到此分支的任何节点都将最后执行。您可以在这里使用 no-op 节点,因为它只需要传递代理输出。

计算指标时访问工具数据#

有时您需要知道代理的已执行子节点中发生了什么,例如检查它是否执行了工具。您无法直接使用表达式引用这些节点,但您可以在代理中启用返回中间步骤选项。这将添加一个名为 intermediateSteps 的额外输出字段,您可以在后续节点中使用:

启用返回中间步骤

同一工作流中的多个评估#

每个工作流只能设置一个评估。换句话说,每个工作流只能有一个评估触发器。

即便如此,您仍然可以通过将工作流的不同部分放在子工作流中并评估每个子工作流来使用不同的评估测试工作流的不同部分。

处理不一致的结果#

指标通常可能有噪音:它们在完全相同工作流的评估运行中可能不同。这是因为工作流本身可能返回不同的结果,或者任何基于 LLM 的指标可能在其中有自然变化。

您可以通过复制数据集的行来补偿这一点,使每行在数据集中出现不止一次。由于这意味着每个输入将有效运行多次,它将平滑任何变化。