Dify的并行节点(Parallel Node)能够同时执行多个独立任务,大幅提升工作流效率。需要注意的是,该功能仅面向Pro版和企业版工作流开放。配置时需设置2至8个分支,每个分支内只能包含一个根节点,且禁止嵌套并行节点。最终结果通过Merge节点合并,支持Object或Array两种模式;若某分支超时未返回,对应字段将填充为null,不会影响其他分支的正常执行。

在构建复杂Dify工作流时,常会遇到多个独立任务,例如同时调用天气API、查询数据库或生成摘要。若按顺序逐一执行,整体响应时间会显著延长。借助并行节点,这些任务能够同时发起,从而有效缩短等待时间,提升工作流处理性能。
确认工作流支持并行节点
首先,登录Dify控制台,在应用管理中找到目标应用,点击“编排”进入可视化工作流编辑界面。需注意,仅企业版及Pro版工作流会显示Parallel Node组件;免费版界面中不会出现该节点图标。
若左侧节点栏未出现两个重叠方框的“Parallel”图标,则表明当前版本不支持并行执行。此时,可考虑升级至Pro版以启用该功能。
添加并行节点并配置分支
从左侧节点栏将“Parallel”节点拖拽至画布中央,松开后自动生成三个默认分支:Branch 1、Branch 2、Branch 3。您可以点击分支右上角的“+”新增分支,最多可配置8个并发分支。若要删除空分支,点击分支名称旁的垃圾桶图标,但至少需保留2个分支才能启用并行逻辑。
每个分支内仅能接入一个根节点(例如LLM、HTTP、Knowledge Retrieval等),且不可嵌套另一个Parallel节点,否则保存时将触发校验失败,提示“Nested parallel nodes not allowed”。
将独立任务分配到不同分支
分配任务有两种方式。第一种是将已建好的节点直接拖入分支:例如将HTTP请求节点拖入Branch 1区域,再将另一个LLM调用节点拖入Branch 2区域,系统会自动绑定至对应分支入口。
第二种方式是在分支内新建节点:点击Branch 1的空白区域,选择“+ Add node”,然后选择“HTTP Request”并配置URL与参数。同样,在Branch 2中新建“Knowledge Retrieval”节点并选定知识库。
一个需特别注意的细节是:分支内的节点必须明确设置输出字段,否则并行合并时会导致数据丢失。例如,HTTP节点需勾选“Return response body”,LLM节点需将“Output variable name”设置为result_text,否则后续Merge节点将无法读取对应结果。
合并并行结果
第一步:连接Merge节点。从左侧拖入“Merge”节点,将其输入端口分别与各分支最后一个节点的输出端口一一连线(例如Branch 1→Merge Input 1,Branch 2→Merge Input 2,以此类推)。
第二步:配置Merge策略。点击Merge节点,在右侧面板选择“Merge mode”。若选择“Object”,各分支输出将合并为一个JSON对象,键名为分支名;若选择“Array”,则合并为一个数组,按分支顺序排列。
第三步:引用合并后数据。在后续的LLM或Condition节点中,可通过{{merge.output.key_name}}访问Branch 1返回的特定字段,也可直接使用{{merge.output}}获取整个合并结果。若某分支超时未返回,该字段的值将为null,但这不会阻塞其他分支的结果。
