2026 年初,有一个现象让人反复思考:某些 Agent 框架用起来特别"顺"。不是因为它接了哪家最强的模型,也不是代码有多优雅,而是用过的人都说——这东西越用越懂你。

它能记住你上次说的代码风格偏好,能记住你项目里绕了半天才确定的决策,甚至能把一次成功的工具调用经验直接沉淀下来,下次不用你再解释一遍。
这种"越用越顺手"的感觉,和底层模型有多强关系不大,和记忆系统怎么设计关系很大。
我认真研究了目前主流的三个框架——LangChain、AgentScope 和 Mem0——在记忆这件事上各自怎么做的,做到了哪一步,又在哪里卡住了。
LLM 本身是无状态的,每次对话都是一张白纸。但用户的需求从来不是无状态的——你上周告诉它的偏好、讨论了三轮才确定的方案、反复强调的限制条件,你都希望它记着。
一个真正工业级的记忆系统,要解决四件事:
- 1. 身份锚定:Agent 得"认识你",知道你的工作习惯、项目背景、沟通偏好
- 2. 消除上下文焦虑:不用每次开新对话都重新粘贴背景说明
- 3. 跨线程连续性:在线程 A 说的偏好,在线程 B 里自动生效
- 4. 自主进化:通过反思把成功经验沉淀为"方法论"
工程层面则需要同时处理好:怎么分类存、存在哪里、怎么压缩遗忘、怎么检索、怎么动态更新。这五件事,是后面评价框架的尺子。
LangChain:对话历史管理器,不是记忆系统
先说结论:LangChain 在记忆这件事上,做的是对话历史管理,不是真正意义上的 Agent 记忆系统。
架构本质:两个钩子
LangChain 的记忆围绕 BaseMemory 抽象类构建,本质上是在 Chain 执行前后插了两个钩子:
- •
load_memory_variables:读取记忆 - •
save_context:写入记忆
整个设计绑定在单次 Chain 调用上,没有独立的后台进程,没有自动整理,没有过期清理。
四种实现,同一问题的四次打补丁
实现原理问题
| ConversationBufferMemory | 原封不动存全部历史 | Token 直线上升,迟早撑爆 |
| ConversationBufferWindowMemory | 滑动窗口,保留最近 K 轮 | K 轮之前的偏好直接消失 |
| ConversationSummaryMemory | LLM 对历史做摘要 | 摘要会丢细节,额外 LLM 调用有成本 |
| VectorStoreRetrieverMemory | 向量化存入向量库 | 不区分重要程度,处理不了记忆冲突 |
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。