← 返回文章列表

多模型路由:让 Agent 在质量、延迟与成本间取舍

按任务难度、风险和上下文选择模型,并用升级、降级和回退机制控制质量与成本。

单一模型不是最简单的长期方案

Agent 的不同步骤差异很大:意图分类、查询改写、复杂规划、代码审查和最终写作,对推理能力、延迟和上下文长度的要求并不相同。所有步骤都使用最强模型,工程实现看似简单,却会放大成本和排队延迟;全部使用便宜模型,又可能在关键判断上反复失败。

模型路由的目标不是追逐最低单价,而是在每个决策点选择满足质量下限的最小能力,并且在不确定时能够升级。

先按步骤拆分质量要求

路由器需要知道当前步骤,而不是只看用户第一句话。可以为节点定义能力需求:

{
  "taskType": "tool_selection",
  "risk": "medium",
  "required": {
    "structuredOutput": true,
    "contextTokens": 32000,
    "vision": false
  },
  "latencyBudgetMs": 2500,
  "maxCost": 0.02
}

固定分类、实体抽取和短摘要通常可以走快速路径;跨文档综合、复杂规划和高风险审查使用更强模型;截图理解需要视觉能力;超长代码库问题还要考虑上下文或检索策略。

不要让模型自己声明“我需要更强模型”后无限升级。路由规则由系统根据任务类型、风险、输入规模和历史失败决定。

静态路由、动态路由和级联

静态路由为每个工作流节点指定模型,行为可预测,适合流程稳定的产品。它易于评测和预算,但无法适应同一节点内的难度差异。

动态路由用规则或轻量分类器判断难度。输入短、工具候选少且风险低时使用快速模型;存在冲突证据、复杂代码或高风险动作时使用强模型。动态路由节省更多,但分类错误会直接影响质量。

级联策略先用低成本模型尝试,再由验证器决定是否升级。结构解析失败、置信度不足、证据冲突或领域校验拒绝时,将原任务、失败原因和必要状态交给更强模型。升级不是把所有历史原样复制,而是提供紧凑的失败包。

级联尤其适合有确定性验证器的任务,因为系统能明确知道第一次尝试没有满足契约。

置信度不能只听模型自报

模型输出“置信度 0.95”并不等于真实正确率。更可靠的升级信号包括:Schema 是否通过、引用是否存在、工具参数是否命中唯一对象、多个独立答案是否一致,以及相似历史用例的表现。

对于开放式输出,可以使用抽样审核或独立评分器,但评分成本也要计入。高风险任务即使模型看起来有信心,也不能跳过权限验证和人工审批。

回退要区分质量和可用性

主模型可能限流、超时或区域不可用。可用性回退与质量升级是两条不同路径。回退模型需要支持相同的结构化输出和工具契约;若能力不足,应缩小任务或进入降级状态,而不是悄悄生成低质量结果。

例如主模型不可用时,系统可以继续只读收集证据并保存草稿,但暂停最终发布;也可以把复杂任务转人工,同时让简单任务继续运行。

模型切换后要重新计算上下文预算。不同模型的窗口、工具格式和多模态能力可能不同,不能直接复用已经超限的输入。

路由策略需要版本和评测

每次运行记录模型、路由原因、策略版本、升级次数和最终结果。这样才能回答成本上升是输入变复杂,还是路由规则改变。

离线评测应按任务难度和风险分桶,对比成功率、延迟、Token、工具错误和人工接管。只看平均成本会鼓励把所有任务路由到最便宜模型,却看不到关键场景下降。

可以在不执行真实写操作的影子环境中比较候选路由:相同输入并行得到决策,再由验证器或人工评估。发布新策略时逐步放量,并保留快速回滚。

成本预算进入运行状态

路由不是一次选择。Agent 运行状态应包含剩余预算和已经花费的失败成本。任务接近预算时,可以减少候选文档、停止低价值探索或请求用户缩小范围,但不能删除必要的安全验证。

缓存也会影响路由。稳定前缀命中缓存后,强模型的实际成本可能低于预估;工具结果已经存在时,任务难度也会下降。预算器应基于真实用量更新,而不是只用静态价格表。

一个实用落地顺序

先建立单模型质量基线和逐节点用量;然后把最确定、低风险、占比高的节点迁移到快速模型;为它们增加确定性验证和升级路径;最后才引入动态难度分类。

如果没有评测集和追踪,过早使用复杂路由会让问题难以定位。模型越多,版本组合越多,必须用数据证明额外复杂度带来了实际收益。

小结

多模型路由不是简单的“大小模型搭配”,而是质量约束下的资源调度。按步骤定义能力,用验证器触发升级,把可用性回退与质量升级分开,再通过版本化评测持续校准,Agent 才能同时守住质量、延迟和成本。