执行摘要
单一模型代理的时代正在走向终结。随着 LLM 领域的爆发式增长——涌现出 GPT-4o、Claude Haiku/Sonnet/Opus、Gemini Flash/Pro、Llama 变体、Mistral 以及数十种占据不同成本-性能利基市场的专用模型——如何将查询在正确的时间路由到正确的模型,已成为一项首要的工程挑战。
动态模型路由能在保持与最强模型相近(90–95%)的输出质量的同时,将推理成本压低 40–85%。这节省下来的差价足以覆盖 AI 产品运营预算的很大一部分。然而,目前绝大多数已部署的代理仍然在代码中硬编码了单一模型。
本文综述了截至 2026 年初 LLM 路由领域的最新进展:理论基础、路由策略分类学、现实世界的基础设施(OpenRouter、Martian、LiteLLM、Not Diamond、Amazon Bedrock)、最新的学术研究(RouteLLM、MasRouter、Router-R1、BaRP)、面向代理开发者的架构模式,以及新兴的自学习路由器前沿。
问题所在:单一模型无法兼顾所有权衡
成本与能力的谱系
现代 LLM 在每个 Token 的成本上跨越了几个数量级:
| 模型层级 | 代表模型 | 输入成本 ($/M tokens) | 优势 |
|---|---|---|---|
| Nano/Flash (极速层) | GPT-4o Mini, Gemini Flash-Lite, Claude Haiku | $0.07–$0.30 | 速度、成本效益、简单任务 |
| Mid-tier (中端) | GPT-4o, Gemini Flash, Claude Sonnet | $0.50–$3.00 | 通用能力、函数调用 |
| Frontier (前沿) | GPT-5, Claude Opus, Gemini Ultra | $3.00–$15.00 | 复杂推理、长上下文 |
| Reasoning (推理) | o3, DeepSeek R1, Claude w/ extended thinking | $6.00–$60.00 | 数学、代码、多步逻辑 |
若将 90% 的请求路由到极速层,10% 路由到前沿层,可在质量几乎无损的前提下(因为这 90% 的生产环境查询并非极难)实现约 86% 的成本节约。
专用模型的泛滥加剧了这一情况:医疗问答模型、代码微调模型、嵌入模型、视觉模型、推理模型。没有任何单一的“通才”能同时在所有这些维度上保持顶尖。
Agent 特有的压力
在 Agent 的循环内部,路由问题尤为尖锐。单一的 Agent 轮次可能包含:
- 快速的意图分类(低成本)
- 工具选择决策(中等成本)
- 多跳推理链(高成本)
- 最终响应合成(中等成本)
这四步全部走 Claude Opus 虽然正确,但纯属浪费。全部走 Haiku 虽然快,但在第三步容易出错。最佳策略是对每一步独立进行路由。
路由策略分类学
静态路由
最简单的形式:在应用逻辑中为每种任务类型硬编码一个模型。
ROUTING_TABLE = { "intent_classification": "claude-haiku-3", "tool_selection": "gpt-4o-mini", "complex_reasoning": "claude-opus-4", "response_synthesis": "claude-sonnet-4", } def route(task_type: str) -> str: return ROUTING_TABLE[task_type]
优点: 行为可预测、零开销、易于审计。缺点: 脆弱——无法适应任务类型内部的查询级差异。一个标记为“复杂推理”的查询实际上可能很简单(用 Haiku 即可),也可能真的很难(需要 Opus)。
静态路由适用于任务类别复杂度高度一致的流水线,例如 OCR 后处理或从固定架构中提取结构化数据。
基于分类器的路由
一个轻量、快速的模型评估传入的查询,并预测哪个层级足以应付。这是目前生产系统中部署最广泛的方法。
Query → [Lightweight Classifier] → complexity score → model selection
分类器可以是:
- 基于偏好数据训练的 BERT 类模型(RouteLLM 的做法)
- 被提示评估难度 1-5 级的小型生成模型
- 基于查询长度 + 关键词信号的规则启发式
- 基于嵌入相似度查找带难度标记的示例
RouteLLM(LMSYS,发表于 ICLR 2025)是典型的开源实现。它利用 Chatbot Arena 的人类偏好数据训练了四种路由器变体,实现了:
- 85% 的成本降低(在 GPT-4 和 Mixtral 8x7B 之间进行 MT Bench 路由),同时保持 GPT-4 95% 的质量
- 在 MMLU 上 节省 45%
- 在 GSM8K 上 节省 35%
- 路由器可以迁移到未见过的模型对(Claude 3 Opus / Llama 3 8B)而无需重新训练
其中 BERT 分类器变体尤为实用:运行时间不到 10ms,且无需 LLM 推理即可做出路由决策。代码可在 GitHub 获取。
级联 / 顺序回退
并非预先预测使用哪个模型,级联策略是先尝试廉价模型,只有当输出质量低于阈值时才升级。
Query → Haiku → [confidence check] → if high confidence: return response → if low confidence: Sonnet → [confidence check] → if high confidence: return response → if low confidence: Opus → return response
苏黎世联邦理工学院 2024 年的论文《LLM 路由与级联的统一方法》证明了级联的理论最优条件,并引入了级联路由——一个结合了两者的统一框架。核心见解是:级联虽然付出了延迟代价(顺序调用),但消除了对准确的预先复杂度分类器的需求。路由零延迟开销,但需要好的预测器。最佳选择取决于你的延迟预算和分类器准确度。
置信度估计是难点。常用技术包括:
- 模型对自身输出的自报置信度
- 多个样本间的一致性检查
- 评估响应的次级裁判模型
- 特定答案 Token 上的困惑度或对数概率阈值
语义路由
语义路由利用基于嵌入的相似度将传入的查询映射到预定义的路由类别,每个类别关联一个模型或专家。
Query → [Embedding Model] → vector → cosine_similarity(vector, route_prototypes) → top-k match → dispatch to specialist model
Aurelio Labs 开发的 semantic-router 库是参考的开源实现。路由原型被定义为一小组代表性话语,在启动时进行嵌入,然后与实时查询匹配。
2025 年 9 月发布的 vLLM Semantic Router 将其进一步应用于推理服务。它使用一个基于 ModernBERT 的分类器来决定查询是否需要思维链推理,还是可以直接回答——实际上是在推理模型路径和快速路径之间进行路由。结果显著:
- 整体准确率提高约 10%,在专业领域超过 20%
- 延迟降低约 50%
- 消耗的 Token 减少约 50%
2026 年 1 月发布的 v0.1 "Iris" 版本增加了 Go/Rust 双语言实现,并集成了 Envoy 以支持云原生部署,以及基于 LoRA 的多任务分类,在分类任务间共享基础模型计算。
何时使用语义路由: 意图类别划分明确的应用(客户支持分流、路由到不同文档集的 RAG、多域助手)。不太适合连续的复杂度梯度。
成本感知 / 预算受限路由
与“在成本约束下优化质量”不同,预算受限路由将成本视为硬性预算,并在预算内最大化质量。
PILOT 论文(2025)将其构建为一个上下文老虎机问题——从离线偏好数据中学习查询和 LLM 的共享嵌入空间,然后通过在线老虎机反馈进行微调。这使得运营商可以在推理时调整成本/质量权衡,而无需重新训练路由器。
对于企业部署,可以直接编码每个用户或每个项目的 Token 预算:
def route_with_budget(query: str, remaining_budget_usd: float) -> str: estimated_tokens = estimate_tokens(query) if remaining_budget_usd < 0.001: return "gpt-4o-mini" # exhausted budget elif complexity_score(query) > 0.8 and remaining_budget_usd > 0.05: return "claude-opus-4" elif complexity_score(query) > 0.5: return "claude-sonnet-4" else: return "claude-haiku-3"
现实世界的实现方案
OpenRouter Auto Router
OpenRouter 提供了一个统一的 API 端点(openrouter/auto),可根据提示分析自动在数十个模型中进行选择。其选择机制由 Not Diamond 的元模型驱动。除了所选模型的标准费率外,不收取额外费用。
OpenRouter 还提供:
- 提供商回退:如果提供商宕机或限流,自动故障转移到备用提供商
- 模型回退:每个请求的声明式回退模型列表
- 免费模型路由器:预算允许时路由到免费层级的模型
import openai client = openai.OpenAI( base_url="https://openrouter.ai/api/v1", api_key="sk-or-...", ) response = client.chat.completions.create( model="openrouter/auto", # auto-selects the best model messages=[{"role": "user", "content": query}], ) # Check which model was selected: selected_model = response.model
Martian Model Router
Martian 是首个商业化的 LLM 路由器,获得 NEA 和 General Catalyst 的 900 万美元支持,埃森哲作为战略投资者。它针对每个提示路由到具有最佳正常运行时间、技能集和性价比的模型。
核心宣称:高达 98% 的成本降低,被 300 多家公司使用。Martian 的核心能力是在不运行模型的情况下估算其性能——利用模型压缩和蒸馏技术在推理前预测输出质量。其插入式 API 兼容 OpenAI。
Not Diamond
Not Diamond 训练了一个元模型,用于预测哪个下游 LLM 在给定查询上表现最佳。它不仅限于路由,还延伸至提示适应——自动重写提示以更好地适应所选模型,在企业数据集上实现了 5–60% 的准确率提升。
性能结果:平均准确率提升 39%,某些模型在 SRE 基准测试上翻了一番。IBM Ventures 是其投资者;SAP 在 2025 年的 Sapphire 大会上将 Not Diamond 集成到了其生成式 AI 中心。
Not Diamond 驱动着 OpenRouter 的 Auto Router。
Amazon Bedrock 智能提示路由
Amazon Bedrock IPR(2025 年 4 月 GA)提供了一个无服务器端点,可在模型系列内部进行路由:
- Anthropic:在 Claude 3.5 Sonnet 和 Claude 3 Haiku 之间
- Meta:在 Llama 3.1 70B 和 8B 之间
一个轻量级 SLM 预测每个候选模型的可能性能,并路由到被预测能满足质量要求的最廉价模型。宣称相比始终使用大模型可减少 60% 的成本。路由本身无额外 API 费用。
import boto3 bedrock = boto3.client("bedrock-runtime", region_name="us-east-1") response = bedrock.converse( modelId="arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-router-v1", messages=[{"role": "user", "content": [{"text": query}]}], )
LiteLLM Proxy
LiteLLM 是部署最广泛的开源 LLM 代理,路由功能已内置。其路由能力包括:
回退类型:
fallbacks:常规错误回退列表context_window_fallbacks:超出上下文限制时触发content_policy_fallbacks:违反内容策略时触发
负载均衡策略: 轮询、最不忙、基于延迟、基于成本
配置驱动的路由:
model_list: - model_name: "fast-model" litellm_params: model: "claude-haiku-3" - model_name: "smart-model" litellm_params: model: "claude-opus-4" router_settings: routing_strategy: "cost-based-routing" fallbacks: - "fast-model": ["smart-model"] context_window_fallbacks: - "fast-model": ["smart-model"]
LiteLLM 的自动路由功能会对查询复杂度进行分类,并自动从配置的模型池中进行选择,本质上充当了代理内的分类器路由。
架构模式
模式 1:路由器作为中间件/代理
Client Application | ▼ [Router Proxy] ←── routing config, model registry, budget state | ┌────┼────┐ ▼ ▼ ▼ Haiku Sonnet Opus
所有的 LLM 调用都被代理层拦截。代理负责做出路由决策、处理回退、记录决策日志以及应用成本控制。应用与模型无关——它只需发送到一个端点,其余的由代理处理。
这是 OpenRouter、LiteLLM、Martian 和 Amazon Bedrock IPR 采用的模式。它实现了集中式治理:无需代码部署即可更改路由策略、跨应用预算管理以及审计日志。
模式 2:Agent 内部路由逻辑
Agent 自身对每一步调用哪个模型进行推理。当 Agent 具有复杂的、依赖于上下文的路由需求(无法用简单分类器表达)时,这很合适。
class RoutingAgent: async def plan_and_route(self, task: str) -> str: # Use a cheap model to classify the task type task_type = await self.classify(task, model="haiku") if task_type == "math_proof": return await self.invoke(task, model="o3") elif task_type == "code_gen