在这里插入图片描述

一、Agent 节点(Agent Node)

1. 定义与作用

Agent 节点通过加载不同的推理策略(Strategy),将 LLM 的思考与外部工具调用相结合,实现多步动态决策与执行。常用于自动化问答、自主检索与任务编排场景。

2. UI 配置面板说明
  1. 节点标题:自定义节点名称,方便流程中识别。

  2. Agent 策略:下拉选择已安装的策略插件(Function Calling、ReAct 等)。

  3. 模型:选择底层大语言模型(如 GPT-4o-mini)。

  4. 工具列表:点击“+”导入工具:

    • 搜索并勾选插件
    • 填写授权信息(API Key、OAuth Token)
    • 配置工具描述与参数说明
  5. 任务指令(Prompt):编写系统/用户/助手消息,指定目标与上下文,支持 Jinja2 变量引用。

  6. 用户输入(Query):映射对话或流程传入的查询变量。

  7. 最大迭代次数:设置 Agent 的思考+行动循环上限,防止无限循环。

  8. 记忆:开启后,Agent 将保留指定轮次的上下文历史,帮助理解代词和上下文依赖。

  9. 输出变量:定义最终返回给下游节点的结构,可为 Object 或自定义类型。

3. 执行原理
  1. 初始化:加载策略、工具与上下文。

  2. 循环逻辑(ReAct):

    • 思考(Think):调用 LLM 输出当前动作意图与参数。
    • 行动(Act):执行选定工具或函数调用。
    • 观察(Observe):将工具输出返回给 LLM,进入下一轮思考。
  3. 终止条件:达到最大迭代次数或满足自定义结束标志。

  4. 结果汇总:将最终的思考或工具输出封装至定义的输出变量。

4. 进阶功能
  • 并行工具调用:在策略插件中可配置并发调用多个工具(需策略支持)。
  • 自定义策略插件:开发者可基于 Dify 插件规范,编写并上传自定义 Agent 策略。
  • 日志与监控:点击“详情”可查看每轮思考、调用与输出,支持导出为 JSON 供离线审计。
5. 最佳实践
  • 提供明确的系统指令,避免模型在思考阶段偏离目标。
  • 工具参数类型须与参数提取节点输出保持一致。
  • 合理设置迭代上限,防止无效循环。
  • 对关键步骤配置异常处理,与“异常处理”节点联动。

二、工具节点(Tool Node)

1. 定义与作用

工具节点封装外部服务或自定义函数接口,使流程可以直接调用数据库、搜索 API、文件系统等功能,实现低代码扩展。

2. UI 配置面板说明
  1. 工具选择:下拉列表显示已安装的插件,支持搜索关键词快速定位。
  2. 参数映射:根据插件定义的参数结构,填写对应变量或常量值。
  3. 授权管理:集中管理 API Keys、OAuth 凭证,支持环境变量引用。
  4. 高级选项:超时设置、并发限制、重试策略(部分工具支持)。
  5. 输出映射:勾选或自定义返回字段,将工具响应映射为流程变量。
3. 执行原理
  1. 输入校验:检查必填参数与类型一致性。
  2. 发起调用:通过 SDK 或 HTTP 请求与外部服务交互。
  3. 响应处理:接收响应,按映射规则转换为流程变量。
  4. 错误捕获:触发异常时,可进入“异常处理”分支或执行默认错误重试。
4. 进阶功能
  • 本地函数:支持用户自定义代码插件,直接执行 Python/JavaScript 函数。
  • 数据转换:内置输入/输出转换脚本,支持 JSONPath、Jinja2 模板加工。
  • 批量调用:与迭代节点结合,对列表参数执行批量调用。
5. 最佳实践
  • 参数提取节点与工具节点配合,确保输入精准无歧义。
  • 对敏感凭证使用环境变量或密文管理。
  • 在测试阶段开启工具的“日志”模式,调试请求与响应。

三、结束节点(End Node)

1. 定义与作用

