Skip to content

循环节点 ​

循环节点用于对一组数据、固定次数或持续条件重复执行同一段工作流逻辑。它适合逐段生成文章、逐条处理表格数据、依次调用外部服务等需要保留处理顺序的场景。

循环节点的数组配置和中间变量

循环类型 ​

循环节点提供三种运行方式。在节点右侧的 循环类型 中选择所需方式。

循环类型选项

使用数组循环 ​

数组循环会依次处理上游传入的数组。添加循环数组后,为它填写变量名并引用一个数组类型的变量。

  • 循环次数等于数组长度;空数组不会执行循环体。
  • 可以添加多个循环数组;系统按最短数组的长度执行,避免出现某个数组已无元素的情况。
  • 循环体内,变量名表示本轮正在处理的元素。例如将数组变量命名为 paragraph,则 paragraph 表示当前段落。
  • index 是从 0 开始的本轮索引;需要显示轮次时可使用 index + 1。

如果循环体还需要访问完整数组,请直接引用上游数组变量,不要把循环变量当作原数组使用。

指定循环次数 ​

指定循环次数适用于轮询、重试、分步生成等没有现成数组的场景。可以输入固定整数,也可以引用整数变量。

  • 固定值默认是 10,可填写 1 到 1000。
  • 循环完成指定次数后自动结束。
  • 调用模型、插件或数据库前,应结合单次调用的耗时和成本设置合理次数。

无限循环 ​

无限循环适用于需要持续执行、直到满足业务条件才停止的场景,例如持续获取下一页数据,直到没有更多记录。

在循环体中使用选择器判断退出条件,并将满足条件的分支连接到 终止循环 节点。应同时考虑空结果、异常结果和达到业务上限等退出路径,避免流程长时间无法结束。

配置循环体 ​

创建循环节点后,画布中会出现对应的 循环体。选中循环体后点击 添加节点,在其中编排每一轮要执行的节点。

  • 循环体不需要开始节点和结束节点,节点按照连接关系执行。
  • 设置变量、终止循环 和 继续循环 只能添加在循环体内。
  • 每一轮会在上一轮结束后再开始,因此适合有前后依赖的处理;相互独立且希望并行处理的任务可使用批处理节点。

中间变量 ​

中间变量会在多轮循环间保留,用于累计数值、保存上一次结果或传递处理状态。

  1. 在循环节点的 中间变量 区域点击新增,设置变量名、类型和初始值。
  2. 在循环体中添加 设置变量 节点,选择该中间变量并为它赋值。
  3. 下一轮循环可直接引用更新后的变量值。

中间变量的数据类型应与赋值结果一致。例如逐段写作时,可以创建字符串变量 lastParagraph,初始值设为空字符串;每轮生成段落后,将模型输出写回 lastParagraph,让下一轮生成时参考上一段内容。

在循环体中更新中间变量

设置输出 ​

在 输出 区域点击新增,为循环节点添加输出参数,并选择循环体内节点的输出作为来源。循环结束后,各轮对应的结果会按执行顺序汇总为列表:

  • 循环体输出字符串时,循环节点输出为 List<String>。
  • 循环体输出对象时,循环节点输出为 List<Object>,对象字段会随每一轮结果保留。

需要向下游传递最终处理结果时,建议在循环体中使用一个明确的业务节点或代码节点产生输出,再将该输出配置为循环节点输出。

示例:逐段生成文章 ​

假设开始节点接收 paragraphs(段落主题数组),可按以下方式配置:

  1. 添加循环节点,选择 使用数组循环,将循环数组变量命名为 paragraph,引用 paragraphs。
  2. 添加字符串中间变量 lastParagraph,初始值设为空字符串。
  3. 在循环体内添加大模型节点,提示词引用 paragraph 和 lastParagraph,生成当前段落。
  4. 添加设置变量节点,将大模型输出写入 lastParagraph。
  5. 将大模型节点的段落输出添加为循环节点输出,供下游节点汇总或保存。

这样每一轮都能处理一个段落主题,并参考前一轮的结果保持上下文连贯。

调试建议 ​

  • 首次调试时,将数组缩小为 2~3 个元素,或将循环次数设为较小值。
  • 在运行记录中逐轮查看输入、节点输出和中间变量是否符合预期。
  • 对数组循环,分别验证空数组、单个元素和多个数组长度不一致的情况。
  • 对包含写入操作的流程,确保操作可重复执行或具备去重逻辑,避免调试时重复写入数据。

常见问题 ​

如何把文本转换为循环数组? ​

循环数组需要引用数组类型变量。若上游只有文本,可先使用代码节点按换行符、逗号或其他规则拆分文本并输出数组,再将该数组引用到循环节点。

为什么看不到设置变量、终止循环和继续循环? ​

这些节点仅在循环体中可用。请先选中循环体,再点击 添加节点 打开节点面板。

多个循环数组长度不一致时如何处理? ​

循环以最短数组的长度为准。若业务上要求数据一一对应,请在进入循环前先校验各数组长度。

如何结束无限循环? ​

使用选择器或其他判断节点检查退出条件,并将满足条件的分支连接到 终止循环 节点。不要只依赖外部调用失败作为退出条件,应同时处理正常结束和异常结束的路径。