Contextual Memory Virtualisation: DAG-Based State Management and Structurally Lossless Trimming for LLM Agents

agent 2602.22402 — Cross-paper Synthesis

L3 Per-Paper Synthesis: CMV (2602.22402) #

Contextual Memory Virtualisation: DAG-Based State Management and Structurally Lossless Trimming for LLM Agents Cosmo Santoni | 2026-02 | Category: agent

§1 相关论文 #

CMV 处于 agent 上下文管理与 agent serving 基础设施两个研究簇的交叉地带。以下按关联紧密度排序:

直接相关:同一系统的内部架构分析 #

同层(上下文/token 管理)但不同机制 #

同域(agent serving KV cache 管理)但不同栈层 #

互补视角:agent 执行瓶颈刻画 #

正交但概念关联:agent 执行框架 #


§2 本篇 vs 相关论文的 delta #

Delta 1:操作层次——唯一在 userland 解决跨会话持久化的工作 #

agent 上下文管理领域的其他所有工作——Continuum 的 KV cache TTL [2511.02230]、SideQuest 的辅助线程 eviction [2602.22603]、SAGA 的 WA-LRU [2605.00528]、PBKV 的分层淘汰 [2605.06472]——全部在 serving 基础设施层 运行,管理 GPU 显存中的 KV cache。它们解决的是"在一次 agent 执行中如何高效管理内存"。

CMV 独特地在 用户工具层 运行,操作的是磁盘上的 JSONL 文件。它解决的是"跨多次 agent 会话如何复用累积理解"——一个 serving 层完全不触及的问题。即使 Continuum 完美保留了 KV cache、SAGA 完美预测了 cache 复用,用户仍然需要 CMV 的 snapshot/branch 来避免新会话从零开始重建上下文。

增量 vs 全新:跨会话持久化是 CMV 的独有贡献,不是对已有方案的增量改进。

Delta 2:规则化 vs 语义化裁剪——精度 trade-off 的不同选择 #

SideQuest 用 LRM 自身的语义推理判断 tool response 是否过期,215 条训练 trace 即可激活 eviction 能力,精度损失仅 2–5% [2602.22603]。CMV 完全不做语义判断——按类型盲删 tool output、base64、metadata,"结构无损"但可能丢失模型后续推理所需的信息 [2602.22402]

这是一个 fundamental trade-off:

维度CMVSideQuest
决策者静态规则(7 条 trim rule)LRM 语义推理
额外计算零(纯文本处理)辅助线程 ~110–140 token/次
训练需求215 条 LoRA 微调
精度保证无测量FRAMES −2%, BrowseComp −5%
适用范围任何遵循 tool_use/tool_result schema 的 API仅 gpt-oss-20b(未验证其他模型)

CMV 的零计算成本使其可以无条件部署,但缺少精度保证是一个显著弱点。

Delta 3:手动 vs 自动——agent autonomy 的光谱 #

CMV 的四个原语(Snapshot, Branch, Trim, Tree)全部由用户手动触发 [2602.22402]。用户决定何时快照、何时分支、何时裁剪。

相比之下,Continuum 的 TTL 自动计算 [2511.02230]、SAGA 的 WA-LRU 自动淘汰 [2605.00528]、PBKV 的预测驱动淘汰 [2605.06472]、PASTE 的投机执行 [2603.18897] 全部是自动化的。Claude Code 自身的 5 层 compaction 也是自动的 [2604.14228]

CMV 在 autonomy 光谱上处于最低端——这既是其弱点(需要人工判断),也是其优势(不会做出错误的自动决策)。

Delta 4:经济模型——唯一建模 prompt caching 经济性的工作 #

CMV 的 break-even 分析($n^* = \lceil \Delta_{\text{penalty}} / \Delta_{\text{savings}} \rceil + 1$)[2602.22402] 是 agent 类别中唯一显式建模 prompt caching 经济性的工作。Continuum、SAGA、PBKV 都以延迟或 TCT 为优化目标,未考虑 API 定价对决策的影响。对于 API 付费用户,CMV 的经济模型提供了"该不该 trim"的定量决策工具。

Delta 5:DAG 版本控制——概念新颖但实现简单 #

CMV 的 DAG 状态模型从 OS virtual memory 和 Git 版本控制借鉴类比 [2602.22402],SAGA 的 AEG [2605.00528] 和 SGH 的 scheduler DAG [2604.11378] 也用 DAG 建模 agent 行为。但这三者的 DAG 语义完全不同:

系统DAG 节点DAG 边用途
CMV不可变快照分支关系会话状态版本控制
SAGA AEGLLM 推理步骤转移概率预测 KV cache 复用
SGH任务节点依赖关系调度并行执行

CMV 的 DAG 在形式化上最简单(实际是 directed tree,DAG 术语是为未来 merge 预留的 [2602.22402]),但在概念上最接近 Git——这使其对开发者用户有天然的 mental model 优势。


§3 可攻击面 #

