Appearance
上下文压缩
上下文压缩不是高级优化,而是多轮 chatbot 和 Agent 很快就会遇到的基本功。
这节课解决什么问题
- 什么情况下必须开始压缩上下文
- 裁剪、摘要、检索回填分别适合什么场景
- 为什么压缩不是简单删内容,而是重组信息
什么时候该压缩
当你出现这些信号时,就不能继续机械追加历史消息了:
- 回答开始跑偏
- 响应明显变慢
- 费用持续升高
- 长工具输出把重点淹掉
- 快接近 context window 上限
最常见的三种做法
1. 裁剪
直接删除明显无关、过期、重复的历史消息。
适合:
- 闲聊内容很多
- 有明确的过期上下文
2. 摘要
把长历史压成一段更短的阶段性总结。
适合:
- 对话已经进入很多轮
- 还需要保留阶段结论
3. 检索回填
不把所有内容一直塞在消息里,而是在需要时再取回来。
适合:
- 文档很多
- 历史很长
- 某些信息不是每轮都需要
压缩的目标是什么
不是让上下文越短越好,而是让模型在有限窗口里,优先看到当前轮真正需要的信息。
所以压缩的本质是:
- 删掉噪音
- 保留结论
- 重组优先级
本节产物
- 一份上下文压缩策略表
- 一份“裁剪 / 摘要 / 检索”选型清单
- 一份阶段性摘要模板
课堂实作
- 给一段长历史分别做裁剪和摘要
- 判断一段信息该继续保留,还是改成按需检索
- 设计一版三层上下文:稳定规则、当前任务、阶段摘要
并入项目
这一课会直接进入后面 chatbot、Agent、RAG 的上下文管理设计。
面试会怎么问
- 为什么上下文压缩是 Agent 的基本功
- 裁剪、摘要、检索分别适合什么场景
