大模型驱动的AI Agent正在从单次问答工具转向长期协作搭档,但有一个短板非常明显:记忆。每次新对话,它就像个失忆的人,完全忘了之前聊过什么。上下文窗口再长(比如128K tokens),也只是缓解,本质上还是无状态函数。
想让Agent从工具变成真正的搭档,记忆是不可或缺的那块拼图。它能记住你的偏好、经验、承诺过的待办,不必每次重新自我介绍。SuperMemory团队甚至断言,未来几年几十亿个Agent会高度个性化,让记忆成为基础设施层的核心。
但给Agent加上记忆,不是简单地存下来就行。真正的挑战有五个:
- 信息矛盾与时序:你说上个月住北京,这个月搬到了上海,系统应当知道后者覆盖前者,不能把两条矛盾的信息一起扔给LLM。
- 噪声与检索精度:11万token的对话史里,可能只有三句话和当前问题相关。检索时混入太多噪声,LLM照样抓瞎。
- 自动遗忘:'明天有考试'这条信息,过了明天就该自动失效,而不是永远占着地方。
- 多源融合:记忆不只来自聊天,还可能来自邮件、文档、日历,需要统一管理。
- 隐私合规:记忆里存着大量个人信息,本地部署还是云端、加密、GDPR等都得考虑。
在具体设计上,学术界和工业界从人类记忆认知中汲取灵感,把Agent记忆分成了几个维度。
按时间跨度看,有工作记忆(当前对话上下文,依赖LLM上下文窗口)、短期记忆(最近几轮对话,缓存)、长期记忆(跨天、周、月的信息,持久化存储)和情景记忆(特定事件的时间、地点细节)。
按功能角色分,有语义记忆(事实性知识,比如'用户是资深工程师,用Vim')、情景记忆(具体事件上下文)、程序记忆(如何执行某任务)和元记忆(关于记忆的记忆,知道哪条信息是上周更新的)。
按存储形式,则出现了多种技术路线:向量数据库(Mem0、Zep)、知识图谱(Cognee、Mem0 Graph)、文件系统(OpenClaw、Letta FS)、关系数据库(Zep用Postgres)、甚至纯内存(ASMR),各有优劣。
这些存储形式背后,实质是五大记忆范式,它们决定了回忆的方式和效果。
上下文窗口记忆
最朴素的方案,把所有历史对话直接塞进prompt:
[System Prompt] + [历史对话] + [当前问题] → LLM → 回答
实现容易,但token成本线性增长,且跨会话记忆丢失。早期ChatGPT和简单chatbot就这么干。
RAG检索增强记忆
把历史切块,做embedding存入向量库,查询时检索最相关的top-K块注入上下文。
用户问题 → Embedding → 向量检索 → Top-K chunks → 注入上下文 → LLM → 回答
优点是突破窗口限制,成本可控;缺点是语义相似不等于语义正确——比如'我住北京'和'我搬到上海'语义相近但含义相反,时序推理弱。Mem0、Zep、OpenClaw的核心检索层都基于此。
文件系统记忆
直接用Markdown文件承载记忆,Agent像人一样读写:
MEMORY.md(长期记忆)
memory/2026-03-23.md(每日笔记)
USER.md(用户画像)
完全透明,人可编辑,不用额外基础设施。更意外的是,Letta基准测试显示纯文件系统方案在LoCoMo上达到74.0%,竟击败了多个专业记忆系统。缺点也很明显:文件多了检索效率低,缺乏语义理解,依赖Agent的自律。
知识图谱记忆
建模为实体-关系图谱:
[用户:张三] --居住在--> [城市:上海]
[用户:张三] --使用工具-->
--时间-->
--参与者-->


