文件名 Codex上下文压缩-compact.md

Codex上下文压缩-compact

本文目录

正文

1. 上下文压缩是什么

Codex 是长会话 agent。随着轮次增加,消息、工具调用、文件片段、推理摘要等都会占用上下文 token。接近阈值时,Codex 会触发 compaction:把旧历史总结成一个更短的摘要,并保留近期关键消息和工具结果。

这个过程不是无损压缩。它会尽量保留目标、约束、已完成操作、未完成事项、重要文件和命令结果,但细节一定会被裁剪。因此阈值太低会导致记忆过早丢细节,阈值太高会导致压缩来不及执行而触发上下文超限。

2. 压缩方法

这里本地压缩指的是,达到config.toml阈值后,调用本地模型进行总结,摘要;

远端压缩指的是,调用官方模型(gpt-5.5-openai-compact)进行压缩,个别中转站也提供官方的compact模型,需要单独设置。

2.1 本地 compaction

“本地”指 compaction 的编排发生在本机 Codex CLI 内:CLI 估算 token,构造压缩 prompt,然后通过当前配置的模型 provider 发起一次普通模型请求,拿到摘要后写回本地会话历史。

特点:

  • 适合 API key 模式和自定义 OpenAI-compatible 网关。
  • 使用当前 model_providerbase_urlwire_apimodel
  • 依赖当前后端能正常处理 Responses API 请求。
  • token 和费用通常按一次额外模型调用计算。
  • 不要求 auth.json 里有 ChatGPT token,API key 即可。

关键配置:

model_context_window = 272000
model_auto_compact_token_limit = 220000

含义:

  • model_context_window:告诉 Codex 当前模型可用上下文窗口。
  • model_auto_compact_token_limit:达到该估算 token 数后自动触发 compaction。

经验上,自动压缩阈值不要等于上下文窗口,建议放在 75% 到 85% 左右,给工具结果、系统消息、压缩请求本身留余量。

2.2 远端 compaction

“远端”指 compaction 能力由 OpenAI/ChatGPT 侧服务或 Codex 远端协议完成,CLI 主要负责发起远端压缩请求和接收压缩结果,调用模型id一般为gpt-5.5-openai-compact.

特点:

  • 更依赖官方 Codex/ChatGPT 服务端能力。
  • 价格昂贵:输入 $112.5/1M输出 $675/1M
  • 通常更适合 ChatGPT 登录态,而不是只有 API key 的自定义网关。
  • 对自定义 base_url 的兼容性不如本地 compaction 可控。
  • 可能受 Codex CLI 版本和 feature flag 影响。

当前 Codex CLI 0.131.0 中存在 remote_compaction_v2 feature flag,但状态是 under development,本机有效状态为 false。因此本机当前没有启用远端 compaction v2。

可尝试配置:

[features]
remote_compaction_v2 = true

不建议在当前 API-key + 自定义 base_url 环境中优先启用它。若要验证远端 compaction v2,建议先升级 Codex CLI,并使用官方登录方式确认服务端支持。

3. 本地压缩与远端压缩的区别

| 项目 | 本地 compaction | 远端 compaction | | :— | :— | :— | | 编排位置 | 本机 Codex CLI | OpenAI/ChatGPT 侧服务或远端协议 | | 认证依赖 | API key 即可 | 更依赖 ChatGPT/官方服务登录态 | | 自定义网关兼容性 | 较好 | 不确定,取决于远端协议支持 | | 可控性 | 高,可通过上下文窗口和阈值控制 | 低,受服务端和 feature flag 影响 | | 成本模型 | 通常是一次额外模型请求 | 取决于远端服务实现和账户计划 | | 当前本机状态 | 可用,走当前 provider | remote_compaction_v2 = false,未启用 |