Codex 的 disable_response_storage:已移除的 ZDR 配置项
截至 2026-10-08,disable_response_storage 是 Codex CLI 已经移除的旧配置项:2025-04-28 由 Codex 开源仓库 PR #714 加进 config.toml,供开启零数据保留(ZDR)的 OpenAI 组织使用;2025-09-05 合并的 PR #3212 写明「The disable_response_storage configuration option is removed.」,随 rust-v0.30.0 发布。现行 config-reference 中也未检索到该键。本页说明它当年做什么、为什么删、老配置里还留着会怎样。
更新于 2026-10-08
四个关键点
加进 config.toml(PR #714)
PR 说明写,ZDR 客户每次都加命令行开关太繁琐,于是让它能在 config.toml 里设一次,之后不用再管。
移除(PR #3212)
PR「Never store requests」的 Breaking change 一节写明该配置项移除;同日发布的 rust-v0.30.0 在合并清单里列出了这个 PR。
移除后的请求写法
PR #3212 把 Responses 请求里的 store 改为固定的 false;2026-10-07 发布的 rust-v0.161.0 源码构造请求处仍写 store: false。
老配置里还留着它
rust-v0.161.0 加载 config.toml 时,把认不出的键列进启动警告并标注「is ignored」;加 --strict-config 启动则直接报错。
它是什么、当初为什么加
截至 2026-10-08,disable_response_storage 是 Codex CLI 已移除的布尔配置项,现行 config-reference 中未检索到该键。它的来历是零数据保留(ZDR):2025-04-25 合并的 PR #642 先给 Rust 版 CLI 加了 --disable-response-storage 开关,PR 说明写,对使用 ZDR 的客户端,previous_response_id 永远不可用,所以每次请求的 input 必须带上到目前为止的完整对话记录。三天后的 PR #714 让它能写进 config.toml,源码注释是「Disable server-side response storage (sends the full conversation context with every request)」,即关闭服务端响应存储、每次请求都发送完整会话上下文,并注明这在当时是开启 ZDR 的 OpenAI 客户必需的。未设置时它等于 false。
PR #3212 里怎么写的(2025-09-05)
PR #3212 的标题是「Never store requests」,Breaking change 一节只有一句:「The disable_response_storage configuration option is removed.」PR 说明给的理由是:把 item id 发给 Responses API 时,它会从数据库加载这些条目、忽略请求里提供的值,「This adds extra latency」;不再保留存储请求的模式,也让代码更简单。同一 PR 删掉了仓库 docs/config.md 里的 disable_response_storage 一节,并把 docs/zdr.md 的正文改成一句「Codex CLI natively supports OpenAI organizations with Zero Data Retention (ZDR) enabled.」这个 PR 收录在同日发布的 rust-v0.30.0,发布说明写作「Never store requests」。
时间线
PR #714 合并,disable_response_storage = true 可以写进 config.toml;此前 2025-04-25 合并的 PR #642 已加入命令行开关 --disable-response-storage。
PR #3212「Never store requests」合并,写明该配置项移除、请求改为 store: false;同日 rust-v0.30.0 发布并收录它。
本页核对日:现行 config-reference 中未检索到该键;2026-10-07 发布的 rust-v0.161.0 源码会把它当作认不出的设置,在启动警告里列出。
已确认 vs 没有核实到的
已确认(Codex 开源仓库与 OpenAI 官方文档逐字可核)
以下都能在 Codex 开源仓库或 OpenAI 官方 Codex 文档里逐字核到:PR #642(2025-04-25 合并)加入 --disable-response-storage 开关以支持 ZDR 客户;PR #714(2025-04-28 合并)让这个键能写进 config.toml;PR #3212(2025-09-05 合并)写明「The disable_response_storage configuration option is removed.」,并把请求里的 store 改为 false;rust-v0.30.0 的发布说明列出了 PR #3212;截至 2026-10-08 现行 config-reference 中未检索到该键;rust-v0.161.0 的配置结构里没有这个字段,认不出的键会触发以「Codex is ignoring」开头的警告;官方 CLI 文档写明 --strict-config 会在 config.toml 含本版本不认识的字段时报错。另外,rust-v0.40.0 标签(2025-09-23 发布,晚于 PR #3212)下的 docs/config.md 键表里仍能看到这个键,说明写的是「Required for ZDR orgs.」,请以现行文档为准。
未证实与官方未写明
这几件事没有核实到,别据此下结论:① rust-v0.30.0 到 rust-v0.161.0 之间的各个版本遇到这个键是静默忽略还是会提示,本页只核了 rust-v0.161.0 的源码,没有逐版对照;② 现行 OpenAI Codex 文档里没有检索到专门讲 Codex CLI 与 ZDR 的段落,「natively supports」这句出自 2025-09-05 PR #3212 改写的仓库文档;③ GitHub 上有用户提议给自定义 provider 加一个显式的响应存储开关,截至核对日该提议仍是 open 状态,不是现行配置项;④ 你的组织是否开通了 ZDR、数据如何保留,以 OpenAI 账户设置与合同为准,本页不作判断。
移除前后怎么变
移除前(rust-v0.30.0 之前)
未设置时等于 false。设为 true 时关闭服务端响应存储、每次请求发送完整会话上下文。当时的 docs/config.md 写,开启 ZDR 的账户必须把它设为 true;docs/zdr.md 列出的对应报错结尾是「Previous response cannot be used for this organization due to Zero Data Retention.」当时的源码里,用 ChatGPT 登录时请求本来就不存储。
移除后(rust-v0.30.0 起)
这个键和「存储请求」的模式一起取消:PR #3212 把请求里的 store 固定为 false,说明里写不保留这个模式能简化代码。2026-10-07 发布的 rust-v0.161.0 源码构造 Responses 请求时仍写 store: false。仓库文档由 PR #3212 改为「Codex CLI natively supports OpenAI organizations with Zero Data Retention (ZDR) enabled.」
老配置怎么清理、怎么接 QCode
① 打开 ~/.codex/config.toml,删掉 disable_response_storage 这一行;如果在 profile 段里也写过,一并删掉(PR #3212 同时从 profile 配置里移除了它)。启动脚本里的 --config disable_response_storage=true 也去掉。② 跑一次 codex --strict-config:官方 CLI 文档写明,config.toml 含本版本不认识的字段时它会报错;rust-v0.161.0 源码每次只报第一个不认识的字段(unknown configuration field 加字段名),改完再跑,直到不报错。③ 不加该开关正常启动时,如果仍看到含「Check for typos or deprecated settings.」的警告,按警告里列出的键名逐个删除。④ 要接 QCode:照 QCode 文档在 config.toml 写入 model_provider = "crs"、model = "gpt-6-sol"、model_reasoning_effort = "high"、preferred_auth_method = "apikey",再加 [model_providers.crs] 段:name = "crs"、base_url = "https://api.qcode.cc/openai"、wire_api = "responses"、requires_openai_auth = true、env_key = "CRS_OAI_KEY"。provider 名与环境变量名可自定,文档示例用 crs 与 CRS_OAI_KEY。⑤ 密钥(cr_ 开头)写进 ~/.codex/auth.json 的 OPENAI_API_KEY,或改用环境变量 CRS_OAI_KEY 提供。
在 QCode 上跑 Codex
按 QCode 文档,Codex 用 OpenAI Responses 协议接 QCode:config.toml 里 base_url = "https://api.qcode.cc/openai",wire_api = "responses",密钥用 cr_ 开头的 QCode API 密钥。这个端点服务 GPT 模型,Claude 与国产模型不走它;model 可填文档示例的 gpt-6-sol,也可填 gpt-6.1-sol。QCode 文档的 Codex 配置示例里没有 disable_response_storage 这一行,照文档原样配置即可。按 token 计费,各模型单价见 /models。
常见问题
disable_response_storage 是什么?
是 Codex CLI 早期的一个布尔配置项,已于 2025-09-05 移除。设为 true 时,Codex 关闭服务端响应存储、每次请求发送完整会话上下文,当年是给开启零数据保留(ZDR)的 OpenAI 组织用的。它在 2025-04-28 由 PR #714 加进 config.toml,2025-09-05 由 PR #3212 移除,随 rust-v0.30.0 发布。
现在还需要写 disable_response_storage = true 吗?
不需要,写了也不生效。截至 2026-10-08 现行 config-reference 中未检索到该键;PR #3212 写明「The disable_response_storage configuration option is removed.」,同时把请求改为 store: false。rust-v0.161.0 加载配置时会把它列为被忽略的设置。
老 config.toml 里还留着它会报错吗?
默认不报错,但会警告。按 rust-v0.161.0 源码,认不出的键会进入启动警告:开头是「Codex is ignoring」加被忽略设置的个数,接着提示「Check for typos or deprecated settings.」,再逐条列出「键名 is ignored.」。如果启动时加了 --strict-config,官方 CLI 文档写明 config.toml 含不认识的字段时会报错,源码里的报错文字是 unknown configuration field 加字段名。
有没有替代它的新配置项?
截至 2026-10-08 现行 config-reference 中未检索到该键,也没有检索到与 ZDR 或响应存储相关的配置键。原因在 PR #3212:它把 Responses 请求里的 store 固定为 false、取消了存储请求的模式,并把仓库文档改为「Codex CLI natively supports OpenAI organizations with Zero Data Retention (ZDR) enabled.」
ZDR 组织以前遇到的报错是什么?
移除前的仓库文档 docs/zdr.md 列出的报错结尾是「Message: 400 Previous response cannot be used for this organization due to Zero Data Retention.」当时的解法是用 --config disable_response_storage=true 启动,或把 disable_response_storage = true 写进 ~/.codex/config.toml。PR #3212 删除了这段,现行版本里已没有这个设置。
通过 QCode 用 Codex 时 config.toml 怎么写?
照 QCode 文档写:base_url = "https://api.qcode.cc/openai",wire_api = "responses",密钥用 cr_ 开头的 QCode key,model 填 gpt-6-sol 或 gpt-6.1-sol;完整字段见上面的配置步骤。文档的配置示例里没有 disable_response_storage,不需要加。按 token 计费,各模型单价见 /models。
信息来源
Codex 开源仓库(github.com/openai/codex):PR #642、#714、#3212 的说明与代码改动,rust-v0.29.0、rust-v0.30.0、rust-v0.40.0 与 rust-v0.161.0 的发布说明,rust-v0.40.0 标签下的 docs/config.md,rust-v0.161.0 标签下 codex-rs/config 与 codex-rs/core 的源码,以及 issue #46470(只作需求参考)。OpenAI 官方 Codex 文档:Configuration Reference 页与 Codex 文档合集里的命令行选项表(learn.chatgpt.com)。QCode 文档的 Codex 完整教程页(更新于 2026-09-30)。以上均于 2026-10-08 抓取。
相关阅读
Codex CLI 接第三方 API 配置指南
config.toml 的 model_provider、base_url、env_key 怎么写,以及常见报错。
Codex 401 Unauthorized 报错原因与修复
codex login、API key、auth.json 与 env_key,接 QCode 时的 401 排查。
Codex 报「Selected model is at capacity」
容量提示与额度、429 的区别,换 model 与退避的做法。
本页事实与引语核对于 2026-10-08,以 OpenAI 官方 Codex 文档与 Codex 开源仓库为准,上游调整不另行通知。不同版本的行为以你本机 codex --version 对应的版本为准;模型可用性以 /models 为准。