代码能力最强的模型,写中文政府报告却满是“AI 味”。
在代码 benchmark 上领先,不代表它擅长中文政务表达;套话、翻译腔和重复总结可能比技术错误更难直接量化。
LLM Router 是位于应用或 Agent 与多个完整模型之间的决策层:它根据当前请求和执行状态,决定下一次调用交给哪个模型。真正的问题是,为什么不能从头到尾固定使用同一个模型?
在代码 benchmark 上领先,不代表它擅长中文政务表达;套话、翻译腔和重复总结可能比技术错误更难直接量化。
单次调用价格更低,不等于整项任务更便宜。返工、重试和上下文重读都可能把节省反向放大。
始终用强模型会浪费预算,始终用便宜模型又可能增加失败;模型更新和价格变化还会让人工规则迅速过时。
大模型本身只完成一次推理或生成;Agent harness 把模型放进一个可持续运行的闭环,负责维护状态、组织上下文、执行工具、处理失败,并判断任务是否完成。
框架为了分析 Router,我们把现代 LLM Agent 功能性地拆成四层,以看清每次模型调用的输入从哪里来、结果会改变什么。
定义 Agent 要完成什么,以及什么结果可以被接受。
把一次请求变成可运行的多步过程。Harness 决定模型看到什么、何时调用工具、失败后是否重试,以及何时结束。
LLM 读取 Harness 组装的上下文,生成自然语言、结构化计划或 tool call。模型提出动作,但通常不直接执行外部操作。
真正产生可观察结果和副作用:文件被修改、命令退出、网页变化、数据库更新、测试通过或失败。
同一个模型放进不同 context、tool 和 recovery 机制,可能产生完全不同的成功率与成本。
Agent 每个部分对 LLM 推理、代码、工具和上下文能力的需求不同提供了重新路由的机会。
Router 不替代 Harness;它利用 Harness 暴露的状态,在模型调用边界选择合适的完整模型。
本文定义LLM Router 是位于应用或 Agent harness 与模型服务之间的决策层:它既可以决定请求落到哪个服务端点,也可以选择由哪个完整模型处理,还可以在 Agent 运行过程中决定何时保持或重新选择模型。
本文的研究范围包含下面三个相互衔接的层次:服务入口决定“到哪里调用”,完整模型路由决定“调用谁”,Agent 路由进一步决定“沿轨迹何时继续使用或重新选择”。三者共同决定一次 Agent 任务的成功率、成本与延迟。
优化可用性、吞吐、价格或数据驻留;也决定故障切换、网络延迟与缓存能否延续。模型能力通常不变。
决定由 GPT、Claude、Gemini、DeepSeek 等哪组完整权重处理请求,是能力—质量—成本权衡的核心层。
根据工具反馈、错误、剩余预算、cache 和当前执行阶段,继续使用当前模型,或切换、升级、回退到其他完整模型。
因为“最强模型”“最便宜模型”和“当前最合适的模型”通常不是同一个概念。成本不仅是调用费用,也包括任务完成时间。要让 Router 真正产生价值,还需要下面四个条件同时出现。
没有一个模型能同时在推理、代码、工具使用、长上下文、速度、价格和隐私等方面全部占优。
简单步骤可能由便宜模型完成,复杂推理或失败恢复可能需要强模型;但这种阶段性反转是动态 Agent Router 必须实测的前提,不能预先当作事实。
Prompt、执行历史、工具结果或验证状态,需要包含足以预测各候选模型成功率和成本的信号;否则 Router 只能猜测。
节省模型费用还不够;扣除 Router 计算、模型切换、cache 丢失、上下文重传和失败恢复后,整个任务仍需更便宜或更快。
推断前两个条件说明“存在 Oracle 空间”,第三个条件决定能否学习,第四个条件决定系统是否真正节约成本。只证明模型价格不同,无法证明 Router 有净价值。
一次调用层决定当前 LLM request 交给哪个模型;完整任务层决定 Agent 在多轮推理和工具交互中采用什么模型策略。前者衡量一次响应,后者衡量一项任务能否以更少费用和时间成功完成,不能直接互相替代。
输入主要是 prompt 与本次可见 context;路由当前请求,不观察后续 Agent 执行轨迹。
一个任务可能包含多次模型调用、工具反馈、重试和恢复;模型可以固定,也可以在执行中切换。
MemoryCraft 不研究模型 Router。它在相同任务、memory store、ingestion 与预算下,只改变“由谁决定检索”,因此可用来观察 Agent 控制方式如何改变完整任务的调用次数与输入量。
三个系统的 output 仅占计量 token 的 0.65%–0.66%;其余主要是 cache-miss 与 cache-hit input。
综合推断FrugalGPT 说明一次请求选对模型可以减少调用费用;TRACE-Router 说明完整任务的模型策略可能同时改善成功率和完成时间;MemoryCraft 则提示多轮执行会累积额外调用与上下文重读。因此,一次调用更便宜、更快,并不等于 Agent 任务的总费用更低、完成时间更短。
完整任务的成本按来源分别记录。每一项同时保留实际费用和经过时间,再与任务最终是否成功对应起来。
每次实际发给模型的请求,包括失败但已经消耗资源的 attempt。
决定选谁以及判断结果是否可接受所增加的计算。
模型请求之外,为推进任务或恢复外部状态发生的实际操作。
从当前模型或 provider 转移到另一执行路径带来的额外负担。
公开产品模型选择已经成为云平台能力,但“Router”并不都在解决同一个问题:有的选择完整模型,有的选择推理档位,有的只负责 provider 故障切换。下表只呈现最关键的差别。
| 平台 / 产品 | 选择什么 | 何时选择 | 本页归类 |
|---|---|---|---|
OpenAI GPT-5 system router | 快速回答、深度推理与 mini | 每次响应 | 内部模型 / 推理档位选择 封闭产品 Router,并非开放的多模型 Agent Router。[V1] |
Microsoft Foundry Model Router | GPT、Claude、DeepSeek 等完整模型 | 每次请求;Agent 中每 turn | 完整模型选择 公开产品中最接近 per-turn Agent Router。[V2] |
Google Cloud Vertex AI Model Optimizer | Gemini 模型与 intelligence level | 每个 prompt | Prompt Router 用户先指定 Cost / Balanced / Quality。[V3] |
AWS Bedrock Intelligent Prompt Routing | 同一模型家族内的两个模型 | 每个 prompt | Prompt Router 按质量阈值选择,不读取 Agent 历史。[V4] |
OpenRouter Auto Router | 跨厂商完整模型与 provider | 按 prompt;可保持 session sticky | 模型选择 + 连续性 兼顾 cache 与 failover,但不读取 verifier 状态。[V5] |
Cloudflare AI Gateway Dynamic Routing | 模型或 provider endpoint | 每次请求 | 规则 / 流量路由 面向预算、配额、分流与 fallback。[V7] |
腾讯云 模型路由(内测) | 同一模型的不同供应商 | 请求失败时 | 可用性路由 解决故障切换,不按任务能力选模型。[V8] |
阅读结论平台公开产品主要覆盖 prompt-level 模型选择、session stickiness 和 provider failover;读取工具结果、错误恢复与外部验证状态的 Agent Router 仍少见。已审阅的 Anthropic、DeepSeek 与阿里云官方资料主要提供人工选型或模型目录,尚未核验到其第一方公开自动完整模型 Router;这不代表内部系统不存在。非云产品的 vLLM SAAR 作为 session-aware 系统先例放在后文讨论。[V6][V9][V10][V11] 完整结构化数据:CSV。
OpenAI、Microsoft、Google、AWS 和 OpenRouter 都在隐藏或简化模型选择。
Balanced/Cost/Quality profile 或可调 threshold 已成为标准产品接口。
OpenRouter stickiness 与 vLLM SAAR 明确处理;许多 prompt router 仍逐请求独立。
系统通常预先固定为 per-prompt、per-turn 或 sticky session,重新选择的时机很少由 Router 学习。
前文说明了三件事:模型能力与价格存在差异,Agent loop 会改变任务成本,云平台也已把模型选择产品化。结合已核验论文,当前研究大致推进到下面四步。
FrugalGPT、RouteLLM 与云产品已经证明 prompt-level 质量—成本选择具有价值;决策通常在请求开始时完成。[P1][P2]
TRACE-Router 按任务固定模型,SWE-Router 让便宜模型探索固定 K 轮后决定是否升级;重决策时机仍由系统预设。[P5][P7]
MTRouter、TwinRouterBench 与 Harness-Native 开始使用对话历史、工具结果、错误和 verification;默认仍在每 turn/call 重新决策。[P6][P3][P4]
HyDRA 与 vLLM SAAR 开始考虑 session stickiness、cache、handoff 和 provider state,说明频繁切换并不是免费动作。[P8][V6]
TRACE-Router 等工作已经报告积极的任务级结果,但单个案例不能说明整个领域是否形成完整证据。为此,我们审计了本页纳入的 18 项主要 Router 与直接邻近工作,检查它们从单次响应到成功完成任务分别测到了哪一层。
下一页将逐项说明已有方法如何回答、哪些假设尚未验证,以及哪些看似新颖的主张其实已有先例。
task、turn、call、tool observation 或 milestone 哪个粒度最合适?重决策时机能否成为策略变量,而不是固定超参数?
Prompt、工具结果、测试、错误和恢复状态中,哪些会改变最佳模型?哪些只是重复已有上下文?
模型费用、Router、Judge、重试、queue、cache loss 与 handoff 全部计入后,是否仍优于最佳 task pinning?
观察日志混合了任务难度和策略选择;怎样用同状态、同世界、共同 continuation 的反事实执行获得可靠标签?
完整历史信息多但昂贵;压缩状态更便宜,却可能丢失决定模型选择的关键信息或引入教师偏见。
固定 model ID 分类器容易随模型池过时;改变 workflow 的方法又难与固定 Agent Router 公平比较。
论文分别给出的证据:FrugalGPT 与 RouteLLM 说明,不同请求适合不同模型,选择模型可以改善质量—价格权衡;MTRouter 与 Harness-Native 进一步说明,对话历史、工具结果和错误状态能够进入 Agent 的模型选择;HyDRA 与 vLLM SAAR 则提醒我们,保持当前模型可以保留 cache 与会话连续性,切换并不是免费的。[P1][P2][P6][P4][P8][V6]
把这些结果放在一起:Agent 的中间状态可能改变最佳模型,但“看到更多状态”不等于“每一步都值得重新路由”。现有方法多把重决策时机预先固定为 task、固定 K 轮、每 turn、每 call 或特定系统事件;与此同时,跨模型切换还可能增加 Router 等待、上下文重读、cache loss 与失败恢复成本。已有论文分别覆盖了其中一部分,却尚未把信息收益与这些代价放在同一个任务级评测中比较。
因此得到的研究判断:下一步不应只是再训练一个“选择哪个模型”的 Router,而应先检验:工具反馈、验证结果或错误恢复等新事件出现后,重新选择模型带来的预期收益,是否足以覆盖切换的价格与时间代价。只有这个条件成立,研究“何时重新开放模型选择”才具有独立价值;否则,更简单的整任务固定或固定事件路由就已经足够。
AI-assisted research disclosure:来源检索、比较、数据转录和页面撰写使用了 AI 辅助;关键事实以论文原文、官方文档或本地原稿核验。厂商文档会变化,正式发表或采购决策前应再次核验。