上下文压缩(Context Compaction)
科普速读
- 它是什么: 上下文接近限制时,压缩会缩短或摘要部分对话内容。
- 适合什么场景: 保留选定历史信息,继续较长的交互。
- 主要边界: 摘要可能漏掉后续需要的细节。
概览
长时间排查 Bug 时,对话可能超过上下文限制。应用可以摘要较早的消息,并保留近期消息,让任务继续。
核心定义
上下文压缩是减少发送给模型的上下文内容的过程。系统可能删除、摘要或替换较早内容。不同产品采用的方法和触发条件各不相同。
背景与发展
压缩是管理长对话和 Agent 运行中有限上下文的一种方式。它不会增加模型的上下文上限,也不等同于保存长期记忆。
工作机制(How It Works)
- 系统判断需要减少上下文。
- 系统选择要删除或摘要的较早内容。
- 系统保留或生成更短的表示。
- 后续请求使用压缩后的上下文。
- 用户检查重要决定和约束是否仍然保留。
在软件测试与开发中的应用
压缩前,记录当前代码版本、失败检查、已作决定和未解决的问题。压缩后,继续改动前先确认这些信息。
优势与局限
压缩可以减少每次请求需要发送的历史内容,让任务继续进行。但它可能丢失精确措辞、命令输出或边界案例,也可能把过时摘要和当前事实混在一起。
与相近术语对比
压缩会减少当前上下文。上下文窗口是模型输入容量的限制。记忆保存以后可能再次使用的信息。提示词缓存复用重复输入以提高效率,不负责摘要历史。
实施建议(Best Practices)
保留后续步骤需要的精确需求、决定和标识符。让摘要之外仍有可查证的信息来源。执行高影响操作前检查压缩后的状态。
常见误区(Pitfalls)
不要把压缩当成无损过程。不要假设模型仍能访问被省略的内容。应重新检查文件和测试输出,不要只信任旧摘要。
FAQ
上下文压缩会扩大模型的上下文窗口吗?
不会。它会减少或摘要发送给模型的内容,但不会改变模型的上下文上限。