Codex 安装/换肤后下一步:用 CodeLink 完成首次真实调用(CLI 实测)
Codex 安装/换肤后下一步:用 CodeLink 完成首次真实调用(CLI 实测)
很多 Codex 教程停在“安装成功”或“界面换好了”。真正影响能不能工作的,是后面这条链路有没有走通:Codex 读到哪份配置、选中了哪个 provider、请求发到哪里、模型是否真实返回,以及调用能否在服务端留下可核对的记录。
这篇不再用本地 401/200 模拟服务。我在一个空的临时目录里,用 Codex CLI 0.144.1、只读沙箱和一次不含项目内容的最小提示词,实际通过当前配置的 CODELINK provider 得到了 CODELINK_EVIDENCE_OK。
先说明边界:本文实测对象是 Codex CLI 0.144.1。Codex 桌面应用、Codex CLI 和 ChatGPT Desktop 不是一个可以混着写的产品名。你可以用当前 CLI 的 codex app 命令启动或安装 Codex 桌面应用,但不要把 ChatGPT Desktop 的下载和设置截图当成 Codex 配置证据。
一、先确认你运行的到底是什么
打开终端,先执行:
codex --version
codex --help
本文的回读是:
codex-cli 0.144.1
如果终端提示找不到 codex,问题还在安装或 PATH,不要提前修改 API Key。若你打开的是 ChatGPT Desktop,也不要继续套用下面的 config.toml;这篇解决的是 Codex CLI 自定义 provider 的首次调用。
二、为 Codex 单独创建一个 Key
不要让 Codex、Cursor、Claude Code 和日常脚本长期共用同一个 Key。单独 Key 有三个好处:
- 出错时能判断请求到底来自哪个工具;
- 泄露或异常时只撤销一个入口;
- 后续查看用量时,可以把 Codex 的调用与其他客户端分开。
在 CodeLink 注册并登录后,创建一个只用于 Codex 的 Key。本文不展示真实 Key,也不建议把它直接写进 config.toml、截图、Issue 或 shell history。文章中的变量名统一使用 CODELINK_API_KEY。
macOS/Linux 可以先在当前终端会话中静默输入:
read -s CODELINK_API_KEY
export CODELINK_API_KEY
printf '\nCODELINK_API_KEY is set for this shell only.\n'
这里不要把 Key 再打印出来。关闭终端后变量会消失,确认链路跑通后,再决定是否交给系统钥匙串或专门的密钥管理工具。
三、用最小配置固定 provider
OpenAI 当前配置参考明确说明,用户级配置位于 ~/.codex/config.toml;provider 和认证相关字段不能由项目内 .codex/config.toml 覆盖。官方自定义 provider 指南则把 provider 定义为 Base URL、wire API、认证和可选请求头的组合。
先备份现有用户配置,再增加一个独立 provider。下面示例与官方字段和本次 0.144.1 实测结果一致:
model = "<从 CodeLink 当前模型列表复制真实模型 ID>"
model_provider = "codelink"
[model_providers.codelink]
name = "CODELINK"
base_url = "https://api.codelink.chat"
env_key = "CODELINK_API_KEY"
wire_api = "responses"
这里最容易混淆的是四个值:
model_provider必须与[model_providers.codelink]的名称对应;env_key填的是环境变量名,不是 Key 本身;model要填模型 ID,不要凭展示名猜;base_url是服务基址,不要再拼完整的/responses资源路径。
模型列表和兼容范围会变化,因此正文不固化一个“永远可用”的模型名。注册后从当前模型页面复制真实 ID,比从旧文章抄一个名字可靠。
四、先证明配置被读取,再发模型请求
第一步只做严格配置解析:
codex --strict-config --help >/dev/null
printf 'strict_config_exit=%s\n' "$?"
看到 strict_config_exit=0,只代表 TOML 能解析、字段没有立即被判为未知;它还不能证明 Key、模型和接口真的可用。
第二步执行脱敏诊断:
codex doctor --json
本次回读中,与链路有关的信号是:
model provider: custom
provider name: CODELINK
custom API base URL: https://api.codelink.chat reachable (HTTP 200)
custom API route probe: https://api.codelink.chat/models route exists (HTTP 401)
reachability mode: API key auth
wire API: responses
这里的 /models 401 是 doctor 的匿名路由探测,它证明路由存在并要求认证,不等于“你配置的 Key 已经失效”。真正的 Key 是否工作,要看下一步的真实模型调用。
五、在空目录完成第一次真实调用
为了避免把仓库内容、AGENTS.md 或本地文件带进第一次验证,我新建了一个临时空目录,并使用只读、临时会话:
TEST_DIR="$(mktemp -d)"
codex exec \
--ephemeral \
--skip-git-repo-check \
--ignore-rules \
--sandbox read-only \
-C "$TEST_DIR" \
'Do not use tools. Reply with exactly CODELINK_EVIDENCE_OK and nothing else.'
这次调用最终得到:
provider: custom
CODELINK_EVIDENCE_OK

