研究背景
大语言模型(LLM)在代码编写、复杂推理等长时工作会话中,会逐步积累大量核心状态——比如代码库的架构映射、技术选型的权衡决策、项目的编码规范等,这些内容构成了 LLM 对任务的完整心智模型,但构建这一模型需要消耗大量的时间和令牌成本。
当会话积累的内容触达 LLM 的上下文窗口上限时,平台的原生压缩功能会对已有内容做大幅精简,例如 Claude Code 的/compact 指令曾将 132k 令牌的会话内容压缩至 2.3k 令牌,直接丢弃了 98% 的细节信息,让 LLM 失去了耗时构建的精细理解。而新的会话只能从头重建上下文,这造成了根本性的效率浪费。
现有解决方案均存在明显短板:检索增强生成(RAG)仅能补充文档,无法保留会话状态;MemGPT 仅支持单会话的内存分页,不能跨会话复用;记忆插件只保存摘要,丢失对话细节;而 LongLLMLingua 等提示压缩技术,仅在模型/嵌入层修改上下文表示,未处理原始对话日志的结构冗余。
简单来说,当前 LLM 的上下文管理就像没有保存功能的记事本,写满了只能删掉重来,而开发者亟需一种能'保存进度、复用内容、精简冗余'的上下文管理方案,这正是本研究的核心出发点。
一段话总结
这篇研究提出了上下文内存虚拟化(CMV) 技术,为 LLM 智能体解决长会话中上下文窗口受限、状态易丢失的问题,其核心是基于 DAG 的状态模型 实现会话状态的版本化管理与跨会话复用,搭配三阶段结构无损修剪算法,在完整保留用户与助手对话原文的前提下剥离机械冗余内容,平均减少 20% 令牌数、最高达 86%,混合工具使用会话平均减 39%;经 76 个真实编码会话的单用户案例评估,该技术在提示缓存机制下具备经济可行性,混合工具会话 10 轮内即可实现成本盈亏平衡,同时 CMV 通过分支功能避免了从头重建上下文的高额成本,虽存在修剪无语义判断的局限性,但为 LLM 智能体的上下文管理提供了工具层解决方案,也为未来 AIOS 架构的持久化上下文子系统设计提供了参考。
详细总结
本文聚焦 LLM 智能体长会话中上下文窗口受限、累积状态易丢失的核心问题,提出上下文内存虚拟化(CMV) 技术,从模型设计、算法实现、经济验证三方面完成方案落地,并分析了技术局限性与未来研究方向,最终验证了工具层解决 LLM 上下文短暂性问题的可行性。
一、研究背景与现存问题
- LLM 长会话的核心痛点:LLM 编码智能体在长时工作中会累积代码库架构、决策等大量状态,上下文窗口满后,原生压缩(如 Claude Code 的/compact)会大幅精简令牌(实测 132k 令牌压缩至 2.3k,减少 98%),丢失精细理解,新会话需从头重建上下文,存在根本性效率低下。
- 现有解决方案的局限
- 状态保留类:RAG 仅增强提示不保留会话状态;MemGPT 仅支持单会话内存分页;记忆插件仅保存摘要,丢失对话细节;原生会话工具无命名状态和谱系跟踪。
- 提示压缩类:LongLLMLingua、RECOMP 等技术聚焦模型/嵌入层的上下文表示修改,未处理原始对话日志的结构冗余,与本文方案形成互补。
- 核心需求:需要一种在工具层管理原始对话日志,既能减少令牌数,又能完整保留模型合成理解的上下文管理方案。
二、CMV 的核心设计与贡献
CMV 借鉴操作系统虚拟内存技术,抽象掉 LLM 上下文窗口的物理令牌限制,支持按需加载保存的状态,核心有三大贡献:基于 DAG 的状态模型、三阶段结构无损修剪算法、提示缓存下的实证成本分析,且方案与智能体无关,可适配所有存储对话日志并使用工具调用模式的系统。
三、基于 DAG 的状态模型
- 形式定义:将会话历史建模为有向无环图 (G=(V, E)),其中节点 (v) 为不可变快照(会话 JSONL 日志的副本 + 元数据),有向边 ((v_i, v_j)) 为分支(从快照 (v_i) 派生的独立工作会话,最终生成 (v_j))。
- 四大核心原语操作
- Snapshot:将当前会话生成为不可变快照节点,原会话不修改;
- Branch:从快照生成新会话,默认启用修剪,可添加定向消息;
- Trim:组合快照与分支,一步完成当前会话的修剪并启动新会话;
- Tree:可视化 DAG 结构,实现类似 git log --graph 的对话谱系展示。
- 实践意义:实现,用户可将耗时构建的上下文(如 80k 令牌的架构理解)生成为根快照,基于此派生多个并行分支完成不同任务,无需重复构建上下文。


