Skip to content

上下文压缩

上下文压缩不是高级优化,而是多轮 chatbot 和 Agent 很快就会遇到的基本功。


这节课解决什么问题

  • 什么情况下必须开始压缩上下文
  • 裁剪、摘要、检索回填分别适合什么场景
  • 为什么压缩不是简单删内容,而是重组信息

什么时候该压缩

当你出现这些信号时,就不能继续机械追加历史消息了:

  • 回答开始跑偏
  • 响应明显变慢
  • 费用持续升高
  • 长工具输出把重点淹掉
  • 快接近 context window 上限

最常见的三种做法

1. 裁剪

直接删除明显无关、过期、重复的历史消息。

适合:

  • 闲聊内容很多
  • 有明确的过期上下文

2. 摘要

把长历史压成一段更短的阶段性总结。

适合:

  • 对话已经进入很多轮
  • 还需要保留阶段结论

3. 检索回填

不把所有内容一直塞在消息里,而是在需要时再取回来。

适合:

  • 文档很多
  • 历史很长
  • 某些信息不是每轮都需要

压缩的目标是什么

不是让上下文越短越好,而是让模型在有限窗口里,优先看到当前轮真正需要的信息。

所以压缩的本质是:

  • 删掉噪音
  • 保留结论
  • 重组优先级

本节产物

  • 一份上下文压缩策略表
  • 一份“裁剪 / 摘要 / 检索”选型清单
  • 一份阶段性摘要模板

课堂实作

  • 给一段长历史分别做裁剪和摘要
  • 判断一段信息该继续保留,还是改成按需检索
  • 设计一版三层上下文:稳定规则、当前任务、阶段摘要

并入项目

这一课会直接进入后面 chatbot、Agent、RAG 的上下文管理设计。

面试会怎么问

  • 为什么上下文压缩是 Agent 的基本功
  • 裁剪、摘要、检索分别适合什么场景

大齐 AI 课堂 · 程序员的 Agent 开发课