跳到主要内容

技巧与常见问题#

合并多个触发器#

若工作流中已存在其他触发器,将产生两个潜在启动点:原触发器与评估触发器。为确保工作流在任何触发器执行时都能正常运作,需将这两个分支合并。

合并触发器分支

通过逻辑处理将两个触发器分支合并,使其具有相同的数据格式并能被单一节点引用。

操作步骤:

  1. 获取其他触发器的数据格式
    • 执行另一个触发器
    • 打开触发器并进入其输出面板的JSON视图
    • 点击右侧的复制按钮
  2. 调整评估触发器数据格式以匹配
    • 在评估触发器后插入编辑字段(设置)节点并建立连接
    • 将模式切换为JSON
    • 将复制的数据粘贴至'JSON'字段,删除首尾行的[]
    • 将字段类型切换为表达式
    • 通过从输入面板拖拽数据完成触发器数据映射
    • 对于字符串类型,需替换完整值(包括引号)并在表达式末尾添加.toJsonString()
  3. 通过'无操作'节点合并分支:插入无操作节点并将原触发器与设置节点同时接入。该节点会直接输出接收到的输入数据
  4. 在工作流后续环节引用'无操作'节点输出:由于两条路径都会以相同格式流经该节点,可确保输入数据始终可用

避免评估中断聊天会话#

n8n的内部聊天功能会读取工作流中最后执行节点的输出数据。当添加了采用'设置输出'操作的评估节点后,该数据可能不符合预期格式,甚至不包含聊天响应。

添加第二输出分支

解决方案是从智能体引出额外分支。在n8n中低位分支后执行,这意味着连接至此分支的节点将最后执行。此处可使用无操作节点,因其仅需透传智能体输出。

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

有时需要了解智能体执行子节点的具体情况(例如是否执行了某工具)。虽然无法直接通过表达式引用这些节点,但可启用智能体的返回中间步骤选项。这将新增名为intermediateSteps的输出字段供后续节点使用:

启用返回中间步骤

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

单个工作流仅支持设置一次评估。换言之,每个工作流只能配置一个评估触发器。

尽管如此,仍可通过将工作流不同部分置于子工作流中,分别对各子工作流进行评估来实现多维度测试。

处理不一致结果#

指标常存在波动:相同工作流的多次评估运行可能产生差异。这既可能源于工作流自身输出的不稳定性,也可能来自基于LLM的指标固有变化。

可通过复制数据集行来缓解此问题,使每行在数据集中多次出现。由于每个输入将实际运行多次,能有效平滑数据波动。