问题描述

使用 codex 时出现以下错误:

Unexpected status 401 Unauthorized: 401 授权信息无效,请检查
url: https://www.model-family.com/v1/responses

使用的是 OpenAI 官方 OAuth 登录方式,但请求却发到了第三方 API 地址。

根因分析

~/.codex/config.toml 中配置了第三方 provider:

model_provider = "fox"
[model_providers.fox]
name = "fox"
base_url = "https://www.model-family.com/v1"
wire_api = "responses"
requires_openai_auth = true

~/.codex/auth.json 中存储的是通过 OpenAI 官方 OAuth 登录获取的 token:

{
  "auth_mode": "chatgpt",
  "tokens": {
    "id_token": "...",
    "access_token": "...",
    "refresh_token": "..."
  }
}

认证方式和 API 地址不匹配:官方 OAuth token 无法通过第三方服务 code.newcli.com 的认证校验,导致 401。

解决方案

方案一:恢复官方服务(推荐)

前提:网络能直连 OpenAI,且有 ChatGPT Plus 订阅。
编辑 ~/.codex/config.toml,删除以下内容:

# 删除这一行
model_provider = "fox"
# 删除整个块
[model_providers.fox]
name = "fox"
base_url = "https://www.model-family.com/v1"
wire_api = "responses"
requires_openai_auth = true

保留其余配置即可:

model = "gpt-5.4"
model_reasoning_effort = "xhigh"
disable_response_storage = true

方案二:修复第三方服务认证

如果需要使用第三方代理(例如国内无法直连 OpenAI),需要按第三方服务要求配置认证,通常是设置其专属 API key,而不是使用 OpenAI 的 OAuth token。

最终配置示例

方案一:官方服务 + OAuth 登录

~/.codex/config.toml

# 不设置 model_provider,默认使用 OpenAI 官方服务
model = "gpt-5.4"
model_reasoning_effort = "xhigh"
disable_response_storage = true
[projects."/Users/yourname/project-a"]
trust_level = "trusted"

~/.codex/auth.json(通过 codex --login 自动生成,无需手动编辑)

{
  "auth_mode": "chatgpt",
  "OPENAI_API_KEY": null,
  "tokens": {
    "id_token": "eyJhbGciOi...",
    "access_token": "eyJhbGciOi...",
    "refresh_token": "rt_xxx...",
    "account_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  },
  "last_refresh": "2026-03-06T02:16:09.461945Z"
}

要点:不配置 model_provider,auth_mode 为 chatgpt,token 由官方 OAuth 登录自动获取。


方案二:第三方代理 + API Key

~/.codex/config.toml

model_provider = "fox"
model = "gpt-5.4"
model_reasoning_effort = "xhigh"
disable_response_storage = true
[model_providers.fox]
name = "fox"
base_url = "https://www.model-family.com/v1"
wire_api = "responses"
requires_openai_auth = false
[projects."/Users/yourname/project-a"]
trust_level = "trusted"

~/.codex/auth.json

{
  "auth_mode": "api-key",
  "OPENAI_API_KEY": "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
}

要点:model_provider 指向第三方,requires_openai_auth = false,auth.json 中使用第三方提供的 API key。


关键配置文件

文件 作用
~/.codex/config.toml 模型、provider、项目信任等级配置
~/.codex/auth.json 认证信息(OAuth token 或 API key)

排查思路

  1. 查看 config.toml — 确认 API 请求发往哪个服务(官方 or 第三方)
  2. 查看 auth.json — 确认当前使用的认证方式(OAuth 登录 or API key)
  3. 确保两者匹配 — 官方 OAuth token 对应官方服务;第三方 API key 对应第三方服务