Codex 使用教程(2026年9月 0.158 最新版):安装、国内接入 DeepSeek / GPT-6、config.toml 配置与报错排查

本文所有命令和输出,都是 2026-09-28 在 Codex CLI 0.158.0(当前最新版)上实测的原样结果。网上 4 到 6 月写的教程有几处已经对不上新版了,文中会标出来。

先说 4 件老教程里没写的事

  1. config.toml 里写 [profiles.xxx] 的老写法,新版直接报错,要改成单独的配置文件(第 5 节)
  2. GPT-6 系列(gpt-6-sol / gpt-6-astra / gpt-6-luna)已经进了 Codex 自带的模型目录,不用再手动补;DeepSeek 这类第三方模型还需要补(第 3 节)
  3. 接第三方服务商时,启动信息里的思考强度显示是 none,写代码建议手动调高(第 4 节)
  4. 出错时会先重试 5 次,屏幕上一直刷 Reconnecting... 1/5,很容易被当成网络问题,真正的原因在 5/5 之后那一行(第 7 节)

1. 安装

Codex CLI 是一个 npm 包,装好 Node.js(16 以上)就行:

复制代码
npm install -g @openai/codex
codex --version

输出:

复制代码
codex-cli 0.158.0

已经装过的,升级也是这一句,后面加 @latest:

复制代码
npm install -g @openai/codex@latest

2. 国内怎么用:接一个 OpenAI 兼容的服务商

Codex 不一定要登录 ChatGPT 账号,它可以接任何支持 Responses 接口的 OpenAI 兼容服务商。国内用法就三步:拿到服务商的 API key 和接口地址 → 写进配置文件 → 用 key 登录。

2.1 配置文件在哪

  • macOS / Linux:~/.codex/config.toml
  • Windows:C:\Users\你的用户名\.codex\config.toml

没有这个文件就新建一个。

2.2 写配置

本文以 wanapis 为例,换成你用的服务商地址即可:

复制代码
model_provider = "wanapis"
model = "gpt-6-sol"

[model_providers.wanapis]
name = "wanapis"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://api.wanapis.com/v1"

每个字段是什么意思:

字段 说明
model_provider 默认用哪个服务商,对应下面 [model_providers.xxx] 里的 xxx
model 默认模型,名字要和服务商那边一字不差
wire_api 必须写 "responses"。新版已经不支持 "chat",写了配置直接加载失败
requires_openai_auth 写 true,Codex 才会带上你登录的 key
base_url 服务商的接口地址,要带 /v1,但不要写到 /v1/responses

wire_api 写成 "chat" 的话,一启动就是这个报错:

复制代码
Error loading config.toml: `wire_api = "chat"` is no longer supported.
How to fix: set `wire_api = "responses"` in your provider config.
in `model_providers.wanapis.wire_api`

所以只提供 Chat Completions 接口、没有 Responses 接口的服务商,新版 Codex 接不了。

2.3 用 key 登录

复制代码
printenv OPENAI_API_KEY | codex login --with-api-key

--with-api-key 从标准输入读 key,所以先 export OPENAI_API_KEY=你的key,再用上面这句登录。成功会显示:

复制代码
Successfully logged in

Windows 在 PowerShell 里也一样,用管道把 key 传给 codex login --with-api-key。

2.4 跑一下,看通没通

复制代码
codex exec "只回复两个字母:ok"

输出里看这几行:

复制代码
OpenAI Codex v0.158.0
--------
workdir: /你的项目目录
model: gpt-6-sol
provider: wanapis
...
--------
user
只回复两个字母:ok
codex
ok
tokens used
2,776

provider 是你配的服务商、最后回了 ok,就通了。

如果当前目录不是 git 仓库,会报:

复制代码
Not inside a trusted directory and --skip-git-repo-check was not specified.

在项目目录里跑,或者加上 --skip-git-repo-check。

3. 接 DeepSeek 等国产模型

同一个服务商下,换模型只要加 -m:

复制代码
codex exec -m deepseek-v4.1-flash "只回复两个字母:ok"

