Dify需启用降级能力以应对大模型API不可用:先开启resilience.enabled,再配置主备模型切换、缓存回退及熔断阈值,最后设置熔断专用错误响应模板。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当OpenAI、Anthropic或国内主流大模型API因维护、限流或网络故障突然不可用时,Dify必须立即切换响应策略,避免用户看到空白页或500错误。
确认降级能力启用状态
进入Dify管理后台 →「设置」→「系统配置」→「容错策略」,检查【resilience.enabled: true】是否已开启。若为false,所有降级配置将被忽略,直接返回原始错误。
点击右上角「编辑」按钮,手动将enabled字段设为true并保存。该操作会触发服务热重载,无需重启容器。
配置主备模型自动切换
在应用编辑页 →「模型配置」→「高级设置」中,展开「降级模型」选项:
方法一:指定备用模型ID
填写一个已在Dify中成功接入且稳定性更高的模型,例如将主模型gpt-4-turbo设为首选,降级模型填入claude-3-haiku(需确保该模型API Key已配置且配额充足)。
方法二:启用缓存回退
勾选「启用缓存降级」后,Dify会在首次成功响应时自动缓存结构化结果(如JSON输出),当主模型不可用时,直接返回最近一次有效缓存——但【仅对inputs完全一致的请求生效】,否则仍会尝试调用备用模型。
注意:若主模型与备用模型的输出格式差异过大(如一个返回Markdown,另一个返回纯文本),前端解析可能崩溃。建议在降级模型配置页底部点击「测试输出格式一致性」按钮验证。
设置熔断阈值与恢复机制
打开dify-config.yaml文件,定位到resilience区块:
第一步:定义失败率触发条件
将failure_threshold_percent设为60,表示连续10个请求中失败6次即触发熔断。
第二步:设定熔断持续时间
open_state_duration_ms设为30000(30秒),避免过早恢复导致雪崩;半开状态下仅允许1个试探请求通过。
第三步:绑定降级动作
在fallback_strategy下选择model_switch而非cache_only,确保即使缓存失效也能兜底到备用模型。
保存配置后执行docker exec -it dify-api bash -c "kill -SIGUSR2 1"强制重载配置——【此信号仅重载resilience模块,不影响正在处理的请求】。
注入降级响应模板
进入「工作流编排」→ 选择对应应用 → 点击「错误处理节点」:
拖入一个「文本响应」节点,设置内容为:“当前服务繁忙,我们正全力恢复。您可稍后重试,或查看常见问题。”
将其连接至「熔断触发」出口,而非「超时」或「格式错误」出口——因为只有熔断状态才代表模型层整体不可用,其他错误仍应尝试重试或解析。
这一步必须做,否则降级时Dify默认返回空JSON或HTTP 503,前端无法友好展示。


















