论文开篇指出:尽管 LLM 已经彻底改变了对话式 AI,它们受制于有限的固定上下文窗口(fixed-length context window),这在两类任务上尤其致命——长时间连续对话(如虚拟助理、陪伴 agent)和长文档分析。作者观察到,主流开源模型当时只能支撑「几十个来回的消息」,或者在推理一篇稍长的文档时就会超出最大输入长度。
为什么不直接把上下文窗口做大?论文给了三层论证:
于是作者提出核心问题:能否在不改动 LLM 本身的前提下,在固定上下文窗口内提供「无限上下文的假象」?
答案借自几十年前的操作系统智慧——虚拟内存分页(virtual memory paging):OS 通过在物理内存与磁盘之间换页,让应用程序可以处理远超实际内存容量的数据集,应用感知到的是一片「扩展的虚拟内存」。论文将这一思想移植为虚拟上下文管理(virtual context management):
上下文窗口 ≈ 主存/物理内存(RAM);上下文之外的外部存储 ≈ 磁盘。数据必须被显式「换入」上下文窗口,LLM 才能在推理中看到它;不重要的数据则被「换出」到外部存储。
关键的不同在于:OS 的换页由内核透明完成,而 MemGPT 利用 LLM 自身的函数调用(function calling)能力,让 LLM 扮演「换页决策者」——通过一个「LLM 操作系统」(即 MemGPT)自主检索被移出上下文的历史数据、把不重要的数据淘汰出去。这也是标题「Towards LLMs as Operating Systems」的含义:不是给 LLM 写一个 OS,而是让 LLM + 管理框架合起来像 OS 一样工作。
论文附了一张主流模型上下文长度对比(2024 年 1 月时点):Llama 2k、Llama 2 4k、GPT-4 8k/32k、Claude 2 100k、GPT-4 Turbo 128k、Yi-34B-200k 200k——用以说明即便最长的窗口,面对无限增长的对话史和大文档库也终会耗尽。
MemGPT 的全部机制可以概括为一句话:把 prompt 划分成分层记忆,用一个队列管理器和一个函数执行器,让 LLM 通过自我指导的函数调用在层级之间搬运数据。下面拆开讲到可复述实现的程度。
主上下文(prompt tokens)被切成三个连续区段:
两者的直观区分:recall 是「自动记录的全量流水账」,archival 是「主动整理的知识库」。
队列管理器(queue manager)负责 FIFO 队列与 recall storage 的运转:
这一套「70% 警告 → 100% 冲刷 50% + 递归摘要」的流程,就是 MemGPT 版的「换页算法」。
函数执行器(function executor)解释 LLM 输出的 completion tokens 并执行其中的函数调用,编排主上下文与外部上下文之间的数据搬运。论文强调记忆的编辑与检索是完全自我指导的(entirely self-directed):LLM 自主决定何时移动数据、移动什么。为此系统指令里包含两块内容:(1) 各记忆层级用途的详细说明;(2) 可调用函数的 schema 与自然语言描述。可推知的函数集包括:
conversation_search,按文本或日期查历史对话);错误反馈回路:LLM 的输出先由解析器校验(函数名、参数合法性),校验通过才执行;执行结果——包括运行时错误(比如 working context 已满还往里写)——都会作为消息反馈给处理器。这个回路让 agent 能从自己的失败操作中调整策略,配合 token 水位警告共同引导其记忆管理决策。
MemGPT 用事件(events)统一所有触发 LLM 推理的输入,类似 OS 的中断:
事件经解析器转成纯文本消息追加进主上下文,再喂给处理器——这就是 MemGPT 的事件循环。
心跳(heartbeat)与函数链(function chaining):多步任务(翻阅多页检索结果、跨文档聚合)需要连续调用多个函数。MemGPT 的做法是给函数调用加一个特殊标志:LLM 在生成函数调用时带上关键字参数 request_heartbeat=true,函数执行完毕后控制权立即交回处理器——函数输出进入主上下文,LLM 接着推理下一步,不必等外部事件。若不带该标志,则本轮推理让出(yield),MemGPT 暂停,直到下一个外部事件到来才再次运行 LLM。心跳机制是 MemGPT 能做多步检索(multi-step retrieval)的关键,也是后来各家 agent loop 里「工具调用后继续推理」模式的一个早期显式化。
评估覆盖两个领域:对话 agent(多会话一致性与参与度)和文档分析。三个处理器模型:GPT-4 Turbo(gpt-4-1106-preview,128k 窗口)、GPT-4(gpt-4-0613,8k 窗口)、GPT-3.5 Turbo(gpt-3.5-turbo-1106,16k 窗口);基线是不加 MemGPT 的同款裸模型(固定上下文,窗口满了走截断/摘要)。
实验基于 Multi-Session Chat(MSC,Xu et al. 2021)数据集:人类标注者分饰固定 persona 进行 5 个会话的多轮聊天(每会话十几条消息)。作者为实验新造了「第 6 会话」,并公开发布了增强版 MSC 数据集。
用户在第 6 会话提出一个明确指向前 5 个会话内容的问题(答案范围很窄,只能靠过去会话中的信息才答得出),测试 agent 能否保持与自己历史的一致。指标两个:ROUGE-L recall(因生成答案普遍比黄金答案冗长,取 recall)和 LLM judge 准确率(GPT-4 判断答案是否与黄金答案一致)。基线可看到前 5 个会话的有损递归摘要;MemGPT 则能通过分页搜索访问完整会话历史。结果(Table 2):
| 模型 | 准确率(LLM judge) | ROUGE-L (R) |
|---|---|---|
| GPT-3.5 Turbo | 38.7% | 0.394 |
| GPT-3.5 Turbo + MemGPT | 66.9% | 0.629 |
| GPT-4 | 32.1% | 0.296 |
| GPT-4 + MemGPT | 92.5% | 0.814 |
| GPT-4 Turbo | 35.3% | 0.359 |
| GPT-4 Turbo + MemGPT | 93.4% | 0.827 |
注意这个反差:裸 GPT-4 只有 32.1%——递归摘要是有损的,细节问题基本答不上;加上 MemGPT 直接冲到 92.5%,提升近 60 个百分点。结论不是「模型更强」,而是「给了模型翻档案的手」。
评估 agent 能否利用积累的用户知识,写出「抓人」的下一会话开场白。好开场白应引用 persona 中的信息点(MSC 的 persona 标签有效汇总了此前所有会话)。指标是 CSIM 相似度:SIM-1/SIM-3(与黄金 persona 标签的相似度,取 1 条/3 条)、SIM-H(与人类写的真实开场白的相似度)。结果(Table 3):人类基准 SIM-1 = 0.800,而 MemGPT (GPT-4) 达 0.868、MemGPT (GPT-3.5) 达 0.830、MemGPT (GPT-4 Turbo) 达 0.857——可媲美甚至超过人类手写开场白。关键机制是 working context:agent 平时把用户要点存进核心记忆,开场时直接引用。
沿用 Liu et al. (2023a) 的 retriever-reader 设置:问题来自 NaturalQuestions-Open(采样 50 题),检索器统一用 OpenAI text-embedding-ada-002 余弦相似度取 top-K 文档,考察 reader 准确率随 K 增大的变化;语料是 2018 年末 Wikipedia dump(作者随论文发布了 2000 万篇 Wikipedia 文章的 embedding)。基线为塞进更多文档只能截断,截得越多黄金片段越可能被截掉;MemGPT 则把全部文档载入 archival storage,靠分页调用检索函数逐批阅读。
论文图 6 的结论(图表转述):固定上下文基线的准确率随 K 增大先升后被截断拖垮,其上限约等于检索器本身的召回率;而 MemGPT 的准确率不随 K 增大而下降,因为它可以多次分页查询,不受窗口限制。两个诚实的负面观察:MemGPT + GPT-3.5 因函数调用能力不足而明显退化(GPT-4 才发挥出全部实力);且实践中 MemGPT 常在翻完整个检索库之前就提前停止翻页。此外 embedding 检索本身是所有方法的共同瓶颈——黄金文档常排在前十几名之外。
合成任务(扩展自 Liu et al. 2023a):键和值都是 128-bit UUID,值本身可能又是别的键,须多跳查找直到值不再是键。固定 140 个 UUID 对(约 8k tokens,恰好等于 GPT-4 基线窗口),嵌套层数 0–4,采样 30 种位置排列。结果(图 7 转述):
论文把自己与三条线区分开:(1) 长上下文 LLM(扩窗、位置插值等)——MemGPT 与之正交,窗口再大也能作为更大的「主存」被 MemGPT 管理;(2) 检索增强(RAG)——传统 RAG 是开发者写死的单次检索流水线,MemGPT 的检索由 LLM 自主发起、可多步迭代;(3) LLM as agents(ReAct、Toolformer 等函数调用/工具使用工作)——MemGPT 把工具指向了「自己的记忆」,让工具调用服务于上下文管理本身。
结论段的核心主张:把操作系统的分层内存管理与中断机制移植给 LLM,能在固定上下文限制内释放其潜力;MemGPT 在文档分析与多会话聊天两个领域证明,这种「OS 式」设计让 LLM 学会了管理自己的记忆,从而突破窗口约束。未来方向:把虚拟上下文管理应用到其他大上下文域、集成不同的存储层技术(如数据库、缓存)、进一步改进控制流与记忆管理策略。
明确或可从实验读出的局限:(1) 强依赖处理器的函数调用可靠性——GPT-3.5 与(当时的)开源模型带不动,这也是论文所有亮眼数字都出自 GPT-4 的原因;(2) 检索会提前停止,自主性带来的不确定性尚无硬保证;(3) 底层 embedding 检索的质量是天花板;(4) 每一步记忆管理都是额外的 LLM 调用,token 成本与延迟高于静态流水线(论文未展开量化)。
以今天(2026)的后见之明看,MemGPT 至少有四个概念被后续生态大规模继承:记忆分层(core/working memory + archival + 全量日志)、自编辑记忆(LLM 用工具改写自己的常驻上下文,今天各框架的 memory blocks / 自动记忆均是其变体)、记忆压力驱动的主动整理(水位警告触发转存,而非等溢出被动截断)、heartbeat 式多步工具循环。项目本身开源后演化为 Letta 平台,「LLM OS」的说法也从这篇论文的标题扩散成了一个方向的名字。它的对照面同样有教益:纯靠更长上下文窗口的路线并没有消灭这套设计——窗口越大,「什么值得占据窗口」的管理问题反而越突出。