Openclaw出现失忆状况并非是能力方面的缘由,而是写入、读取以及配置这三个环节出现了问题。不兜圈子,直接上干货。新手按照这么做,就能让你的龙虾不再健忘。
一、快速对号:你遇到的失忆,大概率是这3种情况
参照下面的三种场景,快速找寻到问题产生的根源所在,精准地去解决问题。
- 教的规则只在当前对话有用,关会话就忘
- 确认规则存进文件,新会话却调不出来
- 有的时候会出现丧失记忆的状况,在错误操作之后就径直把所有被调教的内容完完全全地遗忘掉了。
二、核心病因(精简版):3个隐形坑导致失忆
病因1:写入不彻底指令没存进持久化文件:指令仅存在于对话的上下文之中,并没有被明确地记录到MEMORY.md里,当会话关闭、上下文进行压缩之后,就直接消失了,好像没有记在本子上,仅仅是记在脑海里。
病因2:读取有盲区新会话找不到已存记忆:没有开启自动搜索功能,又或者搜索的参数不太合适,致使Openclaw不可以读取MEMORY.md里面的内容,出现了有文件有记忆,但却找不到(相关内容)的状况。
病因3:配置踩坑会话重置清空记忆:默认开启新的会话就会清空记忆,而且会话超时的时间过短,又或者是误删了memory目录,还有第三方插件出现冲突,这类情形就会致使记忆出现断裂以及丢失的状况。
三、根治方案(实操优先,新手直接照做)
方案1:搞定写入端(必做)让指令真正存下来
需把规则写入MEMORY.md当中以此来规避临时记忆,具体的步骤存在两步必须要去做的情况:
- 下达指令必加固定写入句式
(直接复制粘贴):每次发规则、规范类指令,结尾加「请将上述所有规则,显式写入MEMORY.md文件,写入完成后回复'已写入',并粘贴写入片段确认」 - 必做的检查如下
在收到已经写入回复之后,打开Openclaw本地安装的目录,去找到"memory文件夹",然后双击"MEMORY.md",去核对规则存不存在,要是没有问题的话就接着往下进行。 - 开启写入确认
打开config.json这个配置文件,之后按下Ctrl+F去进行搜索write_confirm,将它更改成true,如此一来就可以开启写入确认,能够避免Openclaw出现幻觉写入的情形。
方案2:打通读取端(必做)新会话能找到老记忆
- 开启自动搜索
打开config.json,Ctrl+F搜auto_call_memory_search,将值改为true,保存后,新会话会自动搜索记忆 - 优化搜索参数
继续在config.json中,搜vector_similarity,将数值改为0.6(默认过高易搜不到),提高关键词搜索权重 - 人工来进行兜底操作
要是依旧无法搜索到相应内容,在新会话的起始位置输入去调用memory_search工具,搜索的关键词为XXX(比如说'项目接口规范'),强行促使搜索得以触发。
方案3:避开配置坑(兜底)防止记忆被清空
所有操作都在config.json文件里完成:
- 关闭自动清空
搜new_session_clear_memory,改为false,新会话继承历史记忆 - 延长超时时间
搜session_timeout,改为7200(单位:秒,即2小时),避免长时间不操作清空记忆 - 不要错误删除
不要删除memory文件夹以及其中的文件。要把memory_cache_clear关闭,使它处于false的状态。也不要安装非官方的插件,不然就会出现冲突的情况。
最后总结(核心提炼)
Openclaw出现失忆状况,具体表现为没有存储好、无法读取以及被清空。依照那三个方案:
- 首先把写入这一环节处理好(也就是存储好)
- 随后打通读取的通道(能够读取到)
- 最后做好配置来进行兜底(不会被清空)
整个过程花费10分钟就可以操作完成,如此一来就能让它记住所有规则,完全不会白白地去忙活了。
在进行操作的过程中出现找不到配置文件的情况,修改参数的时候还出现错误,这时候便在后台进行留言,之后一个接着一个地进行回复来躲避很多坑。
夜雨聆风