OpenAI 正在给 Codex 改上下文管理,方案在 GitHub 上能看到(PR #27488、#29743、#39827),目前还在开发阶段,没正式上线。
现在的做法是所有长会话工具的标准做法:对话超出上下文限制时,让模型把之前的历史压缩成一段摘要,然后带着摘要继续。问题也是标准问题——压缩本身要花 token,而且压完必丢细节。丢的往往还是最要命的那类:三十轮之前你说过的一个约束条件,某个文件里的具体函数签名,一次失败尝试的具体报错。
新方案换了个思路:不压缩,直接开一个新窗口继续干活。模型可以主动申请换窗,手动清理和自动清理也统一走这条路,换窗之后不再生成摘要。
光这样显然不够,所以配套加了历史记录和笔记能力。换窗之后模型能按需回头找之前的内容,把工作状态接上,而不是从零开始。等于把”每次都强行背下全部历史”改成了”需要的时候再去查”。
这个转变的意义在于工作记忆和长期记忆的分工。摘要式压缩是把两者揉在一起,用一段有损文本同时承担”我现在在干什么”和”之前发生过什么”两个职能,结果两头都不讨好。换窗加检索则把它们拆开:当前窗口只放正在处理的东西,历史留在外部存储里按需取用。
代价也很明显。检索准不准变成了新的瓶颈——模型得知道自己缺什么、去哪儿找、找到之后信不信。摘要虽然有损,但至少信息是被动送到眼前的;改成主动检索之后,模型不去查就等于没有。这在长任务里会产生一类新的失败模式:不是记错了,是压根没想起来要查。
顺带一提,Codex 前几天还被曝在测试”持续模式”,让 agent 一直工作到被手动停止,并且能自己创建后续任务、跨会话延续。这两件事显然是一套的——没有靠谱的上下文接力机制,跑几天的 agent 根本谈不上。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
Codex 在试一件事:把压缩历史换成直接开新窗口