Dify Iteration 和 Loop 都会重复执行节点,但任务模型不同:Iteration 处理数组里的每一项,Loop 围绕同一组状态反复执行,直到退出条件满足或达到上限。 示例按 Dify 当前官方节点文档整理,未在你的 Dify 版本和模型上实测;节点的并行选项、变量访问与上限以当前工作台显示为准。
本篇验收要点:输入已经是文档、商品或问题数组时,用 Iteration 对每项执行相同子流程,并收集每项结果与失败。 输入是同一份草稿且每轮依据评分继续改写时,用 Loop 保存当前草稿和轮次,并设置退出条件与最大次数。

开始前准备
- 明确输入是数组还是单个可变状态
- 重复任务的输出字段
- 最大轮次或数组上限
- 至少一条失败和一条提前结束用例
按顺序搭建
- 先画数据:若有 items=[A,B,C] 且每项独立,选择 Iteration;若只有 draft,每轮 draft 都替换上一轮,选择 Loop。
- Iteration 中把数组连到节点输入,在内部完成摘要或分类。为每项保留 item_id,避免汇总后无法定位失败项。
- Loop 中定义 draft、score、round 三个状态变量;每轮先评估,再仅在 score 未达标时改写。
- 为 Loop 设置最大轮次和退出条件;评分解析失败或模型没有进展时也要停止,不能只等待“完美”。
- 运行空数组、单项失败、首轮已达标和始终不达标四种用例,查看输出数量和停止原因。
可复制的最小示例
两个节点可以用这张最小决策表来区分:
输入:5 篇文章数组 -> Iteration -> 每篇摘要 -> 5 条结果
输入:1 份文案草稿 -> Loop -> 评分/改写 -> 达标或 3 轮停止
Loop 状态:draft, score, round
退出:score >= 80 OR round >= 3
怎样验收结果
验证标准是 Iteration 的输出能逐项对应输入且失败项可定位;Loop 在达标、达到最大轮次或解析失败时明确停止,并保留最后版本和停止原因。
- 空数组不会误执行一次
- Iteration 失败项保留 item_id
- Loop 首轮达标时不继续改写
- Loop 到上限时标记未达标而不是伪装成功
常见失败与处理
- 把字符串传给 Iteration:先用代码或模板节点解析为数组。
- Loop 一直运行:核对退出条件引用的是最新 score,并设置最大轮次。
- 多轮文字越来越差:保留上一版和评分理由,必要时回退而非强制接受最后一版。
读者下一步是分别用三个字符串的数组和一段待改写文案做最小测试,观察两种节点的变量和输出差异。
相关问答
Iteration 可以并行吗?
是否并行及并发能力取决于当前版本和配置;即使可并行,也要遵守下游模型限流。
Loop 能代替聊天多轮对话吗?
不完全等同。Loop 是工作流内部的状态循环,用户会话还涉及输入、记忆和恢复。
官方资料与适用边界
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/32430.html