乐于分享
好东西不私藏

什么都记的 AI,迟早什么都答错

什么都记的 AI,迟早什么都答错

"

真正难的不是让 AI 记住,而是让它学会忘记

—— 安奇漫的奇思漫想

上个月,老周跟我吐槽他们公司的客服 AI。

老周在一家做电商的公司带 AI 客服组。年初他们给 Agent 上了记忆功能,全公司挺兴奋——所有用户对话都存下来了,Agent 终于能“记住”每个用户了。

三个月后,老周想把这功能拆了。

原因不是 Agent 记不住。恰恰相反,它记得太牢了

有个用户三月投诉过物流,气头上甩了一句「再也不买你们家快递了」。Agent 把这句话存进了长期记忆

六月,这个用户正常下单,Agent 在聊天框里飘出一句「您之前提到不再使用我们快递,需要我帮您推荐其他物流吗?」

用户当场炸了

老周去翻日志,三个月里这种破事攒了一大堆。用户随口说的气话、吵架时的反话、甚至一次口误,全被 Agent 当成铁一样的事实存着,隔三差五翻出来用。

「我不是要一台录像机。我要的是一个能分清轻重的人。」

这句话我琢磨了很久。

很多做 Agent 的人,都栽在同一件事上——以为记忆就是全存

用户说的每一句话,Agent 的每一次回复,工具调用的每一个返回值,全塞进去

存下来总没错吧?万一以后用得上呢?存储又不贵。

但生产环境跑几个月你就会发现,什么都记的 Agent,比什么都不记的更危险

什么都不记的,最多答不上来。什么都记的,会拿三个月前的旧信息、自相矛盾的偏好、和一肚子闲聊口误,认认真真给你一个错答案

它不是不聪明。它是被自己记的东西害了。

📌 本文看点

01

三种会“杀死”Agent 的记忆

02

遗忘不是删除,是分级

03

让 AI 学会遗忘的四样东西

01

STALE MEMORY

过期记忆:它记得的,已经不是事实了

先说最坑的一种——过期记忆

老周他们有个用户,半年前跟客服说过一次「我在上海」。

后来这用户搬家去了北京,但从没在对话里提过。Agent 不知道啊,它还记着“用户在上海”,每次推活动、算配送时效,全按上海来。

用户纠正了两次,第三次干脆不问了。

老周说,「它那条记忆要是会过期就好了。」

一条记忆该信多久?这个问题,大多数 Agent Memory 系统根本没想过

用户三年前说「我喜欢激进的投资风格」,三年后你按这个给他推产品,亏了算谁的?用户上个月说「在减肥」,这个月可能已经放弃了,你还在给他过滤高热量食物。

过期记忆最阴的地方在于:它不是错误信息——它曾经是对的。只是时间过了,它不再对了。而系统完全不知道。

02

CONFLICT MEMORY

冲突记忆:新话和旧话打架,系统信谁

第二种更麻烦——冲突记忆

用户今天跟客服说,「我对花生过敏。」

过两周又说,「其实偶尔吃点没事。」

两条都存下来了。Agent 下次推荐菜品,两条记忆同时被召回。模型看着这两条矛盾信息,要么随机选一条,要么两条都摆出来让用户自己选。

这不是记忆,这是甩锅。

老周他们碰上过一模一样的。一个用户第一次说「我习惯晚上联系」,后来改口「最近白天才有空」。Agent 记住了两条,结果白天发一条、晚上发一条。

用户直接投诉:「你们这 AI 是不是有病?」

冲突记忆比记忆缺失危险得多。缺失顶多让 Agent 答不上来,冲突会让它给一个看起来合理、其实是错的答案

03

NOISE MEMORY

噪声记忆:什么都记,等于什么都没记住

第三种看着不起眼,其实最阴——噪声记忆

用户跟客服聊天,末了随口说了一句「今天真是烦死了」。

这句话被存进了记忆库

下次用户来问退款流程,Agent 检索到这条记忆,开场先来一句「看您今天心情不太好,需要先聊聊吗?」

用户一脸懵:我就问个退款,你跟我扯什么心情

闲聊、情绪、口误、玩笑话,这些东西出现在对话里,很容易被系统当成“用户说过的事实”。

它们不是事实,是对话里的噪声

「我们的 Agent 不是记性不好,是分不清什么是话,什么是事。」

噪声一多,检索质量就崩。向量检索的逻辑是找相似内容,垃圾越多,真话被淹没的概率越大

04

FORGETTING

遗忘不是删除,是分级

老周那阵子研究了不少记忆系统,最后发现,问题出在大家都把“遗忘”想简单了

一说遗忘,第一反应是删数据。

不完全是。

