正在打开每日关注
正在打开每日关注
对比两种上下文压缩策略,分析信息保留、缓存热度与长会话记忆的取舍。
虽然claude code和codex的上下文自动压缩都叫 compact,但二者的实现和思想其实完全不一样,这两个产品对上下文的处理几乎是相反的。 Claude Code 把上下文压缩的力度拆成了从轻到重好几档,能轻度压缩解决就尽量轻度压缩,非必要不丢弃上下文,因为轻度压缩本质上是不会损失任何上下文的,只是把上下文用占位符的形式在内存中留住,主体内容放在磁盘里。 最轻级别的压缩:把特别大的 tool_result 挪到磁盘上,内存上下文里留个2 KB 大小的预览,Agent 想要的时候还能用 Read 把原文捞回来。 再重一点的压缩:把过时的旧内容原地删成占位符,同时尽量保住缓存的热度别让旧内容完全失效。 全量压缩:只有到最后实在塞不下了,它才会进行全量压缩,将上下文精简成摘要,只有全量压缩才会真的丢弃一部分上下文。 Codex 的压缩相对来说更直接也更粗糙,基本就一层处理。到达上下文阈值之后,它把 AI 自己的回复和 tool_result 都删掉、并生成一份摘要。 但 Codex 的压缩有个原则,用户输入的每一句话都保留原文 ,砍的只是 AI 生成的内容,还有那些原始的文件和堆栈 dump。它的设计思想是,只要把人的意图完整留住,AI 生成的那部分上下文哪怕丢了也可以重新生成。 在使用层面上还是有挺大差别的,要连续记住一堆架构决策、跨很多文件、来回改动的重任务,Claude 的记忆保持明显更好,Codex 在工具密集的长会话里更容易把架构记忆丢掉。
是什么 这是一条围绕 Agent 上下文压缩机制的纯观点推文,比较 Claude Code 与 Codex 在上下文接近上限时的处理方式,并将差异延伸到长会话中的记忆保持能力。核心并非讨论模型能力,而是讨论运行时如何管理历史信息。
核心设计 推文将 Claude Code 描述为分级压缩:先把大型 tool_result 外置到磁盘,仅在内存保留预览和占位符;随后再删除过时内容,同时尽量维持缓存热度;只有最后才生成摘要。它将 Codex 描述为更直接的单层压缩,即删除 AI 回复、tool_result、原始文件和堆栈内容,但完整保留用户输入,以便重新生成中间过程。
关键洞察 两种思路分别代表“尽可能保留可恢复状态”和“优先保留人的意图”。前者更适合跨文件、跨步骤的复杂任务,后者则通过缩短上下文和保留需求降低压缩成本。真正的工程权衡在于内存、磁盘、缓存命中率、摘要质量与恢复能力之间如何取舍。
边界与风险 以上实现细节和产品优劣来自推文陈述,并非附带源码、官方文档或基准测试,且可能随版本变化。实际体验还取决于任务类型、工具调用规模和摘要质量,因此不宜将其视为普遍结论。