MemGPT: Towards LLMs as Operating Systems
论文:UC Berkeley Packer, Wooders, Lin, Fang, Patil, Stoica, Gonzalez,2023
本文记录我的论文学习过程与核心理解

一、论文基础介绍

基本信息

项目 信息
论文 MemGPT: Towards LLMs as Operating Systems
原文链接 https://arxiv.org/abs/2310.08560
作者 UC Berkeley(Packer, Wooders, Lin, Fang, Patil, Stoica, Gonzalez)
时间 2023(2024 更新)
引用 600+(Semantic Scholar)
核心贡献 ① 虚拟上下文管理技术 ② 类 OS 分层记忆系统 ③ 突破 LLM 上下文窗口限制
开源 https://github.com/memgpt

论文背景与动机

在前六篇论文中,我们依次解决了:

  • CoT:推理能力
  • ReAct:推理+行动协同
  • Toolformer:自主工具使用
  • AgentVerse:多 Agent 协作
  • MetaGPT:结构化 SOP 协作
  • Voyager:终身学习能力

但有一个根本限制始终存在:

LLM 的上下文窗口是有限的——即使是 128K token 的模型,当对话历史达到几十万字时,仍然会溢出。

MemGPT 要解决的核心问题是:

如何让 LLM 在有限的上下文窗口内,实现"无限"记忆能力?


二、核心问题

传统 Agent 的记忆困境

方法 问题
完整历史塞进 context 超出 window 就崩溃
只保留最近 N 轮 早期重要上下文永久丢失
外部向量检索(RAG) 检索质量不稳定,无法理解完整时间线
压缩 Prompt 重要细节被误删

核心洞察

**传统方法是在"空间内挤更多内容",MemGPT 是在"空间内建立层级管理体系"——像 OS 的虚拟内存一样,把不常用的数据换出到外部,把常用的换入到快速存储。


三、核心思想:类 OS 的层级记忆

MemGPT 的核心灵感来自操作系统

传统 OS:                    MemGPT:
┌────────────────┐          ┌────────────────┐
│  CPU Register  │ ←→      │  LLM Context   │ ←→ 「快」记忆
│  (极快·极小)   │          │  (上下文窗口)  │
├────────────────┤          ├────────────────┤
│     L1/L2 Cache│          │  外部向量存储  │
│    (快·小)     │ ←→      │  (语义检索)    │
├────────────────┤          ├────────────────┤
│   Main Memory  │          │  原始对话日志  │
│   (大·慢)     │          │  (完整历史)    │
├────────────────┤          ├────────────────┤
│     Disk      │          │  归档存储      │
│   (极大·极慢) │          │  (极远记忆)    │
└────────────────┘          └────────────────┘

MemGPT 的三层记忆

层级 类比 OS 容量 速度 存储内容
Context Window CPU Register 极小(~128K) 极速 正在处理的片段
External Recall(向量存储) Main Memory / SSD 中(向量库) 检索回来的相关记忆片段
Archival Storage(归档存储) Disk / HDD 无限 完整历史对话日志

向量存储 vs 归档存储

这是两个常被混淆的概念,需要重点区分:

External Recall(向量存储) Archival Storage(归档存储)
存什么 语义向量(embedding) 原始对话原文
书签 + 内容摘要 完整日记本
目的 快速检索"这段话在讲什么" 保留"当时具体怎么说的"
容量 中(只存检索回来的片段) 无限(存所有对话)
速度
触发时机 检索时从归档调出 一直存储所有对话

四、核心机制:虚拟上下文管理与中断

虚拟上下文管理

MemGPT 使用虚拟上下文管理,让 LLM 看起来拥有"无限"上下文:

┌─────────────────────────────────────────────────────┐
│                  MemGPT 工作流程                     │
│                                                     │
│  用户消息 ──→ 触发中断(Interrupt)                  │
│                    ↓                               │
│         检索向量存储(External Recall)              │
│                    ↓                               │
│         检索归档存储(Archival)                    │
│                    ↓                               │
│         更新上下文窗口(Context Window)             │
│                    ↓                               │
│         LLM 处理回复                                │
│                    ↓                               │
│         必要时换出(Context 满时)                  │
└─────────────────────────────────────────────────────┘

中断机制(Interrupt)

为什么需要中断?

LLM 自己无法主动管理记忆——它不能自己"决定"去查外部存储。

中断解决了这个问题:

  1. 用户发消息 → 中断 LLM 当前处理
  2. 系统去向量存储/归档存储检索相关记忆
  3. 把检索结果加载回 context window
  4. 恢复 LLM 处理,给出回复

中断机制 = LLM 的"提醒助手"。LLM 自己是不会主动去查记忆的,必须靠中断打断它、帮它查好、再让它继续。

检索机制:向量检索 vs 关键词匹配

为什么必须用向量检索,不能用关键词匹配?

场景 关键词搜索 向量搜索
用户说"上次讨论的那个方案" 记忆里写"北京分公司提案" → 搜不到 ✅ 语义相近,能匹配
用户说"我家的猫" 记忆里写"那只宠物猫" → 搜不到 ✅ 语义相同,能匹配
用户说"那家餐厅" 记忆里写"上次去吃饭的地方" → 搜不到 ✅ 语义相关,能匹配

