疑难排查 · Codex CLI

Codex config.toml 报错——可用的 model_providers 配置

~/.codex/config.toml 格式错误时 Codex 无法加载:未知的提供商名、错误的 wire_api、缺失的配置节。自定义提供商所需的确切结构。

你看到的报错

codex config.toml error

为什么会发生

  • model_provider 指定的提供商没有对应的 [model_providers.<name>] 配置节——引用和配置节必须使用同一个标识符。
  • TOML 语法错误:未闭合的字符串、节标题打错,或从 JSON 粘贴过来的带逗号和花括号的值。
  • wire_api 与端点实际提供的协议不匹配,请求按错误的协议成形。
  • 编辑的文件不是 Codex 读取的文件——通过 --profile 传入的 profile 文件有特定的预期位置和文件名。

如何解决

  • 让提供商标识符在两处保持一致:model_provider = "apitoken" 必须对应 [model_providers.apitoken]。
  • 面向 Responses API 端点使用 wire_api = "responses"——本网关的 OpenAI 兼容层同时提供 Responses 和 Chat Completions。
  • 校验文件是合法的 TOML:字符串加引号、每行一个 key = value、节标题用方括号。
  • 运行 codex --profile <name> 并观察它报告加载的是哪个文件;改那个文件,别改长得像的。

最小可用 profile

model = "gpt-5.6-sol"
model_provider = "apitoken"

[model_providers.apitoken]
name = "apiToken.sale"
base_url = "https://openai.api.apitoken.sale/v1"
wire_api = "responses"
env_key = "APITOKEN_API_KEY"

相关搜索

  • unknown model provider
  • codex model_providers not working

常见问题

为什么 Codex 说我的模型提供商是未知的?+
model_provider 的值必须与同一文件中的某个 [model_providers.<name>] 配置节完全一致。任何一边打错字都会让查找失败。
wire_api 应该填 responses 还是 chat?+
端点提供什么就填什么。本网关的 OpenAI 兼容层接受 Responses API——wire_api = "responses"——也接受 Chat Completions。
base_url 需要带 /v1 吗?+
针对本网关的 Codex profile,需要:文档给出的值是 https://openai.api.apitoken.sale/v1,与文档完全一致。

跳过折腾坏掉的配置

apiToken.sale 提供标准的 Anthropic API——同样的模型、同样的 SDK、一个预付余额。把你工具的 base URL 指向它,本页的配置即可原样生效。