一.定义
迭代节点的本质就是对数组内容循环处理。对数组执行多次步骤直至输出所有结果。
迭代步骤在列表中的每个条目(item)上执行相同的步骤。使用迭代的条件是确保输入值已经格式化为列表对象。迭代节点允许 AI 工作流处理更复杂的处理逻辑,迭代节点是循环节点的友好版本,它在自定义程度上做出了一些妥协,以便非技术用户能够快速入门。
二.场景
1.示例1:长文章迭代生成器

(1)在 开始节点内输入故事标题和大纲
在 开始节点配置故事标题(title)和大纲(outline)。

(2)使用 代码节点从用户输入中提取出完整内容
通过 Jinja-2 模板节点 将故事标题与大纲转换为完整文本。

(3)使用 参数提取节点将完整内容转换成数组格式
通过 参数提取节点,将故事文本转换成为数组(Array)结构。提取参数为 sections ,参数类型为 Array[Object]。

(4)通过 迭代节点包裹的LLM 节点循环多次生成各章节内容
将数组格式的故事大纲作为迭代节点的输入,在迭代节点内部使用 LLM 节点进行处理。

在 LLM 节点内配置输入变量 GenerateOverallOutline/output 和 Iteration/item

其中,迭代的内置变量包括items[object] 和 index[number]。items[object] 代表以每轮迭代的输入条目;index[number] 代表当前迭代的轮次。
(5)将 直接回复 节点添加在迭代节点内部,实现在每轮迭代生成之后流式输出
在迭代节点内部配置 直接回复节点 ,可以实现在每轮迭代生成之后流式输出。

(6)完整调试和预览
按故事章节多轮迭代生成,如下所示:

2.示例 2:长文章迭代生成器(另一种编排方式)

-  在 开始节点内输入故事标题和大纲 
-  使用 LLM 节点生成文章小标题,以及小标题对应的内容 
-  使用 代码节点将完整内容转换成数组格式 
-  通过 迭代节点包裹的 LLM 节点循环多次生成各章节内容 
-  使用 模板转换节点将迭代节点输出的字符串数组转换为字符串 
-  在最后添加 直接回复节点将转换后的字符串直接输出 
三.什么是数组内容
列表是一种特定的数据类型,其中的元素用逗号分隔,以 [ 开头,以 ] 结尾。比如,数字型,字符串型,JSON 对象。
四.支持返回数组的节点
-  代码节点 
-  参数提取 
-  知识库检索 
-  迭代 
-  工具 
-  HTTP 请求 
五.如何获取数组格式的内容
1.使用 CODE 节点返回

2.使用 参数提取 节点返回

六.如何将数组转换为文本
迭代节点的输出变量为数组格式,无法直接输出。可使用一个简单的步骤将数组转换回文本。
1.使用代码节点转换

def main(articleSections: list):
    data = articleSections
    return {
        "result": "\n".join(data)
    }
2.使用模板节点转换

{{ articleSections | join("\n") }}
参考文献
[1] 迭代:https://docs.dify.ai/v/zh-hans/guides/workflow/node/iteration



















