Dify循环节点完全指南:变量传递、退出条件与实战案例解析

在 Dify 的自动化工作流中,循环节点就是用来处理这种“一叠任务”的。它允许你把一系列节点(如 LLM、代码执行、变量赋值)打包在一起,让它们反复运行,直到达到你设定的目标。

比如:初始数值是10,每次+5,直到结果大于N值。它会一直循环这个+5的动作,直到最终结果超过某个值(你设定的)才停止。

一. 什么是循环节点?

在 Dify 中,有两种看起来很像的“重复”方式,新手最容易混淆:

  1. 迭代(Iteration): 像“发传单”。你有一叠传单(列表),发完一张再发下一张,每张传单之间没啥关系。
  2. 循环(Loop): 像“改论文”。你写一遍,导师提意见,你根据意见改第二遍,导师再提意见,你再改第三遍……每一轮的结果都依赖于上一轮。

核心定义: 循环节点用于执行那些需要“不断优化”或“层层递进”的任务,直到满足某个条件(比如分数达标或次数用完)才会停止。

Dify循环节点概念图,展示循环变量在每一轮迭代中的传递和更新机制

二. 循环节点的三个核心要素

2.1 循环变量 (Loop Variables)

这是循环的“记忆”。如果你想让 AI 在第二轮知道第一轮改了什么,就必须把内容存在循环变量里,这样后面一轮才能调用前面的数据。比如:

  • 第一轮是10+5,那第二轮就是第一轮的值15+5,第三轮是20+5,以此类推。初始变量是一个初稿,每循环一次,就把新的草稿存进去。
Dify循环节点变量设置界面,显示Curren_sum等循环变量的初始值配置

2.2 退出条件 (Termination Conditions)

如果没有退出条件,AI 就会陷入“死循环”,直到耗尽你的 Token。Dify 提供了三种刹车方式:

  • 逻辑判断: 比如“相加的和 > 50时停止”。
  • 最大次数: 比如“最多改 5 次,这个循环执行5此后也会自动停止”。
  • 退出循环节点 (Exit Loop): 在循环内部放一个判断,满足某个特定条件时直接“跳出”。

2.3 循环体 (Loop Body)

在循环节点的框内可以添加各种节点(如 LLM 节点、代码节点),用来执行循环额任务。比如上面提到的每次+5。

三. 实例解析

下面是一个添加数字,直到超过某个值才停止并输出结果的工作流。

Dify循环节点概念图,展示循环变量在每一轮迭代中的传递和更新机制

3.1 用户输入节点

我在里面设置了三个输入变量。初始值(Num),每次+多少(jiashu),需要超过多少(Over_Num)。

3.2 添加循环节点

  1. 在工作流中拉入 循环节点
  2. 设置循环变量: 添加一个变量 Curren_sum初始值引用 Num。(将用户最开始输入的值赋给Currencies_sum)
  3. 设置退出条件: 设定Curren_sum>Over_Num。
Dify循环节点退出条件配置面板,展示逻辑判断和最大次数限制选项

3.3 循环节点内部的执行

【LLM】这个节点用来执行原始数值+5这个工作,【代码执行】是将结果输出为数值的格式,【变量赋值】是将执行后的结果重新给到Curren_sum。这个新的值会和最开始输入的Over_Num比较,如果不符合退出循环的条件就接着新的Curren_sum值接着循环这里的过程,直到Curren_sum>Over_Num。

Dify循环节点概念图,展示循环变量在每一轮迭代中的传递和更新机制

最后输出结果即可。

四. 避坑指南

  • 别忘了“变量赋值”: 很多新手发现循环跑了好几圈,结果都一样,通常是因为没有在循环末尾用“变量赋值”节点更新循环变量。
  • 一定要设最大次数: 为了防止逻辑写错导致 Token 燃烧,建议习惯性设置最大循环次数(如 3-5 次)。
  • 区分迭代与循环: 如果你只是想批量翻译 100 个单词,请用“迭代”节点;如果你想让 AI 翻译完一段话后再反复检查是否有错别字,请用“循环”。

© 文章版权归白小菌所有,🫰欢迎转发分享。未经允许请勿抄袭转载。

订阅评论
提醒
guest
0 评论
最新
最旧 最多投票
内联反馈
查看所有评论

AI 小菌
现代响应式侧边栏
快捷菜单