引言
从 2023 年初的「金鱼记忆」到 2025 年 ChatGPT 能记住你的每一次对话,AI 的记忆管理经历了五代演进。每一代都解决了上一代的核心痛点,同时也引入了新的挑战。
这段历程中最有趣的是:解决问题的思路从「开发者手动管理」逐渐演变为「模型自主管理」——就像计算机的内存管理从手动分配进化到操作系统自动管理一样。
CP1996-
Charles Packer
MemGPT 论文共同一作,Letta 联合创始人,UC Berkeley 博士
"将 LLM 视为操作系统,上下文窗口是 RAM,外部存储是硬盘——模型应该自己管理什么放进内存、什么写到磁盘。"
2023 初无状态 API 时代:开发者手动管理消息历史
2023.3LangChain 发布 Memory 模块:框架级抽象
2023.10MemGPT 论文发布:LLM-as-OS 范式
2024.2ChatGPT Memory 上线(Plus 用户)
2024.9ChatGPT Memory 全量开放(所有用户)
2024.11Gemini 推出 Memory 功能
2025.4ChatGPT 升级:可引用所有历史对话
2025Letta 开源平台上线,LangMem 发布
2025.8-10Claude 推出 Memory 功能(付费用户)
第一代:手动管理(2023 年初)
开发者自己管消息数组
2023 年初,ChatGPT API 刚刚开放。API 是无状态的——你发一组 messages,模型返回一个回复。至于「记住之前的对话」,那是你的事。
开发者需要自己做的事:
1. 在数据库里存每一条 user/assistant 消息
2. 每次调用 API 时,从数据库加载完整消息历史
3. 当消息太长超出上下文窗口时,手动截断
4. 对话结束后,所有消息清空
代码:
messages = load_messages_from_db(user_id)
messages.append({"role": "user", "content": new_question})
response = call_api(messages)
save_to_db(user_id, new_question, response.content)痛点
第一代的困境:
✗ 只能记住「当前对话」内的消息
✗ 对话结束,记忆消失——下次又是陌生人
✗ 开发者需要自己处理截断、溢出、存储
✗ 没有标准方案,每个团队重新造轮子
✗ 关键信息(用户偏好、项目背景)无法持久化第二代:框架级抽象(2023 年中)
LangChain Memory 模块
2023 年中,LangChain 推出了 Memory 模块,把常见的记忆管理策略封装成了可复用的组件。开发者不再需要自己写截断、摘要、窗口管理的代码。
LangChain 的记忆类型:
┌───────────────────────────────────────────────────────────┐
│ ConversationBufferMemory │
│ 保存完整对话历史 │
│ 简单但 token 消耗大 │
│ → 适合短对话 │
├───────────────────────────────────────────────────────────┤
│ ConversationBufferWindowMemory │
│ 只保留最近 K 轮对话 │
│ 自动丢弃旧消息 │
│ → 适合中等长度对话 │
├───────────────────────────────────────────────────────────┤
│ ConversationTokenBufferMemory │
│ 基于 token 数限制,而非轮数 │
│ 更精确地控制上下文大小 │
│ → 适合需要精确控制成本的场景 │
├───────────────────────────────────────────────────────────┤
│ ConversationSummaryBufferMemory │
│ 混合策略:旧消息压缩为摘要 + 新消息保留原文 │
│ 兼顾信息保留和 token 效率 │
│ → 适合长对话(最常用) │
├───────────────────────────────────────────────────────────┤
│ VectorStoreRetrieverMemory │
│ 用向量数据库存储所有历史消息 │
│ 按语义相关性检索 │
│ → 适合需要检索特定历史信息的场景 │
└───────────────────────────────────────────────────────────┘代码示例
python
from langchain.memory import ConversationSummaryBufferMemory
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o")
# 创建混合记忆:摘要 + 最近消息
memory = ConversationSummaryBufferMemory(
llm=llm,
max_token_limit=1000 # 超过 1000 token 时开始摘要旧消息
)
# 模拟多轮对话
memory.save_context(
{"input": "我在做一个 FastAPI 项目"},
{"output": "好的,了解了。FastAPI 是一个高性能的 Python Web 框架。"}
)
memory.save_context(
{"input": "用 SQLAlchemy 做 ORM"},
{"output": "明白了,FastAPI + SQLAlchemy 是很常见的技术栈。"}
)
# 查看当前记忆内容
print(memory.load_memory_variables({}))
# → 保留了对话摘要 + 最近的消息第二代的局限
LangChain Memory 解决了什么:
✓ 不用自己写截断/摘要逻辑
✓ 标准化的记忆管理接口
✓ 多种策略可选
LangChain Memory 没有解决什么:
✗ 仍然是「会话内」记忆,对话结束就消失
✗ 不支持跨对话的用户偏好
✗ 摘要质量依赖 LLM,可能丢失关键信息
✗ 记忆是被动管理,不是模型主动管理第三代:LLM 自主管理记忆(2023 年 10 月)
MemGPT 论文:LLM-as-OS
2023 年 10 月,UC Berkeley 的研究团队发表了 MemGPT 论文(arXiv: 2310.08560),提出了一个革命性的想法:让 LLM 像操作系统管理内存一样管理自己的上下文。
操作系统的内存管理:
物理内存(RAM)有限 → 放不下的数据写到硬盘(Swap)
需要时再从硬盘读回内存
操作系统自动决定什么放内存、什么写硬盘
应用程序不需要关心内存管理——OS 帮你搞定
MemGPT 的类比:
上下文窗口 = 物理内存(RAM)
→ 有限(128K tokens)
外部存储(数据库/文件) = 硬盘(Disk)
→ 无限
LLM = 操作系统
→ 自己决定什么放进上下文窗口、什么写到外部存储
用户/开发者不需要管理记忆——LLM 自己搞定MemGPT 的架构
MemGPT 三层记忆架构:
┌─────────────────────────────────┐
│ Main Context(主上下文 = RAM) │
│ │
│ ┌─────────────────────────────┐ │
│ │ System Instructions │ │ ← 角色设定
│ ├─────────────────────────────┤ │
│ │ Working Context │ │ ← 当前工作记忆
│ │ (当前对话 + 摘要 + 关键事实)│ │
│ ├─────────────────────────────┤ │
│ │ Conversation │ │ ← 最近的消息
│ └─────────────────────────────┘ │
│ 总计 ≤ 上下文窗口大小 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ Archival Storage(归档 = 硬盘) │
│ │
│ 所有历史对话、文档、用户事实 │
│ 可以被检索和加载回主上下文 │
│ 无限大小 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ Recall Storage(召回存储) │
│ │
│ 对话历史的向量索引 │
│ 支持语义搜索 │
└─────────────────────────────────┘
LLM 通过 Tool Calling 管理这些存储:
├── memory.insert() → 往归档存储写入
├── memory.search() → 从归档存储搜索
├── archival_memory.insert() → 写入长期记忆
└── archival_memory.search() → 检索长期记忆MemGPT → Letta
MemGPT 的演进:
2023.10 MemGPT 论文发布
2024 项目更名为 Letta,成立公司
2025 Letta 成为开源 AI Agent 框架
Letta 的核心创新:
├── Memory Blocks:结构化的记忆单元
│ 每个记忆块是一个独立的信息片段
│ 模型可以自主创建、更新、删除记忆块
│
├── Stateful Agent:有状态的 Agent
│ Agent 有持久的身份和记忆
│ 可以跨会话保持状态
│
└── LLM 自主决策
模型自己决定记住什么、忘记什么
不需要开发者硬编码记忆逻辑第四代:产品级内置记忆(2024 年)
ChatGPT Memory
2024 年 2 月:ChatGPT Memory 首次上线(Plus 用户)
2024 年 9 月 5 日:全量开放(Free / Plus / Team / Enterprise)
工作原理:
用户在对话中提到重要信息
→ ChatGPT 自动判断是否值得记住
→ 存储为一条「记忆」(Memory)
→ 未来对话中自动参考这些记忆
用户可以:
├── 查看所有记忆(Settings → Personalize → Memory)
├── 删除特定记忆
├── 要求 ChatGPT「忘记某件事」
└── 关闭记忆功能
2025 年 4 月升级:
ChatGPT 可以引用所有历史对话(不只是显式记忆)
→ 更深度的个性化Gemini Memory
2024 年 11 月:Google Gemini 推出 Memory 功能
特点:
├── 记住用户的生活信息、工作偏好
├── 基于记忆提供个性化回答
└── 2025 年:支持从 ChatGPT/Claude 导入记忆Claude Memory
2025 年 8 月:Anthropic 为 Claude 推出 Memory(付费用户)
2025 年 10 月:扩展到更多用户
特点:
├── 记住跨对话的项目信息和偏好
├── API 层面提供 Memory Tool
│ → 开发者可以用 tool_use 接口管理 Claude 的记忆
├── 支持记忆导入/导出
└── 2026 年 3 月:开放给免费用户三家对比
| 维度 | ChatGPT | Gemini | Claude |
|---|---|---|---|
| 首次上线 | 2024.2 | 2024.11 | 2025.8 |
| 全量开放 | 2024.9 | 2024.11 | 2026.3 |
| 自动提取记忆 | 是 | 是 | 是 |
| 用户管理界面 | 有 | 有 | 有 |
| 引用历史对话 | 2025.4 | 部分 | 部分 |
| API 支持 | 无 | 无 | 有(Memory Tool) |
| 导入/导出 | 无 | 导入 | 导入/导出 |
第五代:记忆基础设施(2025 年)
LangMem:长期记忆框架
LangMem(LangChain Memory,2025 年)
在 LangChain 早期 Memory 模块的基础上,
专门为长期记忆设计的框架:
核心能力:
├── 从对话中自动提取关键事实
│ "用户提到了用 FastAPI" → 存储 {framework: "FastAPI"}
│
├── 记忆分类
│ ├── 用户偏好(喜欢简洁回答)
│ ├── 项目事实(当前项目用 PostgreSQL)
│ └── 对话事件(上次讨论了 API 设计)
│
├── 记忆检索
│ 根据当前对话语义,检索相关记忆
│
└── 记忆更新
新信息覆盖旧信息(用户换了技术栈 → 更新记忆)记忆的标准正在形成
2025 年的趋势:
1. 记忆正在成为 AI 产品的标配
不再是加分项,而是基本功能
2. 记忆可移植
Google 和 Anthropic 都推出了记忆导入工具
用户可以带着记忆从 ChatGPT 搬到 Gemini 或 Claude
3. 记忆标准化
记忆的格式、存储、检索正在走向标准化
类似于联系人在不同手机之间同步
4. 记忆的可控性
用户越来越需要:
├── 查看AI记住了什么
├── 删除不想要的记忆
├── 控制记忆的使用范围
└── 理解记忆如何影响 AI 的回答五代演进总结
记忆管理的五代演进:
第一代(2023 初):手动管理
开发者自己存消息、做截断
→ 只能记住单次对话
第二代(2023 中):框架抽象
LangChain Memory 提供标准组件
→ 多种策略可选,但仍限于单次对话
第三代(2023.10):LLM 自主管理
MemGPT/Letta —— LLM 像 OS 一样管理记忆
→ 突破单次对话限制,跨会话持久记忆
第四代(2024):产品级内置
ChatGPT/Gemini/Claude 内置记忆功能
→ 普通用户无需编程就能拥有 AI 记忆
第五代(2025):记忆基础设施
记忆可移植、可管理、可标准化
→ AI 记忆成为可携带的数字资产
演进方向:
从「开发者手动管」→「模型自主管」→「用户控制模型管」
从「每次重新开始」→「跨对话积累」→「跨平台携带」本节小结
| 概念 | 要点 |
|---|---|
| 第一代 | 手动管理消息数组——只能记住当前对话 |
| 第二代 | LangChain Memory 框架——标准化但限于会话内 |
| 第三代 | MemGPT/Letta——LLM 像 OS 一样自主管理记忆 |
| 第四代 | ChatGPT/Gemini/Claude 内置记忆——用户无需编程 |
| 第五代 | 记忆可移植、可管理、可标准化——数字资产 |
| 演进方向 | 开发者管理 → 模型自主管理 → 用户控制 |
思考题
- MemGPT 把 LLM 比作操作系统,上下文窗口比作 RAM。这个类比有什么局限?
- 如果用户可以「带着记忆换 AI 平台」(比如从 ChatGPT 搬到 Claude),这对 AI 公司的竞争格局有什么影响?
- 你认为 AI 的记忆应该由谁控制——用户、AI 公司、还是法律?