🚦 Model Routing 详解

2026热门 成本优化 生产架构

一句话理解:Model Routing 就像医院的分诊台——小感冒去社区门诊(便宜快),疑难杂症去三甲医院(贵但强),急诊直接上ICU(最贵最快)。不是所有请求都需要GPT-4来处理的。

🤔 什么是 Model Routing?

世界上有一种智慧叫"看人下菜碟"——不是贬义,是褒义。当你面对100个用户请求时,最聪明的做法不是把每个请求都丢给最贵的模型,而是根据任务的复杂度、紧急度和预算,自动选择最合适的模型。

Model Routing(模型路由)是一种智能调度策略,它根据输入请求的特征,动态地将请求路由到最合适的AI模型。目标很朴素:用最少的钱,办最好的事。

这事儿就像打车——去楼下便利店你叫个自行车就行,去机场才需要叫专车。如果你每次都叫专车去便利店,钱包会哭泣的。

📐 路由策略四大流派

策略 原理 适用场景 省钱指数
基于规则路由 根据任务类型/关键词手动分配 简单业务、固定流程 ⭐⭐⭐⭐
基于复杂度路由 先评估输入复杂度,再选模型 混合任务场景 ⭐⭐⭐⭐⭐
基于成本路由 优先使用便宜模型,失败再升级 预算敏感场景 ⭐⭐⭐⭐⭐
基于性能路由 优先使用最强模型确保质量 质量敏感场景 ⭐⭐

🧠 复杂度分类器:路由的核心大脑

最主流的做法是训练一个轻量级的"复杂度分类器"——一个小模型,它的唯一任务就是判断"这个请求到底需要大模型还是小模型就够了"。

这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%。这不是省零头,这是省出了一个人力。

⚠️ 路由踩坑实录

🔗 相关术语

📚 延伸阅读