OpenClaw 模型降级与容错策略

世界上有一种保障叫 fallback,它就像人生中的 Plan B。当 Claude 掛了的时候,还有 GPT;当 GPT 也炸了的时候,还有本地模型。这就是成年人的世界——永远准备好下一步。

为什么需要模型降级?

API 会挂、配额会满、网络会断。一个成熟的生产系统,必须具备优雅降级的能力。OpenClaw 的 fallback 机制让你在主模型不可用时,自动切换到备用模型,保证服务连续性。

Fallback 配置

基础配置

{
  "model": {
    "primary": "claude-sonnet-4-20250514",
    "fallbacks": [
      "gpt-4.1",
      "gemini-2.5-pro",
      "local-llama-3"
    ],
    "fallbackConditions": {
      "onError": true,
      "onRateLimit": true,
      "onTimeout": true,
      "maxRetries": 2
    }
  }
}

高级路由规则

{
  "modelRouting": {
    "rules": [
      {
        "condition": "task.complexity > 0.8",
        "models": ["claude-opus-4", "gpt-4.1"]
      },
      {
        "condition": "task.type === 'code'",
        "models": ["claude-sonnet-4", "gpt-4.1"]
      },
      {
        "condition": "default",
        "models": ["gpt-4.1-mini", "claude-haiku-3.5"]
      }
    ]
  }
}

降级触发条件

自动降级场景

  • API 错误 - 5xx 服务端错误
  • 速率限制 - 429 Too Many Requests
  • 超时 - 请求超过配置的超时时间
  • 配额耗尽 - 账户余额不足
  • 内容过滤 - 触发安全审核

手动降级

// 通过 API 触发降级
await agent.setModel("gpt-4.1", {
  reason: "claude-api-outage",
  duration: 3600000 // 1小时
});

成本优化策略

{
  "costOptimization": {
    "enabled": true,
    "strategy": "cost-aware",
    "rules": [
      {
        "condition": "tokens > 10000",
        "model": "gpt-4.1-mini"
      },
      {
        "condition": "task.type === 'summary'",
        "model": "claude-haiku-3.5"
      }
    ]
  }
}

监控与告警

// 监控 fallback 触发
agent.on("fallback", (event) => {
  console.log(`Fallback from ${event.from} to ${event.to}`);
  console.log(`Reason: ${event.reason}`);
  // 发送告警
  alerting.notify(event);
});

最佳实践

  • 至少两个备用模型 - 从不同的服务商选择
  • 测试降级路径 - 定期验证 fallback 配置
  • 成本监控 - 备用模型可能更贵
  • 质量评估 - 确保降级后输出质量可接受

相关资源