更新时间:2026-03-20 GMT+08:00
分享

循环

循环环节点用于在工作流中重复执行一系列任务,直到满足特定条件为止。当你需要批量处理数据、逐一遍历列表元素或按固定次数重复执行某个操作时,可以使用循环节点来实现。

循环是一种常见的工作流控制机制,它让一组操作能够被重复执行,而不需要手动复制粘贴相同的节点。在实际业务场景中,循环节点可以帮助您:

  • 逐条处理列表数据:对一组数据中的每一条逐一执行相同的操作,例如依次对多篇文章进行摘要提取。
  • 重复执行固定次数的任务:例如让大模型连续生成多轮创意方案,每轮基于上一轮结果优化迭代。
  • 满足条件时自动终止:配合终止条件,在循环过程中自动判断是否需要提前退出,避免无效执行。

约束限制

在使用循环节点之前,请了解以下限制:

  • 循环节点内不支持配置问答节点、提问器节点、Agent节点、输入节点或带有这些节点的子工作流。
  • 循环体内的节点执行必须从循环输入节点开始,输出连接到循环输出节点。

循环类型

循环节点的运行模式由循环类型决定,不同的循环类型适用于不同的场景。目前支持以下两种循环类型:

表1 循环类型说明循环类型

循环类型

适用场景

循环次数

终止方式

使用数组循环

遍历已知列表中的每个元素

取决于数组长度

数组遍历完毕后自动结束,或满足终止条件时提前退出

指定循环次数

需要重复执行固定次数的操作

手动指定次数

达到指定次数后自动结束,或满足终止条件时提前退出

使用数组循环

数组循环类似编程语言中的for语法结构,用于遍历一个已知的序列(数组),对序列中的每个元素执行完全相同的步骤。

  • 运行机制:循环的次数取决于您传入的数组长度(例如传入包含5个元素的数组,就循环5次)。您需要将上游节点的数组输出引用给循环节点。
  • 内置变量:在数组循环中,系统会自动提供两个仅限循环体内部使用的内置变量:
    • item(元素):当前这一轮循环正在处理的具体数据内容。
    • index(索引):当前循环的轮次标识(从0开始计算。0代表第1次循环,1代表第2次循环,以此类推)。
  • 典型场景:长文档分段总结、批量翻译多国语言、根据一组核心词批量生成多篇营销文案。

指定循环次数

指定循环次数时,不需要依赖外部输入的数组,而是直接设定一个固定的循环次数。

典型场景:多轮次剧情推理、固定部署的数据清洗与重试。

配置循环节点

添加循环节点:

在工作流编辑页面,单击下方“添加节点”,选择“循环”节点。循环节点中执行具体任务的节点,可以添加后,拖拽至循环节点内部。循环体内的流程必须从“循环输入”开始连线,经过具体任务节点,最终连线到“循环输出”。

循环类型:

  • 若选择“使用数组循环”,需配置arr_loop_var变量。arr_loop_var是数组循环模式下的固定入参,用于接收需要遍历的数组。循环节点会依次取出该数组中的每个元素,逐轮传入循环体执行处理。它支持引用上游节点的输出,且必须为数组格式,数组的长度即为循环的执行次数。
  • 若选择“指定循环次数”,直接输入设定的次数,循环次数支持设置为1~1000次。

中间变量:

中间变量是循环节点中用于在每一轮循环之间传递和更新数据的参数。中间变量可以输入一个固定值,或者引用前置节点的输出变量和全局配置中的记忆变量。

  • 中间变量可以将将不需要遍历的背景信息(如产品介绍、全局要求、用户设定的固定条件)一次性传入循环体,让每一轮循环都能直接读取和使用,而无需在节点内反复手写。例如,例如上游节点通过插件查询到了“今天的天气是晴天”,您可以将天气结果通过中间变量传给循环体,让大模型在后续的每一轮循环创作中都知道今天是晴天。
  • 除了当做常量使用外,在循环体中通过结合“变量赋值”节点,将本轮处理后的最新结果覆盖更新到该中间变量中。下一轮循环启动时,节点会自动读取更新后的值,从而实现中间变量的动态更新。