Attack 1:n=1 用户、76 个会话——统计效力极弱 #

CMV 的全部实验数据来自单个用户三个月的 Claude Code 会话 [2602.22402]。对比 SideQuest 的 424+500 个标准 benchmark 样本 [2602.22603]、SAGA 的 500+812 个 benchmark 任务 [2605.00528]、PBKV 的三个 benchmark × 两个模型的全量评估 [2605.06472],CMV 的评估在统计上几乎不可信。

具体攻击:bloat profile 分布(16% mixed vs 84% conversational)可能是该用户特有的编码风格的产物。一个大量使用 image generation、web scraping 或代码执行的用户可能有完全不同的分布——mixed 比例可能高达 50%+ 或低至 5%。没有多用户验证,论文的 "20% mean reduction" 数字不可泛化。

Attack 2:主要价值未量化——论文自承但未解决 #

论文明确承认:"branching 带来的 context rebuilding 避免是 primary value proposition,但仅以定性论述支撑" [2602.22402]。"10–20 turns / 15–30 min" 的 rebuilding 成本是观察性估计,没有 A/B 对照实验。

具体攻击:如果 CMV 的主要价值无法量化,那么论文实际量化的 trimming 价值(20% mean reduction, 40-turn break-even for conversational sessions)本身可能不足以证明方法的价值。64/76 个 conversational 会话的 break-even 需要 40 轮——许多会话在此之前就会自然结束,使 trimming 成为净亏损。论文通过 60-turn cap 淡化了这一点。

Attack 3:无精度测量——"structurally lossless" 不等于 "semantically lossless" #

CMV 声称保留所有 user/assistant 消息 [2602.22402],但 SideQuest 的实验清楚展示了 heuristic eviction 可能导致 20–60%+ 的 non-completion rate [2602.22603]。CMV 删除的 tool output 可能包含模型后续推理所需的关键信息。

具体攻击:一个具体的失败场景——用户在 session A 中让模型读取一个 800 行的配置文件并分析其结构。模型的 assistant response 总结了关键配置项。用户 snapshot + branch 并 trim 后,原始 800 行文件内容被 stub 为 "[Trimmed: ~3200 chars]"。在新分支中,用户问"那个配置文件的第 73 行是什么"——模型只有自己的总结,没有原始内容,必须重新读取文件(如果文件仍然存在的话)。这是 CMV 自己承认的缓解策略("如果模型需要文件内容,简单重新读取")[2602.22402],但重新读取本身就是 token 成本——trim 节省的 token 可能被后续重读部分吞噬。这个交互成本从未被测量。

Attack 4:Claude Code 原生 compaction 正在改善——CMV 的窗口期可能很短 #

Dive into Claude Code 揭示了 Claude Code 已经有五层渐进式 compaction pipeline [2604.14228],且 Anthropic 持续迭代这些机制(5 pre-model shapers + model-generated summary)。如果 Anthropic 改进 auto-compact 的保真度(例如将 98% 压缩率降为 80%,同时保留更多结构化信息),或引入原生的 session branching(Claude Code 已有 --fork/rewind),CMV 的价值空间将被大幅压缩。

具体攻击:CMV 在 userland 解决的问题(孤儿 tool result、pre-compaction 跳过、base64 剥离)本质上都是 API schema 设计和 agent runtime 设计的缺陷 [2602.22402]。三遍架构存在的唯一原因是 LLM API 的 tool_use/tool_result 严格配对约束——未来 API 松绑此约束将使 Pass 2 完全消失。CMV 是对当前系统缺陷的 patch,不是对新能力的发明。

Attack 5:经济模型假设不稳定 #

Cost model 假设 $h = 0.9$ 缓存命中率 [2602.22402],但 trim 本身会破坏 prompt prefix,导致首轮 $h = 0$。论文在 break-even 分析中已考虑了这一点($C_{\text{cold}}$),但更深层的问题是:如果用户在 branch 后的前几轮频繁修改方向(常见于探索性编码),每次方向变化都可能导致缓存失效,使后续轮的 $h$ 远低于 0.9。此外,Anthropic 的定价策略可能改变——cache read/write 价格比、上下文窗口大小、甚至从 per-token 转向 subscription——都会使经济模型的数字失效。


§4 生态位 #

范式定位:userland patch vs infrastructure innovation #

CMV 在 agent 生态中占据一个独特但脆弱的位置——在系统层面缺失原语时的 userland 替代方案

类比:早期 Unix 没有虚拟内存时,应用程序自己做 overlay 管理;有了 OS 级 VM 后 overlay 消失了。CMV 自己也明确使用了这个类比 [2602.22402],但讽刺的是,这个类比暗示 CMV 的终局是被系统层吸收——当 Claude Code(或竞品)原生支持 named snapshots、DAG branching、selective trimming 时,CMV 就不再需要了。

