OpenClaw API key 错误现在可能表现为 401 Unauthorized、No API key found for provider、AUTH_TOKEN_MISMATCH、all in cooldown、429 Too Many Requests,也可能只是泛化的 gateway 或 channel failure。不要一上来轮换所有 key。先证明第一条失败日志来自哪一层:model provider、OpenClaw gateway、channel/client、Docker environment override,还是 context pressure 被误读成 API 故障。
快速答案
修改凭证前先跑这组命令:
bashopenclaw status openclaw gateway status openclaw logs --follow openclaw doctor openclaw models status
如果日志显示 No API key found for provider "anthropic" 或其他 provider,运行 openclaw onboard 或补齐 provider auth profile,再用 openclaw models status 验证。如果日志显示 AUTH_TOKEN_MISMATCH、device nonce、pairing required 或 gateway 1008,先修 gateway/client auth,不要改 Anthropic key。如果是 429,尊重 retry-after,减少上下文和工具循环,或切换到已配置且已验证的 fallback provider。如果问题只在 Docker 内出现,先查容器内的 env | grep OPENCLAW。
先定位 owner,而不是先换 key
| 你看到的现象 | 可能 owner | 第一证据 | 第一动作 |
|---|---|---|---|
No API key found for provider | Provider auth profile | openclaw models status | 运行 onboarding 或补齐 provider auth |
401, invalid bearer token, incorrect api key | Provider key、base URL 或账号权限 | provider console + OpenClaw logs | 替换 key、修 base URL、确认 model access |
AUTH_TOKEN_MISSING / AUTH_TOKEN_MISMATCH | Gateway/client auth | openclaw gateway status --json 或连接详情 | 更新 client token 或重新 pairing |
PAIRING_REQUIRED, channel 401/403 | Channel/device permission | channel status/logs | 修 pairing、scope、allowlist |
429, all in cooldown | Provider quota/cooldown | provider headers + first log | 等待、降并发、缩上下文、切 fallback |
context_length_exceeded 紧跟 fallback | context 或 quota 误读 | first provider log | 先判 quota/fallback,再改 context |
| Docker-only token mismatch | Env override | `docker exec | grep OPENCLAW` |
OpenClaw 错误最容易被误修的原因是:最后显示的消息未必是第一条失败。比如所有 auth profile 都进入 cooldown 时,最后的错误像是“没有可用 provider”,但第一条日志可能是 401、429、network timeout 或错误的 gateway token。
401:provider auth、gateway token 和 channel permission
认证错误至少有三层。
Layer 1: provider authentication. 日志写 No API key found for provider 时,OpenClaw 没有给所选 provider/model route 找到可用凭证。用 openclaw onboard 或当前 docs 里的 provider-specific auth 命令补齐,然后再跑 openclaw models status。不要只看 key prefix;provider key format 会变化,自定义 gateway 也可能使用不同 token shape。
如果要在 OpenClaw 外验证 Anthropic key,用当前 Anthropic API docs 和你账号能访问的模型做最小请求。关键不是本文里的 model name,而是 provider 今天是否接受这个 key 和账号权限。
bashcurl -s https://api.anthropic.com/v1/messages \ -H "x-api-key: YOUR_KEY_HERE" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"YOUR_ACCESSIBLE_MODEL","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}' \ | head -c 200
Layer 2: gateway token / device identity. AUTH_TOKEN_MISSING、AUTH_TOKEN_MISMATCH、AUTH_DEVICE_TOKEN_MISMATCH、PAIRING_REQUIRED 是 gateway/client 问题。共享 token 客户端要拿当前 gateway token;device-token flow 要重新批准或轮换设备;pairing-required 需要审查并批准连接请求。不要因为看到 401 就直接替换模型 provider key。
Layer 3: upstream provider rejection. 即使 gateway auth 正常,上游 provider 也可能因为 key 撤销、billing/account 状态、model access、base URL 错误或 env override 拒绝请求。账户 tier、模型权限、地区和账单都是易变事实,以当前 provider console 为准。
Cooldown 是症状,不是根因。 all in cooldown 只说明 OpenClaw 暂时停止使用某条 route。先读 cooldown 前的第一条失败日志。清 cooldown 而不修 root cause,只会再次进入同一个循环。
429:headers、owner 和恢复策略
429 通常表示当前 provider、gateway route、hub route 或 account/project owner 在当前窗口拒绝更多工作。它不证明 key 无效,也不证明一定是 Anthropic。OpenAI-compatible provider、Gemini route、private gateway、download hub 都可能通过 OpenClaw 显示 rate-limit language。
Provider limit 会随 account、model、region、project 和 route 变化。不要复制旧 tier 表。真正证据是 provider dashboard 和 response headers。在 Anthropic route 上,响应可能包含 retry-after 和 anthropic-ratelimit-* headers:
| Header | 读取什么 | 怎么使用 |
|---|---|---|
retry-after | provider 返回的等待时间 | 按返回值等待,不要写死 delay |
anthropic-ratelimit-requests-limit | 当前 key/account/route 请求上限 | 当作实时合同数据 |
anthropic-ratelimit-requests-remaining | 当前窗口剩余请求 | 请求预算耗尽时降频或合并 |
anthropic-ratelimit-requests-reset | 请求窗口重置时间 | 按 reset 恢复 |
anthropic-ratelimit-tokens-limit | 当前 token 上限 | 和 OpenClaw 请求体大小一起看 |
anthropic-ratelimit-tokens-remaining | 当前窗口剩余 token | token 耗尽时缩上下文/工具输出 |
anthropic-ratelimit-tokens-reset | token 窗口重置时间 | 不用旧文章里的间隔重试 |
如果 request budget 先耗尽,减少小请求、合并任务、降低 agent 并发。如果 token budget 先耗尽,缩短 context、减少 tool output、拆分长任务。多个 key 或 laozhang.ai 这类 gateway 只有在每条 route 都有 owner、billing、quota 和 tool support 验证后,才是 routing strategy;它不是 guaranteed extra quota。
400:invalid beta flag 和 context_length_exceeded
invalid_request_error: Invalid beta flag 表示当前 route 不支持配置里的 provider feature flag。proxy、Bedrock、Vertex 或 OpenAI-compatible gateway 可能只实现上游 API 的一部分。检查当前 config 中的 beta 或 capability 字段,确认它们被你实际使用的 provider route 支持;否则移除 flag 或换支持该 feature 的 route。
context_length_exceeded 表示组装后的请求超过所选 model route 的可用上下文。但在 OpenClaw 中,payload 可能包含 system prompt、tool schema、workspace context、memory/search、channel metadata 和 history。不要发布固定窗口数字,除非你今天验证了 exact model + provider + gateway route。详见 OpenClaw context_length_exceeded 修复指南。
如果 context error 突然出现在 429、cooldown 或 failover 后,先查 rate-limit 和 first provider log,再改 context config。
502、1008、SSL 和 Docker
502 Bad Gateway 通常表示 gateway 收到上游无效响应。先查 provider status,再用 curl -v 验证服务器能否到达 provider endpoint。如果 direct connection 正常但 OpenClaw 不正常,再查 proxy、base URL、connection pooling 或 gateway config。
1008 WebSocket / token mismatch 要看 connect detail code。共享 token drift、device token drift 和 pairing required 是不同修复路径。运行 gateway status 或查看 failed connect response 后再更新 client token、重新批准 device 或处理 pairing。
SSL errors 分为证书链不可信和证书过期。开发环境不要把 NODE_TLS_REJECT_UNAUTHORIZED=0 带到生产。企业 TLS inspection 应通过 Node trust store 或企业 CA 方案处理。
Docker env override 是常见陷阱。容器内 env 可能覆盖挂载 config:
bashdocker exec <container_name> env | grep OPENCLAW
如果 OPENCLAW_GATEWAY_TOKEN、provider key 或 base URL 出现在容器 env 中,且和挂载配置不一致,先修 compose/env,而不是改本机配置文件。
Production retry 和 fallback 边界
生产错误处理要先分类:
| Error | Retry? | Strategy |
|---|---|---|
| 429 | 是 | 尊重 retry-after,降并发,缩上下文 |
| 529 / overload | 是 | backoff,优先 provider guidance |
| 502 / timeout | 有限重试 | 重试少量次数后查 upstream health |
| 401 | 否 | 修 credentials |
| 400 | 否 | 修 request payload / route capabilities |
| 403 | 否 | 修权限、account、model access |
Fallback 是 availability pattern,不是忽略限制的许可证。备用 provider 必须已经配置、认证、allowlisted,并且支持同样的工具、上下文、附件和输出要求。fallback 不能修复 invalid credentials、unsupported beta flags、broken hub download,也不能让 text-only model 接管需要 tool calling 的任务。
FAQ
OpenClaw API key not working 怎么修?
先跑 openclaw status、openclaw gateway status、openclaw logs --follow、openclaw doctor、openclaw models status。根据第一条失败日志判断是 provider auth、gateway auth、channel permission、quota 还是 env override。
为什么 key 正确还 unauthorized?
Unauthorized 可能来自 upstream provider、OpenClaw gateway 或 channel/client。你的 provider key 可能有效,但 gateway token stale、device token revoked,或 Docker env 覆盖了 config。
应该 reset gateway token 吗?
只有在证据指向 AUTH_TOKEN_MISMATCH 或 shared-token drift 时才做。device identity flow 应重新批准或轮换 device,不是重置 provider key。
OpenClaw 429 怎么预防?
记录 billing/quota owner,监控 headers/dashboard,缩短 context-heavy loops,限制 concurrent agents,提前配置已验证 fallback。
技能不加载和 API key 有关吗?
通常无关。运行 openclaw skills list、openclaw logs --follow 和 openclaw doctor,按 skill syntax、directory、dependency、allowlist 分支排查。
