压缩即记忆:上下文管理的本质

phenix-fledgling Lv5

大多数人把”上下文压缩”理解成省 token 的优化手段。读完三个开源实现后我的结论是:压缩就是记忆处理本身。人不会记住每一句原话,只会留下”发生过什么、结论是什么”——压缩做的就是这件事。

四层记忆模型

对应物 载体 保真度
工作记忆 当前上下文窗口 每次请求的 messages 原文
中期记忆 压缩摘要 历史被蒸馏成的一段要点 有损
短期记忆 尾部保留区 最近 N 个用户轮的原文 原文
长期记忆 磁盘知识库 用户显式”记住”的、导入的经验 原文+检索

压缩触发时(估算 token 超过窗口的某个比例,比如 85%),把较早的历史蒸馏成摘要(中期记忆),最近几轮原文保留(短期记忆),拼起来继续工作。

三条硬规则

  1. 切点必须落在用户消息前。绝不能把”assistant 调工具”和”工具结果”切开——孤儿 tool_call 会被模型端拒绝。
  2. 摘要有质量合同。蒸馏提示词必须要求保留:用户目标、关键事实与决定、已完成动作、未决事项。丢了这些,Agent 醒来就”失忆断片”。
  3. 压缩只动工作记忆,不动真相源。磁盘上的会话日志永远是全量原文,压缩是运行时的视图变换。恢复会话时重放全量,再按需重新压缩。

三家的实现档位

  • OpenCode:最简单,超阈值一次性把旧历史换成一段摘要。
  • Codex:仗着大窗口尽量不压,配合两阶段长期记忆管线在会话之间沉淀。
  • grok-build:最完整——三种压缩风格可选,摘要质量有校验,甚至有”dream”机制在空闲时把会话记忆再蒸馏进长期库。

落地体会

我自己的实现选了 OpenCode 档位(阈值 + 安全切点 + 单段蒸馏),全部逻辑 70 行。但”压缩即记忆”这个视角改变了整个系统设计:长期记忆的写入(用户说”记住”)、中期记忆的生成(压缩)、短期记忆的保留(尾部窗口),三者用同一套心智模型统一起来,不再是三个孤立功能。

  • 标题: 压缩即记忆:上下文管理的本质
  • 作者: phenix-fledgling
  • 创建于 : 2026-07-28 12:00:00
  • 更新于 : 2026-07-29 02:35:18
  • 链接: https://blog.xugua.xyz//post/压缩即记忆:上下文管理的本质.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
压缩即记忆:上下文管理的本质