OpenClaw配置API Key需要重启服务吗?
OpenClaw Gateway 支持 API Key 热重载,但前提是 Hermes 客户端版本 ≥ v0.3.0。推荐通过 ~/.openclaw/secrets.env 设置 HERMES_API_KEY,然后发送 SIGHUP 信号生效;或者直接修改 openclaw.json 后执行 kill -SIGHUP 重载。最后用 journalctl 验证日志,确认配置是否真的更新了——别光凭感觉。下面这张图可以帮你快速理解流程:

简单说一句:配置 API Key 后完全不需要重启服务,只要正确触发热重载机制,新密钥就能立即生效。这避免了服务中断风险,对生产环境来说非常重要——毕竟谁也不想因为改个密钥就把线上服务搞挂了。
确认 OpenClaw 支持热重载
先检查 Hermes 客户端版本:执行 hermes --version,确保版本号 ≥ v0.3.0。低于这个版本,系统不支持动态加载,强行修改配置也没用。
【必须满足此前提,否则后续操作无效】
通过环境变量注入新密钥(推荐)
方法一:直接写入 systemd 用户服务环境
编辑 ~/.openclaw/secrets.env,写入:HERMES_API_KEY=sk-your-new-key-here
然后重新加载 systemd 配置:systemctl --user daemon-reload
向正在运行的 Gateway 进程发送 SIGHUP 信号:systemctl --user kill -s HUP openclaw-gateway
方法二:临时注入(仅本次会话有效)
在启动 Gateway 前,先执行:export HERMES_API_KEY="sk-your-new-key-here"
再运行:systemctl --user start openclaw-gateway
注意:这种方式不持久,终端关闭后密钥就失效了,适合临时测试。
修改配置文件并触发重载
第一步:定位主配置入口
优先编辑 ~/.openclaw/openclaw.json(最新主入口,最稳定);如果该文件中没有 apiKey 字段,再检查 ~/.openclaw/agents/main/agent/models.json。
第二步:替换 apiKey 值
把原来的字段比如 "apiKey": "sk-old-xxx" 替换成新密钥,保存文件。
第三步:强制触发配置重读
执行:kill -SIGHUP $(pgrep -f "openclaw-gateway")
第四步:验证进程是否收到信号
运行 journalctl --user -u openclaw-gateway -n 20 --no-pager,查看日志里有没有 reloading config 或 api_key updated 这样的输出。有就说明成功了,没有的话检查一下前面的步骤。