能跑通,但会多一行警告:

复制代码
warning: Model metadata for `deepseek-v4.1-flash` not found. Defaulting to fallback metadata; this can degrade performance and cause issues.

意思是 Codex 自带的模型目录里没有这个模型,只能用一套默认参数。消掉它要自己补一份模型目录,三步:

第一步,导出 Codex 自带的目录:

复制代码
codex debug models --bundled > ~/.codex/models.json

0.158 自带 10 个模型,里面已经有 gpt-6-astra、gpt-6-sol、gpt-6-luna、gpt-5.6-sol,所以用 GPT-6 的不用做这一节。

第二步,打开 ~/.codex/models.json,在 models 数组里把 gpt-6-sol 那一整条复制一份,slug 改成 deepseek-v4.1-flash,display_name 顺手改成 DeepSeek V4.1 Flash。

第三步,在 config.toml 最上面加一行,写绝对路径:

复制代码
model_catalog_json = "/Users/你的用户名/.codex/models.json"

注意这一行要放在所有 [xxx] 小节的前面,放到 [model_providers.wanapis] 下面就成了那个小节的字段,不生效。

再跑 -m deepseek-v4.1-flash,警告就没了。

4. 思考强度:第三方服务商默认是 none

接第三方服务商时,启动信息里有一行:

复制代码
reasoning effort: none

而 Codex 自带目录里,gpt-6-sol 的默认值是 medium,gpt-6-astra 是 low。写代码建议在 config.toml 里显式写上:

复制代码
model_reasoning_effort = "high"

重新启动就变成:

复制代码
reasoning effort: high

可选值有 low / medium / high / xhigh / max / ultra,越往后想得越久、越慢、token 越多。日常写功能 medium 或 high 就够了。

5. 多套配置来回切:profile 的新写法

老教程教的是在 config.toml 里加一段 [profiles.ds],新版直接报错:

复制代码
Error loading config.toml: --profile `ds` cannot be used while ~/.codex/config.toml contains legacy `profile = "ds"` or `[profiles.ds]` config; move those settings into ~/.codex/ds.config.toml and remove the legacy profile selector/table. See https://developers.openai.com/codex/config-advanced#profiles for more information.

新写法:每个 profile 单独一个文件,放在 ~/.codex/ 下,文件名是 名字.config.toml,里面只写要改的项。比如建一个用 DeepSeek 的:

复制代码
echo 'model = "deepseek-v4.1-flash"' > ~/.codex/ds.config.toml
codex -p ds

启动信息里就是:

复制代码
model: deepseek-v4.1-flash
provider: wanapis

记得把 config.toml 里老的 [profiles.xxx] 段删掉,留着的话,-p 用到同名的 profile 就会报上面那个错。

我自己是这么分的:默认 gpt-6-sol 写功能、做 review;codex -p ds 用 DeepSeek 跑测试、查资料、改格式这种不费脑子的活,它出字快。

6. 同一个会话里换模型

不用开新会话,恢复会话时加 -m 就行:

复制代码
codex resume --last -m gpt-6-sol

非交互模式对应的是:

复制代码
codex exec resume --last -m gpt-6-sol "接着刚才的,review 一下改动"

上下文、改过的文件、跑过的命令都还在,只会多一行提醒:

复制代码
warning: This session was recorded with model `deepseek-v4.1-flash` but is resuming with `gpt-6-sol`. Consider switching back to `deepseek-v4.1-flash` as it may affect Codex performance.

这只是提醒,不影响干活。我实测:先用 DeepSeek 跑一轮,让它记住「蓝莓」这个词;再 resume --last -m gpt-6-sol 问它刚才记住了什么,Sol 答出了「蓝莓」。上下文确实带过去了。

我最常用它做交叉审查:一个模型改完代码,换另一个模型带着完整上下文来审。同一个模型审自己写的代码,基本都觉得没问题。有一次 DeepSeek 修完一个价格解析的 bug,切到 Sol 一审,挑出了 "¥1,,299"、"¥12,34" 这种会被悄悄吞掉的输入。

