用 OpenClaw 用久了,你会发现一类特别让人崩溃的问题:不报错、不崩溃,就是行为不对,还不知道为什么。
v2026.4.12-beta.1 集中修了好几个这类坑。如果你踩过,看到这篇会有种"终于!"的感觉。
坑一:消息发出去了,AI 假装没看到
场景:你在等 AI 跑一个长任务,等不及先发了一条追问。AI 回来之后,完全没提你发的那条消息——不是"我处理完再回答你",是真的消失了。
原因:AI 运行中途收到的用户消息,没有被带入下一轮提示词,直接静默丢弃。
修复:现在会把这类"孤儿消息"在修复排序后带入下一次提示,不再静默吃掉。
这个坑很坑,因为用户以为 AI 看到了只是没回,实际上是真的没看到。
坑二:记忆置信度全是 0,但什么都没说
场景:你打开 Dreaming 的记忆列表,每条记忆旁边都显示 confidence: 0.00。你以为是 bug,重启了几次还是一样。
原因:light-sleep 阶段在计算置信度时,只看 recall 调用次数,忽略了其他短期信号来源。没有 recall 的条目分数永远是 0。
修复:现在从所有记录的短期信号里综合计算置信度,不再只看 recall 次数。
坑三:QMD 记忆搜索找不到东西
场景:你明明记得之前和 AI 说过某件事,让它搜索,它说没有。但换个方式问,或者重新开一个对话,它又找到了。
原因:active-memory 的 recall 会在某些 channel wrapper(比如 mx-claw)下被路由到错误的 channel,找不到正确的记忆文件。另外,lexical boost 分数意外混入了 hybrid search 的排序,污染了搜索结果。
修复:
- ▶recall 现在绑定到最强的 resolved channel,不再被 wrapper 干扰
- ▶lexical boost 从 hybrid search 里剥离出去,单独用于 fallback 排序
坑四:Memory wiki slug 处理中文标题直接崩
场景:你用中文写了一个记忆 wiki 条目,标题里有中文字符,保存时报错,或者条目名字变成乱码。
原因:wiki slug 生成和 contradiction clustering 只保留了 ASCII 字符,中文字符全被删掉,导致空 slug 或路径溢出。
修复:slug 生成现在保留 Unicode 字母、数字和组合标记,并对文件名长度做了字节上限截断。
这个坑对中文用户特别致命,很多人不明白为什么中文标题的记忆总是乱。
坑五:升级后 openclaw update 报错找不到模块
场景:运行 openclaw update 更新成功,但更新完之后立刻报错,提示找不到某个 dist/install.runtime-*.js 文件。重启无效,只能手动重装。
原因:update 命令在自更新后,用的还是旧版入口点来触发插件刷新,而新版的 chunk 文件名已经变了。
修复:update 完成后,改从新的入口点重新生成插件列表,不再引用旧 chunk 路径。
坑六:Windows 安装包恢复不了依赖
场景:在 Windows 上用打包版的 OpenClaw,某次更新或迁移后,部分依赖包缺失,重装也没用。
原因:打包时是在 macOS/Linux 上完成的,平台原生可选依赖包没有包含 Windows 版本。install 流程也没有检测这种情况并触发重装。
修复:如果检测到当前平台的原生可选子包缺失,现在会自动重新安装对应依赖。
总结
这些坑有一个共同特点:问题表现诡异,查不到报错,却确实影响使用。
修掉之后你可能感觉不到什么——除非你之前踩过。OpenClaw 这个 beta 版本,修的大多是这类"沉默的坑"。
夜雨聆风