Skip to main content
本页涵盖模型提供方认证(API 密钥、OAuth、Claude CLI 复用、Anthropic setup-token)。关于网关连接认证(令牌、密码、受信任代理),请参见 配置受信任代理认证
OpenClaw 支持模型提供方的 OAuth 和 API 密钥。对于始终在线的网关主机,API 密钥是最可预测的选项;当订阅/OAuth 流程与您的提供方账号模型匹配时,它们也同样适用。

推荐设置:API 密钥(任意提供商)

  1. 在你的提供商控制台中创建一个 API 密钥。
  2. 将其放到 gateway 主机 上(运行 openclaw gateway 的机器):
  1. 如果 gateway 通过 systemd/launchd 运行,请将密钥放入 ~/.openclaw/.env,这样守护进程就可以读取它:
  1. 重启 gateway 进程(或守护进程),然后再次检查:
如果你不想自己管理环境变量,openclaw onboard 也可以为守护进程使用而存储 API 密钥。有关完整的环境加载优先级(env.shellEnv~/.openclaw/.env、systemd/launchd),请参见 环境变量

Anthropic:Claude CLI 复用

Anthropic 的 setup-token 认证仍然是受支持的路径。Claude CLI 复用(claude -p 风格的用法)也被允许用于此集成;当主机上可用 Claude CLI 登录时,对于本地/桌面使用而言,这是首选路径。对于长期运行的网关主机,Anthropic API key 仍然是最可预测的选择,并且可以进行明确的服务端计费控制。 Claude CLI 复用的主机设置:
这分两步完成:先在主机上将 Claude Code 登录到 Anthropic,然后告诉 OpenClaw 通过本地 claude-cli 后端路由 Anthropic 模型选择,并保存匹配的 OpenClaw 认证配置文件。 在运行时,OpenClaw 将复用的 Claude CLI 登录视为 Claude 自己的凭据:它会验证主机当前的 claude 登录是否与所选配置文件的账户匹配,然后让 claude 子进程以原生方式进行身份验证,因此 Claude 会在运行期间持续刷新自己的登录状态。对于此路径,OpenClaw 从不会转发复制的令牌。如果主机登录缺失或属于其他账户,运行会在启动进程前失败,并显示确切的重新认证命令。由 OpenClaw 管理的凭据(Anthropic OAuth 登录配置文件、setup token、API key)仍会直接传递给子进程,并在适用时由 OpenClaw 刷新。 网关服务必须能够在 PATH 中解析 claude。如果部署需要使用非标准的可执行文件路径,请通过 CLI 后端插件注册一个包装器。

手动输入令牌

适用于任何提供商;会写入每个代理的 SQLite 认证存储并更新配置:
OpenClaw 从每个代理的 openclaw-agent.sqlite 读取认证配置文件。端点详细信息(baseUrlapi、模型 ID、请求头、超时)应放在 openclaw.jsonmodels.json 中的 models.providers.<id> 下,而不是放在认证配置文件中。 如果较旧的安装仍然包含 auth-profiles.jsonauth-state.json,或者像 { "openrouter": { "apiKey": "..." } } 这样的扁平结构,请运行 openclaw doctor --fix 将其导入 SQLite;doctor 会在原始 JSON 文件旁保留带时间戳的备份。 诸如 Bedrock 的 auth: "aws-sdk" 之类的外部认证路由并不属于凭据。对于命名的 Bedrock 路由,请在 openclaw.json 中设置 auth.profiles.<id>.mode: "aws-sdk" — 不要把 type: "aws-sdk" 写入认证配置存储。openclaw doctor --fix 会将旧版 AWS SDK 标记从凭据存储迁移到配置元数据中。

由 SecretRef 支持的凭据

  • api_key 凭据可以使用 keyRef: { source, provider, id }
  • token 凭据可以使用 tokenRef: { source, provider, id }
  • OAuth 模式的配置文件会拒绝 SecretRef 凭据:如果 auth.profiles.<id>.mode"oauth",则该配置文件的基于 SecretRef 的 keyRef/tokenRef 会被拒绝。

检查模型认证状态

自动化友好的检查:当过期/缺失时退出 1,当即将过期时退出 2
实时认证探测(添加 --probe-provider--probe-profile--probe-timeout--probe-concurrency--probe-max-tokens 以缩小范围):
注意:
  • 探测行可以来自认证配置文件、环境凭据或 models.json
  • 如果 auth.order.<provider> 省略了某个已存储的配置文件,探测会针对该配置文件报告 excluded_by_auth_order,而不是尝试它。
  • 如果存在认证,但 OpenClaw 无法为该提供商解析出可探测的模型,探测会报告 status: no_model
  • 限流冷却可以按模型作用域生效:某个配置文件在某个模型上进入冷却后,仍然可以为同一提供商上的兄弟模型提供服务。
