技巧与常见问题
合并多个触发器
如果工作流中已有其他触发器,则会有两个潜在的起始点:原有触发器和评估触发器。为确保工作流无论哪个触发器执行都能正常工作,你需要将两个分支合并。
将两个触发器分支合并的逻辑,使其具有相同的数据格式,并可从单个节点引用。
操作步骤:
- 获取另一个触发器的数据格式:
- 执行另一个触发器。
- 打开它并导航到其输出面板的 JSON 视图。
- 点击右侧的 复制 按钮。
- 重新调整评估触发器的数据以使其匹配:
- 在评估触发器之后插入一个 Edit Fields (Set) 节点,并将两者连接起来。
- 将其模式更改为 JSON。
- 将数据粘贴到「JSON」字段,删除首行和末行的
[和]。 - 将字段类型切换为 表达式(Expression)。
- 通过从输入面板拖拽的方式,将触发器中的数据映射进来。
- 对于字符串类型,确保替换整个值(包括引号),并在表达式末尾添加
.toJsonString()。
- 使用「No-op」节点合并分支:插入一个 No-op 节点,并将另一个触发器和 Set 节点都连接到该节点。No-op 节点只是原样输出其接收到的输入。
- 在工作流其余部分引用「No-op」节点的输出:由于两条路径都会以相同格式流经此节点,你可以确信输入数据始终存在。
避免评估功能破坏聊天
n8n 的内部聊天会读取工作流中最后执行节点的输出数据。添加带有「设置输出」操作的评估节点后,这些数据可能格式不对,甚至不包含聊天回复内容。

解决方法是在你的智能体节点之后添加一个额外的分支。n8n 中较低的分支会在后面执行,这意味着连接到该分支的任何节点都会最后执行。你可以在这里使用一个 no-op 节点,因为它只需要传递智能体的输出。
计算指标时访问工具数据
有时你需要了解智能体的子节点(例如已执行的工具)中发生了什么。你无法直接在表达式中引用这些节点,但可以在智能体中启用 Return intermediate steps(返回中间步骤) 选项。这将添加一个名为 intermediateSteps 的额外输出字段,你可以在后续节点中使用它:

同一工作流中的多个评估
每个工作流只能设置一个评估,即一个工作流只能有一个评估触发器。
即便如此,你仍然可以通过将工作流的不同部分放入子工作流中,并分别对每个子工作流进行评估,来测试工作流的不同部分。
处理不一致的结果
指标结果往往存在噪声:在完全相同的工作流的不同评估运行中,结果可能有所不同。这是因为工作流本身可能返回不同的结果,或者任何基于 LLM 的指标都可能存在自然波动。
你可以通过复制数据集中的行来弥补这一点,使每一行在数据集中出现多次。由于每个输入实际上会运行多次,这将平滑掉任何差异。