模型故障转移:打造高可用 AI 服务

模型故障转移:打造高可用 AI 服务

故障转移(Failover)是"让 AI 服务持续可用"的兜底能力。当主模型因配额耗尽、网络故障或 API 限流而失效时,OpenClaw 会自动切换到备用模型。

🎯 核心机制

OpenClaw 的故障转移是两层的:

  1. 认证轮换:同一 Provider 内,轮换不同的认证配置
  2. 模型回退:跨 Provider,按顺序尝试备用模型
请求 → 主模型/认证1 → 认证2 → 认证3 → 备用模型1 → 备用模型2 → ... → 失败

⚙️ 最小可用配置

基础回退(5 分钟上手)

{
  agents: {
    defaults: {
      model: {
        primary: "anthropic/claude-sonnet-4-5",
        fallbacks: [
          "openai/gpt-4o",
          "ollama/llama3",  // 本地兜底
        ],
      },
    },
  },
}

多认证轮换(适合团队账号)

{
  models: {
    providers: {
      anthropic: {
        apiKey: "sk-ant-xxx1",
        credentials: {
          profile2: {
            apiKey: "sk-ant-xxx2",
          },
          profile3: {
            apiKey: "sk-ant-xxx3",
          },
        },
      },
    },
  },
}

🏗️ 推荐架构

个人用户方案

主力:国产模型(性价比高)
  ↓
备用:GPT-4o-mini(均衡)
  ↓
兜底:本地 Llama3(免费)

团队/生产方案

主集群:Claude Sonnet × 3(多认证轮换)
  ↓
备集群:GPT-4o × 2(多认证轮换)
  ↓
本地:Ollama/vLLM(紧急兜底)

🔧 诊断与验证

检查当前状态

# 查看所有模型状态
openclaw models status

# 探测性测试(会实际调用 API)
openclaw models status --probe

# 查看故障转移链
openclaw models fallbacks list

模拟故障测试

# 临时禁用主模型,测试切换
# 编辑配置后将主模型设为无效值,观察是否自动切换

📊 实战场景

场景一:成本敏感型

{
  agents: {
    defaults: {
      model: {
        primary: "qwen/qwen-turbo",      // ¥0.008/1k tokens
        fallbacks: [
          "deepseek/deepseek-chat",       // ¥0.001/1k tokens
          "ollama/qwen2",                  // 免费
        ],
      },
    },
  },
}

场景二:质量优先型

{
  agents: {
    defaults: {
      model: {
        primary: "anthropic/claude-opus-4-6",
        fallbacks: [
          "anthropic/claude-sonnet-4-5",
          "openai/gpt-4o",
          "qwen/qwen-max",  // 国产兜底
        ],
      },
    },
  },
}

场景三:混合部署(海外 + 国内)

{
  agents: {
    defaults: {
      model: {
        primary: "anthropic/claude-sonnet-4-5",
        fallbacks: [
          "qwen/qwen-plus",     // 国内节点快
          "ollama/llama3",       // 本地兜底
        ],
      },
    },
  },
}

🛠️ CLI 管理

# 列出当前回退链
openclaw models fallbacks list

# 添加备用模型
openclaw models fallbacks add qwen/qwen-plus

# 移除备用模型
openclaw models fallbacks remove qwen/qwen-plus

# 清空所有备用(保留主模型)
openclaw models fallbacks clear

⚠️ 注意事项

性能考虑

  • 每次切换会增加请求延迟(约 1-3 秒)
  • 建议备用模型选择响应速度快
  • 本地模型虽免费但硬件要求高

成本控制

  • Claude/GPT 作为备用时,留意费用突增
  • 建议设置告警监控
  • 定期检查主模型是否恢复

配额管理

  • 多认证轮换可延长单厂商配额
  • 注意各厂商的 RPM/TPM 限制

🔗 相关文档

💡 最佳实践

  1. 永远配置本地兜底:即使很慢,也比完全不可用强
  2. 定期测试故障转移:不要等到真的出问题才验证
  3. 监控切换频率:频繁切换说明主模型有问题
  4. 记录故障模式:是配额耗尽?网络问题?还是 API 变更?