做长程任务的智能体,跑着跑着就会撞上一堵看不见的墙:上下文爆炸。无论是写复杂代码还是做深度搜索,随着调用工具的轮次增加,历史记录越来越长,显存很快见顶。过去业界的标准解法是做摘要或者滑动窗口截断,但这会直接破坏原有的前缀文本,迫使推理引擎把剩余内容全量重新 Prefill 一遍,算力浪费惊人。

2026 年 10 月 20 日,清华大学 NICS 实验室联合香港中文大学团队提交了论文《Cache Engineering for Agents》,并在 GitHub 上以 Apache 2.0 协议开源了针对智能体的缓存管理系统 AKV(代码库为 thu-nics/AKV)。这套基于推理框架 SGLang 构建的服务端系统,核心思路只有一句话:打破文本与缓存绑定的旧假设,允许系统在保留完整上下文对话的前提下,主动丢弃选定工具返回内容的 KV 状态,并对保留下来的位置编码重新映射。

上下文裁剪与 KV 缓存维护机制对比 传统机制:文本前缀绑定 裁剪动作:删除历史工具文本或摘要截断 系统后果:前缀哈希破坏,KV Cache 失效 计算开销:后续 Token 强制全量 Re-prefill 瓶颈:多轮 Agent 计算代价非线性暴增 AKV 机制:操作历史追踪 裁剪动作:保留对话文本,仅丢弃中间 KV 系统调度:重定位位置编码,重构 Radix 树 计算开销:零额外 Prefill,维持推理连贯 收益:释放显存并保持下游推理注意力依赖

从前缀复用到操作追踪

主流推理引擎如 SGLang 的 RadixAttention 或 LMCache,赖以运转的基石是前缀一致性:只要输入的 Token 序列前缀一致,对应的 KV 缓存就能直接复用。这种设计在普通单轮或多轮问答里极其高效,但放在长程任务里就显得呆板。

智能体在多轮迭代中,早期调用的网页抓取、文件检索等工具往往输出数万字的冗余内容。下游的思考过程一旦吸收了这些内容,在后续推理时,其实不再需要早期工具输出的完整中间状态。然而受制于静态前缀匹配,开发者不敢动这些原始文本,只能放任显存被死死占满。

AKV 换了个切入点。客户端在向 AKV API 发送请求时,依然传入全量原始消息与索引,但会附带两个扩展字段:drop_message 与 reposition。引擎不再把缓存视为纯粹的文本线性投影,而是追踪一组操作历史。它直接从显存中剥离那些被标记丢弃的工具输出 KV,同时将保留下来的后续状态在位置编码上做向前压缩。文本还在,但占地方的中间态已经被精准剥离,后续生成无需经历漫长的重新预填充。

算力账本上的降幅与暗礁

从账面上看,这套重构换来的收益非常直观。在 BrowseComp-Plus、GAIA-Text、SWE-bench Verified 和 xbench-DeepSearch-2510 四大基准测试中,AKV 相比传统的阈值总结方案,任务综合得分平均提升 1.7 分,同时任务预估成本降低了 27.7%。

具体到模型层面,MiniMax-M2.7 的任务运行成本从 5.0¢ 降至 4.4¢,而在 GPT-OSS-120B 上,单个任务成本更是从 11.2¢ 压到了 7.3¢。在硬件压测方面,部署在 8 卡 A800-80GB 的系统上,AKV 录得的峰值吞吐量达到 369 tokens/s(并发为 14),高于标准基线的 313 tokens/s(并发为 12),P95 延迟则从 43.16 秒降至 28.49 秒。

AKV 关键基准指标对比 -27.7% 任务预估算力成本 GPT-OSS-120B 从 11.2¢ 降至 7.3¢ 369 t/s 8卡 A800 峰值吞吐量 对比标准方案 313 tokens/s 28.49s P95 尾部延迟表现 基线对照组延迟为 43.16 秒

但若细看实验切片,收益背后并不全是坦途。

在 MiniMax-M2.7 跑 SWE-bench Verified 时,AKV 的得分实际上从 75.2% 微幅下滑到了 74.4%。消融实验也给出了明确边界:智能体丢弃工具输出的缓存影响不大,可一旦错误丢弃了自身的推理思考缓存(Reasoning Cache),模型质量就会断崖式下跌。此外,吞吐提升 1.18 倍与延迟优化 1.51 倍的数据,是在 AKV 并发 14 与基线并发 12 的不同峰值状态下测得,且测试设定为完成 30 个任务即停,而基线方案中途触发了一小时超时截断,并非完全对称的同口径对决。

  • 风险.粗暴剔除缓存极易伤及上下文表征,该方案高度依赖对内容类型的精细化标注,一旦误删推理链,生成质量将不可逆地劣化。

极致裁剪背后的系统代价

天下没有免费的午餐。现代推理引擎为了压榨显存带宽,建立了一整套高度精密的分块管理机制;而 AKV 为了实现任意位置的定向剔除与物理位置重压缩,付出了几乎是破坏性的工程妥协。

首先,系统的 KV Cache Page Size 必须强制设为 1。自 vLLM 提出 PagedAttention 以来,将 Page Size 设为 16 甚至更高已是共识,目的在于减少内存碎片和元数据管理开销。强行退回单 Token 粒度,意味着显存分配表的开销成倍放大,底层的显存碎片化隐患也成倍上升。与之相伴的是注意力后端的严重收窄,目前它仅支持 flashinfer、triton 和 fa3。

更大的阻碍在于与现代推理生态的割裂。在 AKV 的请求机制下,大量主流生产级优化被全线锁死:

特性分类AKV 支持现状生产环境影响
解码与加速不支持推测解码、Beam Search放弃了主流的大模型低延迟加速手段
分层与微调不支持 HiCache、外部会话缓存、LoRA无法做显存到内存的分层卸载,阻断多租户适配
并行架构不支持流水线并行(PP)、上下文并行(CP/DCP)超长文本跨节点扩展受阻,难以支撑特大模型
分离式部署仅限 Mooncake,禁 Staging Buffer/Offload/Checksum预填充与解码解耦(PD分离)的容错机制受限

淮南为橘,淮北为枳。在实验室的单任务长程测试里,这套剪枝方案能省下四分之一的算力;但若扔进现代云端推理集群,它所放弃的推测解码和分层存储,本身就是吞吐大户。

  • 结论.AKV 的意义不在于给出了一个可以直接通用的生产级服务,而在于打破了“文本即状态”的教条,证明了智能体系统完全可以向下渗透、实现应用感知的缓存调度。

目前该仓库在 GitHub 上几乎没有实际落地的社区讨论,更谈不上经过高并发检验。对大多数开发者来说,现在就引入这套高度侵入、且对 Page Size 提出苛刻要求的系统并不现实。真正的分水岭,在于 SGLang 或 vLLM 官方后续能否吸纳这种“操作历史感知”的语义,并在不牺牲现代显存分页体系的前提下完成原生收敛。