这两个信号比“配置文件看起来没问题”更有价值:前者证明 Codex 选中了自定义 provider,后者证明真实模型请求已经完成并返回预期内容。测试提示词不含项目代码、账号信息或隐私文本。
运行时如果看到插件加载、文档连接器或本地 Skill 的警告,要把它们与模型响应分开判断。只要最终 provider 正确且出现预期模型回复,就不能把所有启动日志都笼统归咎于 CodeLink。
六、失败时按层定位,不要反复换 Key
| 现象 | 已经证明了什么 | 下一步 |
|---|---|---|
codex 命令不存在 |
还没进入 API 层 | 修安装与 PATH |
strict_config_exit 非 0 |
配置未通过解析 | 查 TOML、字段名和 provider 对应关系 |
| doctor 看不到 CODELINK | 当前配置没有选中目标 provider | 查 CODEX_HOME 与 model_provider |
| 基址不可达、DNS/TLS 失败 | 请求还没到鉴权层 | 查网络、代理、证书和域名 |
匿名 /models 探测为 401 |
路由存在且要求认证 | 继续做真实调用,不要据此轮换 Key |
| 真实调用返回 401 | 当前进程的认证未通过 | 查环境变量是否存在、Key 是否属于当前账号 |
返回 model_not_found |
请求已越过部分认证链路 | 从当前模型列表复制真实 ID |
| 有模型回复但后台无记录 | 客户端链路已通,观测链未闭环 | 查账号、Key 归属、日志延迟和筛选条件 |
把这些层分开,才能避免“网络问题换 Key、模型问题改 Base URL、日志问题重装客户端”这种无效排查。
七、首次成功后,后台要核对什么
一次回复不代表整个接入已经可运营。登录 CodeLink 后,建议在用量记录中核对:
- 是否出现刚才的 Codex 调用;
- Key 名称是否是单独创建的 Codex Key;
- 模型 ID 是否与配置一致;
- 接口类型是否与
responses配置对应; - 时间、状态和用量字段是否能与本地调用对上。
这次登录后的回读出现了一个很有价值的反例:当前账号的 Key 页面显示“暂无 API 密钥”,近 24 小时使用记录也是 0 请求 / 0 Token / $0.0000,但本机 Codex 已经获得真实模型回复。两者同时成立,只能说明本机 Codex 使用的存量 Key 不属于当前登录账号。
因此,“客户端能回复”不能替代“账号归属正确”。如果后台仍是 0,先核对当前登录邮箱、Key 是在哪个账号创建的、是否切错环境,再考虑日志延迟。不要为了让截图看起来完整,把另一个账号的成功调用硬归到当前账号。
八、从安装流量走到注册,不要把文章写成广告
读者搜索 Codex 安装或换肤,真正的下一步不是先看价格,而是完成一个可验证的小任务。合适的转化顺序是:
确认产品 -> 注册 -> 创建独立 Key -> 配置 provider -> 最小调用成功 -> 用量回读
我这次真实调用使用的是 CODELINK provider。需要复现时,可以从本文底部经审核的 CODELINK 官网卡进入;未登录用户在登录页选择“注册”。正文不放充值、折扣或稳定性承诺,先让第一次调用成功,再决定是否继续使用。
总结
Codex 装好只是起点。真正可交付的首次接入至少要有三类证据:
codex doctor证明配置和 provider 被读取;- 空目录中的最小请求得到真实模型回复;
- 服务端用量记录能回读同一次调用。
本文前两项已经用 Codex CLI 0.144.1 和 CODELINK 完成;第三项真实复现了“登录账号与 Key 归属不一致,所以用量为 0”的分支。以后再遇到 401、model_not_found、“配置不生效”或“后台没有记录”,就按配置、网络、认证、模型、账号归属、观测六层逐项排查,不要靠反复重装和换 Key 碰运气。
更多推荐



所有评论(0)