给七亿批量远程管理工具的 AI 助手调「长期记忆」那阵子,有个毛病把我整得挺无语:它当场认错、当场改;可过一阵子,同样的错又照犯。
具体那次是端口。我让它在一台机器上弄代理,它顺手提了条防火墙规则,把 3306 也放通了。我说「3306 是数据库端口,放公网不安全,别放」。它很听话,这一版就改掉了。可隔天再让它干类似的活,它又把数据库端口放进去了。
一开始我以为它「记性差」。后来扒代码才看明白:不是没记,是记的时机不对。
那会儿的写法是——只在「跑过命令的任务」结束时,才把这一趟的东西整理进记忆。我那句「别放 3306」是在一轮纯聊天里说的,根本没触发写记忆;它就只是当下的对话,任务一结束就跟着上下文一起飘走了。它下次当然不知道。
还有第二处:就算写进了记忆,偏好那一块还要按「相关性」过滤一遍。我定的是条通用规矩(数据库端口别放公网),跟新任务的关键词未必对得上,就可能被当成「不相关」给筛掉。等于记了也白记。
后来改了两处:
一是触发时机——只要聊天里带了「以后」「别…」「不要…」「记住」「不安全」这类信号,后台就把这次对话整理进【偏好 / 经验】,不必等「跑过命令」。
二是【偏好】块改成永远注入——用户定下的规矩,每次都得在,不能被「相关性」顺手丢掉。
改完再试,「别放 3306」这种话,说一遍就一直在。
现在回头看,记忆这摊事,坑根本不在「存不存得下」——存哪都行。难的是「什么时候写进去」,以及「写进去会不会被扔」。 只给它挂个记忆模块、触发时机不对、关键项还会被筛掉,那就等于摆设。
顺带一提,早先它把服务器密码写进长期记忆那回、回完话那行「记忆已更新」冲掉我输入那回,也都是记忆这块的副作用——「能用」是一回事,「用对」是另一回事。七亿批量远程管理工具这类越做越顺手的工具,我现在体会就是:会不会干活是一层,记忆可不可靠是另一层,后一层往往更爱在角落里咬人。
防火墙端口该放谁、不该放谁,我在七亿批量远程管理工具的教程页里写过一套排查顺序,可以对着走。
评论