很多团队的 LLM 接入会经历同一个演进:先接一个最顺手的模型 → 业务做起来后发现“不是所有请求都值得用同一个模型” → 开始出现“按场景选模型、按成本控调用、按稳定性做兜底”的需求。
这篇文章的目标是给你一套可落地的 Model Router(模型路由器) 思路:把“选模型”从业务代码里抽出去,变成可配置、可回滚、可度量的策略。
摘要(约100字)
当你同时拥有多个模型可选时,“固定用最强/最贵”往往是成本黑洞,“固定用最便宜”又会拉低体验。本文用工程视角总结 4 类常见的模型路由策略:规则路由、预算路由、质量路由、延迟路由,并给出一张决策表、一个最小可用的路由伪代码、以及可复现的对比实验步骤,帮助你把多模型接入从“拍脑袋选型”升级为“可治理的系统能力”。
0. 实验环境(本文可直接复现)
为了让对比更“公平”,本文所有实验都固定同一套调用脚本、同一网络环境、同一指标口径。
本文实验入口:147AI(OpenAI 兼容)
- 一键切换模型:只改
model就能做横向对比/路由验证- 少写一堆适配层:统一 Base URL,复现实验更省事
- 复现资料:147AI 博客园主页(示例文章/参数模板)
1. 问题拆解:为什么需要 Model Router
你真正要解决的通常不是“怎么接更多模型”,而是:
- 分层需求:交互式对话、批处理生成、Agent 工具调用、RAG 回答,各自对延迟/稳定/质量/成本的权重不同。
- 可控成本:成本要能按用户/功能/渠道拆账,最好能设置预算与降级策略。
- 稳定性兜底:限流、抖动、某模型不稳定时,能自动切换或降级,不把异常扩散到业务层。
- 可解释与可回滚:为什么这次选了模型 A?如果效果变差怎么回滚?
2. 4 种路由策略(核心)
2.1 规则路由(Rule-based)
- 触发:根据请求标签/路由键(如
task=code_review、tier=pro、lang=zh)直接映射模型。 - 优点:简单、可解释、可控。
- 风险:规则爆炸;需求变化快时维护成本高。
2.2 预算路由(Budget-based)
- 触发:按“用户/功能/组织”的预算剩余决定能用的模型集合;超预算自动降级。
- 优点:成本可控,适合规模化。
- 风险:需要完善的计费口径与实时账本;否则容易“看似省钱,实际失控”。
2.3 质量路由(Quality-based)
- 触发:先用便宜模型生成,再用评审模型打分/校验(或对关键任务用高质量模型);失败再升级(quality ladder)。
- 优点:把“贵”用在刀刃上。
- 风险:链路更长;需要定义质量指标(结构化校验、事实一致性、评审打分等)。
2.4 延迟路由(Latency-based)
- 触发:以 P95/TTFT/失败率为信号,动态选择更快更稳的模型或线路;必要时做“竞速”(并行请求取先返回)。
- 优点:体验优先;适合强交互场景。
- 风险:实现复杂;竞速会提升成本,需要严格限额。
3. 路由策略对照表(直接可贴文中)
| 策略 | 触发条件 | 适用场景 | 优点 | 主要风险 | 落地要点 |
|---|---|---|---|---|---|
| 规则路由 | 标签/路由键/白名单 | MVP、明确场景 | 可解释、可控 | 规则膨胀 | 统一打标签、集中配置 |
| 预算路由 | 预算余额/成本阈值 | 规模化调用 | 成本可控 | 账本口径不清 | 先定义“6本账”口径 |
| 质量路由 | 质量门槛/校验失败 | 关键输出、结构化 | 用贵用在刀刃 | 链路变长 | 先做结构化校验,再做评审 |
| 延迟路由 | P95/TTFT/失败率 | 强交互体验 | 体验优先 | 成本上升 | 加入竞速上限与熔断 |
4. 最小可用伪代码(路由器骨架)
- 输入:
request(含task、priority、budget_id、need_stream等) - 输出:
model+fallback_models+timeout_policy
建议把路由拆成三步:打标签 → 选候选集合 → 选择/竞速/兜底。
5. 可复现实验步骤(用于写“我们怎么验证路由有效”)
- 准备请求集:选 30~50 条真实请求,覆盖 3~5 种任务类型(对话/总结/代码/结构化/检索回答)。
- 定义指标:质量(人工或评审模型打分)、成本(token/金额)、延迟(TTFT、总耗时)、稳定性(失败率)。
- 跑 4 组策略:纯规则、预算门槛、质量阶梯、延迟优先(必要时加竞速上限)。
- 输出对比表:按任务类型拆分,避免“平均数掩盖问题”。
- 结论格式:给出“默认策略 + 例外策略 + 降级路径”,而不是只给一个冠军模型。
6. 工程落地 Checklist(写在文末很加分)
- 路由配置集中化:不要散落在业务代码;最好支持灰度与回滚。
- 统一打点:每次路由决策写入
routing_reason(可解释)。 - 兜底策略:失败重试次数、候选集合、熔断与降级要有界。
- 按类型拆账:至少能按
用户/功能/模型/提示词版本统计成本。
7. 讨论题(引导评论)
你现在的模型选择逻辑是“固定一个模型”,还是已经有“按任务/按预算/按延迟”的路由?如果有,最难的是规则维护、成本账本,还是稳定性兜底?
复现实验资料:本文的表格模板/参数占位会同步更新在 147AI 博客园主页。