多模型路由上线后静默降级故障复盘:从健康检查失效到动态权重补偿
背景 / 现象2026年4月我们上线了一套多模型路由系统用于在RAG问答链路中根据查询复杂度、成本预算和SLA要求动态选择底层模型如通义千问、DeepSeek、GLM等。初期灰度阶段表现稳定但在全量发布后第3天监控大盘出现异常核心业务线的平均响应时延上升40%但错误率未明显波动成本监控显示高价位模型如Qwen-Max调用占比从预期的15%骤降至2%用户侧反馈“部分复杂问题回答质量下降”但无明确报错。初步排查发现系统并未触发任何显式降级告警日志中也无异常抛出——这是一次典型的静默降级故障。问题拆解系统目标多模型路由系统的核心目标是在保证SLA的前提下通过智能调度实现成本与效果的平衡。具体包括根据query语义复杂度路由到合适模型在目标模型不可用时自动降级至备用模型支持动态权重调整以应对突发流量或模型性能波动。模块职责系统由三个关键模块组成路由决策引擎基于query特征、历史成功率、当前配额计算最优模型健康检查服务周期性探测各模型端点可用性维护健康状态表流量分发器执行最终路由并记录调用指标用于反馈闭环。核心冲突故障期间健康检查服务因网络抖动误判Qwen-Max为“不可用”触发降级逻辑。但由于缺乏对“部分可用”状态的识别能力系统直接将流量切至低阶模型如Qwen-Turbo而未考虑该模型对复杂query的处理能力不足导致效果劣化。更严重的是降级后系统未自动恢复即使Qwen-Max在5分钟后恢复健康检查未触发“恢复上线”事件路由策略仍持续使用低阶模型形成静默锁定。核心原因健康检查机制过于二元化仅判断“可达/不可达”未引入响应时间、错误率等连续指标无法识别“亚健康”状态降级策略缺乏效果兜底降级仅关注可用性未评估目标模型是否满足当前query的语义复杂度要求恢复机制缺失主动探测健康恢复依赖固定周期轮询未结合流量试探canary probe验证实际可用性监控维度割裂成本、时延、效果三类指标分散在不同看板缺乏统一异常聚合视图导致问题被掩盖。实现方案1. 引入分层健康状态机将模型健康状态从二元UP/DOWN扩展为五级HEALTHY响应200ms错误率0.5%DEGRADED响应200~800ms 或错误率0.5%~2%UNSTABLE响应800ms 或错误率2%DOWN连续3次探测失败UNKNOWN初始状态或配置异常。状态转换基于滑动窗口统计窗口大小60s步长10s避免瞬时抖动误判。2. 动态权重补偿机制当模型处于DEGRADED状态时不立即剔除而是降低其路由权重# 伪代码权重计算逻辑 def calculate_weight(model, base_weight1.0): health_score get_health_score(model) # HEALTHY1.0, DEGRADED0.6, UNSTABLE0.2 cost_penalty model.cost_per_1k / baseline_cost sla_bonus 1.0 if model.avg_latency sla_threshold else 0.8 return base_weight * health_score * sla_bonus / cost_penalty该机制允许系统在模型轻微劣化时仍保留部分流量避免“全有或全无”式切换。3. 效果感知降级策略在路由决策中引入语义复杂度评分基于query长度、实体数量、意图分类等仅当备用模型的能力阈值 ≥ 当前query复杂度时才允许降级。否则若存在同级可用模型则切换至同级否则进入延迟队列等待目标模型恢复或人工干预。4. 主动恢复探测Canary Probe对标记为DOWN的模型每30秒发送一次低优先级探测请求携带is_probetrue标识。一旦连续2次成功则自动提升至UNSTABLE状态并分配5%流量进行验证确认稳定后逐步提升至HEALTHY。监控与兜底关键监控项| 监控维度 | 指标 | 告警阈值 | 用途 | |--------|------|--------|------| | 健康状态 | 模型状态分布 | DOWN占比 20% | 发现大规模故障 | | 路由质量 | 降级率 | 10%持续5min | 识别异常降级 | | 效果兜底 | 低阶模型处理高复杂度query比例 | 15% | 防止静默劣化 | | 恢复效率 | DOWN→HEALTHY平均耗时 | 300s | 评估恢复机制有效性 |兜底策略全局熔断当超过30%模型处于DOWN状态时自动切换至预设的“保底模型”如本地轻量模型并通知运维人工干预通道提供强制指定模型的路由覆盖接口支持紧急场景手动调度事后复盘自动化每次降级事件自动生成根因分析报告包含流量变化、效果对比、成本影响。风险与边界复杂度上升分层状态机增加运维理解成本需提供可视化状态流转图探测开销Canary Probe会增加约3%~5%的额外请求需评估成本影响冷启动问题新接入模型初始状态为UNKNOWN前5分钟仅分配1%流量进行预热厂商限流干扰部分厂商对高频探测请求会返回429需在健康检查中区分“真故障”与“限流”。最后总结多模型路由系统的稳定性不仅依赖可用性探测更需建立效果-成本-时延三位一体的决策框架。本次故障暴露了传统健康检查在AI工程场景下的局限性——单纯的网络可达性无法反映模型的实际服务能力。通过引入分层健康状态、动态权重补偿和效果感知降级我们实现了从“被动响应”到“主动预防”的转变。后续将重点优化语义复杂度评估模型并探索基于强化学习的自适应路由策略。技术补丁包分层健康状态机设计 原理将二元健康状态扩展为五级连续状态基于滑动窗口统计响应时间和错误率 设计动机避免网络瞬时抖动导致误降级同时识别“亚健康”模型 边界条件窗口大小需根据业务SLA调整过小易误判过大响应慢 落地建议使用Prometheus 自定义exporter实现状态采集状态转换逻辑封装为独立服务动态权重补偿算法 原理综合健康评分、成本系数、SLA达成率计算实时路由权重 设计动机在模型轻微劣化时保留部分流量避免全量切换带来的震荡 边界条件权重更新频率不宜过高建议≤10s防止路由抖动 落地建议权重计算与路由决策解耦通过gRPC暴露权重查询接口效果感知降级策略 原理基于query语义复杂度与模型能力矩阵判断是否允许降级 设计动机防止低阶模型处理超出其能力范围的问题避免静默效果劣化 边界条件复杂度评分需定期校准避免与真实用户感知偏差过大 落地建议复杂度评分器可作为独立微服务支持插件化扩展特征工程Canary Probe主动恢复机制 原理对不可用模型周期性发送低优先级探测请求验证恢复状态 设计动机解决传统轮询恢复延迟高的问题实现快速自愈 边界条件探测请求需携带特殊标识避免被计费系统误计为正常流量 落地建议探测频率采用指数退避策略初始30s最大间隔5min三位一体监控体系 原理聚合健康状态、路由质量、效果兜底三类指标构建统一异常视图 设计动机打破监控孤岛快速定位静默故障 边界条件需定义跨维度关联规则如“降级率上升低阶模型高负载”视为高风险 落地建议使用Grafana构建专用路由健康看板集成告警聚合功能