文章摘要
Codex CLI近期完成核心记忆系统升级,放弃存在细节丢失、模型被动、切换后失忆等缺陷的传统上下文压缩机制,改用token预算管理配合硬性上下文切换架构,可主动感知额度、自主切换窗口、完整保留查询历史,其主动管理思路可为智能体长上下文开发提供参考。

Codex CLI 近期对其核心记忆系统完成了一次深度升级,彻底放弃了传统的上下文压缩机制,转而采用token预算管理配合硬性上下文切换的全新架构。这一改动让模型不再被动等待token耗尽后被强制压缩上下文,而是能够主动感知剩余额度,自主决定何时切换上下文窗口。本文将全面拆解这次更新的底层逻辑、解决的核心问题以及值得参考的设计思路。

传统压缩机制的核心局限

在此次更新之前,Codex的上下文管理依赖压缩机制:当token即将耗尽时,系统会将对话历史压缩为一段摘要,模型带着该摘要继续后续交互。这一方案虽被广泛使用,但存在三个难以规避的痛点。

一是压缩的不可逆损耗:摘要本质是对原始对话的概括,不可避免会丢失细节信息。一段包含多轮调试的长对话被压缩为三两句总结后,中间的关键上下文细节就会彻底丢失,模型无法再获取完整的交互信息。

二是模型的被动性:传统机制下,模型无法感知当前上下文窗口还剩余多少token,只能等待系统触发压缩操作,既无法提前规划交互节奏,也不能在合适的时机主动整理上下文内容。

三是切换后的记忆缺失:压缩完成后,原始对话历史会被替换为摘要,模型无法回溯完整的交互记录,若后续需要参考之前的具体细节,已经没有途径获取,相当于临时“失忆”。

新方案核心:换窗口而非丢记忆

Codex此次更新的核心思路非常明确:不再通过压缩牺牲细节,而是切换到新的上下文窗口,但完整保留所有历史记忆。这一思路带来了三个关键的角色转变。

从被动到主动:模型通过专用标识感知当前上下文窗口的剩余token数量,能够提前规划交互节奏,在额度即将耗尽时主动发起上下文切换,而非被动等待系统触发压缩。

从失忆到完整记忆:新机制下,历史对话会完整保存在专用存储中,模型可以通过历史查询工具列出所有对话窗口和条目,读取具体内容,甚至通过关键词搜索历史信息;同时新增的笔记工具可以写入持久化笔记,保存工作状态和关键信息,彻底解决了切换后的失忆问题。

从手动到自动:系统可以通过元数据自动启用token预算管理功能,无需用户手动进行配置,让长上下文交互的管理更加轻量化。

一句话概括这次更新的核心:用预算管理替代强制压缩,让长对话交互更流畅自然。

三层架构:从感知到管理的完整闭环

Token Budget的整体架构分为三个层级,每个层级各司其职,形成完整的闭环。

感知层:实时掌握剩余额度:通过专用的token预算标识,模型在每次请求时都能获取当前上下文窗口的剩余token数量,这是主动管理上下文的前提。

管理层:主动发起窗口切换:模型可以通过专用工具主动请求切换到新的上下文窗口,新窗口不会对历史内容进行压缩,直接开启全新的交互窗口。

记忆层:完整保留与查询历史:历史查询工具可以实现对话窗口和条目的列表查看、单条内容读取、关键词搜索等功能;笔记工具则支持持久化笔记的列表、读取、搜索、追加和写入,让模型能够随时调用历史信息和工作记录。

三个层级环环相扣:感知层让模型知道“何时需要切换”,管理层让模型能够“顺利完成切换”,记忆层让模型在切换后“依然能找到需要的信息”。

设计哲学的本质转变

这次更新最值得关注的,并非具体的技术实现,而是背后设计哲学的转变。

长上下文管理的本质是记忆而非压缩:传统压缩机制将上下文视为需要节省的资源,通过牺牲细节来延长交互时长;而新方案则将上下文视为需要完整保留的记忆,通过切换窗口来适配更长的交互时长,这更符合人类处理长任务的习惯——我们会翻阅之前的记录,而非将其概括后丢弃。

从“工具”到“伙伴”的角色转变:传统压缩机制将模型视为执行任务的工具,用完即压缩、丢弃上下文;而新方案将模型视为协作的伙伴,为其提供完整的记忆能力,让模型能够主动管理交互流程,这种设计哲学的升级,比技术细节本身更有价值。

这种转变也让长上下文交互从被动适配,变成了主动规划,让模型能够更好地适配复杂的长任务场景。

实践价值与借鉴意义

从这次Codex的更新中,我们可以看到长上下文管理思路的全新方向。对于从事智能体开发的从业者来说,“主动管理”的思路尤其值得借鉴:不再让模型被动等待上下文被压缩,而是让模型主动感知剩余资源、自主规划交互节奏,配合完整的记忆查询机制,让长任务的处理更接近人类的工作方式。

如果想要深入理解这套设计,重点可以关注三个层级的配合逻辑:感知层的额度感知、管理层的窗口切换、记忆层的历史查询,这套闭环设计不仅适用于Codex,也可以为其他智能体系统的长上下文管理提供参考思路。

以上内容不代表本平台立场,仅供读者参考