OpenClaw 的配置文件是纯文本 JSON5 格式,改一行就能影响整个 gateway 运行状态。「越改越崩」通常不是 bug,而是配置字段写错、热重载未生效、或改了需要重启的选项却没重启。本文按「先诊断 → 再修复 → 后预防」的顺序,给出完整的恢复和防崩溃操作路径。

 

第一步:别急着继续改,先运行诊断命令

配置出问题后第一件事不是继续修改,而是让 OpenClaw 自己说出哪里错了。

openclaw doctor:三级诊断

 

# 基础诊断:列出检测到的问题
openclaw doctor
 
# 自动修复:执行可自动处理的修复(--fix 是别名)
openclaw doctor --repair
 
# 深度检查:更彻底的环境和配置扫描
openclaw doctor --deep

openclaw doctor 会检测以下七类问题:

检查项

说明

配置键错误

未知字段名、孤立的转录文件

认证问题

gateway.auth.token 管理状态异常

沙箱环境

启用了沙箱但 Docker 不可用

定时任务

cron/jobs.json 中的遗留任务冲突

内存搜索

缺失向量嵌入凭证

渠道状态

Telegram 用户名解析失败等

macOS 环境变量

launchctl setenv 设置的持久凭证导致鉴权异常

看到输出后:带 ⚠ 的是警告,带 ✗ 的是阻断性错误,优先处理 ✗ 项。

检查运行状态

 

openclaw status      # 查看 gateway 和各渠道当前状态
openclaw dashboard   # 打开可视化状态面板

 

第二步:定位配置文件,理解改动边界

配置文件位置

 

~/.openclaw/openclaw.json

