LLM agent 的 5 种上下文压缩策略
把 agent 的上下文压缩之后,token 数可能降了,账单反而更高。
原因不在 token 数本身,而在 prefix caching 里,token 数和最终计费额本来就是两回事。
一个长时间运行的 agent session,每次调用都会把整段历史重新发一遍,只是在 transcript 末尾再追加模型回复和工具输出。
之所以还能负担得起,是因为每次请求前面的那一大段字节都和上一轮完全一样。
provider 会把这段内容按 cache read 计费。在 Anthropic 这里,这部分价格是 base input 的 10%,所以只要上下文一直只在尾部增长,不管历史有多长,成本都还算可控。
compaction 改的不是 transcript 的尾巴,而是前面那一段。harness 会把原来的对话轮次换成摘要,所以从这次修改开始,后面的内容就都和之前缓存过的版本对不上了。
假设一个 session 已经积累了 100K tokens 的历史。
正常情况下,下一次调用会把这段历史按 cache read 读取,价格相当于按原价计 10K tokens。
但如果你把它压成一个 10K 的摘要,之前可命中的内容就没有了,这 10K 会按 1.25x base input 记成 cache write,也就是 12.5K。上下文缩小了 10 倍,调用反而更贵。
后面多跑几轮,这部分额外成本确实能慢慢摊回来。但 harness 往往是碰到 token 阈值就触发 compaction,长 session 会反复压缩,每压一次都会把这条缓存边界重新洗掉。
这并不是说 compaction 做错了。context window 本来就是有限的,工程上常见的做法主要有 5 种。
Truncation 会在快碰到上限时直接丢掉最老的 tokens。它实现成本最低,也是唯一一种会永久丢失早期决策的方法。
Rolling summarization 会把每次新摘要并进一个持续存在的状态里,而不是每次从头重写,但它依然会在每次更新时移动缓存边界。
Prompt compression 会用一个小模型给每个 token 打分,再把相关性低的 token 丢掉。LLMLingua 报告说最多可以做到 20x 压缩,同时只带来很小的精度损失;LLMLingua-2 则用一个 BERT 大小的 encoder 来完成同样的打分。
RAG-based retrieval 会把历史移进 vector DB,只把和当前 query 匹配的内容再注回 prompt,所以真正的风险点会变成 retrieval precision。
前 3 种做法都是直接删文本,RAG 则是把文本移进一个外部存储里,只有 retrieval 真把它取回来时,agent 才会再次看到它。
KV cache eviction 发生在 serving layer。它丢掉的是最不可能再被用到的条目,判断方式可能看 attention score,比如 H2O 和 SnapKV,也可能看位置,比如 StreamingLLM。
完整历史还是会照常送进模型。真正被丢掉的,是 GPU 为这些 tokens 算出来的 KV tensors。既然这些 tensor 本来就是从 tokens 推出来的,eviction 的代价就更接近 prefill work,而不是信息本身。
这些内容随时都能重新计算。如果某些 KV blocks 放不进 GPU memory,它们还可以转到 CPU DRAM、本地 NVMe 或远端存储里,下次请求再加载回来,而不是重新走一遍 prefill。
LMCache 把这件事做成了一个给 vLLM、SGLang 和 Dynamo 用的开源层。通过 CacheBlend,它不仅能复用 prompt 开头那段缓存块,也能复用 prompt 任意位置上的缓存块。
Repo:https://github.com/LMCache/LMCache
更多知识学习,尽在 https://www.dailydoseofds.com/
部署工具推荐
Zeabur:少折腾服务器,把时间留给产品
前端全栈、小程序后台,还是OpenClaw、Claude Code这类 AI 应用,它都能让你跳过配置服务器的琐事,push 完代码就上线。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~