Dify 工作流编排指南:怎么构建含条件分支与代码执行的复杂逻辑

白榆
白榆
发布时间:2026-09-20| 5人浏览过
原创

Dify 的工作流(Workflow)模式允许用户将大语言模型、工具调用和逻辑控制组合成可视化的执行链路。对于需要处理非结构化输入或执行特定业务规则的场景,单纯依靠 LLM 的输出往往不够稳定,这时就需要引入条件分支和代码执行节点来增强流程的控制力。

Dify 工作流编辑界面概览

Dify 工作流编辑界面概览

概述

进入 Dify 应用创建页面,选择“工作流”类型。主界面左侧是节点组件库,中间是画布区域,右侧是选中节点的配置面板。核心逻辑通常由“开始”节点触发,经过若干处理节点,最终由“结束”节点输出结果。要实现复杂逻辑,关键在于正确使用“条件分支”和“代码”这两类节点。

概述

概述

关于【条件分支】节点

条件分支节点用于根据预设规则将流程导向不同的路径。在左侧组件库中找到“逻辑”分类,拖拽“条件分支”节点到画布中。

条件分支节点的规则设置界面

条件分支节点的规则设置界面

连接上游节点后,点击该节点,右侧面板会出现“添加条件”按钮。每个条件可以设置多个子规则,规则之间默认为“且”的关系。例如,可以设置“变量 A 包含 关键词 B”作为第一条路径的条件。如果所有条件都不满足,流程会进入默认的“其他”路径。

配置时需注意变量的来源。点击输入框旁的变量选择器,可以从上游节点(如开始节点或 LLM 节点)的输出中提取字段。常见的用法包括判断用户意图分类、检查必填参数是否存在或验证数值范围。

关于【代码】节点

当内置的逻辑运算符无法满足需求,或者需要对数据进行格式化、计算、加密等处理时,代码节点是最佳选择。在组件库的“工具”或“逻辑”分类中找到“代码”节点并拖入画布。

代码节点支持 Python 和 JavaScript 两种语言。在右侧配置面板中,首先定义“输入变量”,这些变量将映射为代码中的函数参数。接着在编辑器中编写处理逻辑。例如,可以将一个 JSON 字符串解析为对象,或者对列表进行去重排序。

编写完成后,必须定义“输出变量”。只有在这里声明的变量,才能被下游节点引用。点击“测试运行”按钮,可以传入模拟数据查看代码执行结果,确保逻辑无误后再连接到后续节点。

关于【变量聚合】与流程合并

使用条件分支后,流程会产生多条路径。如果后续步骤需要统一处理,可以使用“变量聚合”节点(部分版本称为“参数提取”或通过结束节点直接映射)。

条件分支后的流程汇聚结构

条件分支后的流程汇聚结构

在多条路径汇聚到同一个下游节点前,需要确保各路径输出的数据结构一致。如果不同分支产生了不同格式的结果,可以在各自分支末尾添加代码节点进行标准化,或者在汇聚点使用变量聚合节点将不同路径的输出映射为统一的变量名。这样,无论流程走哪条分支,下游节点都能接收到格式一致的输入。

关于【调试与追踪】

构建复杂工作流时,实时调试至关重要。点击画布右上角的“运行”或“调试”按钮,输入测试用例。执行过程中,画布上的连线会高亮显示当前流经的路径。

调试模式下的节点执行日志详情

调试模式下的节点执行日志详情

点击任意已执行的节点,右侧面板会显示该节点的详细输入和输出日志。对于代码节点,这里还能看到标准输出(stdout)和错误信息。通过观察每一步的实际数据变化,可以快速定位条件判断失效或代码报错的原因,进而调整配置参数。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。