首页 > AI Agent > OpenClaw > OPENCLAW对话 AGENT 直接修改 openclaw.json 导致服务异常

OPENCLAW对话 AGENT 直接修改 openclaw.json 导致服务异常

OpenClaw
## 一、问题情况
整理 OpenClaw 配置时,发现有个自带的模板 Skill(taskflow-inbox-triage)没什么用,想让对话 AGENT 直接禁用它。用 openclaw config set 操作:
结果报错:
config set 被拒绝了,提示写入的配置大小从 24595 字节掉到了 8034 字节,少了将近 2/3。
## 二、错误的尝试
想着是不是直接改 JSON 文件就行了,于是用 PowerShell 读取 openclaw.json,加上配置项后用 ConvertTo-Json 写回去:
Gateway 重启后直接报错,服务起不来了。不仅没解决问题,反而把配置搞坏了。
## 三、问题原因
排查发现三个问题:
1. **BOM 头问题** — PowerShell 的 Set-Content -Encoding UTF8 默认会加上 BOM 头(EF BB BF 三个字节)。OpenClaw 读取配置文件时没处理 BOM,导致解析失败。如果用 -Encoding UTF8NoBOM 就不会有这个问题。
2. **中文路径编码问题** — openclaw.json 存放在 C:\Users\用户名\.openclaw\ 下,中文路径在 PowerShell 的 Get-Content 和 Set-Content 之间经过了多次编码转换。OpenClaw 读回配置文件时编码不对,解析失败。
3. **ConvertTo-Json 序列化丢失数据** — ConvertTo-Json 在处理深层嵌套的对象时,默认的 -Depth 参数(2)不够,即使指定了 -Depth 10,某些特殊类型和引用的序列化方式也和原文件不一致,导致文件内容被截断(24KB → 8KB)。
## 四、正确的做法
用 OpenClaw 自带的命令来操作配置,不要手贱改 JSON:
查看配置:
设置配置:
如果 config set 被拒绝,可以用 openclaw config edit 来打开编辑:
这样 OpenClaw 会在保存后自动校验和重新加载配置,避免编码和格式问题。
## 五、恢复方法
好在 OpenClaw 有备份机制,被拒绝的写入内容会保存到 .rejected 文件:
把之前的正常配置恢复回来,重启 Gateway 就好了。
## 六、总结
OpenClaw 的配置不要用外部工具直接修改,尤其不要用 PowerShell 的 ConvertTo-Json 序列化后写回去。应该用 OpenClaw 自带的 config 命令来操作。如果 config set 报错,就用 config edit 打开编辑。