聪明的朋友可能已经发现了——上篇文章(memory-core-plus 新手指南)里所有配置操作全是 openclaw config set 命令行,我从头到尾没有给过 openclaw.json 的内容,也没让你直接去改这个文件。
这不是偷懒,是有意为之。
准确地说,这是我被坑过之后总结出来的教训。不只是我——社区里也有不少人踩过同样的坑。下面先看看都有哪些坑。
社区里踩过的那些坑
先快速过一遍社区里已经出现过的问题。好消息是大部分已经被官方修复了,坏消息是,这些修复有一个共同的盲区。
已修复的坑(快速列表)
这些问题在 v2026.2.12~2.23 期间已经被修复,简单列一下让你感受一下当时的惨烈程度:
- 配置文件从 3.6KB 变 65 字节
(#6070[1])—— AI 全量替换写文件,把配置清零了,gateway 直接启动失败。已修复:不可变写入 + 审计日志 + 自动备份。 - API key 变成了 "REDACTED"
(#13058[2])—— Studio 脱敏显示的占位符被 AI 当真写回了配置。你的 key 就这么没了。已修复:脱敏往返安全。 $include被展平,密钥内联到主文件(#11696[3])—— 配置拆分?不存在了。环境变量引用?硬编码了。已修复:env-var 保留 + $include限制。- 模型 fallback 链被静默重置
(#29564[4])—— 用户 @KJT125 维护了一个 10 个 provider 的 fallback 链,配置重载后静默消失。已修复:fallback 链保留。
这些修复都是在 CLI 写入路径(config set / config apply / config patch)上加的防护——Schema 校验、自动备份、审计日志、环境变量保留,一样不少。
没修好的:Agent 静默改配置
Issue #24237[5] 是我见过最惨烈的案例,而且到现在仍未完全修复。
用户 @fwends 发现他的 Agent 在后台静默修改配置文件——不是偶尔改一下,是一个早上改了 15 次以上。每次改完,配置就歪了一点点,歪到最后整个 gateway 起不来。
他的原话:
"Config has been corrupted 15+ times in a single morning session, causing 4+ hours of lost productivity."
一个早上,4 小时的生产力,说没就没了。
更刺激的是另一位用户 @kaykas 的回复:
"3 agents + 51 crons all potentially touching config, last-writer-wins destroyed us."
3 个 agent 加 51 个定时任务,全都有可能去改配置文件。最后一个写入的赢——其他所有改动全部丢失。这不是 bug,这是配置文件版的大逃杀。
官方从 v2026.2.13 开始做了多轮加固,但这个问题的根因——agent 有能力直接编辑配置文件——并没有被根治。
没修好的:Gateway 重启覆盖你的修改
Issue #33310[6] 也只是部分修复。
场景很简单:你手动编辑了配置文件,保存。然后 gateway 重启了一次——配置回到了重启前的状态。你的修改?蒸发了。
@RichCorbett 一针见血:
"A restart should not be a write operation."
Gateway 在重启时会把内存中的配置快照写回磁盘,你刚改的文件直接被覆盖。v2026.2.19 加了限流和快照完整性校验,但这只是降低了概率,并没有从根本上解决"多个写入者竞争同一个文件"的问题。
最关键的:系统级防护仍未到位
PR #29856[7] 试图在文件工具层面直接阻止 agent 编辑配置文件——这本应是最彻底的解决方案。但截至目前,这个 PR 等了 3 周多还没合并。
这意味着什么?前面列的那些已修复的问题,所有防护都加在了 CLI 写入路径上。AI agent 如果绕过 CLI,直接用文件编辑工具(Read → Edit → Write)改 openclaw.json——以上所有防护全部失效。
相当于你给大门装了三道锁,但 AI 翻窗户进来了——窗户上没锁。
所以在 PR #29856 合并之前,你需要自己动手——给 AI 下一条指令就够了。
怎么给你的 AI 下这条指令
不管你用的是 Claude Code、Codex 还是 OpenClaw,方法都一样——直接在聊天窗口告诉它:
请你严格遵循这条规则:当你需要修改openclaw配置参数时,永远不要直接修改 ~/.openclaw/openclaw.json,请总是使用 openclaw config 命令行工具来修改这些工具收到指令后,会自动写入各自的指令文件(Claude Code 写入 CLAUDE.md,Codex 写入 AGENTS.md,OpenClaw 写入 ~/.openclaw/AGENTS.md),后续就能自动遵循这条规则了。
附赠:常用 config 命令速查
# 查看当前配置openclaw config list# 设置单个值openclaw config set agents.defaults.model "gpt-4o"# 设置嵌套值openclaw config set providers.openai.apiKey '${OPENAI_API_KEY}'# 设置布尔值openclaw config set plugins.entries.memory-core-plus.config.autoCapture true# 设置数字openclaw config set plugins.entries.memory-core-plus.config.autoRecallMaxResults 10# 删除一个配置项openclaw config unset agents.defaults.model# 查看某个配置项openclaw config get agents.defaults.model基本上,你之前想手动改 JSON 做的事,config set 都能做,而且更安全。
最后
这条指令不长,效果很大。它本质上是一个最小成本的安全护栏——你不需要改代码、不需要等官方 PR 合并、不需要升级版本。一条指令,30 秒搞定。
当然,最理想的情况是 PR #29856[7] 赶紧合并,在系统层面彻底拦住 agent 直接编辑配置文件。但在那之前,自己动手加条指令,总比被 AI 把配置改挂之后花 4 小时恢复要划算。
毕竟,系好安全带只需要 3 秒,修车可不止。
引用链接
[1] OpenClaw Issue #6070 - config set 导致配置清零https://github.com/openclaw/openclaw/issues/6070
[2] OpenClaw Issue #13058 - Studio 写入 REDACTED 占位符https://github.com/openclaw/openclaw/issues/13058
[3] OpenClaw Issue #11696 - CLI 展平 $include,密钥内联https://github.com/openclaw/openclaw/issues/11696
[4] OpenClaw Issue #29564 - 模型 fallback 被静默重置https://github.com/openclaw/openclaw/issues/29564
[5] OpenClaw Issue #24237 - Agent 静默修改配置https://github.com/openclaw/openclaw/issues/24237
[6] OpenClaw Issue #33310 - Gateway 重启覆盖磁盘编辑https://github.com/openclaw/openclaw/issues/33310
[7] OpenClaw PR #29856 - 文件工具层面阻止 agent 编辑 confighttps://github.com/openclaw/openclaw/pull/29856
我是Aloong,持续分享 AI Agent 开发实践和AI工具。我们下期见。
夜雨聆风