大模型为什么需要“长期记忆”?从上下文窗口到Memory系统
一、大模型真的会“记住”用户吗?
很多人第一次使用聊天机器人会产生一种错觉:
“它好像认识我。”
实际上,在最基本的LLM系统里,模型本身并不会像人脑一样永久记忆所有历史对话。
通常系统只是把:
历史消息
+
当前问题
一起放入上下文。
二、上下文不等于长期记忆
例如:
Conversation:
Day1:用户喜欢Python
Day2:用户正在研究RAG
Day3:用户开始研究GraphRAG
...
Day100
如果每次都把100天全部对话发送给模型:
- Token越来越多;
- 成本越来越高;
- 噪声越来越大。
因此需要Memory系统。
三、Memory可以分成几类
Working Memory
当前任务中的临时信息。
类似人的短期记忆。
Episodic Memory
保存过去发生的事件。
例如:
2026-08-20
用户完成了RAG第一版系统。
Semantic Memory
保存长期事实。
例如:
用户主要使用Python开发。
Procedural Memory
保存“如何做某件事情”的知识。
例如:
部署系统步骤
数据库初始化步骤
模型调用规范
四、一个完整Memory架构
flowchart TD
A[用户消息] --> B[LLM]
B --> C[Working Memory]
B --> D{是否值得长期保存?}
D -->|是| E[Memory Extraction]
E --> F[(Vector Memory)]
E --> G[(Structured Memory)]
H[未来问题] --> I[Memory Retrieval]
F --> I
G --> I
I --> B
五、不是所有信息都应该保存
如果把每一句话都写进Memory:
用户:今天有点热
用户:刚喝了一杯水
用户:电脑剩30%电
几个月以后,Memory数据库会产生大量垃圾。
因此需要一个Memory Manager。
判断:
def should_remember(message):
importance = evaluate_importance(message)
if importance > threshold:
return True
return False
真正值得长期保存的通常是:
- 长期偏好;
- 项目状态;
- 工作习惯;
- 重要人物关系;
- 长期目标;
- 系统配置。
六、Memory与RAG有什么区别?
两者底层可能都会使用向量数据库,但是目的不同。
RAG:
检索公共/企业知识
Memory:
检索与当前用户/Agent有关的历史经验
可以这样理解:
RAG让模型知道“世界发生了什么”。
Memory让模型知道“我们之前发生过什么”。
七、未来Agent为什么必须拥有Memory?
假设有一个科研Agent。
第一天:
阅读100篇论文。
第二天:
找出其中与GraphRAG有关的方法。
第三天:
比较这些论文实验结果。
如果没有Memory,每一天Agent都可能需要重新读取之前的数据。
拥有长期记忆后则变成:
阅读
↓
理解
↓
记录
↓
下一任务
↓
检索历史记忆
↓
继续工作
这才更加接近真正持续工作的智能体。
总结
未来大模型应用的竞争,很可能不仅是:
谁的模型参数更多。
还包括:
谁拥有更加高质量的Memory系统。
一个真正成熟的Agent通常需要:
LLM
+
Knowledge
+
Memory
+
Tools
+
Planning
其中Memory解决的是一个非常重要的问题:
如何让AI从一次性的问答工具变成能够持续工作的智能系统。
相关推荐
让AI“记住你”:Memory能力实战【苍狮技术团队】.pptx
长期记忆则更持久,它类似于人类的记忆档案,保存了跨会话的重要信息。为了克服上下文窗口的限制,研究人员和工程师们开发了向量存储和检索技术。
【AI大模型应用开发】以LangChain为例:从短期记忆实战,到如何让AI应用保持长期记忆的探索
本文我们来系统看下实现大模型应用记忆的方法,包括短期记忆和长期记忆。还是以LangChain为例来进行实战。
codex上下文记忆skill
该skill支持细粒度记忆生命周期管理,允许开发者通过指令显式声明某段代码或注释为“永久记忆”、“临时会话记忆”或“可推导记忆”,系统据此动态调整其驻留策略、压缩算法与备份频率。
【人工智能Agent】短期记忆处理方案:基于上下文窗口的多通道记忆模型设计与工程实现
内容概要:本文系统阐述了Agent产品中短期记忆(Short-Term Memory)的核心概念、设计目标、常见模型、工程实现方案及其在多Agent系统中的应用。短期记忆作为Agent的“工作台”,对
Java记忆翻牌Memory_2010
在"Java记忆翻牌Memory_2010"中,"代码源"标签表明我们有机会深入理解项目的实现细节。


