过往使用 AI 的过程中我发现 AI 记忆分为几个不同层级,Claude Code 和 ChatGPT 做的也是分层结构。
一类是个人记忆,类似全局画像;一类是对话内的即时纠错——它在某处搞错了,你提醒它,它就把这条记在当前对话里;还有一类是当你跑某个 skill(技能)时,它踩了坑或者你指出某处不对,它会建议「要不要把这个记一下,下一次就不会再踩」。
这种分层设计在实际使用中存在几个情况。
首先,它没办法像真正的记忆那样,随时从日常活动里进行提炼和学习。
我们的大脑并不需要明确收到「把这件事记一下」这类指令才能产生记忆,大脑自己会默默地记下那些我们日常印象深刻的事情。这就是人类记忆的两个特点:自主提炼、静默记录。
然后,人类记忆真正帮到我们的地方在于跨事联想。这种联想我把它理解为方法论的迁移——我在这件事上得到的记忆 / 经验 / 认知,可以挪到另一件事上去。这也是 AI 记忆需要具备的另一个重要特性。
第三,有些记忆我们要很久之后才会回想起来,所以不占据我们的任何注意力。有些事情我们只有模糊印象,并不会记得清楚;但在外部刺激或某个触发出现时,会一点一点把它捡回来。这个我形象地把它想象成大脑里的一种仓库——平时很少动它,但见过的事、看过的东西、学到的知识都隐藏在那里,外界一旦有明确刺激才会浮上来。
它和第一种记忆不一样——第一种是印象太深瞬间就能想起,不需要仔细追索;而仓库式的这种需要慢慢回忆。所以 AI 记忆还应当具备这样一种「存下来所有东西,但不常被想起,主动去回忆、去搜索时才出现」的能力。
从人类记忆的产生和存储方式出发,我尝试理解并反推 AI 记忆需要增强的几个点。
基于这套思考,我设计了一套结构。
首先是 agent(智能体)结构,我通过Engram模块在每一个 session(会话)启动时,它会自动在后台看这次对话里有没有什么东西值得被记住,并在后台把会话进行蒸馏,得到关键信息和价值点,再把它们结构化地归总起来。
然后是定时推送给我。我会主动设置一个循环任务,让它把最终归档的文本定期(比如每周)交给我审核,由我来判断哪些值得写入全局记忆,哪些应该更新到对应 skill 里。未来我打算尝试再加一层 agent,让它自动完成这种评估,除非特别重要、或者命中了其他高度关联的影响和调整,才需要交到我手上审批。
第二,我用 claude-mem 这个项目把我所有的 session 默认记录、保留下来,作为冷备。检索阶段,我会提醒 AI——当我明确要求检索会话信息或历史时,去这个库里帮我找到可能的印象与记录。这个库目前没办法和云端同步,是本地的。
第三,对于那些应当随时交给某个 skill、让它记住的事情,我现在养成了一个工作习惯:每次调用一个 skill、经过多轮对话发现需要修改时,在产出结果之后我会提醒它把这一次碰到的问题、踩过的坑写入它自己的 skill 文档里。
当然这里后续还有可以优化的空间——skill 文档会越来越大,需要定期把这些「经验与踩坑」做目录化提炼,看看哪些具有共性、可以抽象出来,给参考文档做瘦身。
目前来看,这套结构已经跑了一段时间,我也看到自动有了一些洞察,尤其是第一个热备记忆模块——它确实做了一些很有意思的事情,开始符合我对搭建中的AI架构「逐步进化、逐步自我迭代」的想法和目标。
最近我也专门去看了 Claude Code 和 ChatGPT 在这一块是怎么做的,发现貌似这是一条相对完整、可行的路径。
当然我肯定没有那些大厂的人想得多和完整。
我主要还是通过自己的生活经验和下意识的仿生习惯去想:人是怎么处理记忆的?人是怎么处理这件事的?人类组织又是怎么处理一件复杂事情的?再去思考 AI 应该怎么学习,并通过模拟的方式去实现这条路径。
参考文档
PS:本文由iPhone语音备忘录完成初稿,用自购Claude服务润色完成。
夜雨聆风