格式:JSON5(支持注释 // 和尾逗号,比标准 JSON 更宽容)

重要特性:OpenClaw 文档明确指出,「所有字段均可选,当忽略时使用安全的默认值」。这意味着:删掉一个配置块不会让系统崩溃,只会恢复为默认行为。

哪些修改需要重启?哪些不需要?

配置类型

热重载支持

处理方式

渠道配置(channels)

✅ hybrid 模式支持

保存即生效,无需重启

Agent 配置(agents)

✅ hybrid 模式支持

保存即生效,无需重启

模型配置(model)

✅ hybrid 模式支持

保存即生效,无需重启

Gateway 端口/绑定

❌ 需要重启

改完必须重启 gateway

Gateway 认证 token

❌ 需要重启

改完必须重启 gateway

插件/技能配置

❌ 需要重启

改完必须重启 gateway

热重载配置:在 openclaw.json 中确认 gateway.reload 为 "hybrid"(默认值),即可让渠道和 Agent 类改动无需重启自动生效。

检查当前热重载模式

 

# 查看 gateway 配置中的 reload 设置
cat ~/.openclaw/openclaw.json | grep reload

 

第三步:配置改坏了,四种恢复路径

路径 A:删掉错误字段(推荐首选)

OpenClaw 所有字段都有默认值,删掉写错的字段比改成"正确值"更安全——删掉后系统自动用默认值运行,不会引入新的拼写错误。

 

# 编辑配置文件
nano ~/.openclaw/openclaw.json
 
# 或用 VS Code 打开
code ~/.openclaw/openclaw.json

删掉出问题的那一块配置,保存,然后执行:

 

openclaw doctor       # 确认无报错
openclaw status       # 确认 gateway 正常

 

路径 B:用 openclaw onboard 重新引导配置

如果不确定哪里出了问题,可以运行交互式配置向导重新生成配置:

 

openclaw onboard

该命令会引导你一步步填写必要配置,覆盖当前的 openclaw.json。适合配置改得面目全非、不知道从哪里改回来的情况。

注意:执行前先备份当前文件(见路径 D),避免覆盖了还能用的部分。

 

路径 C:手动重置为最小配置

如果只想让 OpenClaw 能跑起来,把配置文件内容替换为最小有效配置:

{ // 最小配置:只定义 gateway 认证,其余全用默认值 "gateway": { "auth": { "mode": "token", "token": "your-gateway-token-here" } } } 保存后重启:

 

openclaw stop
openclaw start
openclaw doctor   # 确认无阻断性错误

 

路径 D:从备份恢复(最快)

如果之前有备份,直接覆盖恢复:

 

# 恢复备份
cp ~/.openclaw/openclaw.json.bak ~/.openclaw/openclaw.json
 
# 重启 gateway
openclaw stop && openclaw start

 

macOS 特殊问题:launchctl 环境变量导致「未授权」错误

macOS 上如果曾用 launchctl setenv 设置过 API Key 或 token,这些值会持久保存在系统环境中,即使你在 openclaw.json 里改了新值,旧值仍会覆盖生效,导致持续鉴权失败。

诊断

 

launchctl getenv QINIU_API_KEY
launchctl getenv OPENCLAW_TOKEN

修复

 

# 清除持久化的旧环境变量
launchctl unsetenv QINIU_API_KEY
launchctl unsetenv OPENCLAW_TOKEN
 
# 重新用正确方式设置(只在当前 shell 会话生效)
export QINIU_API_KEY="sk-your-new-key"

 

最重要的预防措施:改之前先备份

「越改越崩」的根本原因是没有 checkpoint。建立一个改配置前必执行的备份习惯:

 

# 每次改配置前,先执行这一行
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak
 
# 或者用时间戳版本(可保留多个历史版本)
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.$(date +%Y%m%d_%H%M%S).bak

更彻底的方案是用 git 管理配置文件:

 

cd ~/.openclaw
git init
git add openclaw.json
git commit -m "working config - $(date)"
 
# 改坏之后,一键回滚
git checkout openclaw.json

这样每次改坏都能秒级回滚,彻底消除「越改越崩」的后顾之忧。

 

常见「改完就崩」场景速查

场景一:改了模型配置,Agent 不再响应

可能原因

 模型 ID 格式写错(正确格式:qiniu/deepseek-v3.2-251201,不是 deepseek-v3.2)

 API Key 环境变量未注入或写错变量名

 baseUrl 末尾多了或少了 /v1

修复

 

# 验证 API Key 是否生效
echo $QINIU_API_KEY
 
# 检查模型 ID 格式是否正确
openclaw doctor

正确的模型配置格式

{ "agents": { "defaults": { "model": { "primary": "qiniu/deepseek-v3.2-251201", "fallbacks": ["qiniu/moonshotai/kimi-k2.5"] } } }, "providers": { "qiniu": { "baseUrl": "https://api.qnaigc.com/v1", "apiKey": "${QINIU_API_KEY}", "api": "openai-completions" } } }

场景二:改了渠道配置,连不上了

可能原因

 botToken 或 token 字段写错

 allowFrom 列表格式不对(电话号码需带国际区号,如 "+8613800138000")

 dmPolicy 设为 "open" 但 allowFrom 没加 "*"

修复:删掉整个渠道配置块,让系统用默认值重启,确认能跑通后再逐项加回配置。

 

场景三:改了 gateway 端口/认证,完全连不上

原因:gateway 的端口和认证配置改动不支持热重载,必须重启才生效。改了没重启,新旧配置冲突导致无法连接。

修复

 

openclaw stop
openclaw start

 

场景四:Node 崩溃 / tsx crash

可能原因:JSON5 语法错误(多了逗号、缺了括号、中文引号替换了英文引号)

快速验证

 

# 用 node 验证 JSON5 语法
node -e "require('json5').parse(require('fs').readFileSync('$HOME/.openclaw/openclaw.json','utf8'))"

有报错则按提示找到问题行,修正语法后重启。

 

常见问题

Q:OpenClaw 有没有「恢复出厂设置」的命令?

没有专门的单一命令。最接近的方式是:① 删除或清空 ~/.openclaw/openclaw.json(OpenClaw 会用所有默认值启动);② 或运行 openclaw onboard 重新交互式生成配置。删除配置文件不会影响已积累的 Agent 记忆和会话历史,这些数据存储在不同的目录中。

Q:openclaw doctor --repair 能自动修复所有问题吗?

不能。--repair 只处理可自动解决的问题,如清理孤立文件、规范化认证配置等。模型 ID 写错、API Key 失效、JSON 语法错误等需要用户手动干预的问题,doctor 只会报告,不会自动修改。

Q:改完配置需要等多久才生效?

取决于改动类型。在 hybrid 热重载模式下,渠道和 Agent 配置通常在保存后数秒内自动生效。Gateway 级别的改动(端口、认证 token)需要手动执行 openclaw stop && openclaw start 后才生效。

Q:配置文件支持注释吗?方便记录每次改动原因。

支持。OpenClaw 使用 JSON5 格式,可以用 // 写单行注释、/* */ 写多行注释。建议在每次改动旁边加注释说明原因,配合 git 管理,回溯历史一目了然。

Q:多台设备想同步同一份配置,怎么做?

将 ~/.openclaw/openclaw.json 纳入 git 仓库(私有仓库),并通过 $include 指令将 API Key 等敏感信息拆到单独的文件中、不纳入版本控制。这样配置结构可同步,密钥信息各设备独立管理。

 

总结

OpenClaw「越改越崩」的解决思路可以归结为三个动作:

1. 先诊断:openclaw doctor 让系统告诉你哪里错了,不要靠猜

2. 再修复:优先删掉错误字段(恢复默认值)> onboard 重新引导 > 手动最小配置

3. 后预防:每次改之前 cp openclaw.json openclaw.json.bak,或用 git 管理配置文件

本文操作步骤基于 OpenClaw 官方文档(docs.openclaw.ai,2026年3月),OpenClaw 版本更新可能引入新的命令或配置字段,建议遇到具体问题时优先查阅 openclaw doctor 输出和官方文档。

 

延伸资源

 OpenClaw 官方文档:docs.openclaw.ai

 OpenClaw 安装配置(七牛云):developer.qiniu.com/aitokenapi/13332/openclaw-installation-cuide

 七牛云技术支持:support.qiniu.com/tickets/category