怎么看 OpenAI 的 Codex 将取消上下文压缩,换成「硬切窗口 」和「外部记忆」?

文艺频道··10 min read
我先把话放在这儿:这一次,OpenAI 是真的把大模型的“底裤”给换了。 不是修修补补,是直接换一套逻辑。 如果你平时只是拿 ChatGPT 写写周报、润色几句文案,那你可能感知不到变化。但如果你用 Codex 干活,或者正在尝试让 AI 帮你写代码、调试程序,那你应该已经隐约闻到了一股“不对味”—...

我先把话放在这儿:这一次,OpenAI 是真的把大模型的“底裤”给换了。

不是修修补补,是直接换一套逻辑。

如果你平时只是拿 ChatGPT 写写周报、润色几句文案,那你可能感知不到变化。但如果你用 Codex 干活,或者正在尝试让 AI 帮你写代码、调试程序,那你应该已经隐约闻到了一股“不对味”——以前是上下文越长越贵,现在是窗口生生切断,记忆改成外挂。

程序员在使用AI编程助手时面对上下文截断困惑

这背后到底在下一盘什么棋?我用大白话给你拆透。

先说说以前的“压缩”是怎么回事

以前的大模型处理超长对话,靠的是“压缩”。你给它喂了一百万字的代码库,它没法全记住,于是偷偷把前面的内容揉成几个“摘要包”,把关键信息塞进去,剩下的细节全扔了。

程序员把大量代码资料压缩成摘要卡片

这个做法,在聊天场景下问题不大。你聊了十轮废话,它总结一下前面的重点,也能接得上。

但放到写代码的场景,就是灾难。

程序员面对代码调试灾难场面

你想想,你在 Codex 里改了第三十七个文件的某个函数,这个函数被第八十九个文件调用了,而第八十九个文件里有个变量名,恰恰在第五十二轮对话里被重命名过。

如果模型用“压缩摘要”处理前面这些信息,它极大概率会丢掉“变量已被重命名”这个细节。然后它就会自信满满地给你生成一段代码,引用了旧的变量名。编译报错。

你问它怎么回事,它一脸无辜地说:“我记忆里没这个事啊。”

你当时是不是气得想砸键盘?

所以,硬切窗口是什么?

说白了,就是“我记不全,干脆不记了”。

Codex 现在的做法是:超过窗口长度的那部分内容,直接剪掉。不是压扁,是物理切断。它只保留最近 N 个 token 的完整信息,再往前的东西,窗口一关,谁都不认。

你可能会问:这不是退步吗?

恰恰相反。这是进步,而且是更诚实的进步。

一个模型如果强行记一万行代码,它一定会记岔。但如果它只记最近的两千行,它能保证这两千行是百分百准确、一字不差的。在代码世界里,准确比全知重要得多。你宁愿一个助手只记住你最近的十句话,也不希望一个助手把你一周前说的话记成另一个版本。

而且它剪得也聪明。不是从对话最开头剪,而是按逻辑块滑动。它知道哪些代码文件是高度关联的,会尽量把相关的文件留在窗口里,把“已经改完、不再引用”的部分推出去。

这就好比一个优秀的程序员,桌面上永远只放当前任务相关的文件,写完一个模块,归档一个模块。绝不堆积。

但真正狠的,是“外部记忆”

硬切窗口解决的是“记错”的问题,而外部记忆解决的是“记不全”的问题。

Codex 现在引入了一套类似 git 仓库的记忆结构。它会把你处理过的代码、你修过的 bug、你定义过的变量命名规则、甚至你的代码风格偏好,主动抽取出来,放进一个独立于模型窗口的存储空间。

这个空间,不占窗口 token,不被压缩,不会被清空。

下次你再开一个新会话,哪怕窗口里空空如也,它也能通过检索方式,把跟你项目相关的记忆调出来。不是靠模型“想起来”,而是靠系统“查出来”。

你想想这意味着什么?

意味着Codex 不再只是一个大模型,而是一个带硬盘的 Agent。它开始有了“长期工作记忆”。你上一次明确告诉它“这个项目的注释必须用中文”,下一次它跟你聊别的需求,聊到一半需要写代码,它还是会主动用中文注释。不用你重复第二遍。

这其实才是“Agent”这个概念真正迈出的一大步——以前我们跟 AI 协作,像是跟一个“每次见面都失忆的天才”合作。你每次都要从头交代背景。现在呢?它有了“工位档案”。

这一刀,砍向的是谁?

很多人没意识到,Codex 这个变化,其实在无意中给整个行业定了一个新标杆:“上下文长度”的军备竞赛开始退场了。

以前各家厂商谈上下文,一开口就是“我 200K,你 1M,他 10M”。数字越大越牛。

但你看这次 Codex 的做法,它没有继续加长窗口,反而主动切短,然后靠外部记忆补位。这等于在说:无限长的窗口本来就是个伪需求。

你要那么长干嘛?你一辈子读过的书加起来有几千亿字,你也没法在同一秒全部想起来用啊。你用的是“记住关键词 + 需要时去查”的脑子。

所以,Codex 真正想验证的是:有没有可能,大模型不需要记住所有东西,只需要知道去哪找?

如果这条路走通了,那以后所有 Agent 产品都会学它。不再比拼谁“装得多”,而是比拼谁“记性好、查得准”。这就像数据库的索引比单纯堆内存更重要一样。

对普通人的影响,是什么?

说得再直白一点。

如果你是一个重度用户,你会发现以后跟 Codex 协作,“少开会话”反而更顺畅。你不用再怕“聊太长了它会糊涂”,因为它干脆就不会糊涂了——超过范围,它直接告诉你“我这边记不清那个文件了,你把那段贴给我”。

它不再假装自己无所不知。这反而让你用得更放心。

如果你是一个轻度用户,你可能要适应一下:以前你连续对话三百条,它还能记得你第一条说的什么。以后可能到第一百条,它就开始丢前面的东西了。你会觉得“咦,这家伙怎么变笨了?”

但它不是变笨,它是把记忆从“橡皮泥”换成了“档案柜”。橡皮泥揉久了会变形,档案柜翻旧了不会。

说到底,这次 Codex 的改动,其实是在承认一个朴素的事实:

真正的智能,从来不是记住一切,而是知道自己忘了什么,并对症下药。

这个道理放之四海皆准。

人也好,AI也好,都是这样。