通过 DeepSeek 连接模型服务

用户层 [model_providers.deepseek],base_url 是 https://api.deepseek.com/,wire_api = responses。env_key 读 DEEPSEEK_API_KEY,不要把 sk- 写进 TOML。

DeepSeek 官方 Codex 网关:profile 写 [model_providers.deepseek],base_url 是 https://api.deepseek.com/,密钥用 env_key 不要 experimental_bearer_token。

这是换 Codex 使用的模型,流量打到 DeepSeek 原生 Responses 入口 https://api.deepseek.com/,不是添加 MCP 服务,也不是 Chat Completions 翻译层。官方给了一键脚本,会写 ~/.codex/models.json 并改 config.toml

bash <(curl -fsSL https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.sh)

Windows 是 irm https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.ps1 | iex。脚本会备份到 ~/.codex/backup-deepseek/。菜单 1 配 deepseek-flash(带图),菜单 2 配 deepseek-v4-pro,菜单 9 还原。需要 Codex CLI 0.144+。跑完立刻把密钥从 TOML 挪走:官方示例用 experimental_bearer_token,那是把 sk- 写进文件。改成 env_key(变量),在启动 Codex 的进程里 export DEEPSEEK_API_KEY。不要和 experimental_bearer_token / requires_openai_auth / [model_providers.*.auth] 叠在同一张供应商表。

不要把顶层 model_provider = "deepseek" 一上来写进用户 config,除非你就是要把所有会话都改走 DeepSeek。官方手册示例就是全局默认。更稳妥是独立 profile(用户层 $CODEX_HOME,不是项目 .codex)。0.134 起不要再写 [profiles.deepseek]

# ~/.codex/config.toml
[model_providers.deepseek]
name = "deepseek"
base_url = "https://api.deepseek.com/"
env_key = "DEEPSEEK_API_KEY"
wire_api = "responses"
# ~/.codex/deepseek.config.toml
model_provider = "deepseek"
model = "deepseek-flash"
preferred_auth_method = "apikey"
forced_login_method = "api"
model_reasoning_effort = "high"
web_search = "disabled"
model_catalog_json = "/home/YOU/.codex/models.json"
export DEEPSEEK_API_KEY=YOUR_DEEPSEEK_API_KEY
codex --profile deepseek

models.json 从官方 Codex 页或脚本拿,不要把里面的人设 / instructions_template 抄进仓库或 TOML。官方手册把路径写成 ~/.codex/models.json;若 /model 仍显示 Custom,改成绝对路径。目录键启动时加载,改完必须新开会话。自定义供应商必须 wire_api = "responses"。项目 .codex/config.toml 无法修改 model_provider / model_providers。不要写 openai_base_urlCodex 不会在 base_url 里展开环境变量,主机名要写成字面量。

配置说明:

  • 不要再写 [profiles.deepseek] 或把 experimental_bearer_token 留在 TOML。
  • 不要把这张表当成 MCP。DeepSeek 这页没有 mcp add
  • 不要抄博客里的 wire_api = "chat"codex-relay。DeepSeek 自己说原生 Responses。
  • 不要覆盖内置 ID openaiollamalmstudiodeepseek 是新 ID,可以。
  • 不要写进项目 .codex/config.toml
  • 不要把 Kong / TrueFoundry / OpenRouter 的 base_url 抄进这张表。

改完新开会话。启动横幅出现 model: deepseek-flash,说明供应商、目录和密钥都进了这一进程。401 先看进程里有没有 DEEPSEEK_API_KEY。切回 ChatGPT 登录后,第三方会话会藏起来,并没有删。

来源