所以今天聊一个实际问题:怎么让 OpenClaw 的模型切换变得丝滑,甚至全自动?

最笨但最直接的办法:手动改配置文件

最基础的方式,就是 SSH 到服务器,直接编辑配置文件。完整流程长这样:

ssh user-server
nano ~/.openclaw/openclaw.json
# 换 key:找到对应 provider 的 apiKey 字段,替换成新的 key
# 换模型:找到 agents.defaults.model.primary,改成备用模型 ID
# 保存退出
openclaw gateway restart

两种常见操作:一是同一模型换个渠道的 API Key,二是直接换一个模型顶上。不管哪种,都得走这套流程。

但你有没有想过,这个方式对大多数人来说有多不友好?JSON 格式少个逗号、多个引号就启动不了,配置文件内容也不少,光找到要改的字段就需要时间。改完还不确定对不对,必须重启 Gateway 才能验证。紧急情况下,这套操作的心理压力其实不小。

更聪明的方式:/model 命令

OpenClaw 其实自带了一个 /model 命令,可以在聊天框里直接切换模型——不需要 SSH、不需要改配置文件、不需要重启服务,即时生效。

比如主力模型 Claude 渠道挂了,一行命令切到 Codex:

/model aigocode-gpt/gpt-5.3-codex

等 Claude 恢复了,再切回来:

/model cc/claude-opus-4-6

或者直接重置为配置文件里的默认模型:

/model reset

这里有两个容易踩的坑,提前说一下:

  • /model 切换的是当前会话的模型,不会修改配置文件。新会话或 Gateway 重启后,会回到默认模型。这其实很合理——临时救急用 /model,长期变更才去改配置。
  • /model 只能切换到配置文件白名单里的模型。配置文件中有一个 models 字段控制这个,只有列在里面的模型才允许切换。默认模型不需要额外加,但新增的备用模型一定要记得加进白名单,否则会提示不允许切换。

如果你觉得模型 ID 太长记不住,可以在配置文件里给模型设别名(alias)。设好之后,直接 /model opus/model codex 就行。

这里顺便解释一下模型 ID 里的前缀,比如 ccaigocode-gpt,它们是自定义的供应商名称(Provider ID)。用第三方中转而不是官方 API 的话,自定义一个名称来区分不同渠道,每个渠道独立配置 API Key 和 Base URL,互不干扰,出了问题也能一眼定位是哪个渠道。

最优解:自动故障切换(Fallback Chains)

手动切换再快,毕竟还是要人盯着。OpenClaw 其实还有一个很多人不知道的功能——fallback chains,可以配置模型的自动故障切换。

在配置文件里,除了设置主模型,还可以设置一个 fallbacks 数组:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "cc/claude-opus-4-6",
        "fallbacks": ["aigocode-gpt/gpt-5.3-codex", "aigocode-gpt/gpt-5.2-codex"]
      }
    }
  }
}

配好之后,当主模型出现超时、认证失败、触发限流等问题时,OpenClaw 会自动按顺序尝试备用模型,完全不需要手动干预。等主模型恢复了,新会话又会自动回到 Claude。

配置方式也很简单,把上面的 JSON 结构直接贴给 OpenClaw,它会帮你检查配置结构和实际可用的模型。

三件事,让模型永远在线

回过头来看,要让 OpenClaw 的使用体验真正稳定,其实就三件事:

  1. 多配几个不同渠道的模型做备用——不同渠道基本不会同时挂掉
  2. 记住 /model 命令——聊天框里即时切换,几秒恢复对话
  3. 配好 fallback chains——让系统自动处理故障,你甚至不会感知到切换发生

做好这三步,日常用 Claude Opus 作为主力,一旦出问题系统自动切到 Codex,对话不中断、思路不打断。对于把 OpenClaw 当作生产力工具的一人公司来说,这不是锦上添花,而是基本保障。

那么,你现在的 OpenClaw 配置里,有几个备用模型?