输出参数:

循环节点的输出参数可设置为循环体的执行结果集合,表示当数组中所有元素运行完毕之后,将所有循环的运行结果打包输出给下游。

终止条件:

通常情况下,循环节点会一直执行,直到“数组遍历完”或“达到指定的循环次数”。但在实际业务中,往往需要根据运行过程中的动态结果来随时停止循环(例如:AI 已经给出了满意的答案、或者调用的插件连续报错)。

终止条件并非实时监控,而是在每次循环体执行完成后进行判定。终止条件通常需要与中间变量搭配使用,这是最常见的使用模式。原因在于:终止条件需要一个"判断依据",而这个依据往往是循环过程中不断更新的状态值(即中间变量)。

终止条件由一个或多个条件表达式组成,每个条件表达式的结构为:[判断参数] [比较条件] [比较参数]。

  • 判断参数:选择来自循环体内前序节点的输出参数或中间变量。这是终止条件的“监控对象”。
  • 比较条件:系统会根据你选择的判断参数类型,自动提供对应的判断规则。包括但不限于:
    • 文本类:等于/不等于、包含/不包含、为空/不为空等。
    • 数值/数组类:长度大于 (>=) / 长度小于 (<=) 等。
  • 比较参数:用于对比的目标值,支持两种设置方式:引用(选择前置节点输出变量或全局记忆变量)和输入(直接填写具体值)。

配置示例

本示例创建创建一个产品文案写作助手,使用数组循环方式,通过循环体生成["小红书", "微信朋友圈", "微博"]风格的宣传文案。

  1. 创建一个任务型工作流,并添加循环节点、大模型节点,并将大模型节点放置在循环体内部,连接各节点。

    图1 创建任务型工作流
    图2 编排循环节点

  2. 配置开始节点,开始节点共计两个参数,将新增的item参数设置为Array<String>格式,并单击输入默认值["小红书", "微信朋友圈", "微博"]。

    图3 配置开始节点

  3. 配置循环节点。单击循环节点,参考下图完成配置。

    循环类型:使用数组循环。

    循环数组:引用开始节点的item参数。

    输出参数:设置为output,引用大模型的输出结果参数raw_output。
    图4 配置循环节点

  4. 配置循环体中的大模型节点,单击大模型节点,参考下图完成配置。

    模型配置:选择任一可用模型。

    输入参数:新增query参数,引用开始节点的query参数;新增item参数,引用循环节点的item参数。

    输出参数:使用默认。

    用户提示词:

    你是一位资深的百万粉自媒体爆款操盘手。我的新产品是一款{{query}}。
    请针对 {{item}} 平台的受众偏好和语言风格,为我写一篇吸引人的种草文案。
    
    需要按照以下格式输出:
    {{item}}风格文案:
    图5 配置大模型节点

  5. 配置结束节点,result参数引用循环节点的输出参数output。

    图6 配置结束节点

  6. 单击“试运行”,参考下图输入测试问题后,运行工作流。

    图7 试运行工作流

  7. 检查输出结果是否符合预期。

    可查看工作流已经按照要求输出对应的文案。单击“调试”可查看工作流的调用链信息,由于本案例中["小红书", "微信朋友圈", "微博"]共有3组数据,因此可以看到大模型通过循环的方式执行了3次。
    图8 检查输出结果
    图9 查看调用链

常见问题

  • 不设置终止条件会怎样

    不设置终止条件时,循环将完整执行。数组循环会遍历完所有元素,指定循环次数会跑满设定轮次。如果您的场景需要每条数据都处理,可以不设置终止条件。

  • 循环次数设置为1是否有意义

    有。设置为1次本质上就是执行一次循环体中的逻辑。在某些场景下,你可能希望通过循环节点的结构来组织一段独立的子流程,或者先将循环次数设为1进行单轮调试,确认逻辑正确后再调大轮数。

  • 为什么循环体不支持 Agent 节点或问答节点

    循环节点的设计初衷是处理“批量任务”。Agent 和问答节点属于强交互式任务,包含复杂的上下文交互和人工干预逻辑,目前在循环结构中尚未开放,以避免死循环或响应超时。

相关文档