Dify中需为节点启用错误出口并配置重试、备用响应或告警,再设全局处理器兜底,结合JMESPath按错误类型条件路由。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中配置自定义错误处理机制,是为了让工作流在遇到API超时、认证失败或模型调用异常时不停止执行,而是转向备用逻辑或返回友好提示。
为单个节点添加错误出口分支
进入工作流编辑界面,选中任意一个可能出错的节点(如“LLM调用”或“HTTP请求”)→ 点击右上角「设置」图标 → 在「错误处理」区域勾选「启用错误出口」。
这一步必须开启,否则所有错误都会触发默认阻塞式终止。未勾选时,哪怕后续连了备用节点也完全不生效。
勾选后,节点右下角会多出一个红色的「error」输出端口,拖动该端口即可连接到其他处理节点。
配置三种典型错误响应策略
方法一:跳转至备用节点返回默认内容
将「error」端口连接到一个「文本回复」节点 → 在该节点中填写固定文案,例如“当前服务繁忙,请稍后再试”。这种方式适用于RAG检索无结果、LLM临时不可用等场景。
方法二:触发重试并限制次数
在节点配置面板中展开「重试策略」→ 设置 max_retries 为 【3】,initial_delay_ms 为 1000,backoff_multiplier 为 2 → 保存后,该节点会在网络超时或5xx错误时自动按1s→2s→4s间隔重试,超过3次才走error出口。
注意:400类客户端错误不会触发重试,配置了也无效。
方法三:调用外部告警接口
将error端口连接至「HTTP请求」节点 → 配置POST目标为你的企业微信/钉钉机器人Webhook地址 → 请求体使用JSON模板:{"msgtype":"text","text":{"content":"Dify工作流在{{node_id}}节点发生错误:{{error.message}}"}}。
全局兜底:设置工作流级异常处理器
第一步:在画布空白处右键 → 选择「添加全局错误处理器」。
第二步:该处理器会自动捕获所有未被节点级error出口捕获的异常,包括子流程内部抛出但未处理的错误。
第三步:将其输出端口连接至「日志记录」节点 + 「邮件通知」节点组合,确保任何漏网错误都能留下痕迹并触达责任人。
这一步不可跳过。没有它,当某个子流程里嵌套的节点崩溃且未配error出口时,整个工作流会静默失败,后台日志里只有一行“flow execution failed”,毫无上下文。
基于错误类型做条件路由
在error出口连接的判断节点中,使用JMESPath表达式过滤错误特征:
contains(error.type, 'llm') → 匹配所有大模型相关错误
error.status == 401 → 精准识别鉴权失败
contains(error.message, 'timeout') → 捕获各类超时提示
每个条件分支可导向不同处理逻辑:401走令牌刷新节点,timeout走降级回复,其余统一进告警流。这种写法比堆砌多个并行error出口更清晰可控。


















