上下文满了,不再反复“传话”
而是做一次跨窗口接力
模型看见剩余 token,提前把任务状态写进 Notes;切到全新的上下文窗口后,再从 Notes 和只读 History 中按需找回细节。
看一次长任务如何跨过上下文边界
点“播放”自动演示,或逐步前进。这里的 token 百分比是教学示意;真实阈值由模型配置和服务端信息决定。
准确边界:新窗口自动获得的是 fresh initial context;Notes 与 History 是恢复通道,并不等于“全部旧内容自动回填”。
这个实验实际打开了三块能力
它不是一个更长的 context window,也不是单纯换了一版摘要 prompt;它让模型参与自己的上下文生命周期管理。
Token Budget · 看见余量
完整窗口开始时注入窗口元数据;接近阈值时追加提醒。模型因此能在失去旧窗口前规划收尾,而不是等到溢出后被动补救。
Notes + History · 外置状态
Notes 保存精炼 checkpoint;History 保存可按窗口 ID / item ID 查找的原始条目。先读笔记,缺细节时再定点查历史,避免整段重放。
new_context · 主动换窗
这是 direct-model-only 工具。模型认为旧窗口不再有价值时,可发起无摘要 reset;同一 turn 的后续请求从 fresh initial context 继续。
核心变化:从“系统在阈值后压缩旧对话”,变成“模型在预算内先保存状态,再主动或自动切换窗口,并按需恢复”。
在 token-budget 模式下,手动 / 自动 compact 也走 fresh-window reset,不调用服务端摘要,并丢弃旧消息与工具输出的直接携带。
实验性换窗 ≠ Responses API Compaction
社区帖把旧方案概括成“反复摘要”,方向上能帮助理解,但对当前 Codex 来说已经不够准确。
把旧窗口压成可继续传递的状态
当前 Responses API 可返回 opaque、encrypted 的 compaction item,并可能保留部分旧条目。它不是只有一段人类可读摘要。
适合:希望把 prior state 直接带进下一次请求的 API / 常规 Codex 流程。
放下旧窗口,靠外部索引继续工作
new_context 不生成摘要,也不把旧 user / assistant / tool items 直接带入;它重新注入标准 initial context。
适合:超长 coding task,需要主动清理噪声、精确恢复状态的 ChatGPT Codex 会话。
配置很短,但启用条件很窄
把下面内容加入 ~/.codex/config.toml。功能仍标记为 Under development,字段和资格都可能变化。
[features.context_management] experimental_mode = true
哪些是官方确认,哪些仍未知
确认版本、开关、三项能力和会话资格。
↗ PR #42385 Experimental context management activation确认实现条件:Plus / Pro / Pro Lite、Codex backend、history notes 与 token budget 激活。
↗ PR #27488 new_context tool确认模型主动调用、无摘要、新窗口只含 fresh initial context。
↗ PR #29743 Token-budget compaction reset确认该模式下 manual / auto compaction 使用 fresh-window reset。
↗ API DOCS Responses API Compaction确认标准 compaction item 是 opaque / encrypted,且输出可能含保留条目。
↗