关于上下文压缩,它已经是 Coding Agent 最核心的技术之一 。你如果以后想自己实现一个类似 Claude Code / Codex 的 Agent, 上下文压缩(Context Compaction)基本是必须掌握的机制 。今天我来讲解一下如何进行上下文压缩。实现我们看看现在主流的agent是怎么压缩上下文的。

claude code压缩方法

codex压缩方式,你会发现codex的压缩机制非常有意思,它分为remote compaction和local compaction。当前代码中可以看到它根据 provider / feature 决定使用本地还是远程 compact,local由客户端执行,你的agent发起第二次LLM调用,发送就会话记录给大模型,请求模型总结历史对话,重组message数组。openai的开发者在codex项目issue中也说明了:对 OpenAI-hosted / Azure-hosted models,compaction 可以在 server 侧执行。也就是openai后端检测上下文即将溢出,客户端看不到这次摘要调用,高敏感数据不建议使用,它是完全处于黑盒的状态。

pi agent压缩方式,Pi 更强调"Branch + Compaction",也就是把对话历史当成一棵可分支的树,而不是单纯的一条聊天记录,pi本身就有着及其简约的风格,是研究history本身应该怎么设计的优秀agent。
一个上下文压缩策略是根据你自己的需求来设计的,并不是说claude code/codex/pi的上下文压缩就一定比你设计的好,我感觉应该是因用途而设计。一个好的上下文压缩就是在尽可能少的 token 下,让 Agent 在压缩后继续工作时,行为尽可能接近"从未压缩"。我总结了一些规律,这个是我自己设计的coding agent的上下文压缩策略。
1.不要一次性summary
2.checkpoint
3.histroy tree
4.Tool Output 不应该直接进入长期 Context
5.不要只压缩 History,要压缩"不同类型的信息"
6.Filesystem 是 Ground Truth
7.测试结果不要只存文本
8.压缩应该是"增量"的
9.给 Memory 加"重要性"
