【注】我之前在CODEX登录了自己openai账号,导致信息残留,导致codex无法正确调用中转站API,该方法可能适用于登陆过自己openai账号的人。
可以,把这次Codex 使用中转站出现429 Too Many Requests的最终解决流程整理成一套可复现步骤。以后换电脑也可以照这个做。
Codex 中转站 429 的解决流程
1. 先确认中转站本身正常
PowerShell 设置 API Key:
$env:OPENAI_API_KEY = "你的中转站API_KEY"测试模型列表:
$headers = @{ Authorization = "Bearer $env:OPENAI_API_KEY" } (Invoke-RestMethod ` -Uri "https://api.openlux.ai/v1/models" ` -Headers $headers ` -Method Get).data.id【注】这里的uri填自己中转站的
确认目标模型存在,例如:
gpt-5.6-sol再直接测试 Responses API:
$headers = @{ Authorization = "Bearer $env:OPENAI_API_KEY" "Content-Type" = "application/json" } $body = @{ model = "gpt-5.6-sol" input = "hello" } | ConvertTo-Json Invoke-RestMethod ` -Uri "https://api.openlux.ai/v1/responses" ` -Headers $headers ` -Method Post ` -Body $body能正常返回说明:
API Key ✓ 模型 ✓ /v1/responses ✓ 中转站 ✓2. 不再使用原来的 Codex 状态目录
原来:
C:\Users\11951815\.codex这个目录之前使用过 ChatGPT 登录,并包含历史认证、状态、插件、数据库等。
新建一个干净目录:
New-Item ` -ItemType Directory ` -Path "$env:USERPROFILE\.codex-openlux" ` -Force3. 临时指定新的CODEX_HOME
$env:CODEX_HOME = "$env:USERPROFILE\.codex-openlux"检查:
$env:CODEX_HOME应该输出:
C:\Users\11951815\.codex-openlux4. 设置中转站 API Key
当前 PowerShell:
$env:OPENAI_API_KEY = "你的中转站API_KEY"检查:
$env:OPENAI_API_KEY能显示 Key 即可。
不要把真实 API Key 发给别人或提交到 Git。
5. 创建新的config.toml
打开:
notepad "$env:CODEX_HOME\config.toml"写入:
model_provider = "api111" model = "gpt-5.6-sol" model_reasoning_effort = "low" forced_login_method = "api" preferred_auth_method = "apikey" [model_providers.api111] name = "api111" base_url = "https://api.openlux.ai/v1" wire_api = "responses" env_key = "OPENAI_API_KEY" requires_openai_auth = false supports_websockets = false【填写自己的配置】
其中最核心的是:
base_url = "https://api.openlux.ai/v1" wire_api = "responses" env_key = "OPENAI_API_KEY" requires_openai_auth = false【填写自己的配置】
6. 不要登录 ChatGPT
检查:
codex login status当前这种中转 API 配置下,我们验证成功时是:
Not logged in不要再执行 ChatGPT 登录流程。
7. 用最小请求验证 Codex
执行:
codex exec --skip-git-repo-check "Reply with exactly: OK"正常返回:
OK说明链路已经打通:
Codex ↓ CODEX_HOME=.codex-openlux ↓ api111 ↓ OPENAI_API_KEY ↓ https://api.openlux.ai/v1 ↓ /responses ↓ gpt-5.6-sol然后正常启动:
codex输入:
hello能回复即完成。
8. 永久保存两个环境变量
前面$env:...只对当前 PowerShell 窗口有效。
确认一切正常后,再永久设置:
[Environment]::SetEnvironmentVariable( "CODEX_HOME", "$env:USERPROFILE\.codex-openlux", "User" )API Key:
[Environment]::SetEnvironmentVariable( "OPENAI_API_KEY", "你的中转站API_KEY", "User" )然后关闭所有 PowerShell、Codex 和 VS Code 窗口,重新打开。
验证:
$env:CODEX_HOME应该是:
C:\Users\11951815\.codex-openlux再测试:
codex exec --skip-git-repo-check "Reply with exactly: OK"正常返回即可。
这次问题的核心
原来的情况是:
旧 .codex ├── 曾经 ChatGPT 登录 ├── 历史认证/状态 ├── 插件/MCP ├── Codex 本地数据库 └── 自定义中转配置 ↓ 429我们最终没有删除旧目录,而是建立完全隔离的新环境:
.codex-openlux + OPENAI_API_KEY + 最小 config.toml ↓ api111 ↓ api.openlux.ai ↓ 成功所以这次最关键的解决措施可以浓缩成一句话:
为中转站单独建立一个干净的
CODEX_HOME,使用环境变量提供 API Key,并让自定义 provider 直接走/v1/responses,避免复用原先 ChatGPT 登录过的 Codex 状态目录。