答案直接告诉你,不一样。
差别很大。
我花了一天时间,深入研究了 Codex 的 GitHub 源码、OpenAI 的官方博客,以及 API 文档,可以自信地、大方地、光明磊落地帮你搞清楚这三件事:
- Codex 的短期记忆和 Claude Code 有什么区别?
- 上下文快满了,怎么压缩——还是生成摘要吗?
- 压缩完了,哪些信息能活下来,哪些会被扔掉?
哈喽大家好,我是二哥呀。今天用 3 分钟,给你讲清楚 Codex 的短期记忆是怎么实现的。

系好安全带,我们粗粗粗出发了~
先说第一件事,短期记忆到底长什么样。
上期说过,Claude Code 把聊天记录存在一个数组里,每条消息标一个角色:user、assistant 或者 tool。结构很简单。
Codex 不一样。它用的是 OpenAI 自家的 Responses API,存的不是一个简单的消息列表,而是一个混合列表——里面什么类型都有:普通消息、模型的推理过程、工具调用、工具返回的结果,甚至还有一种叫 compaction 的压缩状态。
而且 Codex 把系统指令和工具定义单独传给了模型,不跟聊天记录混在一起。
但有一点和 Claude Code 是一样的:大模型本身是没有记忆的,不管是 Fable 5 还是 GPT-5.6,每次调用都是一张白纸。
所以 Codex 要自己维护这个列表,每次调模型的时候把完整的聊天记录重新发一遍。而且 Codex 有个小心机:每次新请求的开头,都和上一次请求完全一样。这样 OpenAI 服务端就能认出来"这一段我算过了",直接跳过,不重复计费。这就是 Prompt Caching,说白了就是省钱。
我只能说,用心了,OpenAI。
那聪明的你肯定想到了。列表越来越长,而上下文窗口是有上限的,塞满了怎么办?
靠压缩。但 Codex 的压缩和 Claude Code 完全不同。
Claude Code 是起一个 Sub-agent,让大模型生成一份你能看懂的文字摘要。
Codex 不是。
Codex 会把当前的完整上下文提交给 OpenAI 服务端。服务端压缩完之后,返回的不是一段文字,而是一串加密数据。
没法读,没法改,只能原样塞回下一次请求。模型能看懂,但你看不懂。
只有用非 OpenAI 官方的模型时,Codex 才走本地处理:调用大模型生成文字摘要,保留最近大约两万个 token 的用户消息,工具调用和旧的模型回复会直接扔掉。
那聪明的你肯定又要问了:压缩完,哪些信息能活下来?
你的项目配置、系统指令和工具定义,这些会在压缩后重新注入,不会丢。
但之前读过的文件内容,压缩后可能就没了。所以你会发现,Codex 压缩完经常会重新搜索、重新读取同样的文件。
Codex 的 GitHub 源码里甚至有这样一行警告:多次压缩可能会降低准确性。所以建议你一个线程只干一件事,能开新线程就开新线程。
最后简单总结下。
Codex 的短期记忆和 Claude Code 一样,靠每次重发聊天记录来实现。但压缩方式不同:Claude Code 生成明文摘要,Codex 走加密压缩。另外,建议一个线程干一件事,别让它又改 bug 又写文档又跑测试。
这个知识点你学废了吗?想解锁更多 AI 硬核知识,点赞关注,我是二哥,咱们下期见!

