多模型可靠性并非 2 倍:引入第二个 LLM 服务商的非线性成本
这种天真的算法是这样的。我们的主供应商拥有 99.3% 的可用性。增加第二个具有类似独立性的供应商,同时故障的概率就会降至大约 0.005%。成本翻倍,风险降至两百分之一。工程负责人批准了双倍预算,轮值报警在供应商宕机时也不再响起。电子表格显示,这是路线图上性价比最高的可靠性投资。
六个月后,电子表格错了。评估套件(eval suite)的运行时间变成了三倍,提示词(prompt)修改需要提交两个 PR,每周的回归报告中有两列内容相互矛盾,而且没人记得预发布环境的备选方案当前路由到了哪个供应商。一旦团队核算了用于保持两条路径校准的人力工时,双倍预算实际上更接近 4–5 倍。第二个供应商在技术上仍在提供流量,但一半的功能已被悄悄锁定在其中一方,因为保持两者同步已经变得不再划算。
这就是多模型成本陷阱。可靠性算法是正确的;但团队搞错的是运营层面的算法。接下来是对引入多供应商后的成本分解、大多数团队应该首先尝试的“单供应商加降级模式”方案,以及真正证明这种非线性复杂性合理性的少数准则。
供应商独立性的神话
可用性算法假设供应商是独立发生故障的。在实践中,2025–2026 年的停机事件不断证伪这一点。当一个大型云服务商的区域出现故障时,托管在该区域或依赖该区域的多个 LLM 供应商会同时发生故障。当一个共享的 CDN 或 DNS 供应商出现问题时,每一个下游的 LLM API 都会看到相关联的延迟。当新模型的发布让整个行业处于同步负载之下时(这在发布周是可以预见的),容量压力是跨供应商的,而非针对单个供应商。
现实世界中,2026 年的多供应商部署在有效可用性上更接近 99.6–99.8%,而不是独立性假设所预测的理论值 99.995%。你确实获得了可用性。但你获得的增益比商业计划书中说的要少。而且在最初的 0.5% 之后,每提高一个基点(basis point)的成本都比前一个更高。
单凭这一点并不能否定多供应商策略。否定这种天真的“2 倍成本”框架的是二阶成本:提示词、评估、工具模式(tool schemas)以及运营实践,这些都必须维护两份并相互验证。
真正的成本在哪里
当一个团队说“我们支持供应商 A 和供应商 B”时,表面的成本是两个 API 密钥、一个路由器和一些计费插件。潜在成本更大,且会不断复利。
提示词与模型是耦合的,不可跨模 型移植。 生产环境的提示词很少是纯粹的规格说明。它们作为补丁不断积累——“添加这个以防止它执行 X”、“重写那个因为 Y 太严格了”——并最终成为一位从业者所说的针对特定模型怪癖的“谈判产物”。调查数据表明,一个成熟的生产环境提示词中,60% 的 token 是累积的补丁,而不是需求。将提示词移动到不同的供应商,你得到的不是一个翻译后的提示词,而是一个孤儿提示词。Anthropic 想要带标签的示例;OpenAI 想要具有清晰角色层次结构的零样本提示(zero-shot);Gemini 想要带有明确分段标记的大量示例加载。在一个供应商上胜出的提示词,在另一个供应商上未必奏效。
即便封装层试图掩盖,工具调用格式也会发生偏离。 函数调用(function-calling)和工具使用(tool-use)的 API 表面看起来很相似——都返回描述工具和参数的结构化 JSON——但其传输格式、错误语义、并行调用行为和模式验证规则都各不相同。Anthropic 的 tool_use 块嵌入在消息内容中;OpenAI 将 tool_calls 分离到自己的消息字段中;Gemini 使用其自有的 functionCall 形状。统一 SDK 像 LiteLLM 掩盖了核心流程中的问题,但无法隐藏边缘情况:格式错误的参数处理、流式传输块边界以及工具结果回显的行为都存在细微差异。那些宣称“我们用 LiteLLM 抽象了它”的团队,通常意味着“我们抽象了 80% 的内容;另外 20% 现在都在一个名为 provider_quirks.py 的文件中”。
分词器(Tokenizer)会悄无声息地漂移上下文预算。 Tiktoken、Anthropic 的分词器和 Gemini 的分词器计数方式都不同。同样的 8 KB 上下文在一个供应商上可能消耗 1,900 个 token,而在另一个供应商上可能消耗 2,400 个。由于空格、代码和非英语文本的分词方式不同,在供应商 A 上符合 128K token 预算的提示词,在供应商 B 上可能会超过同样的标称预算。RAG 管道中的块大小逻辑、截断启发式算法和摘要触发器都必须是针对每个供应商定制的,否则当流量路由到“另一侧”时,你就会遇到悄无声息的质量退化。
拒绝边界(Refusal boundaries)不一致。 触发安全拒绝的特定输入在不同供应商之间各不相同,且这些边界在每次模型更新时都会发生变化。你的团队花了六周时间加固以避免 OpenAI 拒绝的提示词,在 Claude 上会触发不同的拒绝模式,在 Gemini 上又是第三种。这意味着你的观测层中的错误分类必须将“拒绝”视为针对每个供应商的信号,你的重试逻辑必须区分“供应商 A 的拒绝 -> 尝试不同的措辞”与“供应商 B 的拒绝 -> 尝试不同的供应商”与“合法的用户违规 -> 停止”,并且你的评估必须捕捉供应商特定的误报。这些工作在处理第一个供应商时都不是必须的。但在处理第二个供应商时,这些都是你必须做的工作。
每次模型更新都会导致校准漂移。 2025 年 11 月的一项研究量化了多轮对话系统中的模型切换漂移,结果显示,相对于全程运行相同的后缀模型,即使只是在最后一轮进行交接,也会产生统计学上显著的行为偏移。较小的模型在确定性温度下保持了一致性;而大型前沿模型——团队实际使用的那些——则没有。转化到运营层面:从供应商 A 到供应商 B 的对话中途路由质量,并不是一个你可以测量一次就信任的属性。每当任一供应商发布更新时,你都必须重新测量,而在 2026 年,每个供应商的更新频率至少是每月一次。
