如果你每个用户 query 都用前沿模型(Claude 4.7 Opus、GPT-5),你超付了 5-10 倍。绝大部分 query —— 「天气怎样」「总结这封信」「谢啦」—— 根本是 trivial 的,在 Haiku、GPT-5 mini、Gemini Flash 上跑得超好,成本只要 1/10。
LLM routing 是「每个 query 挑对模型」的纪律。做得好,你的账单砍 60-80%,质量损失感觉不出来。做得差,把难问题送到弱模型,用户讨厌你的产品。
这篇是务实 playbook。
成本阶梯
2026 年前沿 API 定价大致分层:
- 前沿 reasoning(GPT-5、Claude 4.7 Opus):$15-25/M input,$75-90/M output。
- 前沿一般(Claude Sonnet 4.7、Gemini 3 Pro):$3-5/M input,$15-20/M output。
- 中阶(Claude Haiku 4.7、GPT-5 mini、Gemini Flash 3):$0.25-1/M input,$1-5/M output。
- 小模型(自架 Llama 3.2 3B、Phi-5、Qwen 2.5 7B):规模化自架基本上 $0/M。
中阶到前沿大约 10× 差距。小模型到前沿 50-100× 差距。
你能辨认哪些 query 属哪个 tier,省钱就大规模。
routing 策略分类
2026 年四种主流做法,复杂度递增:
1. 手动规则(无聊解)
写 if-statement。不同工作流送不同模型:
- 客服 FAQ → Haiku。
- 困难 reasoning / 写代码 → Opus。
- 文档总结 → Sonnet。
- 垃圾信息 / 语言侦测 → 自架小分类器。
这 5% 工程努力换 70% routing 收益。别为了花俏方法跳过这个。
2. Cascade(升级)
先试便宜模型。它说信心低或没过质量检查,就升级。
def answer(query):
cheap_response = haiku.answer(query)
if cheap_response.confidence > 0.8 and passes_check(cheap_response):
return cheap_response
return opus.answer(query)
「检查」可以是:
- 另一个便宜模型快速 LLM-as-judge。
- 启发式(「响应实际有 code block 吗?」)。
- 用户踩号回溯触发 Opus 重跑。
大部分 query 在便宜 tier 成功时很好用。成本负担:升级时你付两次调用。
3. Classifier-based routing
训练(或 prompt)一个小模型把每个 query 分到难度 tier,送对应模型。
class = classifier.classify(query) # "easy" / "medium" / "hard"
model = MODEL_BY_CLASS[class]
return model.answer(query)
分类器通常是:
- 带 few-shot prompt 的小 LLM。
- 微调的 BERT 风分类器。
- 用标记 example 跑 embedding-based 最近邻。
比 cascade 快(没有两次调用),但需要先标难度 example。
4. 学习型 routing(RouteLLM、LLM-Blender 等)
RouteLLM(LMSYS, 2024)等框架在 Chatbot Arena 配对数据上训练 router 模型。给 query,它预测强模型赢弱模型的概率,根据概率 route。
比 classifier-based 准,但需要:
- 用预训练 router(对通用聊天有效)或...
- 用你领域数据自己训练(贵,只在规模化时值得)。
2026 年高量流量的认真团队在用,大部分团队还不该用。
一个具体起手实作
2026 年最简单能赢大部分精致方案的 router:
def route(query: str, conversation_history: list) -> str:
# 困难情况:总用强模型
if any(kw in query.lower() for kw in ["code", "debug", "why doesn't", "prove"]):
return "opus"
if len(query) > 1000:
return "opus" # 大概率复杂或重文档
# 便宜情况:简单闲聊或一句话问
if len(query) < 50 and not any(c in query for c in "?:;"):
return "haiku"
# 默认中间
return "sonnet"
给你 60% 成本节省,难 case 上有 Sonnet+ 质量。也只有五行而且完全好懂。
迭代:记录哪些 query 路到哪个模型、哪些拿到用户踩号,调整规则。
陷阱:难 case 路错
router 最大失败模式是把难 case 误判成简单。便宜模型自信地给错答案,用户收到垃圾。
缓解:
- 偏向升级。 不确定时用强模型。罕见难 query 多 10× 成本远便宜过用户流失。
- 加逃生口。 让便宜模型可以说「我不确定,可以说明清楚吗?」而不是瞎掰。System prompt:「如果你不能高信心回答,回 [ESCALATE]。」
- 质量打分 A/B 测试。 5% 路过流量同时送两个模型比较。质量掉 > 3% 代表 router 太激进。
- 新用户用更强模型。 新用户对烂答案零耐心,他们前 10+ 消息偏向 Opus。
2026 年有用的两个 pattern
Pattern A:多 tier + 升级
User query →
小分类器(Phi-5、3B)决定 easy/medium/hard。
Easy → Haiku、Medium → Sonnet、Hard → Opus。
之后:简单 LLM judge 检查输出质量。
Judge 说「低质量」就静默用上一 tier 重跑。
成本跟可靠性平衡好。~70% query 落在 Haiku/Sonnet,~30% 在 Opus。总成本约纯 Opus 基线的 25%。
Pattern B:每任务类型专门模型
User query →
意图分类器分类:闲聊、代码、搜索、数学、图片生成等。
每个意图手挑最佳成本模型:
闲聊 → Haiku
代码 → Sonnet
难数学 → o3 / Opus reasoning
图片生成 → Flux / Imagen,不是 LLM
产品结构性多模态(聊天助理 + 写代码助理 + 图片生成)时有用。纯文字问答比较没用。
工具跟框架
2026 年不用从零自盖。选项:
- OpenRouter。 托管多厂商 gateway 内建 routing,单一 API,根据价格 / 可用性动态选厂商。入门首选。
- Portkey / TrueFoundry。 企业级 gateway,有 policy-based routing 跟 observability。
- RouteLLM(开源)。 LMSYS 的预训练 router,免费。
- Langchain Router / LlamaIndex Router。 框架层 routing component,已经在那些 stack 上的话好用。
- 定制 proxy。 很多团队写 200 行 Python proxy 跑手动规则,有用。
什么时候不要 routing
- 低流量(<1000 请求/天)。 复杂度不值得省的钱。
- 每个烂答案都是流失风险的高端产品。 黏 Opus,直到你有数据证明安全降级路径。
- 你还没量质量。 没 eval set 你永远不知道 router 有没有伤害用户,routing 决策变迷信。
该量什么
router 里每个模型:
- 路过流量比例。 多少 % 的 query 去了每个模型?
- 每 query 成本(跟总成本)。
- 质量分数(LLM-as-judge 或抽样人工 review)。
- 延迟。 小模型通常快,确认对的取舍。
- 升级率。 便宜模型多常失败让我们用贵的重跑?
升级率 > 30% 代表便宜 tier 太弱或分类器太积极。
下一步
- RouteLLM: Learning to Route LLMs with Preference Data(LMSYS, 2024)。
- LLM-Blender(Jiang et al, 2023)—— 配对 routing 方法。
- OpenRouter 文档。
- 查这些词:cascade inference、model gateway、prompt classification、LLM-as-judge。