Codex 配置中转 API:CLI、VS Code、桌面 App 与换回官方配置
Codex CLI、VS Code 插件和桌面 App 共用用户级 config.toml。新增一个 Provider、把 Key 放进环境变量,就能接 Responses 兼容的中转 API;不用时恢复备份、重新登录官方账号即可换回。

Codex 配置中转 API要同时配好五样东西:Provider、API 根、Key 来源、模型 ID 和 Responses 协议。任何一项不对,都会表现为 401、404、unsupported parameter 或流式中断。
先把 CLI 跑通,VS Code 插件和桌面 App 只需要读到同一个环境变量。中转站必须提供 /v1/responses;只有 Chat Completions 的接口不能直接给 Codex 用。
直接复制:Codex CLI 配置中转 API
三步:备份原配置并设置 Key,在 config.toml 里加一个 Provider,再发一条探针。GPTZZZ 的 OpenAI 兼容 Base URL 是 https://gptzzz.ai/v1,Codex 会自己请求 /v1/responses。
第 1 步:备份并设置 Key(本次终端有效)。macOS / Linux:
mkdir -p ~/.codex
if [ ! -f ~/.codex/config.toml.bak ]; then
if [ -f ~/.codex/config.toml ]; then
cp ~/.codex/config.toml ~/.codex/config.toml.bak
else
touch ~/.codex/config.toml.bak
fi
fi
export GPTZZZ_API_KEY="YOUR_GPTZZZ_API_KEY"
Windows PowerShell:
New-Item -ItemType Directory -Force "$HOME\.codex" | Out-Null
if (-not (Test-Path "$HOME\.codex\config.toml.bak")) {
if (Test-Path "$HOME\.codex\config.toml") {
Copy-Item "$HOME\.codex\config.toml" "$HOME\.codex\config.toml.bak"
} else {
New-Item -ItemType File "$HOME\.codex\config.toml.bak" | Out-Null
}
}
$env:GPTZZZ_API_KEY = "YOUR_GPTZZZ_API_KEY"
已有 config.toml.bak 时不会覆盖,新开终端重跑这一步也安全。原来没有 config.toml 时会生成一个空备份;恢复后文件为空,model_provider 回到默认的官方 openai。
第 2 步:编辑用户级配置。用编辑器打开 ~/.codex/config.toml(例如 nano ~/.codex/config.toml;Windows 用 notepad "$HOME\.codex\config.toml"),合并下面的内容:
# 顶层键要写在第一个 [表] 之前
model = "gpt-6-sol"
model_provider = "gptzzz"
[model_providers.gptzzz]
name = "GPTZZZ"
base_url = "https://gptzzz.ai/v1"
env_key = "GPTZZZ_API_KEY"
wire_api = "responses"
文件里已经有 model 或 model_provider 时,直接改那一行,不要再写第二遍。写在 [model_providers.gptzzz] 下面的键会被当成这个表的字段,Codex 不会把它当顶层设置读。
第 3 步:发探针。codex exec 默认要求在 Git 仓库里运行;在空目录里做纯文本探针时加 --skip-git-repo-check:
mkdir -p /tmp/codex-probe && cd /tmp/codex-probe
codex exec --skip-git-repo-check --json "Reply with exactly: CODEX_OK"
Windows PowerShell:
New-Item -ItemType Directory -Force "$env:TEMP\codex-probe" | Out-Null
Set-Location "$env:TEMP\codex-probe"
codex exec --skip-git-repo-check --json "Reply with exactly: CODEX_OK"
JSONL 里应依次出现 thread.started、turn.started、文本为 CODEX_OK 的 item.completed 和 turn.completed。缺最后的 turn 事件,不算成功。临时换模型加 --model gpt-5.5;进入交互界面后用 /status 看当前模型和 Provider。
下表列出 GPTZZZ 模型价格页里常用于 Codex 的 GPT 模型,单元格是“输入 / 输出”价格,单位元 / 百万 Token,已乘分组倍率。一个 API Key 只属于一个分组,只能调用该分组里的模型;在控制台 /keys 页面创建 Key 时选分组。opai puls、opai pro、pro200-500不降智 在价格页标为“GPT 订阅号池”,GPT官key 标为“官方 Key”。
| 模型 ID(链接到价格详情) | opai puls(0.05x) | opai pro(0.1x) | pro200-500不降智(0.25x) | GPT官key(0.54x) |
|---|---|---|---|---|
gpt-6.1-sol 价格 | — | — | ¥0.50 / ¥2.50 | — |
gpt-6-astra 价格 | ¥0.50 / ¥2.50 | ¥1.00 / ¥5.00 | ¥2.50 / ¥12.50 | ¥67.85 / ¥339.23 |
gpt-6-sol 价格 | ¥0.10 / ¥0.50 | ¥0.20 / ¥1.00 | ¥0.50 / ¥2.50 | ¥13.57 / ¥67.85 |
gpt-6-luna 价格 | ¥0.0050 / ¥0.025 | ¥0.01 / ¥0.05 | ¥0.025 / ¥0.13 | ¥0.68 / ¥3.39 |
gpt-5.6-sol 价格 | ¥0.25 / ¥1.50 | ¥0.50 / ¥3.00 | ¥1.25 / ¥7.50 | ¥3.12 / ¥15.60 |
gpt-5.6-terra 价格 | ¥0.10 / ¥0.60 | ¥0.20 / ¥1.20 | ¥0.50 / ¥3.00 | ¥1.56 / ¥9.37 |
gpt-5.6-luna 价格 | ¥0.01 / ¥0.06 | ¥0.02 / ¥0.12 | ¥0.05 / ¥0.30 | ¥0.63 / ¥3.75 |
gpt-5.5 价格 | ¥0.25 / ¥1.50 | ¥0.50 / ¥3.00 | ¥1.25 / ¥7.50 | ¥3.91 / ¥23.40 |
gpt-5.3-codex-spark 价格 | ¥0.088 / ¥0.70 | ¥0.18 / ¥1.40 | — | — |
codex-auto-review 价格 | ¥0.01 / ¥0.06 | ¥0.02 / ¥0.12 | ¥0.05 / ¥0.30 | — |
“—”表示该分组不含这个模型。表中除 gpt-5.3-codex-spark 外,其余 ID 都在 Codex 0.162.0 的内置模型目录里;codex-auto-review 在价格页注明为 Codex 内部使用的审核模型。价格以 GPTZZZ 模型价格页和控制台实时显示为准。
config.toml 放哪里、Provider 字段怎么填
| 项目 | 正确位置/值 | 常见错误 |
|---|---|---|
| 用户配置 | $CODEX_HOME/config.toml,默认 ~/.codex/config.toml;Windows 为 %USERPROFILE%\.codex\config.toml | 写进项目 .codex/config.toml,Provider 字段被忽略 |
| 顶层键 | model、model_provider 写在第一个 [表] 之前 | 写在 Provider 表下面,变成表内字段 |
| Provider ID | 自定义,如 gptzzz | 使用保留 ID openai、ollama、lmstudio |
base_url | API 根 https://gptzzz.ai/v1 | 写成 …/v1/responses,路径重复导致 404/405 |
env_key | 环境变量名 GPTZZZ_API_KEY | 直接填 Key,或启动 Codex 的进程没有这个变量 |
wire_api | responses | 网关只有 Chat Completions |
Codex CLI API Key 配置:env_key 只写变量名,真实 Key 留在环境变量里。Codex CLI API URL:base_url 只填 API 根,由 Codex 追加 /responses。CODEX_HOME 改过的话,目录必须已经存在。
只想改内置 OpenAI Provider 的地址时,官方另有顶层 openai_base_url;不要声明 [model_providers.openai]。中转站自己的 Key 用独立 Provider 加 env_key,不要设置 requires_openai_auth = true,否则 Codex 会忽略 env_key。想确认哪一层配置生效,在 CLI 里运行 /debug-config。
Windows / macOS 设置环境变量
Codex 只从启动它的进程环境里读 env_key 指定的变量。export 和 $env: 只对当前终端有效;要让新终端、VS Code 和桌面 App 都读到,就写成持久变量,再重开终端或应用。
macOS(从 10.15 起默认 shell 是 zsh):
echo 'export GPTZZZ_API_KEY="YOUR_GPTZZZ_API_KEY"' >> ~/.zshrc
source ~/.zshrc
echo "${GPTZZZ_API_KEY:0:6}"
最后一行只显示 Key 的前 6 位,用来确认变量已加载。Linux(bash):
echo 'export GPTZZZ_API_KEY="YOUR_GPTZZZ_API_KEY"' >> ~/.bashrc
source ~/.bashrc
echo "${GPTZZZ_API_KEY:0:6}"
Windows PowerShell,写入当前用户的环境变量(二选一):
# 方式一:写入 HKEY_CURRENT_USER\Environment
[Environment]::SetEnvironmentVariable("GPTZZZ_API_KEY", "YOUR_GPTZZZ_API_KEY", "User")
# 方式二:setx(只对之后新开的窗口生效,值超过 1024 个字符会被截断)
setx GPTZZZ_API_KEY "YOUR_GPTZZZ_API_KEY"
关掉当前 PowerShell,新开一个窗口检查:
$env:GPTZZZ_API_KEY.Substring(0, 6)
macOS 上从 Dock 或启动台打开的 App,不一定读得到只写在 ~/.zshrc 里的变量。给桌面 App 用时,再执行一次 launchctl setenv,它只对之后由 launchd 启动的进程生效:
launchctl setenv GPTZZZ_API_KEY "YOUR_GPTZZZ_API_KEY"
注意:launchctl setenv 不是永久设置,注销或重启后就失效。每次登录后、打开 App 之前要重新执行一次;已经开着的 App 读不到新值,要按 ⌘Q 完全退出再打开。
Key 不要写进 config.toml、仓库、截图或工单。在 Windows 上让 VS Code 插件跑在 WSL 里时,按 Linux 处理:配置放在 WSL 里的 ~/.codex/config.toml,环境变量也要在 WSL 里设置。
VS Code 里的 Codex 插件怎么用中转
能用,不用另写一份配置。插件的“Codex 设置”(模型、推理强度、权限、沙箱、MCP)就是从 config.toml 读的,和 CLI 共用;编辑器自己的 chatgpt.* 设置只管界面行为,不写进 config.toml。
- 在扩展市场安装 OpenAI 的 Codex 扩展(扩展 ID
openai.chatgpt)。Cursor、Windsurf 等兼容 VS Code 的编辑器装的是同一个扩展。 - 按上文写好
~/.codex/config.toml,并把GPTZZZ_API_KEY设成持久环境变量。 - 完全退出编辑器再打开:macOS 按 ⌘Q,Windows / Linux 关掉所有窗口。VS Code 第一个实例的环境变量继承自启动它的父进程,之后开的窗口沿用这个实例的环境,只关窗口不会刷新。
- 打开 Codex 侧栏;找不到图标时,在命令面板运行 Codex: Open Codex Sidebar。点侧栏齿轮 → Codex Settings → Open config.toml,确认打开的就是刚才改的那份文件。
- 发一句
Reply with exactly: CODEX_OK验证;要换模型,在输入框用/model。
Windows 上打开了 chatgpt.runCodexInWindowsSubsystemForLinux(让 Codex 跑在 WSL 里)时,插件读的是 WSL 里的配置,见上一节最后一段。
Codex 桌面 App 怎么用中转
OpenAI 现在的桌面端是 ChatGPT 桌面 App,在里面切到 Codex 使用。官方网关文档写明:macOS 版读同一份 ~/.codex/config.toml,Windows 版读 %USERPROFILE%\.codex\config.toml,保存后要重启 App。
- 按“直接复制”一节写好
config.toml。 - 让 App 进程拿到
GPTZZZ_API_KEY:Windows 用上文的用户级环境变量;macOS 用launchctl setenv,它在注销或重启后失效,每次登录后、打开 App 前重新执行。官方提醒,只在终端里设置的变量,从桌面启动的 App 可能读不到。 - 彻底退出 App 再打开。macOS 上按 ⌘Q,只关窗口不算。
- 新建一个 Codex 对话,先看选中的模型,再发
Reply with exactly: CODEX_OK。
官方设置文档还写明:桌面 App 里的 Codex 继承与 VS Code 插件、CLI 相同的配置;桌面 App 和 VS Code 插件打开同一个项目时,会共享对话和编辑器上下文。
用 CC Switch 切换
CC Switch 是开源(MIT)的桌面工具,支持 Windows、macOS、Linux,可以管理 Codex、Claude Code、Gemini CLI 等工具的供应商,不用手改 TOML。项目 README 写明唯一官网是 ccswitch.io。
- 安装:macOS 用
brew install --cask cc-switch;Windows、Linux 从 GitHub Releases 下载安装包。 - 首次启动时,它会把现有 Codex 配置导入为名为
default的供应商,并添加官方供应商 OpenAI Official。第一次改写配置文件前,原文件会备份到~/.cc-switch/backups/live-first-write/。 - 侧栏选 Codex,点右上角“+”新建自定义供应商,填
https://gptzzz.ai/v1、GPTZZZ Key 和模型 ID(如gpt-6-sol),然后点“启用”。 - 切换后要重启终端或 Codex 才生效。
供应商卡片上的“检测连通”只测地址能不能连上,不发真实请求,验证不了 Key 和模型名,最后仍用上面的探针确认。
用 GPTZZZ 客户端一键配置
不想手改文件,可以用 GPTZZZ 桌面客户端(macOS / Windows)。按 v3.21.0 的更新说明:客户端只开放 Claude Code、Codex、小龙虾、爱马仕、Grok;登录后只写入列表、不再自动切换;原配置可以一键恢复。这个版本还修复了切换供应商后 Codex 对话消失的问题。
用 curl 预检 Responses 请求与响应
启动 Codex 前,直接请求同一个 API 根,能把服务端问题和 CLI 配置问题分开:
export GPTZZZ_BASE_URL="https://gptzzz.ai/v1"
export GPTZZZ_API_KEY="YOUR_GPTZZZ_API_KEY"
curl --fail-with-body -sS -D /tmp/codex-relay-headers.txt \
"$GPTZZZ_BASE_URL/responses" \
-H "Authorization: Bearer $GPTZZZ_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-6-sol","input":"Reply with exactly: CODEX_OK"}'
Windows PowerShell:
$env:GPTZZZ_BASE_URL = "https://gptzzz.ai/v1"
$body = @{ model = "gpt-6-sol"; input = "Reply with exactly: CODEX_OK" } | ConvertTo-Json
Invoke-RestMethod -Method Post -Uri "$env:GPTZZZ_BASE_URL/responses" `
-Headers @{ Authorization = "Bearer $env:GPTZZZ_API_KEY" } `
-ContentType "application/json" -Body $body
最低验收:HTTP 2xx、object 为 response、status 为 completed、输出文本非空、响应里的模型和 usage 可读,并记下请求 ID。curl 成功仍不能证明 Codex 需要的工具调用和 SSE 全部兼容。
为什么 Chat Completions 不能替代 wire_api
截至 2026-10-09,官方配置参考写明 model_providers.<id>.wire_api 唯一支持值是 responses,省略时也默认 Responses。官方网关兼容要求也写明:Chat Completions 或 Anthropic Messages 接口能用,不代表 Responses 兼容。把聊天文本包装成相似 JSON,撑不起 Codex 的 SSE、工具调用和多轮续接。
| 能力 | 要验证什么 |
|---|---|
| 文本任务 | response completed 与非空 output_text |
| SSE | 事件逐条转发不缓冲,最后有 response.completed 或错误事件 |
| function tools | function call 与对应 function_call_output 的 ID 一致,结果回传后有最终回答 |
| reasoning | 推理档位参数被接受,推理相关事件正常回传 |
| 多轮 | 后续轮次带上之前的消息、工具调用和结果仍能继续 |
| 代码任务 | 目标 diff、命令退出码与测试结果 |
Codex CLI 验证指标与可复现实验
- 在固定测试仓库运行
codex exec --json的只读问答; - 执行一次单文件修改并运行固定测试;
- 记录首个 JSONL 事件、首个 agent message、
turn.completed和总耗时; - 记录工具成功率、命令退出码、重试次数、最终 diff 与网关 request ID;
- 主动取消一次长任务,确认恢复后不会重复执行工具。
官方基线和中转实验用同一 Codex 版本、仓库快照、提示、模型和超时。只比较回答文风或“看起来会改代码”,不能说明兼容。
401、404、参数错误与 SSE 中断排查
| 现象 | 先查 | 处理 |
|---|---|---|
| 401 | GPTZZZ_API_KEY 是否在启动 Codex 的进程里;Key 是否完整 | 修好凭据再试,不要反复重试 |
| CLI 正常,VS Code 或桌面 App 报 401 | 编辑器/App 进程有没有读到变量;macOS 是否重启或注销过(launchctl setenv 会失效) | 设成持久变量;macOS 重新执行 launchctl setenv,再按 ⌘Q 完全退出后重开 |
| 404 / 405 | base_url 是否多写或少写 /v1、是否带了 /responses | 改成 https://gptzzz.ai/v1 |
| model not found | 模型 ID 是否在这把 Key 的分组里 | 从模型价格页或控制台复制 ID,必要时换对应分组的 Key |
| 工具、推理档位表现异常 | 模型 ID 是否在当前 Codex 版本的内置模型目录里 | 换成目录里有的 ID,或按官方说明提供 model_catalog_json |
| 400 unsupported parameter | 网关 Responses 参数或工具 Schema 不完整 | 保留原始响应,缩小探针 |
| 改了配置不生效 | 是否写在项目级 .codex/config.toml;顶层键是否写在表后面 | 移到用户级文件顶部,用 /debug-config 确认 |
| 流开始后断开 | SSE 是否被代理缓冲、是否误用 Chat chunk、空闲超时 | 保存最后一个事件,标记为不完整 |
状态码含义见 GPTZZZ 错误码速查手册。先用 OpenAI API 接入探针验证 Responses;协议变更参考 OpenAI 兼容迁移清单;密钥隔离见 API Key 安全指南;工具与 SSE 用 流式和工具兼容矩阵复验。
用了中转怎么换回官方配置
换回官方就三件事:Codex 不再用自定义 Provider、清掉中转 Key、确认官方登录还在。
- 停掉 Codex。退出 CLI、VS Code 插件和桌面 App 里正在跑的任务。
- 恢复配置。有备份就复制回去(macOS / Linux:
cp ~/.codex/config.toml.bak ~/.codex/config.toml;PowerShell:Copy-Item "$HOME\.codex\config.toml.bak" "$HOME\.codex\config.toml" -Force)。没有备份就删掉model_provider = "gptzzz"这一行和整个[model_providers.gptzzz]表;model_provider不写时默认就是官方openai。model改成你官方账号能用的模型,不确定就删掉这行,进入 Codex 后用/model选。 - 清掉中转 Key。macOS / Linux 删掉
~/.zshrc或~/.bashrc里的那行 export,再执行unset GPTZZZ_API_KEY;macOS 设过 launchctl 的执行launchctl unsetenv GPTZZZ_API_KEY。Windows 见下方命令。 - 确认官方登录。运行
codex login status。没有凭据就codex login,在浏览器里用 ChatGPT 登录。如果你以前用codex login --with-api-key登录过中转 Key,先codex logout(会清掉已保存的 API Key 和 ChatGPT 凭据)再重新登录。VS Code 插件在头像菜单里 Log out,再选 Sign in with ChatGPT;桌面 App 在头像菜单里 Log out,再选 Continue to sign in。 - 验证。新开终端运行
codex,用/status看模型和 Provider;出问题时codex doctor会检查安装、配置和登录状态。
Remove-Item Env:GPTZZZ_API_KEY -ErrorAction SilentlyContinue
[Environment]::SetEnvironmentVariable("GPTZZZ_API_KEY", $null, "User")
codex login status
官方登录缓存放在 ~/.codex/auth.json 或系统凭据库里,CLI 和插件共用。auth.json 里是访问令牌,按密码对待,不要提交或贴进工单。
用 CC Switch 的:切到 OpenAI Official 并重启 Codex。CC Switch 切到第三方时会把 Codex 官方登录暂存起来,切回官方时还原;用 codex login status 确认,显示未登录再运行 codex login。用 GPTZZZ 客户端配置的:在客户端里一键恢复原配置。
如果只想在 CLI 里按需用中转,可以把 [model_providers.gptzzz] 留在 config.toml,把 model_provider = "gptzzz" 和 model 挪到单独的 profile 文件 ~/.codex/gptzzz.config.toml。平时运行 codex 走官方,需要中转时运行 codex --profile gptzzz。profile 靠 CLI 的 --profile 参数选择。
官方资料
- OpenAI Codex Advanced configuration(自定义 Provider、profile)
- OpenAI Codex Configuration reference(wire_api、env_key)
- OpenAI Codex Environment variables(CODEX_HOME)
- OpenAI Codex Authentication(login、logout、auth.json)
- Codex IDE extension settings
- Use API/provider credentials through a gateway(CLI、macOS 与 Windows App)
- Gateway compatibility requirements
- OpenAI Codex Non-interactive mode
- Codex 0.162.0 内置模型目录
- OpenAI Codex Responses API proxy
- CC Switch 仓库与 README
- Microsoft setx 命令说明
- Microsoft Environment.SetEnvironmentVariable
常见问题
Codex CLI 的 config.toml 在哪里?
用户级配置在 $CODEX_HOME/config.toml,默认是 macOS/Linux 的 ~/.codex/config.toml、Windows 的 %USERPROFILE%\.codex\config.toml。CLI、VS Code 插件和桌面 App 共用这份配置。model_provider、model_providers 和 openai_base_url 写在项目级 .codex/config.toml 里会被忽略。
Codex CLI 中转 API 的 base_url 怎么填?
填 API 根。GPTZZZ 填 https://gptzzz.ai/v1,Codex 会自己请求 https://gptzzz.ai/v1/responses;不要把 /responses 写进 base_url。
Codex CLI 的 wire_api 应该怎样选择?
截至 2026-10-09,官方配置参考写明 responses 是唯一支持值,省略时也默认 responses。只有 /v1/chat/completions 的中转站不能直接给当前 Codex 使用。
Codex CLI API Key 应该写进 config.toml 吗?
不应该。env_key 只写环境变量名(如 GPTZZZ_API_KEY),Codex 从启动它的进程环境里读取实际值。不要同时设置 requires_openai_auth = true,否则 Codex 会忽略 env_key。
VS Code 里的 Codex 插件能用中转 API 吗?
能。插件的模型、权限、MCP 等 Codex 设置就是从 config.toml 读的,和 CLI 共用。写好 Provider 后,把 GPTZZZ_API_KEY 设成持久环境变量,完全退出编辑器(macOS 按 ⌘Q)再打开。Cursor、Windsurf 等兼容编辑器装的是同一个扩展。
Codex 桌面 App 怎么接中转 API?
官方网关文档写明,macOS 版读 ~/.codex/config.toml,Windows 版读 %USERPROFILE%\.codex\config.toml。保存 Provider 后彻底退出并重开 App,并确保 App 进程能读到 GPTZZZ_API_KEY;只在终端里设置的变量,从桌面启动的 App 可能读不到。
Windows 和 macOS 怎么永久设置 GPTZZZ_API_KEY?
macOS 默认 zsh,把 export GPTZZZ_API_KEY="你的 Key" 写进 ~/.zshrc,给桌面 App 用再执行 launchctl setenv(注销或重启后失效,要重新执行后再打开 App);Linux bash 写进 ~/.bashrc。Windows 在 PowerShell 运行 [Environment]::SetEnvironmentVariable("GPTZZZ_API_KEY", "你的 Key", "User") 或 setx,之后新开的窗口才生效。
用了中转后怎么换回 Codex 官方配置?
退出 Codex,把 config.toml.bak 复制回 config.toml;没有备份就删掉 model_provider = "gptzzz" 和整个 [model_providers.gptzzz] 表。再删掉 GPTZZZ_API_KEY,运行 codex login status 检查官方登录,没有凭据就 codex login。用 CC Switch 的,切到 OpenAI Official 后重启,用 codex login status 确认登录。
codex exec 文本成功就代表完整兼容吗?
不代表。文本探针只证明基础 Responses 链路;还要验证 SSE 事件、function tools、reasoning、多轮续接、取消、错误和代码修改后的测试结果。
Codex CLI 怎样配置自定义 model_provider?
在用户级 config.toml 定义 [model_providers.自定义ID],设置 name、API 根 base_url、环境变量名 env_key 与 wire_api = "responses",再让顶层 model_provider 指向该 ID。顶层键要写在第一个表之前。
Codex CLI 怎样指定中转站的自定义模型?
在 config.toml 顶层设 model(如 gpt-6-sol),或单次运行加 --model。模型 ID 要在你这把 Key 的分组里,最好也在当前 Codex 版本的内置模型目录里;不在目录里的名称,官方建议提供匹配的 model_catalog_json。
Codex CLI 如何验证 Responses 流式和工具调用?
先用 codex exec --json 核对 thread、turn、item 和最终完成事件,再在固定测试仓库验证工具调用 ID、参数、结果、命令退出码、最终 diff 与测试结果。
本文技术参数与官方资料复核于 2026-10-09(Codex 0.162.0);GPTZZZ 价格取自当日模型价格页。模型、价格、限额与客户端界面会变化,使用前请再次核对官方文档和当前控制台。

