循环节点用于重复执行一系列任务,通过循环体子画布编排循环逻辑,支持数组循环和指定次数循环两种模式。
使用示例
以下以批量介绍多个城市为例,该工作流接收一个城市名称数组,通过循环节点依次将每个城市名传给大模型,让大模型为每个城市生成一句话介绍,最后将所有介绍汇总为数组输出。
节点接入
方法1:使用+按钮添加
- 将鼠标悬停在画布上任意节点上(如开始节点),节点右侧自动显示 + 按钮。
- 点击 + 按钮,在弹出的节点列表中选择逻辑循环,节点将自动添加到画布并与上游节点建立连线。
- 添加循环节点后,画布会自动生成循环体子画布,其中包含固定的循环开始节点和迭代结束节点。
方法2:从节点库拖拽添加
- 在左侧节点库中选择逻辑循环。
- 拖拽节点到画布合适位置,从上游节点边缘拖拽连线到循环节点。
- 添加循环节点后,画布会自动生成循环体子画布,其中包含固定的循环开始节点和迭代结束节点。
核心配置
循环类型
循环类型决定循环的执行方式,支持两种模式:使用数组循环和指定循环次数。默认为使用数组循环。
使用数组循环
使用数组循环遍历数组中的每个元素,循环次数由数组长度决定。输入必须是数组类型数据,循环会按照数组的索引顺序执行。支持添加多个数组,循环次数以最短数组长度为准。
数组循环模式下,循环体内的节点可通过变量引用访问当前循环到的数组元素及索引。
| 变量名 | 类型 | 说明 |
|---|---|---|
| item | 与数组元素类型一致 | 当前循环到的数组元素 |
| index | Number | 数组索引,从 0 开始计数 |
| 示例: | - 数组 ["北京", "上海", "广州"] | - 第1次循环:item = "北京",index = 0 |
| - 第2次循环:item = "上海",index = 1 | - 第3次循环:item = "广州",index = 2 | 指定循环次数 |
| 指定循环次数模式按固定次数执行循环,适用于需要重复执行固定次数的场景。 | 参数名 | 类型 |
| 必填 | 说明 |
|---|---|
| 循环次数 | Number |
| 是 | 循环执行的次数,取值范围1-1000。 |
中间变量
默认情况下,每次循环是独立的——第 1 次循环不知道第 2 次循环会做什么,第 2 次循环也拿不到第 1 次循环的结果。中间变量解决的就是这个问题:它在整个循环过程中持续存在,每次循环都能读取它的值,也能通过变量赋值节点更新它,从而把上一次循环的结果传递给下一次循环。
核心机制:
- 循环开始前,中间变量被设置为初始值。
- 每次循环中,循环体内的节点可以读取中间变量的当前值。
- 通过变量赋值节点,可以在循环体内将中间变量更新为新值。
- 下一次循环开始时,中间变量已经是上次更新后的值。
| 场景 | 中间变量用途 | 示例 |
|---|---|---|
| 长文生成 | 存储上一段落的内容,让大模型生成下一段时参考上文,保持上下文连贯 | 变量 last_paragraph,初始值为空,每次循环结束后赋值为当前段落内容 |
| 计数与提前终止 | 记录满足特定条件的次数,达到阈值时配合终止条件退出循环 | 变量 error_count,初始值为 0,每次循环遇到错误时加 1,终止条件设为 error_count >= 3 |
| 结果拼接 | 逐轮累积结果,最终输出一个完整的拼接内容 | 变量 full_text,初始值为空字符串,每次循环将新段落追加到末尾 |
终止条件
终止条件是自行设定的循环退出条件,系统在每次循环开始前检查终止条件,条件成立则立即跳出循环。终止条件只能基于中间变量进行判断,不支持引用循环数组元素、工作流全局变量等其他变量。因此使用终止条件时,必须先在循环节点中定义对应的中间变量,并在循环体内通过变量赋值节点更新其值。
终止条件支持配置多个条件组,每个条件组内可包含多个条件:
- 条件组之间:或逻辑,即任意一个条件组满足,循环即终止。
- 条件组内部:通过当满足以下 XX 条件时下拉框选择逻辑关系:
- 所有(默认):与逻辑,组内所有条件都满足时,该条件组才算满足。
- 任意:或逻辑,组内任意一个条件满足,该条件组即算满足。
输出变量
输出变量用于存储循环结果,输出格式为数组,数组元素为每次循环的结果。如果循环提前终止,输出数组包含已完成的循环次数对应的结果
循环体
循环体是循环节点的子画布,用于编排循环的主逻辑。每个循环迭代中,工作流会依次执行循环体画布内的各个节点。自动包含固定的循环开始节点和迭代结束节点。
循环体子画布内的节点连接方式与工作流主画布一致,但存在以下限制:
- 不支持嵌套循环:循环体内不能添加另一个循环节点。
- 不能添加批处理节点:循环体内不能添加批处理节点。
- 不支持将循环体外部的节点拖动至循环体内。
- 循环体中的节点不能移动到循环体之外。