技巧与常见问题#
合并多个触发器#
如果工作流中已存在其他触发器,您将有两个潜在的起点:该触发器与评估触发器。为确保无论哪个触发器执行工作流都能按预期运行,您需要将这些分支合并在一起。

操作步骤如下:
- 获取其他触发器的数据格式:
- 执行另一个触发器
- 打开它并导航到其输出面板的JSON视图
- 点击右侧的复制按钮
- 调整评估触发器数据以匹配格式:
- 在评估触发器后插入一个编辑字段(Set)节点并将它们连接起来
- 将其模式改为JSON
- 将数据粘贴到'JSON'字段中,删除首行的
[
和末行的]
- 将字段类型切换为表达式
- 通过从输入面板拖拽来映射触发器中的数据
- 对于字符串,确保替换整个值(包括引号)并在表达式末尾添加
.toJsonString()
- 使用'No-op'节点合并分支:插入一个No-op节点,并将其他触发器和Set节点都连接到它。'No-op'节点只是输出它接收到的任何输入
- 在工作流其余部分引用'No-op'节点输出:由于两条路径都会以相同格式流经此节点,您可以确保输入数据始终存在
避免评估中断聊天功能#
n8n 的内部聊天功能会读取工作流中最后执行节点的输出数据。当添加了使用'设置输出'操作的评估节点后,这些数据可能不符合预期格式,甚至可能不包含聊天响应。
解决方案是从您的代理节点添加一个额外分支。在n8n中,下方的分支会较晚执行,这意味着您附加到此分支的任何节点都将最后执行。此处可以使用无操作节点,因为它只需要传递代理输出即可。
计算指标时访问工具数据#
有时您需要了解代理执行的子节点中发生了什么,例如检查它是否执行了某个工具。虽然无法直接通过表达式引用这些节点,但您可以在代理中启用返回中间步骤选项。这将添加一个名为intermediateSteps
的额外输出字段,供后续节点使用:
同一工作流中的多重评估#
每个工作流只能设置一个评估。换句话说,每个工作流只能有一个评估触发器。
尽管如此,您仍然可以通过将工作流的不同部分放入子工作流中,并对每个子工作流进行评估,来测试工作流的不同部分。
处理不一致的结果#
指标常常会存在噪声:在完全相同的流程评估运行中,它们可能会有所不同。这是因为流程本身可能返回不同的结果,或者任何基于LLM的指标可能存在自然变化。
您可以通过复制数据集中的行来补偿这种情况,使每行在数据集中出现多次。由于这意味着每个输入实际上会运行多次,这将平滑掉任何变化。