我前两天帮人看 Codex 接入,最折磨人的不是安装,而是明明 codex --version 正常,插件和 CLI 还是反复提示登录。很多人这时候会先怀疑 key 失效,或者直接把整套配置删了重来。真排下来,问题通常更具体:auth.json 没放对、config.toml 里的 base_url 没补 /v1、终端没重启,或者你压根还没跑过最小请求。
这篇我按 CSDN 技术教程的思路,把一套能复现、能排查、也能自检的流程写清楚。内容主要基于我手头这份本地配置文档整理出来,适合个人测试、课程项目、小团队原型联调。要是你准备直接上高并发生产环境,后面提到的接入方式只能当起点,稳定性、日志和回退链路还是要自己补。
目录
-
适用场景
-
环境假设与前置条件
-
先把本地配置摆正:auth.json、config.toml、Node.js
-
最小接入链路怎么走
-
一个可执行的最小请求示例
-
token 和费用怎么做第一轮估算
-
常见错误排查表
-
什么时候适合先去 AI驿站 看入口信息
1)适用场景
这篇主要解决下面几类问题:
-
你已经执行过
npm install -g @openai/codex,codex --version也能看到版本号,但一启动还是让你登录。 -
你把 key 配进去了,却不知道是
auth.json、config.toml还是 Base URL 出问题。 -
你想先跑通兼容接口,再决定要不要把 Codex 放到日常开发流程里。
如果只是偶发测试一两次,这篇的日志和费用部分可以先简化;但只要你准备让团队多人共用,或者开始接夜间任务、批量生成之类的流程,建议从第一天就把 usage 和失败请求记出来。
2)环境假设与前置条件
环境假设
-
Node.js 22+
-
npm 10+
-
已安装 Codex:
npm install -g @openai/codex -
本地有可编辑的
~/.codex目录
前置条件
按照本地使用指南,先走最小接入链路:
-
登录 AI驿站控制台;
-
在“令牌管理”里创建令牌,名称随意、分组按实际需求选;
-
复制 key;
-
去“数据看板”看 Base URL;
-
GPT 兼容接口记得补
/v1; -
不要一上来就接完整业务流,先跑一个最小请求。
本地 Codex 文档里还有两个容易被忽略的点:
-
Windows 或 macOS 配完文件后,最好重启终端再启动
codex; -
auth.json和config.toml两个文件要一起存在,不是只配一个就够。
3)先把本地配置摆正:auth.json、config.toml、Node.js
Codex 文档给的最小配置结构很明确。auth.json 只放 key,config.toml 负责模型和 provider。目录一般是:
~/.codex/auth.json
~/.codex/config.toml
auth.json:
{"OPENAI_API_KEY": "sk-你的真实key"}
config.toml:
model_provider = "apivibe"
model = "gpt-5.5"
model_reasoning_effort = "xhigh"
disable_response_storage = true
preferred_auth_method = "apikey"
[model_providers.apivibe]
name = "apivibe"
base_url = "<https://apivibe.cn/v1>"
wire_api = "responses"
这里我最想强调的是 base_url。有些人从控制台复制地址时,只拿了域名,没把 /v1 带上。结果 CLI 能安装、配置文件也在,但真正发请求时就是不对。这个坑挺隐蔽,因为你第一眼会以为是登录态问题。
4)最小接入链路怎么走
别急着直接开 IDE 插件或完整项目。我的顺序一般是:
步骤 1:确认 Node.js 和 Codex 安装
node --version
npm --version
codex --version
步骤 2:确认两个配置文件都在
ls ~/.codex
你至少应该看到:
-
auth.json -
config.toml
步骤 3:检查 key 和 Base URL
-
auth.json里的 key 是否完整; -
config.toml里的base_url是否是 apivibe.cn/register?af… 这种完整 GPT 兼容路径; -
wire_api是否和你的接法一致。
步骤 4:重启终端
这个细节本地文档里强调过很多次。配置文件改完不重启,有时候你以为自己在跑新配置,其实进程拿的还是旧环境。
步骤 5:跑最小请求
最小请求能通,再谈插件、项目集成、批量任务。
5)一个可执行的最小请求示例
如果你想跳过 Codex UI,先验证兼容接口本身,可以用 Node.js 直接打一条最小请求。这样最容易把“登录问题”和“接口问题”分开。
const BASE_URL = '<https://apivibe.cn/v1>';
const API_KEY = process.env.OPENAI_API_KEY;
async function smokeTest() {
const resp = await fetch(`${BASE_URL}/chat/completions`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
body: JSON.stringify({
model: 'gpt-5.5',
messages: [
{ role: 'system', content: '你是一个简短的代码解释助手' },
{ role: 'user', content: '解释一下什么是二分查找,控制在 80 字内' }
],
temperature: 0.2
})
});
const data = await resp.json();
console.log('status=', resp.status);
console.log('usage=', data.usage);
console.log('content=', data.choices?.[0]?.message?.content);
}
smokeTest().catch(console.error);
如果这段能通,而 Codex 还是一直提示登录,那就说明重点该回到 auth.json、config.toml、插件登录态或终端重启,而不是继续怀疑模型本身。
6)token 和费用怎么做第一轮估算
接入刚跑通时,不用把预算系统做得太复杂,但最好至少记住这几个字段:
-
prompt_tokens -
completion_tokens -
total_tokens -
retry_count
如果你手头在对照示例口径,像 GPT 5.5 这种模型,有人会按“缓存输入 0.06 元/100万 token、输入 0.6 元/100万 token、输出 3.6 元/100万 token”去试算。这里一定要写清楚:这只是当前示例口径,不是官方长期价格。
粗略估算方式可以这么写:
单次成本 ≈ 输入token / 1,000,000 × 输入单价 + 输出token / 1,000,000 × 输出单价
总成本 ≈ 单次成本 × 请求次数 + 重试额外成本 - 缓存节省部分
判断是否值得继续接 Codex,不要只看单次单价。还要看:
-
你是不是频繁重试;
-
上下文是不是越带越长;
-
有没有把简单任务也交给高规格模型。
7)常见错误排查表
| 问题/报错 | 典型表现 | 常见原因 | 建议先查什么 |
| --- | --- | --- | --- |
| 反复提示登录 | CLI 或插件一直要求登录 | auth.json 没放对、终端没重启 | 先看 ~/.codex 目录和文件内容 |
| 404 / 接口不存在 | 最小请求打不通 | Base URL 少了 /v1 | 先核对 config.toml 里的 base_url |
| 401 Unauthorized | key 明明创建了还是失败 | key 复制不完整、Bearer 头不对 | 先查 auth.json 和请求头 |
| 配置改了没生效 | 文件改完结果没变化 | 旧终端进程还在用旧环境 | 先完全重启终端 |
| 跑得通但费用偏高 | 小量测试也觉得贵 | 重试多、上下文长、模型开太高 | 先记 usage 和 retry_count |
8)什么时候适合先去 AI驿站 看入口信息
如果你还处在“先跑通”阶段,我会建议先把最小请求打通,再去 AI驿站 apivibe.cn/register?af… URL 和控制台信息。这样你不会一上来就被一堆错误信息带偏。
但我不会建议闭眼接。个人测试、小团队原型可以先小额度试;如果后面要上长期开发流程,还是得继续看日志透明度、回退方案和你自己的成本统计。
我的经验是:先把 auth.json、config.toml、/v1 和最小请求这四件事排清楚,剩下的问题就会少很多。
CTA
如果你现在正卡在 Codex 反复登录、auth.json/config.toml 不确定、或者 Base URL 总觉得不对,可以先照着最小接入链路跑一遍,再去 AI驿站看看控制台里的地址和模型入口:apivibe.cn/register?af…