可选运维脚本(systemd/Termux):认证监控脚本

API 密钥轮换(gateway)

当某个请求触发提供商的速率限制时,某些提供商会使用另一个已配置的密钥重试该请求。 每个提供商的密钥优先级顺序:
  1. OPENCLAW_LIVE_<PROVIDER>_KEY(单个覆盖,固定使用一个密钥)
  2. <PROVIDER>_API_KEYS(以逗号/空格/分号分隔的列表)
  3. <PROVIDER>_API_KEY
  4. <PROVIDER>_API_KEY_*(任何以前缀开头的环境变量)
Google 提供商(googlegoogle-vertex)还会额外回退到 GOOGLE_API_KEY。合并后的列表会在使用前去重。 OpenClaw 仅在错误消息匹配以下内容时才会轮换到下一个密钥:rate_limitrate limit429quota exceeded/quota_exceededresource exhausted/resource_exhausted,或 too many requests。其他错误不会使用备用密钥重试。如果所有密钥都失败,则返回最后一次尝试的最终错误。
类似 ThrottlingExceptionconcurrency limit reachedworkers_ai ... quota limit exceeded 之类的提供商特定短语用于驱动故障切换/重试分类(在重复失败时切换模型或提供商),这与上面的 API 密钥轮换是不同的机制。
移除已保存的认证信息不会在提供商侧撤销该密钥——当你需要在提供商侧使其失效时,请在提供商控制台中轮换或撤销它。

网关运行时移除提供方认证

当你通过网关控制平面移除提供方认证时,OpenClaw 会删除该提供方已保存的认证配置文件,并中止其所选模型提供方与被移除提供方匹配的所有活动聊天/代理运行。被中止的运行会发出带有 stopReason: "auth-revoked" 的正常取消/生命周期事件,因此已连接的客户端可以显示该运行因凭据被移除而停止。

选择使用哪个凭据

OpenAI 和旧版 openai-codex id

OpenAI API-key 配置文件和 ChatGPT/Codex OAuth 配置文件都使用规范的提供方 id openai。新配置请使用 openai:* 配置文件 id 和 auth.order.openai 如果你在旧配置、auth 配置文件 id 或 auth.order.openai-codex 中看到 openai-codex,请把它视为旧版迁移输入——不要创建新的 openai-codex 配置文件。运行:
Doctor 会将旧的 openai-codex:* 配置文件 id 和 auth.order.openai-codex 条目重写为规范的 openai 路由。有关 OpenAI 特定的模型/运行时路由,请参见 OpenAI

登录期间(CLI)

--profile-id 可在同一个代理内将同一提供方的多个 OAuth 登录彼此分开。 --force 会删除所选代理目录中该提供方已保存的 auth 配置文件,然后重新运行相同的 auth 流程。当已保存的配置文件卡住、过期或绑定到错误账号时使用它。它不会在提供方处撤销凭据。

按会话(聊天命令)

  • /model <alias-or-id>@<profileId> -s 会为当前会话固定特定的提供方凭据(配置文件 id 示例:anthropic:defaultanthropic:work)。
  • /model(或 /model list)显示紧凑选择器;/model status 显示完整视图(候选项 + 下一个 auth 配置文件,以及配置完成时的提供方端点详细信息)。
auth.order 的更改会影响自动配置文件选择。/new/reset 会清除自动选择的回退/轮换状态,但会保留有效的显式用户模型/配置文件固定设置;选择其他显式的 @profile 选项即可替换用户配置文件固定设置。

按代理(CLI 覆盖)

Auth 顺序覆盖会存储在该代理的 SQLite auth 状态中:
使用 --agent <id> 可针对特定代理;省略它则使用已配置的默认代理。openclaw models status --probe 会将被省略的已存储配置文件显示为 excluded_by_auth_order,而不是静默跳过它们。

故障排除

“未找到凭据”

gateway host 上配置 Anthropic API key,或者设置 Anthropic setup-token 路径,然后重新检查:

Token 即将过期/已过期

运行 openclaw models status 查看哪个配置文件即将过期。如果 Anthropic token 配置文件缺失或已过期,请通过 setup-token 刷新它,或者迁移到 Anthropic API key。

相关内容