
# 循环迭代执行
#### 介绍
循环迭代执行是指工作流中的某一组节点被**重复执行多次**，每次迭代处理数组中的一个元素或完成一轮任务，直到遍历完所有数据或达到指定次数为止。
这种范式解决了**批量处理问题**：当需要对一组数据逐条执行相同操作，或需要某个任务重复运行 N 轮时，循环迭代能够替代人工逐一触发，实现自动化批量处理。
AgentArts 的循环节点支持两种模式：
- **数组循环**：遍历一个已知数组，数组有多少元素就循环多少次，常用于批量处理场景。
- **指定次数循环**：固定执行 N 次，常用于多轮迭代优化场景。
 
#### 原理
```
┌─────────────────────────────────────┐
                    │  循环体                              │
[上游节点] → [循环节点] → [循环输入] → [处理节点...] → [循环输出]
                    │              ↑                      │
                    │    中间变量（跨轮次传递数据）          │
                    └─────────────────────────────────────┘
                               ↓（所有轮次完成后）
                    [下游节点] ← 循环节点输出参数（汇聚结果）
```
表1关键概念 
| 概念    | 说明                             |
|:---|:---|
| item  | 数组循环中当前轮次处理的数组元素。              |
| index | 当前轮次的序号（从0开始）。                 |
| 中间变量  | 跨轮次持久存在的变量，每轮循环后可通过变量赋值节点更新其值。 |
| 输出参数  | 循环结束后，将指定的最终结果传递给下游节点。         |
| 终止条件  | 每轮循环体执行完后检查，满足则提前退出循环。         |
   
#### 操作示例：多平台文案批量生成工作流
**场景描述：** 用户输入一款产品的名称，工作流自动为小红书、微信朋友圈、微博三个平台分别生成针对性的营销文案，每轮循环处理一个平台，将所有文案逐步拼接，最终输出一份完整的多平台文案合集。
这个示例用户只需输入一个产品名称即可运行，效果直观，便于验证循环执行的过程。
**工作流结构：**
```
[开始节点]
    ↓ product（产品名）、platforms（平台数组）
[循环节点（数组循环，遍历 platforms）]
    ├── 中间变量：all_copies（汇总文案，初始为空字符串）
    ├── 循环体：
    │     [大模型节点：生成当前平台文案] → copy（String）
    │     [代码节点：拼接到汇总] → merged（String）
    │     [变量赋值节点：更新 all_copies]
    │     ↓（连接循环输出）
    └── 输出参数：output（引用中间变量 all_copies）
    ↓
[结束节点]
```
**创建工作流：**
在AgentArts左侧导航栏中选择"开发中心 \> 智能体管理"，在"工作流"页签，单击"创建工作流"。
图1任务型工作流   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390043.png "点击放大")
**节点配置说明：**
图2多平台文案批量生成工作流   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790430.png "点击放大")
表2工作流各节点配置说明 
| 节点                                                          | 配置说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|
| 开始节点                                                        | 新增2个参数。 - 参数一： - 参数名称：product  - 参数类型：String  - 描述：需要推广的产品名称，例如降噪耳机、保温杯  - 必填：勾选    - 参数二： - 参数名称：platforms  - 参数类型：Array\<String\>  - 描述：需要生成文案的平台列表  - 默认值：\["小红书", "微信朋友圈", "微博"\]  - 必填：勾选     ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390039.png "点击放大")                                                       |
| 循环节点    | - 循环类型：**使用数组循环**  - 循环数组 arr_loop_var：引用开始节点的 platforms  - 中间变量： - 名称：all_copies，初始值：输入固定值""（空字符串）    - 输出参数： - 名称：output，引用中间变量 all_copies     ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950274.png "点击放大")                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 循环节点    | **循环体-大模型节点** 此节点放置于循环节点内部，连接循环输入 → 此节点。 - 模型：DeepSeek-V4-Flash，将生成随机性调高至 0.8（确保每轮生成不同风格）  - 输入参数： - product：引用开始节点的 product  - platform：引用循环节点的 item（当前轮次处理的平台名称）    - 输出格式：JSON，关闭流式输出  - 输出参数：copy（String，描述：针对该平台风格生成的营销文案正文）  - 系统提示词： ``` 你是一位资深百万粉自媒体爆款操盘手。 我的新产品是一款{{product}}。 请针对{{platform}}平台的受众偏好和语言风格，写一篇吸引人的种草文案。 需要按照以下格式输出： {{platform}}风格文案：[文案内容] 仅输出原始JSON，严格按照示例：{"copy": "xxx风格文案：[内容]"} ```   - 用户提示词：不填，删除原有内容   ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950276.png "点击放大") |
| 循环节点    | **循环体 - 代码节点（拼接文案）** 此节点连接大模型节点 → 此节点。 - 输入参数： - index：引用循环节点的 index（当前轮次序号）  - new_copy：引用大模型节点的 copy  - prev：引用循环节点的中间变量 all_copies    - 输出参数：merged（String，表述为拼接文案）   代码内容： ``` def main(args: dict) -> dict index = args.get("index", 0) new_copy = args.get("new_copy", "") prev = args.get("prev", "") # 每条文案之间用分隔线隔开 separator = "\n" + "─" * 30 + "\n" if prev: result = prev + separator + new_copy else: result = new_copy return {"merged": result} ``` ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790428.png "点击放大")                                                                                                                                                                          |
| 循环节点    | **循环体 - 变量赋值节点** 此节点连接代码节点 → 此节点 → 循环输出。 - 赋值目标：循环节点中间变量 all_copies  - 赋值方式：引用  - 值：引用代码节点的 merged   ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950282.png "点击放大")                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 结束节点                                                        | - 输入参数： - product：引用开始节点的 product  - copies：引用循环节点的 output    - 指定回复： ``` {{product}} 多平台营销文案合集 {{copies}} ```    ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549921.png "点击放大")                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
**试运行：**
在开始节点的product中输入"降噪耳机"，platforms使用默认值\["小红书", "微信朋友圈", "微博"\]，工作流将循环执行3次，每次生成一个平台的文案，通过代码节点拼接后，输出三平台文案合集。在调试视图中可以清晰地看到3次循环的执行过程。
图3试运行   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549915.png "点击放大")
图4查看运行结果   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390033.png "点击放大")
