变量聚合
变量聚合节点将多个分支的输出变量汇聚为一个统一变量,供下游节点引用。它的核心能力是:从多个分支的输出中,按照用户指定的优先级顺序,返回第一个非空值。
在工作流中使用条件分支时,同一时刻只有一个分支会执行并产生输出,其他分支的输出为空。下游节点如果直接引用分支输出,需要处理空值判断。变量聚合节点将这些分支的输出汇聚为统一变量,自动返回第一个非空值,简化下游处理逻辑。
变量聚合节点通常与判断节点配合使用,典型场景包括:
- 多语言翻译:不同语言翻译分支的结果汇聚为一个输出。
- 多渠道数据采集:不同数据源的结果汇聚为统一格式。
- 多策略结果择优:多个策略分支的结果按优先级取值。
配置变量聚合节点
配置变量聚合节点时,需要选择聚合策略和聚合变量,并按需设置聚合分组。
聚合策略
通过指定策略对每个分组中的所有变量进行聚合处理,同一组内的变量实施相对应的聚合策略。
目前聚合策略仅支持“返回每个分组中第一个非空值”。如果所有分支的输出变量均为空,聚合结果也将为空。建议设置兜底分支确保至少有一个非空输出。
分组内变量的排列顺序决定了非空值的检查优先级,支持拖动变量调整位置,排在最上方的变量优先级最高。
例如,如图1所示,Group1组内按顺序设置三个变量output1、output2和output3,将其聚合为一个变量Group1,如果output1不为空,则用output1的值为Group1赋值;如果output1为空,则取output2的值,依次类推。
聚合变量
在聚合分组中选择需要聚合的变量,同一分组内的所有变量必须是相同的数据类型。
例如将多个String类型的变量聚合为一个String变量、将多个Integer类型的变量聚合为一个Integer变量,如图2所示。
聚合分组
默认一个分组Group1。如需聚合多个不同用途/类型的变量,单击添加按钮创建新分组。
默认只有一个分组Group1,对应一个输出变量Group1。分组中所有变量类型相同。如果需要输出多个变量,可以添加多个分组,依次递增为Group2、Group3等。
输出参数
输出参数与分组一一对应。默认分组Group1的输出参数名为Group1,其值为该分组按聚合策略计算后的结果。添加多个分组时,输出参数依次递增为Group2、Group3等。
输出参数的数据类型与对应分组内变量类型一致。
相关操作
- 单击节点名称,可修改节点名称。
- 单击
图标,可对节点进行重命名、复制、删除或更换节点;也可以将节点连接到结束节点。 - 单击
图标,可对节点进行测试。 - 单击名称下面的节点说明,可修改节点的描述信息。
- 单击
图标,可查看文档信息。
示例
以多语言翻译助手为例,开始节点接收用户需要翻译的文本以及用户指定的目标语言(英文,日文,韩文),判断节点根据目标语言判断翻译方向,并流转至不同语言的翻译分支,例如日文翻译流转给“翻译为日文”分支的大模型来翻译。三个分支均汇总到变量聚合节点,汇总为1个参数,即需要翻译的文本Group1,并传递到结束节点展示给用户。
工作流核心节点如表2所示。
| 节点类型 | 说明 | 示例 |
|---|---|---|
| 开始节点 | 添加一个必选的输入参数,即用户需要翻译成的目标语言。
|
|
| 判断节点 | 此节点用于根据用户在开始节点输入的target_lang的值判断翻译方向。 由于有英文、日文和韩文三个分支方向,因此单击“添加分支”,将判断节点确定为:IF、ELSE IF 1和ELSE分支。
|
|
| 大模型节点-翻译为英文 | 此节点将用户输入的文本翻译为英文。
|
|
| 大模型节点-翻译为日文 | 此节点将用户输入的文本翻译为日文。
|
|
| 大模型节点-翻译为韩文 | 此节点将用户输入的文本翻译为韩文。
|
|
| 变量聚合节点 | 此节点将三个翻译分支的输出参数汇总为统一的一个参数,即需要翻译的文本Group1,供下游节点引用。 |
|
| 结束节点 | 此节点用于输出翻译后的内容。 输入参数: result:引用变量聚合节点的group1。 |
|
在试运行配置界面输入翻译的目标语言,例如“en”,工作流运行的效果如图4所示;在试运行配置界面输入翻译的目标语言为“ja”,工作流运行效果如图5所示。
常见问题
- 为什么聚合结果为空?
所有分支的输出变量均为空,聚合节点无法找到非空值。解决方法如下:
- 检查各分支是否正确配置了输出变量。
- 检查条件分支逻辑,确保至少有一条分支会执行。
- 考虑添加一个“兜底分支”,确保总有一个非空输出。
- 配置变量聚合节点时,为什么无法将某个变量添加到分组?
该变量的数据类型与分组内已有变量的类型不一致,请确保同一分组内所有变量类型必须一致。如需聚合不同类型,请创建新的分组(Group2)
- 聚合结果取到了错误分支的值是什么原因?
变量在分组内的排列顺序(优先级)不正确。建议将期望优先返回的分支变量移到最上方。
- 新增分支后,为什么聚合节点未输出新分支的值?
新增分支的输出变量未被添加到聚合节点的分组中,打开聚合节点配置面板,在对应分组中添加新分支的输出变量。