根本原因:

  • 关键词匹配是字面比较,同义词、上下文、隐含意图都捕捉不到
  • 向量检索是语义比较——把文字转成 embedding,比较的是"意思"是否相近

五、与前文的递进关系

CoT       → 推理链(让模型思考)
  ↓
ReAct     → 推理+行动(与环境交互)
  ↓
Toolformer → 自主工具学习(调用外部API)
  ↓
AgentVerse → 多Agent协作(分工)
  ↓
MetaGPT   → SOP结构化协作(规范化流程)
  ↓
Voyager   → 终身学习(跨时间维度的能力积累)
  ↓
MemGPT    → 无限记忆(突破上下文窗口限制)

六、核心创新点

创新①:虚拟上下文管理

像 OS 的虚拟内存一样,通过数据换入/换出,在有限 context 内提供"无限"上下文的错觉。

创新②:层级记忆系统

三层记忆各司其职:

  • 热层(Context):当前处理
  • 温层(向量存储):检索回来的相关片段
  • 冷层(归档存储):完整历史

创新③:中断驱动的控制流

通过中断机制,让 LLM 能够被动响应检索请求,而不需要 LLM 主动发起(LLM 自己无法主动管理记忆)。

创新④:语义向量检索

用 embedding 而非关键词匹配,实现语义级别的记忆检索。


七、实验结果与意义

主要发现

任务 MemGPT vs 其他方法 提升幅度
长文档分析(超 context 窗口) 最优 显著领先
多轮对话记忆保持 最优 显著领先
跨会话信息检索 最优 显著领先

八、局限性

局限性 说明
检索质量依赖 embedding 模型 向量化的质量直接影响检索准确性
归档存储检索较慢 数据量大时检索延迟明显
中断触发策略需优化 频繁中断影响体验,不足则记忆丢失
仍受限于底层 LLM 能力 记忆管理做得好,但回复质量仍受限于基础模型

九、总结

核心结论(一句话)

MemGPT 通过虚拟上下文管理 + 三层记忆架构 + 中断驱动机制,让 LLM 在有限的 context 窗口内实现了"无限"记忆能力,解决了长对话场景下的记忆溢出问题。

核心知识卡片

知识点 掌握要点
三层记忆 Context(热)/ 向量存储(温)/ 归档存储(冷)
向量存储 vs 归档存储 向量存检索结果,归档存全部原文
中断机制 LLM 无法主动查记忆,需要中断打断当前处理、帮它检索
向量检索优势 语义相近就能匹配,关键词只能字面匹配
vs 简单塞 context 分层管理 + 主动迁移,而非被动溢出

十、核心知识掌握

知识要点 1:三层记忆

问题: MemGPT 的三层记忆和简单地把所有历史塞进 context 有什么区别?

掌握要点:

  • 传统方式:把所有对话平铺在 context 里 → 超出 window 就崩溃
  • MemGPT 方式:分层管理
    • Context Window:存放当前最相关片段(热数据)
    • 向量存储:存放检索回来的相关记忆(中温数据)
    • 归档存储:存放完整历史对话原文(冷数据)
  • 核心区别:MemGPT 有主动的"记忆迁移"机制 + 向量检索机制

知识要点 2:中断机制

问题: 中断机制解决了什么问题?

掌握要点:

  • LLM 自己无法主动管理记忆——它不能自己决定去查外部存储
  • 中断在用户发消息时触发:打断 LLM → 检索记忆 → 加载回 context → 恢复处理
  • 中断机制 = LLM 的"提醒助手"

知识要点 3:向量检索 vs 关键词匹配

问题: 为什么向量检索不能替换成关键词匹配?

掌握要点:

  • 关键词匹配是字面比较,同义词、上下文、隐含意图都捕捉不到
  • 向量检索是语义比较,把文字转成 embedding,比较"意思"是否相近
  • 场景:“上次讨论的那个方案” vs “北京分公司提案” → 关键词搜不到,向量检索可以

十一、附录:完整精读计划

必读经典(8篇)

# 论文 核心贡献 状态
1 Chain-of-Thought 推理链提示 ✅ 已完成
2 ReAct 推理+行动交替模式 ✅ 已完成
3 Toolformer LLM 自学使用工具 ✅ 已完成
4 AgentVerse 多 Agent 协作框架 ✅ 已完成
5 MetaGPT 结构化多 Agent 协作(SOP + 结构化通信) ✅ 已完成
6 Voyager 具身智能 + 终身学习 ✅ 已完成
7 MemGPT 层级记忆管理 ✅ 已完成
8 Computer Use GUI Agent 突破 📋 待读

推荐阅读顺序

Week 1: CoT ✅ → ReAct ✅ → Toolformer ✅(推理 + 工具基础,全部完成)
Week 2: AgentVerse ✅ → MetaGPT ✅ → Generative Agents(多 Agent 架构)
Week 3: Voyager ✅ → ChatDev → Reflexion(实践系统 + 反思)
Week 4: MemGPT ✅ → RAG vs Memory(记忆系统)
Week 5: GAIA → AgentBench(评测体系)
Week 6: Computer Use → Agentic RAG → Self-Discovering(前沿)

十二、参考资料

如果你也在学习 AI Agent,欢迎交流讨论,我的 blog:https://sunrong.site

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