背景与动机
Agent 会话越长,上下文越容易膨胀。上下文压缩的目的不是简单删内容,而是保留任务继续执行所需的关键事实。
真正重要的是:压缩后 Agent 还能不能知道目标、边界、已确认决定和当前状态。

记忆分层
可以分成四层:
系统规则:工具和平台层约束项目规则:仓库里的长期规则会话决定:本轮用户已确认的选择临时细节:当前排查过程中的中间信息压缩时优先保留前三层,临时细节只保留和当前任务直接相关的部分。
当前会话决定清单
长任务里建议维护:
- 当前目标。
- 本轮只做什么。
- 明确不要做什么。
- 已确认风格。
- 用户纠正过的误区。
- 已修改文件。
- 验证命令和结果。
- 剩余风险。
这份清单比完整聊天记录更适合交接。
什么应该进入长期记忆
适合:
- 项目固定编码规则。
- 常用命令。
- 目录规范。
- 长期有效的用户偏好。
不适合:
- 一次性任务要求。
- 尚未验证的 Bug 猜测。
- 临时绕过方案。
- 当前分支特有的中间状态。
压缩后的恢复步骤
上下文压缩后,Agent 应该先做:
读取当前决定清单检查工作区状态确认最后一次验证结果继续未完成的最小任务不要压缩后重新自由推断需求。
常见陷阱
- 压缩只保留结论,不保留边界。
- 把临时判断写入长期记忆。
- 上下文恢复后重新开始规划,丢失用户已确认决定。
- 只记录改了什么,不记录为什么改。
四分类记忆的实战理解
可以按稳定性理解:
事实记忆:项目使用 Astro、内容在 src/content/notes。偏好记忆:用户希望简洁直接、不要额外扩展。流程记忆:修改前先读规则、修改后跑校验。经验记忆:某类错误之前如何排查。越稳定、越可复用,越适合沉淀;越临时、越不确定,越应该留在当前会话里。
生图提示词
建议插入在 ## 记忆分层 前面。
文件名建议:image/06-context-compression-memory-01.png
插入 Markdown:
生图提示词:
画一张上下文压缩与记忆分层示意图,浅色背景。左侧是长会话上下文,包含聊天记录、工具结果、用户决定、临时猜测;中间是压缩器,筛选出关键状态;右侧是压缩后的决定清单:目标、边界、已确认规则、修改文件、验证结果、剩余风险。底部画四类记忆:事实、偏好、流程、经验。中文标签清楚,技术教学风格。一句话总结
上下文压缩的目标是保留可继续执行的决策状态,而不是保存完整聊天历史。