OpenClaw提示“Invalid API Key”或401错误时,需逐层排查:确认密钥是否被正确读取(检查.env或环境变量)、是否被HERMES_API_KEY静默覆盖、密钥前缀与服务商是否匹配(如OpenAI须sk-开头)、Base URL是否与密钥对应、Authorization头格式是否正确(Bearer后单空格+密钥),并抓包验证真实请求头。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw配置API Key后提示“Invalid API Key”或401错误,说明身份验证环节已触发但被服务端拒绝,此时不能直接重填密钥,必须按链路逐层排查请求是否真正抵达认证模块、密钥格式是否被正确解析、以及服务端是否认可该密钥的权限范围。
确认密钥是否被实际读取
第一步:检查OpenClaw是否加载了你填写的密钥值。打开项目根目录下的.env文件(或config.yaml),确认API_KEY字段存在且未被注释掉。若使用环境变量方式启动,终端执行echo $OPENCLAW_API_KEY,输出应为完整密钥字符串,而非空值或undefined。
第二步:验证密钥是否被代码逻辑覆盖。某些OpenClaw分支会优先读取HERMES_API_KEY环境变量——如果系统中设置了该变量,它将【静默覆盖】config.yaml中的配置,且不会报错提示。运行unset HERMES_API_KEY后再重启服务,可排除此干扰。
验证密钥格式与服务商匹配性
方法一:用curl直连API端点做最小化验证
以OpenAI兼容接口为例,执行:
curl -X POST https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"hi"}]}'
若返回401且含"invalid_api_key",说明密钥本身无效;若返回404或连接超时,则是Base URL错误。
方法二:核对密钥前缀与服务商要求
OpenAI密钥必须以sk-开头;Anthropic密钥以sk-ant-开头;华为MaaS DeepSeek密钥不含sk-前缀,但必须配合正确的base_url(如https://maas.huaweicloud.com/v1)。【密钥与Base URL不匹配是401高频原因】,例如把OpenAI密钥填入指向Azure端点的配置中,服务端根本不会校验该密钥。
检查请求头构造是否合规
第一步:确认Authorization头写法无误
常见错误是漏掉Bearer关键字或中间多加空格,例如:
✘ Authorization: sk-xxx
✘ Authorization: Bearer sk-xxx(两个空格)
✓ Authorization: Bearer sk-xxx
第二步:排除SDK自动拼接导致的重复Bearer
若使用OpenClaw内置的LLM客户端封装(如openclaw.llm.client),检查其源码中是否已内置Bearer拼接逻辑。若已在代码中手动添加Bearer,再通过SDK调用就会变成Bearer Bearer sk-xxx,服务端直接拒绝。
第三步:抓包验证真实请求头
在OpenClaw启动时添加--debug参数,或用Wireshark/Charles拦截本地HTTP流量,查看发出的请求中Authorization字段内容是否与预期一致。这一步能绕过所有配置层抽象,直击问题本质。


















