Documentation Index
Fetch the complete documentation index at: https://openclaw.zhcndoc.com/llms.txt
Use this file to discover all available pages before exploring further.
模型故障转移
认证配置轮换、冷却时间,以及这与回退机制如何交互。
模型提供商
供应商概览和快速示例。
Agent 运行时
PI、Codex,以及其他 agent 循环运行时。
配置参考
模型配置键。
openai/gpt-5.5 可以通过正常的 OpenAI 提供商路径运行,也可以通过 Codex 应用服务器运行时运行,这取决于 agents.defaults.agentRuntime.id。在 Codex 运行时模式下,openai/gpt-* 引用并不意味着按 API key 计费;认证可以来自 Codex 账户或 openai-codex 认证配置文件。参见 Agent runtimes。
模型选择如何工作
OpenClaw 按以下顺序选择模型:相关的模型入口
相关的模型入口
agents.defaults.models是 OpenClaw 可使用的模型白名单/目录(以及别名)。agents.defaults.imageModel仅在主模型无法接受图像时使用。agents.defaults.pdfModel由pdf工具使用。如果省略,则该工具会回退到agents.defaults.imageModel,然后回退到解析后的会话/默认模型。agents.defaults.imageGenerationModel由共享的图像生成能力使用。如果省略,image_generate仍可推断出一个由认证支持的提供商默认值。它会先尝试当前默认提供商,然后按 provider-id 顺序尝试其余已注册的图像生成提供商。如果你设置了特定的提供商/模型,也要配置该提供商的认证/API key。agents.defaults.musicGenerationModel由共享的音乐生成能力使用。如果省略,music_generate仍可推断出一个由认证支持的提供商默认值。它会先尝试当前默认提供商,然后按 provider-id 顺序尝试其余已注册的音乐生成提供商。如果你设置了特定的提供商/模型,也要配置该提供商的认证/API key。agents.defaults.videoGenerationModel由共享的视频生成能力使用。如果省略,video_generate仍可推断出一个由认证支持的提供商默认值。它会先尝试当前默认提供商,然后按 provider-id 顺序尝试其余已注册的视频生成提供商。如果你设置了特定的提供商/模型,也要配置该提供商的认证/API key。- 每个 agent 的默认值可以通过
agents.list[].model以及绑定覆盖agents.defaults.model(参见 Multi-agent routing)。
选择来源与回退行为
同一个provider/model,根据来源不同,含义也可能不同:
- 配置的默认值(
agents.defaults.model.primary和特定 agent 的主模型)是正常的起点,并使用agents.defaults.model.fallbacks。 - 自动回退选择是临时恢复状态。它们会以
modelOverrideSource: "auto"的形式存储,这样后续轮次就可以继续使用回退链,而无需先探测一个已知不可用的主模型。 - 用户会话选择是精确的。
/model、模型选择器、session_status(model=...)和sessions.patch会存储modelOverrideSource: "user";如果所选的提供商/模型不可达,OpenClaw 会显式失败,而不是继续落到另一个已配置模型。 - Cron
--model/ 负载model是每个任务的主模型。它仍然使用已配置的回退,除非任务提供显式的负载fallbacks(严格的 cron 运行使用fallbacks: [])。 - CLI 默认模型和白名单选择器会尊重
models.mode: "replace",此时会列出显式的models.providers.*.models,而不是加载完整的内置目录。 - Control UI 模型选择器会请求 Gateway 的已配置模型视图:如果存在
agents.defaults.models,则使用它;否则使用显式的models.providers.*.models以及具有可用认证的提供商。完整的内置目录仅保留给显式浏览视图,例如models.list且view: "all",或openclaw models list --all。
快速模型策略
- 将主模型设置为你可用的、最强的最新一代模型。
- 对于成本/延迟敏感的任务和风险较低的聊天,使用回退模型。
- 对于启用工具的 agent 或不可信输入,避免较旧/较弱的模型层级。
入门(推荐)
如果你不想手动编辑配置,请运行 onboarding:配置键(概览)
agents.defaults.model.primary和agents.defaults.model.fallbacksagents.defaults.imageModel.primary和agents.defaults.imageModel.fallbacksagents.defaults.pdfModel.primary和agents.defaults.pdfModel.fallbacksagents.defaults.imageGenerationModel.primary和agents.defaults.imageGenerationModel.fallbacksagents.defaults.videoGenerationModel.primary和agents.defaults.videoGenerationModel.fallbacksagents.defaults.models(白名单 + 别名 + 提供商参数)models.providers(写入models.json的自定义提供商)
模型引用会规范化为小写。像
z.ai/* 这样的提供商别名会规范化为 zai/*。包括 OpenCode 在内的提供商配置示例位于 OpenCode。安全的白名单编辑
手动更新agents.defaults.models 时使用增量写入:
防覆盖保护规则
防覆盖保护规则
openclaw config set 会保护模型/提供商映射,避免意外覆盖。对 agents.defaults.models、models.providers 或 models.providers.<id>.models 的普通对象赋值,如果会删除现有条目,则会被拒绝。增量更改请使用 --merge;仅当你提供的值应该成为完整目标值时才使用 --replace。交互式提供商设置和 openclaw configure --section model 也会将提供商范围内的选择合并到现有白名单中,因此添加 Codex、Ollama 或其他提供商不会删除无关的模型条目。重新应用提供商认证时,Configure 会保留现有的 agents.defaults.model.primary。像 openclaw models auth login --provider <id> --set-default 和 openclaw models set <model> 这样的显式默认设置命令仍然会替换 agents.defaults.model.primary。“Model is not allowed”(以及为什么回复会停止)
如果设置了agents.defaults.models,它就会成为 /model 和会话覆盖的白名单。当用户选择的模型不在该白名单中时,OpenClaw 会返回:
ollama/gemma4:26b、lmstudio/Gemma4-26b-a4-it-gguf,或者
openclaw models list --provider <provider> 显示的精确 provider/model。
当白名单处于启用状态时,仅有裸本地文件名或显示名是不够的。
白名单配置示例:
在聊天中切换模型(/model)
你可以在不重启的情况下切换当前会话的模型:
Picker behavior
Picker behavior
/model(以及/model list)是一个紧凑的编号选择器(模型家族 + 可用提供商)。- 在 Discord 中,
/model和/models会打开一个交互式选择器,包含提供商和模型下拉框以及一个提交步骤。 - 在 Telegram 中,
/models选择器的选择仅作用于当前会话;它们不会更改openclaw.json中 agent 的持久默认值。 /models add已弃用,现在会返回弃用提示,而不是从聊天中注册模型。/model <#>会从该选择器中进行选择。
持久化与在线切换
持久化与在线切换
/model会立即持久化新的会话选择。- 如果 agent 处于空闲状态,下一次运行会立刻使用新模型。
- 如果某次运行已经在进行中,OpenClaw 会将在线切换标记为待处理,并只会在一个干净的重试点重新启动到新模型。
- 如果工具活动或回复输出已经开始,待处理切换可能会继续排队,直到后续某次重试机会或下一轮用户交互。
- 用户选择的
/model引用对于该会话是严格的:如果所选的提供商/模型不可达,回复会显式失败,而不是静默地从agents.defaults.model.fallbacks回答。这与已配置的默认值和 cron 任务主模型不同,它们仍然可以使用回退链。 /model status是详细视图(认证候选项,以及在已配置时的提供商端点baseUrl+api模式)。
引用解析
引用解析
- 模型引用通过在第一个
/处分割来解析。输入/model <ref>时请使用provider/model。 - 如果模型 ID 本身包含
/(OpenRouter 风格),你必须包含提供商前缀(例如:/model openrouter/moonshotai/kimi-k2)。 - 如果你省略提供商,OpenClaw 会按以下顺序解析输入:
- 别名匹配
- 对该未加前缀的精确模型 id 的唯一已配置提供商匹配
- 回退到已配置的默认提供商——如果该提供商不再暴露已配置的默认模型,OpenClaw 会改为回退到第一个已配置的提供商/模型,以避免暴露一个已删除提供商的过期默认值。
CLI 命令
openclaw models(无子命令)是 models status 的快捷方式。
models list
默认显示已配置/可认证使用的模型。实用标志:
完整目录。在配置认证之前,包含捆绑的、由提供方拥有的静态目录行,因此仅用于发现的视图可以显示那些在添加匹配的提供方凭据之前不可用的模型。
仅本地提供方。
按提供方 ID 过滤,例如
moonshot。不接受交互式选择器中的显示标签。每行一个模型。
机器可读输出。
models status
显示已解析的主模型、回退模型、图像模型,以及已配置提供方的认证概览。它还会展示在认证存储中找到的配置文件的 OAuth 过期状态(默认在 24 小时内发出警告)。--plain 仅打印已解析的主模型。
认证与探测行为
认证与探测行为
- 始终显示 OAuth 状态(并包含在
--json输出中)。如果某个已配置提供方没有凭据,models status会打印 缺少认证 部分。 - JSON 包含
auth.oauth(警告窗口 + 配置文件)和auth.providers(每个提供方的有效认证,包括基于环境变量的凭据)。auth.oauth仅表示认证存储中的配置文件健康状况;仅环境变量提供方不会出现在其中。 - 使用
--check进行自动化(当缺失/过期时退出码为1,即将过期时退出码为2)。 - 使用
--probe进行实时认证检查;探测行可以来自认证配置文件、环境凭据或models.json。 - 如果显式的
auth.order.<provider>省略了已存储的配置文件,探测会报告excluded_by_auth_order,而不是尝试它。如果认证存在但无法为该提供方解析出可探测的模型,探测会报告status: no_model。
认证选择取决于提供方/账户。对于始终在线的网关主机,API 密钥通常是最可预测的;也支持复用 Claude CLI 以及现有的 Anthropic OAuth/令牌配置文件。
扫描(OpenRouter 免费模型)
openclaw models scan 会检查 OpenRouter 的 免费模型目录,并可选地探测模型的工具和图像支持。
跳过实时探测(仅元数据)。
最小参数规模(十亿)。
跳过较旧的模型。
提供方前缀过滤器。
回退列表大小。
将
agents.defaults.model.primary 设置为第一个选择。将
agents.defaults.imageModel.primary 设置为第一个图像选择。OpenRouter 的
/models 目录是公开的,因此仅元数据扫描无需密钥即可列出免费候选项。探测和推理仍然需要 OpenRouter API 密钥(来自认证配置文件或 OPENROUTER_API_KEY)。如果没有可用密钥,openclaw models scan 会回退到仅元数据输出,并保持配置不变。使用 --no-probe 可显式请求仅元数据模式。- 图像支持
- 工具延迟
- 上下文大小
- 参数数量
- OpenRouter
/models列表(过滤:free) - 实时探测需要来自认证配置文件或
OPENROUTER_API_KEY的 OpenRouter API 密钥(参见 环境变量) - 可选过滤条件:
--max-age-days、--min-params、--provider、--max-candidates - 请求/探测控制:
--timeout、--concurrency
--yes 以接受默认值。仅元数据结果仅供参考;--set-default 和 --set-image 需要实时探测,这样 OpenClaw 才不会配置一个不可用、无需密钥的 OpenRouter 模型。
模型注册表(models.json)
models.providers 中的自定义提供方会写入代理目录下的 models.json(默认 ~/.openclaw/agents/<agentId>/agent/models.json)。除非将 models.mode 设置为 replace,否则此文件默认会被合并。
合并模式优先级
合并模式优先级
匹配提供方 ID 的合并模式优先级:
- 代理
models.json中已存在且非空的baseUrl优先。 - 仅当当前配置/认证配置文件上下文中该提供方不受 SecretRef 管理时,代理
models.json中非空的apiKey才优先。 - 受 SecretRef 管理的提供方
apiKey值会从源标记刷新(环境引用为ENV_VAR_NAME,文件/执行引用为secretref-managed),而不是持久化解析后的密钥。 - 受 SecretRef 管理的提供方 header 值会从源标记刷新(环境引用为
secretref-env:ENV_VAR_NAME,文件/执行引用为secretref-managed)。 - 代理中为空或缺失的
apiKey/baseUrl会回退到配置中的models.providers。 - 其他提供方字段会从配置和规范化后的目录数据中刷新。
标记持久化以源为权威:OpenClaw 会根据当前源配置快照(解析前)写入标记,而不是根据运行时解析后的密钥值。每当 OpenClaw 重新生成
models.json 时都适用这一点,包括像 openclaw agent 这样的命令驱动路径。