跳转到内容

Iteration(迭代)

节点概述

节点英文名: Iteration
节点中文名称: 迭代
支持场景: Chatflow Agent(支持), Workflow Agent(支持)

功能说明

Iteration 节点与循环类似,但更注重每次迭代对变量的更新并传递给下一轮处理,用于列表、序列或批次数据迭代场景。它提供了强大的迭代处理能力,支持并行模式和错误处理。

节点展示内容

迭代节点在画布上的展示:容器内为 Home 起点与迭代处理节点

1. 基本信息展示

  • 图标: 节点专用图标
  • 名称: 节点名称
  • 循环内的工作模块:
    • 循环内的初始节点为 Home
    • 循环内支持添加节点(除了 Start 和 End 外,都可以添加)
    • 循环内节点的操作逻辑和循环外相同
    • 循环中没有特殊节点
  • 并行模式: 展示并行模式的图标
  • 注释: 用户添加的说明文字

2. 操作按钮

  • 更多按钮: 点击后展示右键菜单内容
  • 运行按钮: 点击进入试运行界面

节点编辑区域

迭代节点编辑面板:输入变量 (Array)、输出变量 (Array)、并行模式开关与下一步

1. 输入变量配置

  • 变量名称: 选择输入变量
  • 变量类型: 支持列表、序列等可迭代数据类型
  • 变量管理: 支持从工作流中选择已有变量

2. 输出变量配置

  • 变量选择: 选择节点内的输出变量
  • 变量类型: 支持各种数据类型
  • 变量管理: 支持添加和管理输出变量

3. 并行模式配置

  • 并行模式开关: 在编辑面板中开启
  • 并行数量: 开启并行模式后可设置,最大 10,最小 2

4. 错误处理配置

错误相应的办法,包括:

  • 错误时终止: 遇到错误时立即终止迭代
  • 忽略错误并继续: 忽略错误继续执行
  • 移除错误输出: 移除错误的输出结果

5. 迭代内节点的配置

迭代内节点 (工具节点) 的编辑面板:通过 item 变量引用当前迭代元素

  • 迭代内节点的编辑面板与迭代外的同类节点一致 (如上图的工具节点:输入变量、展示配置、引用、输出变量、失败重试、异常处理等)
  • 关键差异:迭代内节点可以引用迭代节点的 item 变量——即当前这一轮迭代正在处理的元素 (如上图 query 参数引用了 获取宏观.../item,每轮迭代传入列表中的一个关键词)
  • 迭代的输出变量从迭代内节点的输出中选择,逐轮结果汇总为 Array(对应编辑面板「输出变量」的 Array 标签)

6. 下一步配置

  • 支持添加下一个节点

运行逻辑

Iteration 节点的运行逻辑由后端实现,确保迭代处理的正确性和性能。

右键操作

右键菜单包含以下选项:

  1. 更改节点: 修改节点类型
  2. 拷贝: 复制节点
  3. 复制: 复制节点内容
  4. 删除: 删除节点
  5. 帮助链接: 跳转到帮助文档
  6. 运行节点: 测试运行当前节点

测试运行

  • 支持状态: 支持测试运行
  • 更改节点: 支持更改节点类型
  • 复制功能: 支持复制、剪贴、删除操作

使用场景

1. 列表处理

  • 数据处理: 处理列表中的每个元素
  • 批量操作: 对列表元素执行批量操作
  • 数据转换: 转换列表数据格式
  • 数据过滤: 过滤列表数据

2. 序列处理

  • 序列分析: 分析序列数据
  • 序列转换: 转换序列格式
  • 序列计算: 计算序列统计信息
  • 序列预测: 基于序列进行预测

3. 并行处理

  • 并行计算: 并行处理多个任务
  • 性能优化: 提高处理性能
  • 资源利用: 充分利用系统资源
  • 负载均衡: 实现负载均衡

迭代模式

1. 顺序迭代

按顺序处理每个元素:

FOR each item IN input_list:
    处理 item
    更新 output_variables
    传递到下一轮

2. 并行迭代

并行处理多个元素:

PARALLEL FOR each item IN input_list:
    处理 item
    更新 output_variables
    合并结果

错误处理策略

1. 错误时终止

  • 特点: 遇到错误立即停止
  • 适用场景: 对数据质量要求高的场景
  • 优势: 确保数据完整性
  • 劣势: 可能影响处理效率

2. 忽略错误并继续

  • 特点: 忽略错误继续处理
  • 适用场景: 对容错性要求高的场景
  • 优势: 提高处理效率
  • 劣势: 可能影响结果质量

3. 移除错误输出

  • 特点: 移除错误的输出结果
  • 适用场景: 平衡质量和效率的场景
  • 优势: 兼顾质量和效率
  • 劣势: 需要额外的错误检测

最佳实践

1. 迭代设计

  • 逻辑清晰: 设计清晰的迭代逻辑
  • 变量管理: 合理管理迭代变量
  • 性能优化: 考虑迭代性能
  • 错误处理: 添加适当的错误处理

2. 并行配置

  • 数量控制: 合理设置并行数量
  • 资源管理: 管理并行资源
  • 负载均衡: 实现负载均衡
  • 性能监控: 监控并行性能

3. 错误处理

  • 策略选择: 选择合适的错误处理策略
  • 错误检测: 添加错误检测机制
  • 错误恢复: 提供错误恢复方案
  • 错误日志: 记录错误信息

4. 数据管理

  • 类型安全: 确保数据类型正确
  • 格式统一: 保持数据格式统一
  • 质量检查: 进行数据质量检查
  • 结果验证: 验证迭代结果

配置步骤

1. 基础配置

  1. 选择输入变量
  2. 配置输出变量
  3. 设置迭代逻辑

2. 并行配置

  1. 开启并行模式
  2. 配置并行数量

3. 错误处理

  1. 选择错误处理策略(错误时终止 / 忽略错误并继续 / 移除错误输出)

4. 测试验证

  1. 使用试运行功能测试
  2. 检查迭代结果
  3. 验证错误处理

常见问题

Q: 如何选择并行数量?

A: 根据系统资源和任务特点选择,范围是 2-10,建议根据 CPU 核心数设置。

Q: 错误处理策略如何选择?

A: 根据业务需求选择,对质量要求高选择终止,对效率要求高选择继续。

Q: 迭代和循环有什么区别?

A: 迭代更注重变量更新和传递,循环更注重重复执行,迭代支持并行模式。

Q: 如何优化迭代性能?

A: 使用并行模式,合理设置并行数量,优化迭代逻辑,减少不必要的操作。

Q: 迭代结果如何管理?

A: 通过输出变量管理迭代结果,支持各种数据类型,可以合并或分别处理。

注意事项

  1. 并行控制: 合理控制并行数量,避免资源过度使用
  2. 错误处理: 选择合适的错误处理策略
  3. 数据质量: 确保输入数据的质量和格式
  4. 性能考虑: 考虑迭代对系统性能的影响
  5. 结果验证: 验证迭代结果的正确性

帮助资源

  • 帮助文档: 支持跳转到 Infra 帮助文档
  • 测试运行: 支持节点级别的测试运行