SGH 论文对此提供了理论框架:SGH 认为 agent 执行应该从 opaque Agent Loop 迈向 structured graph harness [2604.11378]。如果 agent runtime 演进到 SGH 描述的方向——每个节点有独立 context、plan 可版本化、recovery 有界——CMV 解决的问题在架构层面就被消解了。

采用证据 #

CMV 的参考实现已开源(github.com/CosmoNaught/claude-code-cmv)[2602.22402],但论文未报告除作者外的用户采用数据。作为一个针对 Claude Code 的 CLI wrapper,其潜在用户群限于 Claude Code 用户且有长会话 context 管理需求的开发者。

与 serving 层方案的互补性 #

CMV 与 serving 层方案(Continuum、SAGA、PBKV)不冲突——它们在栈的不同层面运行。一个完整的 agent context 管理方案可以同时包含:

  1. 用户层:CMV 的 snapshot/branch 进行跨会话状态持久化
  2. Runtime 层:Claude Code 的 5 层 compaction 进行单会话内的 context 压缩
  3. Serving 层:Continuum/SAGA/PBKV 的 KV cache 管理进行 GPU 显存优化
  4. 但这种互补性也意味着 CMV 的"独特贡献"仅限于第 1 层——这一层的复杂度和技术壁垒远低于 2 和 3。

    时效性判断 #

    CMV 的价值窗口取决于两个外部因素:

    1. 原生 session 持久化:如果 Claude Code / Cursor / Windsurf 等 coding agent 原生支持 snapshot + branch + selective trim,CMV 被吸收(估计 6–18 个月内可能发生)
    2. context window 扩展:如果 context window 从 200K 增长到 2M+,autocompaction 触发频率大幅降低,CMV 的 trimming 价值进一步下降(正在发生)

    3. §5 未探索方向 #

      方向 1:结构化裁剪 + 语义 eviction 的混合方案 #

      CMV 的规则化裁剪(零计算成本、无训练需求)与 SideQuest 的语义推理 eviction(高精度、需要训练和额外推理)处于 trade-off 的两极 [2602.22603]。一个自然的混合是:CMV 的三遍扫描做确定性基线清理(base64、metadata、orphan tool results 这些永远安全删除的内容),然后用 SideQuest 风格的语义推理做选择性 tool output eviction(判断哪些 tool output 的语义已被 assistant response 完全吸收)。

      这正是 PBKV 的"确定性护栏 + 概率系统"分层架构 [2605.06472] 在 conversation log 层面的等价物。PBKV 的 Lipschitz 退化保证 [2605.06472] 提供了一个可借鉴的理论框架——确保语义 eviction 的增益随预测精度连续变化而不断崖式下降。

      方向 2:将 DAG 版本控制与 serving 层 KV cache 管理打通 #

      当前 CMV 的 branch 操作需要创建新会话并从零加载 JSONL 到 API——代价是 $0.53(84k token at cache-write rate)[2602.22402]。如果 serving 层支持 SAGA 风格的 session-affinity [2605.00528] 或 Continuum 风格的 KV cache TTL [2511.02230],可以将 snapshot 操作与 GPU 端的 KV cache 快照绑定——branch 时不需要重新 prefill,而是直接 fork GPU 上已有的 KV cache。这将 branch 的一次性成本从 $0.53 降到接近 $0。

      方向 3:自动化的 snapshot/branch 决策 #

      CMV 依赖用户手动决定何时 snapshot/branch [2602.22402]。PASTE 展示了 agent tool-call 模式的可预测性(55% edit→test、51% search→fetch)[2603.18897];PBKV 展示了 GraphSAGE 可以高精度预测 agent 调用序列 [2605.06472]。一个自然的扩展是用类似的模式挖掘自动识别"高价值 snapshot 时机"——例如当模型完成了一个大型架构分析(检测方式:连续多轮 file read 后跟一个长 assistant response),自动提示或执行 snapshot。

      方向 4:多用户共享 DAG + 权限控制 #

      CMV 当前是单用户 CLI 工具 [2602.22402]。Claude Code 的 agent teams 模式已经支持多 agent 协作(约 7× token 消耗)[2604.14228]。将 CMV 的 DAG 扩展为多用户共享——用户 A 的 architecture analysis snapshot 可以被用户 B fork 用于 feature implementation——需要解决权限控制、并发分支合并、冲突解决等问题。这本质上是将 CMV 从"Git for conversations"的类比推进到真正实现 Git 的多人协作语义。

      方向 5:bounded trimming + contract validation #

      SGH 的 bounded termination 证明和 contract validation [2604.11378] 提供了一个可借鉴的框架。CMV 可以引入 trim contract——对每次 trim 操作定义"什么必须保留"的形式化约束(不仅是 user/assistant 消息,还包括特定 tool 调用的输出,如测试结果、错误信息),并在 trim 后验证 contract 满足。这将 CMV 的"structurally lossless"声明从自然语言升格为可验证的形式化属性。CPU-Centric 的 profiling 数据 [2511.00739] 可以指导 contract 设计——哪些 tool output 类型对后续推理最关键,应该被 contract 保护。