🎯 OpenClaw 模型路由与智能切换

世界上有一种智慧叫"该省省该花花"。3点15分,我算了算这个月的API账单——如果早点用上模型路由,我能少请AI喝42杯咖啡。

💰 真实案例:节省78%的API成本

某用户OpenClaw配置:心跳检查用GPT-3.5,简单查询用本地Ollama,复杂任务用Claude 3.5 Sonnet。月度费用从$280降到$62。

🧠 什么是模型路由?

模型路由(Model Routing)是OpenClaw的智能大脑分流系统。想象一下:你不会用F1赛车去买菜,也不会用自行车去跑高速——不同的任务应该交给不同的模型

核心原理:OpenClaw根据任务类型、复杂度、成本目标,自动选择最合适的LLM。你可以设置规则,也可以让系统智能决策。

📊 主流模型对比矩阵

模型 优势场景 成本指数 延迟 推荐用途
Claude 3.5 Sonnet 推理、代码、创意 $$$ 中等 复杂任务、代码审查
Claude 3 Haiku 快速响应 $$ 日常对话、简单问答
GPT-4o 多模态、工具调用 $$$ 中等 视觉任务、函数调用
GPT-3.5 Turbo 性价比 $ 简单任务、高频调用
Gemini 1.5 Pro 超长上下文 $$ 中等 文档分析、大上下文
Ollama Local 零成本、隐私 免费 取决于硬件 本地任务、敏感数据

⚙️ 基础配置:多模型设置

在OpenClaw配置文件中定义多个模型:

# ~/.openclaw/config.yaml
models:
  # 主力模型 - 复杂任务
  primary:
    provider: anthropic
    model: claude-3-5-sonnet-20241022
    api_key: ${ANTHROPIC_API_KEY}
    
  # 快速模型 - 简单查询
  fast:
    provider: openai
    model: gpt-3.5-turbo
    api_key: ${OPENAI_API_KEY}
    
  # 本地模型 - 隐私任务
  local:
    provider: ollama
    model: llama3.2
    base_url: http://localhost:11434
    
  # 超长上下文模型
  longcontext:
    provider: google
    model: gemini-1.5-pro
    api_key: ${GOOGLE_API_KEY}

🎛️ 智能路由策略

策略1:基于任务类型路由

# 在config.yaml中添加路由规则
routing:
  default: primary
  
  rules:
    # 代码相关 → Claude
    - pattern: "code|编程|debug|代码"
      model: primary
      
    # 简单问候 → GPT-3.5
    - pattern: "你好|hi|hello|谢谢"
      model: fast
      
    # 长文档分析 → Gemini
    - pattern: "分析文档|总结.*pdf|阅读.*文章"
      model: longcontext
      
    # 敏感信息 → 本地模型
    - pattern: "密码|密钥|token|secret"
      model: local

策略2:基于Token预估路由

routing:
  default: primary
  
  # 预估输入短于100token → 用快速模型
  token_threshold:
    short:
      max_tokens: 100
      model: fast
    
    # 预估输出超过2000token → 用长上下文模型
    long_output:
      min_output_tokens: 2000
      model: longcontext

策略3:成本感知路由

routing:
  default: primary
  
  # 每日预算限制
  budget:
    daily_limit_usd: 10
    
    # 接近限额时切换到便宜模型
    fallback_on_budget:
      threshold: 0.8  # 80%预算用完时
      model: fast

🔧 Per-Agent模型覆盖

不同Agent使用不同模型——子Agent可以用轻量级模型节省成本:

# agent-config.yaml
main_agent:
  model: primary  # 主Agent用最强模型
  
sub_agents:
  research:
    model: longcontext  # 研究员用长上下文
    
  coder:
    model: primary  # 程序员用最强模型
    
  reviewer:
    model: fast  # 审稿人用快速模型

🎮 动态模型切换

在对话中临时切换模型:

# 用户在消息中指定模型
用户: @claude 帮我写个Python脚本
→ 系统使用Claude模型回复

用户: @local 这个不要发云端
→ 系统切换到Ollama本地模型

用户: @fast 快速回答
→ 系统使用GPT-3.5 Turbo
在SOUL.md中定义模型切换指令,让用户可以主动选择模型

📈 监控与优化

# 查看模型使用情况
openclaw stats --models

# 输出示例:
模型使用情况 (过去7天):
┌─────────────────┬────────┬──────────┬──────────┐
│ 模型            │ 请求数 │ 总Token  │ 费用     │
├─────────────────┼────────┼──────────┼──────────┤
│ claude-3.5      │ 1,234  │ 2.3M     │ $18.42   │
│ gpt-3.5-turbo   │ 5,678  │ 1.1M     │ $2.84    │
│ ollama-local    │ 890    │ 456K     │ $0.00    │
└─────────────────┴────────┴──────────┴──────────┘

💎 最佳实践总结

避坑提醒:不要所有任务都用最贵的模型。Claude 3.5比GPT-3.5贵10倍,但简单问答的质量差距没那么大。

🔗 相关资源

最后送你一句话:
"模型路由就像约会——不要在咖啡还没喝完的时候就订米其林。先用GPT-3.5试探,该升级时再请Claude出场。"