结束节点作为 Chatflow/Workflow 的收尾,将指定变量整理并输出给最终用户或外部系统,标志流程终点。

2. UI 配置面板说明
  1. 输出列表:展示可选的所有流程变量,勾选需要返回的变量。
  2. 输出格式:选择文本、Markdown、JSON、HTML 或自定义模板。
  3. HTTP 响应(API 模式):设置 HTTP 状态码、响应头和响应体结构。
  4. 触发条件:可配合条件分支,仅在满足指定条件时触发该结束节点。
3. 执行原理
  1. 收集变量:从工作流上下文读取配置的输出变量值。
  2. 格式化渲染:按照选择的格式或模板,渲染最终结果。
  3. 返回/展示:在 Chatflow 场景下推送给用户;在 API 场景下以 HTTP 响应返回。
4. 进阶功能
  • 多格式同时输出:在不同渠道(聊天、邮件、API)使用不同格式。
  • 条件输出:结合变量聚合,可在同一结束节点内细分多种输出场景。
5. 最佳实践
  • 输出变量命名要简洁、具有语义化。
  • 在 API 模式下,保持一致的响应结构与状态码规范。
  • 对于长文本,考虑分页或拆分输出以提升用户体验。

四、直接回复节点(Direct Reply Node)

1. 定义与作用

直接回复节点用于在 Chatflow 对话中,将指定变量的内容实时发送给用户,适用于中间结果或流式更新场景。

2. UI 配置面板说明
  1. 回复变量:选择单个变量,如 ${replyText}${items} 等。
  2. 流式输出:在迭代节点内部配置,可逐条返回处理结果。
  3. 格式选项:支持 Markdown、纯文本,两者可混用。
3. 执行原理
  1. 监听触发:当流程执行到该节点即刻触发回复。
  2. 内容渲染:将变量值格式化为字符串,根据 Markdown 渲染规则处理。
  3. 消息推送:通过 WebSocket 或 API 将消息推送至用户聊天界面。
4. 进阶功能
  • 多段批量推送:配合迭代节点,实现 N 条结果分段显示。
  • 条件触发:结合条件分支,仅在满足特定条件时进行回复。
5. 最佳实践
  • 对长文本使用 Markdown 折叠或分页,避免一次性输出过多内容。
  • 在高频回复场景中,适当加入延时或进度指示,提升用户体验。

五、迭代节点(Iteration Node)

1. 定义与作用

迭代节点(Batch Processor)将 Array 类型变量拆分为单个元素,依次或并行执行内部子流程,输出与输入等长的结果数组,用于批量任务场景。

2. UI 配置面板说明
  1. 输入数组:选择 Array[...] 类型变量,如 ${sections}${questions}
  2. 并行模式:开关控制顺序或并行执行(并发上限 10)。
  3. 错误响应:配置三种策略:终止 / 忽略并输出 null / 移除错误项。
  4. 子流程画布:内部拖拽任意节点(LLM、工具、直接回复等)。
  5. 输出数组:命名最终结果数组变量,如 ${translatedSections}
3. 执行原理
  1. 拆分输入:将数组变量展为 items[0..n-1]

  2. 执行循环:对每个 item 触发内部子流程:

    • 引用内置变量 itemsindex
    • 执行 LLM、工具或其他节点
  3. 结果收集:按执行顺序或完成顺序填充输出数组。

  4. 错误处理:根据配置跳过或中断。

4. 进阶功能
  • 并行子流程:与异步工具结合,加速批量任务。
  • 内置索引变量:可在模板或代码节点中引用 {{ index }} 生成带序号输出。
  • 嵌套迭代:支持多层迭代,用于处理二维或多维数组。
5. 最佳实践
  • 确保子流程的输入、输出变量与外层一致,避免命名冲突。
  • 对高耗时或失败率高的任务,谨慎开启并行模式并调整错误策略。
  • 在迭代内部避免过多模型调用,合并可批量处理的步骤。
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