遗忘至少分三个级别

硬遗忘:彻底删除

用户要求删数据,合规要求清记忆,就得删干净。不只是主表,索引、缓存、备份里的引用全要清。这是法律层面的遗忘

软遗忘:不删,但降权

一条记忆太久没被确认了,不知道还准不准,又不敢直接删。那就降权——新记忆优先召回,旧记忆靠后站。这是时间层面的遗忘

归档:不召回,但可查

不参与日常召回,但需要的时候还查得到。一整年的客服对话,日常用不着,年底复盘、用户投诉查历史,得能翻出来。这是使用层面的遗忘

三个级别,对应三种场景。不是所有遗忘都是一刀切的删除

大部分系统连硬遗忘都没做利索,软遗忘和归档更别提了。

05

MECHANISMS

想让 Agent 学会遗忘,需要四样东西

想让 Agent 学会遗忘,需要四样东西

01有效期标签

每条记忆存进去,就得带个保质期。用户偏好,保质期三个月。产品参数,一年。用户的一次性诉求,当天。过了保质期,记忆不是直接删,而是进入待确认状态。下次被检索到,系统先琢磨一下:这条还准吗?没法确认就降权。

老周后来给他们系统加了有效期标签,改了一个月,客服投诉里“AI 乱说话”的比例掉了一大截

02冲突检测

新记忆写进去之前,先跟已有的比对一遍。发现矛盾,不是直接覆盖旧的,也不是两条都留着,而是标记冲突,走处理流程。处理可以很简单:优先信最新的。也可以很复杂:看来源、看时间戳、看用户后续行为。高价值的冲突,留给人来裁决。

03衰减函数

记忆会随时间贬值,但贬值速度不一样。用户随口说的偏好,衰减要快。身份信息这类硬事实,衰减要慢。一条记忆如果被反复确认——用户好几次提到同一个偏好——衰减就该放缓。

04人工裁决

不是所有遗忘都该自动完成。涉及隐私的记忆、涉及业务决策的记忆、涉及合规边界的记忆,该不该忘、什么时候忘、忘了留不留痕,得有人拍板

全自动遗忘听起来很酷,但企业场景里,你不敢让机器自己决定删什么。万一删错,审计的时候没人替你背锅。

06

DEGRADATION

不会遗忘的 Agent,最后会变成什么

说到这,想起一个更扎心的场景

你有个个人助理 Agent,用了快一年。它帮你记日程、管偏好、处理日常。

一年下来,记忆库里攒了几千条

刚用的时候它特别好。你说过一次喜欢喝美式,以后点咖啡都帮你选美式。

慢慢地,开始不对劲了。

你三个月前说过减肥,早就不减了,它还在帮你过滤高热量食物。

你半年前喜欢一个博主,早取关了,它还在推那个博主的内容

你跟朋友随口说了一句「最近想学吉他」,它记下来了,隔三差五给你推吉他课

你跟它抱怨过一次工作压力大,它记住了,以后每次对话都小心翼翼的,搞得你更烦

根源不是它不聪明,是它不会忘

一个不会遗忘的 Agent,就像一个什么都记得、但分不清轻重的同事。你三年前随口说的一句话,他记到现在,还拿来指导你现在的决策。

你说他记性好?

不。你会觉得他有病

THE END

遗忘不是记忆的反面

「遗忘不是记忆的反面。遗忘是记忆质量的一部分。」

把遗忘当成记忆的反面,是理解偏了。

一个人的记忆系统只进不出,迟早被垃圾淹没。Agent 也一样。

能记住重要的,能忘掉不重要的,能识别过期的,能处理矛盾的——这才叫可用的记忆系统

只管存不管忘,那不叫记忆系统,那叫垃圾桶。

我之前写过几篇关于 Agent Memory 的文章。第一篇说记忆不是聊天记录,是经验编译系统。第二篇说记忆要有人管质量控制,写入、取用、发布三个环节都得管。上一篇说知识库和记忆库是两回事,别搞混。

这篇说的是,记忆治理里有个被严重低估的环节——遗忘

但遗忘只是记忆治理的一个面。

一条记忆从产生到被使用,中间要过多少道工序?原始对话怎么变成可用记忆?谁来判断该存什么、该忘什么、该给谁用?

单靠一个遗忘机制,回答不了这些问题

它需要一整条管道。事件接收、事实提取、冲突检测、结构化存储、路由分发、压缩交付、更新遗忘——每一段干的事都不一样。

这条管道,才是 Agent Memory 真正的工程核心。

下一篇,聊聊这条管道里到底在发生什么

END

我是Ando,从 0 到 100 陪你入门 AI,聊聊大模型、Agent 和它们背后的工程。

如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见。