Skip to main content

Loop 节点是什么

LoopNode 是工作流中的“循环控制节点”。
它会按设定的循环次数,重复执行同一套循环体子流程,并把每一轮的结果统一汇总输出给下游节点。
你可以把它理解为:在流程图里可视化地写一个 for 循环。 image-20260413151312987

能解决什么问题

使用 LoopNode 可以解决以下问题:
  1. 需要对同一批逻辑重复执行多次(批处理、重试、迭代加工)。
  2. 需要在每一轮中使用相同上下文变量,并持续产出结构化结果。
  3. 需要在满足条件时提前终止循环,而不是强制跑满轮次。
  4. 需要把“每轮结果”“最后一轮结果”“实际执行次数”统一给下游使用。

配置参数(LoopNode 本体)

当前 LoopNode 仅保留两个核心参数:
  1. maxIterations(循环次数)
    • 含义:最多执行多少轮循环。
    • 作用:控制循环上限。
  2. loopInputVariables(循环输入变量)
    • 含义:循环体可访问的上游变量引用列表。
    • 作用:这些变量会自动映射为 LoopStartNode 输出,供循环体内部节点引用。

Loop内部引用外部上游节点变量

默认情况下,Loop内部的子流程是一个独立的流程,无法共享LoopNode上游节点的变量,但是很多情况下仍需要引用,那么可以在 循环输入变量 中引入这些变量即可,例如: image-20260413152842000

Loop内部如何添加新节点

默认Loop有三个内置节点:循环开始、提交本轮、终止循环 但是画布外部的节点无法拖拽到此Loop内部的子流程中,如果想要在Loop内部流程添加新节点,可以点击节点右下角的红色按钮: image-20260413153033913

Loop 内部节点分工

Loop 内部由三类关键节点协作:
  1. LoopStartNode(循环入口)
    • 暴露循环上下文与输入映射变量(含轮次信息)。
  2. 提交本轮LoopEndNode
    • 选择本轮需要对外输出的变量。
    • 提交本轮后进入下一轮。
  3. 终止循环BreakLoopNode
    • 命中后直接终止整个循环,跳转到 Loop 下游节点。
    • 用于“提前退出”而不是“结束本轮”。

LoopNode 输出变量

LoopNode 会输出以下系统字段:
  1. _loop_results:每轮结果数组。
  2. _loop_last_result:最后一轮结果对象。
  3. _loop_total_iterations:实际执行轮次。
同时,提交本轮 节点中选择的输出变量会自动映射为 LoopNode 的直接输出字段(默认取最后一轮值)。

快速使用步骤

  1. LoopNode 设置 maxIterations
  2. loopInputVariables 中配置循环体需要的上游变量引用。
  3. 在循环体中编排业务节点。
  4. 提交本轮 节点选择需要暴露给下游的变量。
  5. 如需提前退出,在分支上连接 终止循环 节点。
  6. 下游节点直接引用 LoopNode 输出变量。