AI 编程与智能体工程 · 第 17 期

历史越滚越长·何时压缩丢什么

when to compress, what to drop

上下文 20 万 token 还硬塞——模型注意力散,关键信息被淹没。压缩不是删旧消息,是按"信息密度"重组:旧轮摘要成结论,近轮原样保留,关键事实单独存。无脑删旧 = 把项目目标也删了。
⏱ 约 9 分钟 🎯 Agent 跑着跑着上下文爆了的工程师 📦 源:context-engineering §6

01压缩不是删旧消息

最常见的错误压缩就是"保留最近 N 轮,删掉前面的"——结果把项目目标、关键约束、已做的决策全删了,Agent 接着干就忘了在干什么。

正确的压缩是按"信息密度"分三类处理:

这样压缩后,token 大降,但关键信息没丢。压缩的目标不是变短,是让模型注意力集中在正在做的事上。

压缩不是变短,
是让注意力集中。
灏天文库 · AI 编程与智能体工程 P.51

02压缩演示:拖滑块保留 N 轮

下面是一次 12 轮的对话。拖滑块决定保留最近几轮原文,其余被摘要。看 token 怎么降、关键信息保不保得住。

🗜️ 上下文压缩演示
拖滑块设"保留最近 N 轮原文",看压缩效果。
4 轮
压缩前 token
12k
压缩后 token
6k
节省
50%

03什么时候该压缩

不是越早压缩越好——太早压缩会丢细节,太晚压缩会爆窗口。三个信号说明该压了:

压缩频率别太高——每次压缩本身要调一次模型做摘要,有成本。触发压缩靠信号,不靠固定轮数。

触发压缩靠信号,
不靠固定轮数。
灏天文库 · AI 编程与智能体工程 P.52

04带走这套清单

✅ 上下文压缩 6 条可执行规则

  1. 关键事实单独存"项目卡片"放上下文顶部,永远不删、不进摘要。
  2. 旧轮对话摘要成结论(已实现 X、遇到 Y、决定 Z),不保留原文。
  3. 近轮对话原样保留,细节还在用,别压缩。
  4. 压缩触发靠信号:token 70%、Agent 重复问、任务阶段切换,别按固定轮数。
  5. 摘要用便宜小模型做,主模型只读摘要结果,省成本。
  6. 压缩后做一次"信息保真检查":让 Agent 复述项目目标和关键决策,丢了就补回。
无脑删旧,
是把项目目标也删了。
灏天文库 · AI 编程与智能体工程 P.53