Dify变量聚合器实战教程:轻松合并多分支工作流

Dify的基础工作流当流程变得复杂时,节点之间的连接线会像“乱麻”一样。这时候,变量聚合器(Variable Aggregator) 就是你的“整理收纳盒”。

一. 什么是变量聚合器?

简单来说,变量聚合器就是一个**“多选一”**的开关。

在复杂的自动化流程中,你可能会有多个分支(比如:分支 A 处理正式文案,分支 B 处理幽默文案)。但后续的节点(比如“发送邮件”)通常只需要一个输入。

变量聚合器的作用: 无论前面的流程走了哪条路,它都能把最终的结果“收集”起来,转换成一个统一的变量名,传给下游节点。

二. 参数设置详解

当你添加一个“变量聚合器”节点时,你会看到以下核心参数:

Dify工作流变量聚合器节点设置界面,显示变量赋值选项和HTTP请求body变量聚合配置

2.1 变量赋值 (Variable Assignment)

这是图片中最核心的部分,你添加了三个来源:HTTP RequestHTTP Request 2HTTP Request 3body 变量。

  • 逻辑本质: 这里体现的是 “取第一个非空值” 的原则。
  • 它是怎么运行的:
    • 在工作流运行时,Dify 会从上到下依次检查这些变量。
    • 如果 HTTP Request 成功运行并返回了内容,聚合器就会抓住它,并忽略后面的 Request 2 和 3。
    • 如果流程走了另一条分支,导致 HTTP Request 被跳过(值为 null),聚合器就会去尝试抓取 HTTP Request 2 的内容。
  • 右侧的 STRING 表示这个聚合器输出的数据类型是字符串。聚合在一起的变量必须类型兼容。
  • 注意: 虽然你可以选很多个,但逻辑上它们通常是“互斥”的。
  • 场景: 如果你有一个条件分支(IF/ELSE),分支 1 输出 text1,分支 2 输出 text2。你应该把这两个都加进输入列表。

2.2 聚合分组 (Group Aggregation)

  • 关闭状态(默认): 行为是 “覆盖/选择”。即从几个候选项里挑出一个有值的输出。适用于 IF/ELSE 分支合并。
  • 开启状态: 行为会变为 “数组化”。它不再是多选一,而是把所有输入的对象打包成一个列表(Array)
    • 场景举例: 如果你同时运行了三个 HTTP 请求,想把它们的结果汇总成一个列表交给 LLM 去总结,就需要打开这个开关。

三. 注意事项

  • 类型要统一: 聚合在一起的变量,最好类型一致(比如都是字符串)。如果你把一个“图片”变量和一个“文本”变量聚合在一起,下游节点可能会报错。
  • 它是“覆盖”逻辑: 聚合器会寻找最后一个有效(非空)的输入值。如果你的流程中两个分支都运行了(虽然很少见),后到的值可能会覆盖前面的。
  • 不必强求: 如果你的流程很简单,只有一条直线,那完全不需要用到它。只有在出现分支合并时,它才是神技。

© 文章版权归白小菌所有,🫰欢迎转发分享。未经允许请勿抄袭转载。

订阅评论
提醒
guest
0 评论
最新
最旧 最多投票
内联反馈
查看所有评论

AI 小菌
现代响应式侧边栏
快捷菜单