7. 报错速查(0.158 实测原文)

先说一个行为:出错时 Codex 会先自动重试 5 次,屏幕上一直刷:

复制代码
ERROR: Reconnecting... 1/5
ERROR: Reconnecting... 2/5
ERROR: Reconnecting... 3/5

很多人看到这个就以为是网络问题,去换梯子。其实要等到 5/5 之后,下面那一行才是真正的原因:

5/5 之后那一行 原因 怎么改
unexpected status 401 Unauthorized: Invalid token key 错了,或者没登录上 重新 codex login --with-api-key
unexpected status 503 Service Unavailable: ... 无可用渠道(distributor) 模型名写错了,或者这个服务商没有这个模型 去服务商的模型列表核对名字,一个字母都不能差
unexpected status 404 Not Found: Invalid URL (POST /v1/responses/responses) base_url 写到了 /v1/responses 改成只到 /v1
unexpected status 404 Not Found,请求地址是 /responses base_url 漏了 /v1 在末尾补上 /v1

base_url 漏 /v1 这一条,不同服务商报的不一样:有的直接说「少了 /v1」,有的会返回一个网页,Codex 那边就只剩一句 stream disconnected before completion,和网络不稳长得一模一样,最难往地址上想。

其它几个常见的:

报错 原因 怎么改
Error loading config.toml: --profile ... legacy ... [profiles.xx] 老的 profile 写法 见第 5 节
Error loading config.toml: wire_api = "chat" is no longer supported 新版不支持 chat 改成 wire_api = "responses"
warning: Model metadata for ... not found 模型不在 Codex 自带目录里 能用;想消掉见第 3 节
warning: This session was recorded with model ... 会话中途换了模型 只是提醒,可以忽略
Not inside a trusted directory and --skip-git-repo-check was not specified. 当前目录不是 git 仓库 到项目目录里跑,或加 --skip-git-repo-check
卡在 Reading additional input from stdin... 不动 在脚本或 CI 里跑 codex exec,它在等标准输入 命令末尾加 < /dev/null

8. 一份完整的配置

~/.codex/config.toml:

复制代码
model_catalog_json = "/Users/你的用户名/.codex/models.json"
model_provider = "wanapis"
model = "gpt-6-sol"
model_reasoning_effort = "high"

[model_providers.wanapis]
name = "wanapis"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://api.wanapis.com/v1"

~/.codex/ds.config.toml:

复制代码
model = "deepseek-v4.1-flash"

日常用法:

  • codex:默认 gpt-6-sol
  • codex -p ds:用 DeepSeek
  • codex resume --last -m 模型名:会话中途换模型,上下文不丢

以上基于 Codex CLI 0.158.0,2026-09-28 实测。Codex 更新很快,遇到和本文对不上的地方,先 codex --version 看一下版本。

相关推荐
泯泷4 小时前
AI 该怎样"记笔记"?——四种记忆格式与认知科学(二)
人工智能·agent·ai编程
战族狼魂4 小时前
AI Agent核心能力解析
面试·ai编程
小马9265 小时前
KV Cache 瘦身 437 倍:DeepSeek V4.1-Flash 的推理效率革命
大模型·moe·kv cache·deepseek·推理优化·ai基础设施
Alson_Code6 小时前
从0到1打造个人专属编程智能体
人工智能·langchain·ai编程
fundroid7 小时前
Android AI 开发,真正拉开差距的是工程闭环
android·ai·大模型·agent
王中阳Go7 小时前
读者问"你用的什么 Agent":3 个 AI 员工的分工表和工具链
人工智能·后端·ai编程
李航19837 小时前
自动动手开发图形引擎,不仅能AI建模,还能AI渲染
人工智能·python·计算机视觉·ai·ai编程
AI视觉网奇7 小时前
本地部署 Qwen-Image 文生图:完整流程与避坑指南
大模型
zzZ··*7 小时前
CodeBuddy 用量看板:本地解析 Token 与积分消耗,不联网不上传
python·vue·ai编程