Models CLI
关于认证配置轮换、冷却时间以及它们如何与备用模型交互,请参阅 /concepts/model-failover。 Provider 快速概览和示例:/concepts/model-providers。
模型选择的工作原理
OpenClaw 按以下顺序选择模型:
- 主模型(
agents.defaults.model.primary或agents.defaults.model)。 - 备用模型,按
agents.defaults.model.fallbacks中的顺序。 - Provider 认证故障转移,在移动到下一个模型之前,会先在 Provider 内部进行切换。
相关配置:
agents.defaults.models是 OpenClaw 可以使用的模型白名单/目录(包括别名)。agents.defaults.imageModel仅在主模型无法接受图片时使用。- 每个 Agent 的默认设置可以通过
agents.list[].model加绑定来覆盖agents.defaults.model(参见 /concepts/multi-agent)。
快速模型推荐(经验之谈)
- GLM:在编码和工具调用方面稍好一些。
- MiniMax:在写作和氛围感方面更好。
设置向导(推荐)
如果你不想手动编辑配置文件,可以运行引导向导:
openclaw onboard
它可以为常见的 Provider 设置模型和认证,包括 OpenAI Code (Codex) 订阅(OAuth)和 Anthropic(推荐使用 API key;也支持 claude setup-token)。
配置项概览
agents.defaults.model.primary和agents.defaults.model.fallbacksagents.defaults.imageModel.primary和agents.defaults.imageModel.fallbacksagents.defaults.models(白名单 + 别名 + Provider 参数)models.providers(写入models.json的自定义 Provider)
模型引用会被标准化为小写。Provider 别名如 z.ai/* 会被标准化为 zai/*。
Provider 配置示例(包括 OpenCode Zen)请参阅 /gateway/configuration。
“模型不被允许”错误(以及为什么回复会停止)
如果设置了 agents.defaults.models,它会成为 /model 和 Session 覆盖的白名单。当用户选择一个不在白名单中的模型时,OpenClaw 会返回:
Model "provider/model" is not allowed. Use /model to list available models.
这会在生成正常回复之前发生,所以消息可能会让人觉得”没有响应”。解决方法是:
- 将模型添加到
agents.defaults.models,或 - 清除白名单(移除
agents.defaults.models),或 - 从
/model list中选择一个模型。
白名单配置示例:
{
agent: {
model: { primary: "anthropic/claude-sonnet-4-5" },
models: {
"anthropic/claude-sonnet-4-5": { alias: "Sonnet" },
"anthropic/claude-opus-4-5": { alias: "Opus" },
},
},
}
在对话中切换模型(/model)
你可以在当前 Session 中切换模型,无需重启:
/model
/model list
/model 3
/model openai/gpt-5.2
/model status
注意事项:
/model(和/model list)是一个紧凑的编号选择器(模型系列 + 可用的 Provider)。/model <#>从选择器中选择。/model status是详细视图(认证候选项,以及配置后的 Provider 端点baseUrl+api模式)。- 模型引用通过在第一个
/处分割来解析。输入/model <ref>时使用provider/model格式。 - 如果模型 ID 本身包含
/(OpenRouter 风格),你必须包含 Provider 前缀(例如:/model openrouter/moonshotai/kimi-k2)。 - 如果省略 Provider,OpenClaw 会将输入视为别名或默认 Provider 的模型(仅在模型 ID 中没有
/时有效)。
完整命令行为和配置:斜杠命令。
CLI 命令
openclaw models list
openclaw models status
openclaw models set <provider/model>
openclaw models set-image <provider/model>
openclaw models aliases list
openclaw models aliases add <alias> <provider/model>
openclaw models aliases remove <alias>
openclaw models fallbacks list
openclaw models fallbacks add <provider/model>
openclaw models fallbacks remove <provider/model>
openclaw models fallbacks clear
openclaw models image-fallbacks list
openclaw models image-fallbacks add <provider/model>
openclaw models image-fallbacks remove <provider/model>
openclaw models image-fallbacks clear
openclaw models(不带子命令)是 models status 的快捷方式。
models list
默认显示已配置的模型。常用参数:
--all:完整目录--local:仅本地 Provider--provider <name>:按 Provider 过滤--plain:每行一个模型--json:机器可读输出
models status
显示已解析的主模型、备用模型、图片模型,以及已配置 Provider 的认证概览。它还会显示认证存储中找到的 OAuth 配置的过期状态(默认在 24 小时内警告)。--plain 仅打印已解析的主模型。
OAuth 状态始终显示(并包含在 --json 输出中)。如果已配置的 Provider 没有凭据,models status 会打印一个 Missing auth 部分。
JSON 包含 auth.oauth(警告窗口 + 配置)和 auth.providers(每个 Provider 的有效认证)。
使用 --check 进行自动化(缺失/过期时退出码为 1,即将过期时为 2)。
推荐的 Anthropic 认证方式是 Claude Code CLI setup-token(可在任何地方运行;如需要可粘贴到 Gateway 主机上):
claude setup-token
openclaw models status
扫描(OpenRouter 免费模型)
openclaw models scan 检查 OpenRouter 的免费模型目录,并可选择性地探测模型的工具和图片支持。
关键参数:
--no-probe:跳过实时探测(仅元数据)--min-params <b>:最小参数规模(十亿)--max-age-days <days>:跳过较旧的模型--provider <name>:Provider 前缀过滤--max-candidates <n>:备用列表大小--set-default:将agents.defaults.model.primary设置为第一个选择--set-image:将agents.defaults.imageModel.primary设置为第一个图片选择
探测需要 OpenRouter API key(来自认证配置或 OPENROUTER_API_KEY)。如果没有 key,使用 --no-probe 仅列出候选项。
扫描结果按以下顺序排名:
- 图片支持
- 工具延迟
- Context 大小
- 参数数量
输入
- OpenRouter
/models列表(过滤:free) - 需要来自认证配置或
OPENROUTER_API_KEY的 OpenRouter API key(参见 /environment) - 可选过滤器:
--max-age-days、--min-params、--provider、--max-candidates - 探测控制:
--timeout、--concurrency
在 TTY 中运行时,你可以交互式地选择备用模型。在非交互模式下,传递 --yes 以接受默认值。
模型注册表(models.json)
models.providers 中的自定义 Provider 会被写入 Agent 目录下的 models.json(默认为 ~/.openclaw/agents/<agentId>/models.json)。除非 models.mode 设置为 replace,否则此文件默认会被合并。