OpenClaw鉴权失败主因是API Key未正确注入请求头或base_url/model配置错误。需依次检查日志中Authorization头、systemd环境变量设置、Key尾部空格/换行、base_url路径完整性、模型名大小写及版本兼容性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw配置API Key后仍提示鉴权失败或无法调用模型,不是Key本身失效,而是客户端根本没把Key正确送进请求头,或者服务端压根没收到带认证信息的请求。
确认 API Key 是否真正生效
第一步:打开 OpenClaw 的日志输出(如启动时加 --log-level debug),观察实际发出的 HTTP 请求中是否包含 Authorization 头。没有这行日志,说明 Key 根本没被读取或未注入请求。
第二步:检查环境变量加载顺序。如果你用 export OPENCLAW_API_KEY=sk-xxx 设置,但 OpenClaw 是通过 systemd 服务启动的,它默认不继承 shell 环境变量。必须在 service 文件里显式写入 Environment="OPENCLAW_API_KEY=sk-xxx",否则变量对进程不可见。
第三步:验证 Key 是否被截断或含非法字符。复制 Key 时容易多选一个换行符或空格,尤其从网页控制台复制时。用 echo "$OPENCLAW_API_KEY" | hexdump -C 查看末尾是否有 0a(换行)或 20(空格)。【一旦发现尾部空格或换行,Key 就会认证失败,且错误提示仍是 401】
检查 base_url 是否匹配服务商要求
方法一:比对官方文档中的接口地址格式。例如 DeepSeek-R1 的真实 base_url 是 https://api.deepseek.com/v1,少写 /v1 或多写 /chat/completions 都会导致 401。OpenClaw 不会自动补路径,填什么就发什么。
方法二:用 curl 手动模拟一次请求,绕过 OpenClaw 验证底层连通性:
发布后文档同步技能,自动将 README/ARCHITECTURE/CONTRIBUTING/CLAUDE.md 与实际变更对齐,清理待办事项,完善变更记录。
curl -X POST https://your-base-url/v1/chat/completions \-H "Authorization: Bearer sk-xxx" \-H "Content-Type: application/json" \-d '{"model":"deepseek-chat","messages":[{"role":"user","content":"hi"}]}'
如果 curl 返回 401,说明问题出在 Key 或 base_url;如果返回 200,那一定是 OpenClaw 自身配置没生效。
验证模型名称是否拼写一致
第一步:登录你所用 API 提供商的控制台,找到「已开通模型列表」,确认你填的 model 名称和后台显示的**完全一致**——大小写、中划线、版本号都不能差。比如 DeepSeek 官方模型名是 deepseek-chat,填成 deepseek_chat 或 DeepSeek-Chat 都会触发 401。
第二步:查看 OpenClaw 的 config.yaml 或 .env 文件中 model 字段是否被其他配置覆盖。有些版本会优先读取命令行参数 --model,若启动时指定了 model,配置文件里的设置会被忽略。
第三步:检查 OpenClaw 版本是否支持该模型。旧版(v0.3.2 之前)不识别 qwen2.5-72b 这类新命名,会直接丢弃请求,返回空响应或 401。运行 openclaw --version 确认版本号,必要时升级到 v0.4.0+。

















