【Bug已解决】codex: rate limit exceeded / 429 Too Many Requests — CodeX CLI 速率限制解决方案1. 问题描述在使用 CodeX CLI 时API 返回 429 速率限制错误# 每分钟请求限制 $ codex Error: 429 Too Many Requests Rate limit: 60 requests per minute. Please retry after 60s. # 或 TPM 限制 Error: 429 You exceeded your current TPM (tokens per minute) limit # 或日限额 Error: 429 Daily quota exceeded. Resets at midnight UTC.这个问题在以下场景中特别常见密集使用 CodeX CLI 处理大量任务多个终端同时运行 CodeXCI/CD 并行任务使用同一 Key上下文过大导致每次请求消耗大量 Token免费额度或低级别 API 套餐工具循环导致大量请求2. 原因分析核心原理拆解大量 API 请求 → 超过 OpenAI 的速率限制RPM/TPM/日额 ↓ API 返回 429 Too Many Requests ↓ CodeX CLI 无法继续发送请求原因分类表限制类型具体表现占比RPM 限制每分钟请求超限约 35%TPM 限制每分钟 Token 超限约 30%日限额每日配额用完约 20%并发限制多终端/多任务约 10%免费额度免费计划限制约 5%3. 解决方案方案一等待限制重置最推荐# 步骤 1查看错误中的重置时间 # Rate limit: 60 RPM. Retry after 60s. # Daily quota resets at midnight UTC. # 步骤 2等待相应时间 sleep 60 # RPM 限制等 60 秒 codex # 步骤 3如果是日限额 date -u # 查看 UTC 时间 # 等待 UTC 午夜重置方案二减少 Token 消耗# 步骤 1使用更小的模型 codex --model gpt-4o-mini # mini 消耗更少 Token限制更高 # 步骤 2减少上下文 # 不要一次性传入大量代码 # 只传入必要的部分 # 步骤 3使用 --max-tokens 限制输出 codex --max-tokens 2000 分析代码 # 步骤 4避免长对话 # 每次任务是独立请求方案三避免并发请求# 步骤 1不要同时开多个 CodeX 终端 # 关闭其他终端 # 步骤 2CI/CD 串行执行 for task in task1 task2 task3; do codex $task sleep 5 # 间隔 5 秒 done # 步骤 3使用锁机制 if [ -f /tmp/codex.lock ]; then while [ -f /tmp/codex.lock ]; do sleep 5; done fi touch /tmp/codex.lock codex task rm /tmp/codex.lock方案四升级 API 套餐# 步骤 1在 OpenAI Platform 查看当前套餐 # https://platform.openai.com/account/billing # 步骤 2升级到更高层级 # Tier 1: 60 RPM, 150K TPM # Tier 2: 500 RPM, 450K TPM # 更高层级限制更高 # 步骤 3或使用多个 API Key 分散负载 # 开发用 Key ACI/CD 用 Key B方案五配置重试# 步骤 1在配置文件中设置重试 cat ~/.codex/config.json EOF { maxRetries: 3, retryDelay: 5000 } EOF # 步骤 2CI/CD 中手动退避 for i in 1 2 3; do output$(codex task 21) if echo $output | grep -q 429; then echo Rate limited, waiting $((i*60))s... sleep $((i*60)) else echo $output break fi done方案六监控用量# 步骤 1在 OpenAI Platform 查看用量 # https://platform.openai.com/account/usage # 步骤 2设置用量通知 # Settings → Limits → 设置限额通知 # 步骤 3通过 API 查看用量 curl https://api.openai.com/v1/organization/costs \ -H Authorization: Bearer $OPENAI_API_KEY | python3 -m json.tool # 步骤 4设置预算 # Billing → Monthly budget4. 各方案对比总结方案适用场景推荐指数难度方案一等待即时解决⭐⭐⭐⭐⭐低方案二减少 Token预防⭐⭐⭐⭐⭐低方案三避免并发多终端⭐⭐⭐⭐⭐低方案四升级套餐长期⭐⭐⭐⭐低方案五配置重试CI/CD⭐⭐⭐⭐低方案六监控预防⭐⭐⭐⭐⭐低5. 常见问题 FAQ5.1 OpenAI API 的速率限制是多少取决于套餐层级Tier 1$5: 60 RPM, 150K TPMTier 2$50: 500 RPM, 450K TPMTier 3-5: 更高限制5.2 429 错误多久重置RPM 限制60 秒后重置TPM 限制60 秒后重置日限额UTC 午夜重置5.3 如何查看剩余配额在 https://platform.openai.com/account/usage 查看用量或在 Settings → Limits 查看限额。5.4 多个 API Key 能分散限制吗可以。每个 Key 有独立的速率限制。为不同用途使用不同 Key。5.5 CodeX 会自动重试 429 吗取决于配置。设置maxRetries启用自动重试。5.6 如何减少每次请求的 Token使用gpt-4o-mini代替gpt-4o减少输入上下文使用--max-tokens限制输出5.7 CI/CD 中的速率限制串行执行间隔 5-10 秒使用不同 Key 分散负载。5.8 免费额度用完了充值 OpenAI 账户升级到 Tier 1获取更高的速率限制。5.9 如何设置预算提醒在 OpenAI Platform → Billing → 设置月度预算和通知阈值。5.10 排查清单速查表□ 1. 查看 429 错误中的重置时间 □ 2. 等待 RPM/TPM 重置60 秒 □ 3. 日限额等待 UTC 午夜 □ 4. --model gpt-4o-mini 使用更小模型 □ 5. --max-tokens 限制输出大小 □ 6. 关闭其他终端避免并发 □ 7. CI/CD 串行 sleep 5 □ 8. 升级 API 套餐提高限额 □ 9. 多 Key 分散负载 □ 10. platform.openai.com/account/usage 监控6. 总结根本原因速率限制最常见原因是 RPM 限制35%和 TPM 限制30%超过 OpenAI 的每分钟请求/Token 限额最佳实践使用gpt-4o-mini代替gpt-4o减少消耗使用--max-tokens限制输出并发控制不要同时开多个 CodeX 终端CI/CD 中串行执行并间隔 5-10 秒监控用量在 https://platform.openai.com/account/usage 定期查看设置预算提醒最佳实践建议为开发和 CI/CD 使用不同的 API Key分散速率限制负载在 CI/CD 中配置指数退避重试故障排查流程图flowchart TD A[429 Rate Limit] -- B[查看重置时间] B -- C{限制类型?} C --|RPM/TPM| D[等待 60 秒] C --|日限额| E[等待 UTC 午夜] D -- F[减少 Token 消耗] E -- F F -- G[使用 gpt-4o-mini] G -- H[减少上下文/max-tokens] H -- I{限制解除?} I --|是| J[✅ 继续] I --|否| K[检查并发] K -- L{多终端运行?} L --|是| M[关闭其他终端] L --|否| N[查看用量] M -- j N -- O{接近上限?} O --|是| P[升级 API 套餐] O --|否| Q[多 Key 分散] P -- j Q -- j j -- J J -- R[CI/CD: 串行重试] R -- S[✅ 长期方案]