🚦 Model Routing 详解
2026热门 成本优化 生产架构
一句话理解:Model Routing 就像医院的分诊台——小感冒去社区门诊(便宜快),疑难杂症去三甲医院(贵但强),急诊直接上ICU(最贵最快)。不是所有请求都需要GPT-4来处理的。
🤔 什么是 Model Routing?
世界上有一种智慧叫"看人下菜碟"——不是贬义,是褒义。当你面对100个用户请求时,最聪明的做法不是把每个请求都丢给最贵的模型,而是根据任务的复杂度、紧急度和预算,自动选择最合适的模型。
Model Routing(模型路由)是一种智能调度策略,它根据输入请求的特征,动态地将请求路由到最合适的AI模型。目标很朴素:用最少的钱,办最好的事。
这事儿就像打车——去楼下便利店你叫个自行车就行,去机场才需要叫专车。如果你每次都叫专车去便利店,钱包会哭泣的。
📐 路由策略四大流派
| 策略 | 原理 | 适用场景 | 省钱指数 |
|---|---|---|---|
| 基于规则路由 | 根据任务类型/关键词手动分配 | 简单业务、固定流程 | ⭐⭐⭐⭐ |
| 基于复杂度路由 | 先评估输入复杂度,再选模型 | 混合任务场景 | ⭐⭐⭐⭐⭐ |
| 基于成本路由 | 优先使用便宜模型,失败再升级 | 预算敏感场景 | ⭐⭐⭐⭐⭐ |
| 基于性能路由 | 优先使用最强模型确保质量 | 质量敏感场景 | ⭐⭐ |
🧠 复杂度分类器:路由的核心大脑
最主流的做法是训练一个轻量级的"复杂度分类器"——一个小模型,它的唯一任务就是判断"这个请求到底需要大模型还是小模型就够了"。
- 简单请求(~60%):"今天的天气怎么样" → 路由到轻量模型(GPT-4o-mini / Claude Haiku)
- 中等请求(~30%):"帮我分析一下这个数据表格" → 路由到中等模型(GPT-4o / Claude Sonnet)
- 复杂请求(~10%):"设计一个多Agent协作系统" → 路由到最强模型(o3 / Claude Opus)
这60/30/10的分布意味着——如果你把所有请求都送给最强模型,你60%的钱都浪费在了"杀鸡用牛刀"上。
🤖 OpenClaw 中的 Model Routing 实战
1. Gateway 配置:多模型路由
# OpenClaw Gateway 配置 - Model Routing
# 通过 gateway config 实现多模型路由
# 查看当前配置
gateway(action="config.get")
# 配置路由规则
gateway(action="config.patch", raw=JSON.stringify({
agents: {
# 简单任务用轻量模型
"quick-tasks": {
model: "gpt-4o-mini",
description: "简单查询和格式化任务"
},
# 中等任务用标准模型
"standard-tasks": {
model: "gpt-4o",
description: "分析和创作任务"
},
# 复杂任务用推理模型
"complex-tasks": {
model: "o3",
thinking: "high",
description: "复杂推理和架构设计"
}
}
}))
2. Sub-Agent 多模型编排
# OpenClaw 中通过 sub-agent 实现模型路由
# 不同任务spawn不同模型的sub-agent
# 简单摘要任务 → 轻量模型
sessions_spawn(
task="为以下文章生成50字摘要:...",
model="gpt-4o-mini", # 省钱!
mode="run",
runtime="subagent"
)
# 数据分析任务 → 标准模型
sessions_spawn(
task="分析以下销售数据,找出增长趋势:...",
model="gpt-4o", # 够用!
mode="run",
runtime="subagent"
)
# 架构设计任务 → 推理模型
sessions_spawn(
task="设计一个可扩展的多Agent系统架构:...",
model="o3", # 不差钱!
thinking="high",
mode="run",
runtime="subagent"
)
3. 级联降级策略:先试便宜的
# OpenClaw 级联路由 - 先用便宜模型,不行再升级
# 这就是所谓的 "Cascading Router"
# 第一级:尝试轻量模型
result = sessions_spawn(
task="完成以下任务:...",
model="gpt-4o-mini",
runTimeoutSeconds=30,
mode="run",
runtime="subagent"
)
# 如果轻量模型失败或质量不够,升级
if result.quality_score < 0.8:
result = sessions_spawn(
task="完成以下任务:...",
model="gpt-4o", # 升级到标准模型
mode="run",
runtime="subagent"
)
# 还不行?上核武器
if result.quality_score < 0.8:
result = sessions_spawn(
task="完成以下任务:...",
model="o3", # 最终升级
thinking="high",
mode="run",
runtime="subagent"
)
4. Session级别的模型覆盖
# OpenClaw 支持session级别的模型切换
# 根据实时需求动态切换模型
# 查看当前session使用的模型
session_status() # 显示当前模型和token用量
# 动态切换模型(不影响其他session)
session_status(model="gpt-4o-mini") # 切到便宜模型
session_status(model="o3") # 切到强模型
# Cron任务中指定模型
cron(action="add", job={
name: "每日摘要",
schedule: { kind: "cron", expr: "0 8 * * *" },
payload: {
kind: "agentTurn",
message: "生成每日摘要",
model: "gpt-4o-mini" # 定时任务用便宜模型
},
sessionTarget: "isolated"
})
💰 Model Routing 的成本账
来算笔账——假设每天处理1000个请求:
| 方案 | 模型选择 | 日均成本 | 月成本 |
|---|---|---|---|
| 全用最强模型 | 100% o3 | $150 | $4,500 |
| 全用标准模型 | 100% GPT-4o | $50 | $1,500 |
| 智能路由 | 60% mini + 30% 4o + 10% o3 | $18 | $540 |
智能路由比全用最强模型省了96.4%。这不是省零头,这是省出了一个人力。
⚠️ 路由踩坑实录
- 分类器不准:复杂度判断错了,简单请求被路由到大模型(浪费),复杂请求被路由到小模型(质量差)——分类器的准确率是路由的天花板
- 冷启动问题:新上线的任务类型没有历史数据,分类器不知道该路由到哪——需要有fallback机制
- 延迟vs成本权衡:级联策略虽然省钱,但"先试小模型失败了再升级"会增加延迟——对实时场景可能不适用
- 模型版本漂移:模型升级后行为变了,之前的路由规则可能不再适用——需要定期re-eval