
# 变量聚合
变量聚合节点将多个分支的输出变量**汇聚为一个统一变量** ，供下游节点引用。它的核心能力是：从多个分支的输出中，按照用户指定的优先级顺序，**返回第一个非空值**。
在工作流中使用条件分支时，同一时刻只有一个分支会执行并产生输出，其他分支的输出为空。下游节点如果直接引用分支输出，需要处理空值判断。变量聚合节点将这些分支的输出汇聚为统一变量，自动返回第一个非空值，简化下游处理逻辑。
变量聚合节点通常与[判断节点](https://support.huaweicloud.com/lowcode-agentarts/agentarts_05_0066.html)配合使用，典型场景包括：
- **多语言翻译**：不同语言翻译分支的结果汇聚为一个输出。
- **多渠道数据采集**：不同数据源的结果汇聚为统一格式。
- **多策略结果择优**：多个策略分支的结果按优先级取值。
#### 配置变量聚合节点
配置变量聚合节点时，需要选择聚合策略和聚合变量，并按需设置聚合分组。
#### 聚合策略
通过指定策略对每个分组中的所有变量进行聚合处理，同一组内的变量实施相对应的聚合策略。
![](https://support.huaweicloud.com/lowcode-agentarts/public_sys-resources/note_3.0-zh-cn.png)
目前聚合策略仅支持"返回每个分组中第一个非空值"。如果所有分支的输出变量均为空，聚合结果也将为空。建议设置兜底分支确保至少有一个非空输出。
分组内变量的排列顺序决定了非空值的检查优先级，支持拖动变量调整位置，排在最上方的变量优先级最高。
例如，如[图1]所示，Group1组内按顺序设置三个变量output1、output2和output3，将其聚合为一个变量Group1，如果output1不为空，则用output1的值为Group1赋值；如果output1为空，则取output2的值，依次类推。
图1配置示例   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390129.png)
#### 聚合变量
在聚合分组中选择需要聚合的变量，**同一分组内的所有变量必须是相同的数据类型。**
例如将多个String类型的变量聚合为一个String变量、将多个Integer类型的变量聚合为一个Integer变量，如[图2]所示。
图2配置示例   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390141.png)
#### 聚合分组
默认一个分组Group1。如需聚合多个不同用途/类型的变量，单击添加按钮创建新分组。
默认只有一个分组Group1，对应一个输出变量Group1。分组中所有变量类型相同。如果需要输出多个变量，可以添加多个分组，依次递增为Group2、Group3等。
#### 输出参数
输出参数与分组一一对应。默认分组Group1的输出参数名为Group1，其值为该分组按聚合策略计算后的结果。添加多个分组时，输出参数依次递增为Group2、Group3等。
输出参数的数据类型与对应分组内变量类型一致。
#### 相关操作
- 单击节点名称，可修改节点名称。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549909.png)图标，可对节点进行重命名、复制、删除或更换节点；也可以将节点连接到结束节点。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790412.png)图标，可对节点进行测试。
- 单击名称下面的节点说明，可修改节点的描述信息。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549911.png)图标，可查看文档信息。
 
