执行摘要
单一模型代理的时代正走向终结。随着 LLM 领域的爆发式增长——GPT-4o、Claude Haiku/Sonnet/Opus、Gemini Flash/Pro、Llama 变体、Mistral 以及数十种专业模型各自占据了不同的性价比细分市场——在恰当的时机将查询分发给正确的模型,已成为一项至关重要的工程课题。
动态模型路由能在保持顶级模型 90–95% 输出质量的同时,将推理成本压低 40–85%。这节省下来的成本足以覆盖 AI 产品运营预算的很大一部分。然而,目前大多数已部署的 Agent 依然硬编码仅使用单一模型。
本文综述了 2026 年初 LLM 路由技术的最前沿:理论基础、路由策略分类、真实世界的基础设施(OpenRouter、Martian、LiteLLM、Not Diamond、Amazon Bedrock)、最新的学术研究(RouteLLM、MasRouter、Router-R1、BaRP)、面向 Agent 开发者的架构模式,以及自学习路由器的新兴前沿。
问题所在:单一模型无法面面俱到
成本-能力谱系
现代 LLM 在每 Token 成本上跨越了几个数量级:
| 模型层级 | 代表模型 | 输入成本 ($/M tokens) | 强项 |
|---|---|---|---|
| 微型/闪速 | GPT-4o Mini, Gemini Flash-Lite, Claude Haiku | $0.07–$0.30 | 速度、成本、简单任务 |
| 中端 | GPT-4o, Gemini Flash, Claude Sonnet | $0.50–$3.00 | 通用能力、函数调用 |
| 前沿 | GPT-5, Claude Opus, Gemini Ultra | $3.00–$15.00 | 复杂推理、长上下文 |
| 深度推理 | o3, DeepSeek R1, Claude w/ extended thinking | $6.00–$60.00 | 数学、代码、多步逻辑 |
若将 90% 的请求路由到微型层级,10% 路由到前沿层级,可带来约 86% 的成本节约,且那 90% 的请求质量损失微乎其微——因为生产环境中的大多数查询并非真的需要“前沿级”算力。
专用模型的激增进一步加剧了这一情况:医疗问答模型、代码微调模型、Embedding 模型、视觉模型、推理模型。没有任何一个通才模型能同时在所有这些维度上保持领先。
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 的人类偏好数据上训练了四个路由器变体,并实现了:
- 在 GPT-4 和 Mixtral 8x7B 之间路由 MT Bench 时降低 85% 成本,保持 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 路由与级联的统一方法》证明了级联的理论最优条件,并引入了级联路由——一个结合了两种方法的统一框架。核心洞察:级联需要付出延迟代价(顺序调用),但消除了对准确的前置复杂性分类器的需求。路由支付零延迟开销,但需要良好的预测器。最佳选择取决于你的延迟预算和分类器准确性。
置信度估计是难点。常用技术:
- 模型对其自身输出进行自报告置信度
- 跨多个样本的一致性检查
- 评估响应的 secondary judge 模型
- 特定 answer tokens 上的困惑度或 logprob 阈值
语义路由
语义路由利用基于嵌入的相似性,将传入查询映射到预定义的路由类别,每个类别关联一个模型或专家。
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 自动路由器
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 模型路由器
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 代理
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