三态熔断器与故障转移
上一篇拆解了 ModelSelector 的选择算法,知道了它如何从一份 YAML 配置中选出一个有序的、可用的候选列表。但选好了之后呢?候选列表交给谁执行?调用第一个模型失败了怎么办?什么时候该认定一个模型挂了不再尝试?挂了的模型什么时候重新启用?
这一篇回答这些问题。我们会深入两个核心组件:ModelHealthStore(三态熔断器)和 ModelRoutingExecutor(故障转移执行器)。前者管健康状态——谁能调、谁不能调;后者管执行逻辑——怎么调、失败了怎么切换。
三态熔断器:ModelHealthStore
1. 为什么需要熔断器
假设你的电商客服系统配了四个 Chat 模型:qwen3-max、glm-4.7、qwen-plus