必须正确配置条件分支节点的表达式与分支路径:用{{}}包裹变量,按优先级从上到下排列多分支,vip等高优条件置顶,空分支作兜底,并通过调试验证路径准确性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify工作流中根据用户年龄、订单金额或权限等级等动态数据决定下一步执行哪个节点,必须正确配置条件分支节点的表达式与分支路径,否则流程会卡在判断节点或误入错误分支。
添加并连接条件分支节点
在Dify工作流画布空白处,点击左侧节点栏中的【判断】图标,拖拽到画布中央释放;
用鼠标从上游节点(如“LLM”或“HTTP请求”)的输出端口拖出连接线,精准对接到新添加的【判断】节点的输入端口;
【必须确保上游节点已成功输出上下文变量】,例如 {{inputs.user.age}} 或 {{context.order.amount}},否则后续所有条件表达式都会因变量未定义而求值失败,返回 false 并落入“否则”分支。
配置单条件双路分支(基础用法)
点击【判断】节点,在右侧配置面板中找到“分支设置”区域;
默认已有两个分支:一个标为“条件成立”,一个标为“否则”。将“条件成立”分支名称改为“成人用户”,“否则”分支名称改为“未成年用户”;
在“成人用户”分支的条件表达式框中输入:{{inputs.user.age}} >= 18;
这一步不能写成 inputs.user.age >= 18(漏掉双大括号),Dify不会自动识别裸变量名,必须用 {{ }} 包裹才能从上下文中提取值。
配置多条件三路分支(推荐生产写法)
第一步:点击“添加分支”按钮,新增第三条路径,命名为“VIP用户”;
第二步:按顺序调整分支排列——把“VIP用户”分支拖到最上方,“成人用户”居中,“未成年用户”置于底部;
第三步:分别为各分支填写表达式:
• VIP用户:{{inputs.user.level}} == "vip"
• 成人用户:{{inputs.user.age}} >= 18 && {{inputs.user.verified}} == true
• 未成年用户:留空(即默认兜底)
注意:Dify严格按从上到下的顺序逐个求值,一旦某分支表达式返回 true 就立即跳转,不再检查后续分支。所以高优先级规则(如VIP)必须置顶,否则可能被更宽泛的条件(如年龄≥18)提前截获。
使用 in 和 contains 函数处理集合与字符串
方法一:判断用户所属部门是否在白名单内
在分支表达式中写:{{inputs.user.dept}} in ["tech", "product", "design"]
方法二:检测错误消息是否含超时关键词
输入:contains({{context.error_msg}}, "timeout")
方法三:用正则匹配邮箱格式(需确保上下文字段非空)
写为:matches({{inputs.user.email}}, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")
如果 context.error_msg 为空或为 null,contains 函数会直接报错中断流程,此时应先加一层非空判断:{{context.error_msg}} != null && contains({{context.error_msg}}, "timeout")。
连接下游节点并验证分支走向
从“VIP用户”分支出口拖出连接线,接入“专属客服”节点;
从“成人用户”分支出口连接至“标准审批”节点;
从“未成年用户”(否则)分支连接至“人工复核”节点;
点击画布右上角的【调试】按钮,输入测试数据:{"inputs": {"user": {"age": 16, "level": "basic", "verified": true}}},观察执行高亮路径是否准确落入“未成年用户”分支。