#### 配置示例
以多语言翻译助手为例，开始节点接收用户需要翻译的文本以及用户指定的目标语言（英文，日文，韩文），判断节点根据目标语言判断翻译方向，并流转至不同语言的翻译分支，例如日文翻译流转给"翻译为日文"分支的大模型来翻译。三个分支均汇总到变量聚合节点，汇总为1个参数，即需要翻译的文本Group1，并传递到结束节点展示给用户。
图3工作流   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390133.png "点击放大")
工作流核心节点如[表2](https://support.huaweicloud.com/lowcode-agentarts/agentarts_05_0077.html#agentarts_05_0077__table52773568390)所示。
表1节点配置说明 
| 节点类型        | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 示例                                                                                                    |
|:---|:---|:---|
| 开始节点        | 添加一个必选的输入参数，即用户需要翻译成的目标语言。 - 参数名称：target_lang  - 参数类型：String  - 描述：用于接收用户指定的目标语言（如需翻译为英文，请输入en；如需翻译为日文，请输入ja，如需翻译为韩文，请输入ko）  - 必填：勾选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |  ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717550023.png "点击放大") |
| 判断节点        | 此节点用于根据用户在开始节点输入的target_lang的值判断翻译方向。 由于有英文、日文和韩文三个分支方向，因此单击"添加分支"，将判断节点确定为：**IF** 、**ELSE IF 1** 和**ELSE**分支。 - **IF**分支：开始节点的target_lang的值=en  - **ELSE IF 1**分支：开始节点的target_lang的值=ja  - **ELSE**分支：默认为开始节点的target_lang的值为ko                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |  ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790518.png "点击放大") |
| 大模型节点-翻译为英文 | 此节点将用户输入的文本翻译为英文。 - **模型配置**：选择DeepSeek-V4-Flash模型。  - **输入参数：** - query：引用开始节点的query。  - target_lang：引用开始节点的target_lang。    - **输出参数：** 将大模型翻译后的内容，在输出参数中定义，并在描述中说明该参数的字段含义，便于大模型理解。 定义内容如下： translate_to_en：类型为"String"，描述为英文翻译结果。   - **提示词配置：** - 系统提示词：定义一段系统提示词，如下所示： ``` 你是一个专业的翻译助手，请将以下内容准确地翻译成{{target_lang}}。 文本为：{{query}} 仅输出翻译结果，不要包含任何其他解释。 ```   - 用户提示词：引用当前的输入参数query，即引用用户的原始输入。 ``` {{query}} ```                              | ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790534.png "点击放大")        |
| 大模型节点-翻译为日文 | 此节点将用户输入的文本翻译为日文。 - **模型配置**：选择DeepSeek-V4-Flash模型。  - **输入参数：** - query：引用开始节点的query。  - target_lang：引用开始节点的target_lang。    - **输出参数：** 将大模型翻译后的内容，在输出参数中定义，并在描述中说明该参数的字段含义，便于大模型理解。 定义内容如下： translate_to_ja：类型为"String"，描述为日文翻译结果。   - **提示词配置：** - 系统提示词：定义一段系统提示词，如下所示： ``` 你是一个专业的翻译助手，请将以下内容准确地翻译成{{target_lang}}。 文本为：{{query}} 仅输出翻译结果，不要包含任何其他解释。 ```   - 用户提示词：引用当前的输入参数query，即引用用户的原始输入。 ``` {{query}} ```                    | ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390139.png "点击放大")        |
| 大模型节点-翻译为韩文 | 此节点将用户输入的文本翻译为韩文。 - **模型配置**：选择DeepSeek-V4-Flash模型。  - **输入参数：** - query：引用开始节点的query。  - target_lang：引用开始节点的target_lang。    - **输出参数：** 将大模型翻译后的内容，在输出参数中定义，并在描述中说明该参数的字段含义，便于大模型理解。 定义内容如下： translate_to_ko：类型为"String"，描述为韩文翻译结果。   - **提示词配置：** - 系统提示词：定义一段系统提示词，如下所示： ``` 你是一个专业的翻译助手，请将以下内容准确地翻译成{{target_lang}}。 文本为：{{query}} 仅输出翻译结果，不要包含任何其他解释。 ```   - 用户提示词：引用当前的输入参数query，即引用用户的原始输入。 ``` {{query}} ```      | ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950374.png "点击放大")        |
| 变量聚合节点      | 此节点将三个翻译分支的输出参数汇总为统一的一个参数，即需要翻译的文本Group1，供下游节点引用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390135.png "点击放大")        |
| 结束节点        | 此节点用于输出翻译后的内容。 **输入参数：** result：引用变量聚合节点的group1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390143.png "点击放大")        |
   
在试运行配置界面输入翻译的目标语言，例如"en"，工作流运行的效果如[图4]所示；在试运行配置界面输入翻译的目标语言为"ja"，工作流运行效果如[图5]所示。
图4效果示例（翻译为英文）   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950386.png)
图5效果示例（翻译为日文）   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950380.png)
#### 常见问题
- **为什么聚合结果为空？**
  所有分支的输出变量均为空，聚合节点无法找到非空值。解决方法如下：
  1. 检查各分支是否正确配置了输出变量。
  
  2. 检查条件分支逻辑，确保至少有一条分支会执行。
  
  3. 考虑添加一个"兜底分支"，确保总有一个非空输出。
   
- **配置变量聚合节点时，为什么无法将某个变量添加到分组？**
  该变量的数据类型与分组内已有变量的类型不一致，请确保同一分组内所有变量类型必须一致。如需聚合不同类型，请创建新的分组（Group2）。
  
- **聚合结果取到了错误分支的值是什么原因？**
  变量在分组内的排列顺序（优先级）不正确。建议将期望优先返回的分支变量移到最上方。
  
- **新增分支后，为什么聚合节点未输出新分支的值？**
  新增分支的输出变量未被添加到聚合节点的分组中，打开聚合节点配置面板，在对应分组中添加新分支的输出变量。
  
 
