在 Codex CLI 中使用 DeepSeek V4 Flash / Pro
通过 APIMaster 的 Responses 端点,在 Codex CLI 中配置 DeepSeek V4 Flash 和 Pro。包括 API 密钥设置、模型切换、工具测试和故障排除。
Codex CLI 能否使用 DeepSeek?我们使用 Codex CLI 0.153.4 进行的测试,通过 APIMaster 的 Responses 端点成功使用了 deepseek-v4-flash 和 deepseek-v4-pro。 配置一个自定义提供程序,基础 URL 为 https://apimaster.ai/v1,wire_api = "responses"。仅使用 OpenAI 兼容的 Chat Completions 不足以满足此配置。
实测日期:2026-09-07,Codex CLI 0.153.4,Linux。两个模型均返回了预期文本,调用了 shell 工具读取本地测试文件,并以其内容作答。所有运行均以退出代码 0 结束。出现了元数据和流式事件警告;请参阅故障排除。提供了 Windows / macOS 命令用于设置,但此测试在 Linux 上运行。未测试长时间会话、图像输入和复杂编码工作流。
1. 准备 Codex 和您的 API 密钥
按照环境指南和Codex 设置指南安装 Codex,然后检查:
codex --version
创建一个APIMaster API 密钥,该密钥具有对所选 DeepSeek 模型的访问权限和足够的配额。对于本教程,请使用下面的专用配置;您无需替换现有的 auth.json 或退出其他账户。
2. 在终端中设置密钥
macOS / Linux:
export APIMASTER_API_KEY='YOUR_APIMASTER_API_KEY'
Windows PowerShell:
$env:APIMASTER_API_KEY = 'YOUR_APIMASTER_API_KEY'
该变量仅存在于当前终端会话中。配置存储的是变量名,而不是密钥本身。
3. 创建单独的提供程序配置
在您用于本教程的目录中,创建包含以下内容的 deepseek.toml。保持您现有的 Codex 配置不变。
model = "deepseek-v4-flash"
model_provider = "apimaster_deepseek"
[model_providers.apimaster_deepseek]
name = "APIMaster DeepSeek"
base_url = "https://apimaster.ai/v1"
env_key = "APIMASTER_API_KEY"
wire_api = "responses"
对于可复制、隔离的首次测试,请将相同的设置作为命令行覆盖传递。--ignore-user-config 可防止您正常配置中的其他提供程序优先。--ephemeral 避免保存此测试会话。
codex exec --ignore-user-config --ephemeral --skip-git-repo-check --sandbox read-only --model deepseek-v4-flash -c 'model_provider="apimaster_deepseek"' -c 'model_providers.apimaster_deepseek.name="APIMaster DeepSeek"' -c 'model_providers.apimaster_deepseek.base_url="https://apimaster.ai/v1"' -c 'model_providers.apimaster_deepseek.env_key="APIMASTER_API_KEY"' -c 'model_providers.apimaster_deepseek.wire_api="responses"' "Reply with exactly: DEEPSEEK_TEST_OK"
在您设置密钥的终端中运行该命令。预期最终答案:DEEPSEEK_TEST_OK。在较旧的 Windows PowerShell 版本中,本机参数引用可能不同;如果 TOML 参数被拒绝,请使用 PowerShell 7 或下面的配置文件方法。
4. 将配置保存为可重用的配置文件
对于测试的 CLI 版本,将 deepseek.toml 放置在 ~/.codex/deepseek.config.toml(Windows:%USERPROFILE%\.codex\deepseek.config.toml)。如果自定义了 CODEX_HOME,请使用该目录。此命名配置文件将 DeepSeek 设置与您的正常 config.toml 分开。
macOS / Linux,从包含 deepseek.toml 的目录:
mkdir -p ~/.codex
cp deepseek.toml ~/.codex/deepseek.config.toml
codex --profile deepseek --model deepseek-v4-flash
Windows PowerShell:
New-Item -ItemType Directory -Force "$env:USERPROFILE\.codex" | Out-Null
Copy-Item .\deepseek.toml "$env:USERPROFILE\.codex\deepseek.config.toml"
codex --profile deepseek --model deepseek-v4-flash
如果该文件名已存在,请先备份配置文件。配置文件语法取决于版本:这些命令针对 0.153.4。请检查您安装版本的 codex --help;较旧的版本可能使用 config.toml 中的配置文件。
要使用 Pro:
codex --profile deepseek --model deepseek-v4-pro
配置文件会叠加在您的正常配置之上,因此现有的 MCP 服务器或其他设置可能仍然适用。步骤 3 中的隔离命令在诊断配置冲突时很有用。
5. 验证工具调用
创建一个名为 probe.txt 的本地文件,内容为:
TOOL_PROBE_739182
从同一目录运行:
codex exec --profile deepseek --skip-git-repo-check --sandbox read-only --model deepseek-v4-flash "Use your file reading or shell tool to read probe.txt in the current directory. Reply with only the exact content. Do not guess."
预期:文件读取命令成功执行,随后是 TOOL_PROBE_739182。使用 --model deepseek-v4-pro 重复。这检查了工具请求/工具结果的往返,而不仅仅是简单的文本响应。在实际项目工作中,请保持正常的权限提示启用。
故障排除
| 症状 | 解释或下一步 |
|---|---|
Model metadata ... not found |
测试的 CLI 没有这些模型 ID 的内置元数据,并使用了回退元数据。我们的文本和工具测试已完成,但上下文限制和其他默认值不应被视为已验证的模型能力。 |
| 模型列表解析错误 | 网关的模型列表可能与 Codex 的元数据目录不同。显式指定模型,并检查实际请求是否完成。 |
OutputTextDelta without active item |
在我们的流式测试中出现。最终响应和工具往返仍然完成。如果输出丢失或中断,请保留 CLI 版本、时间戳和错误以获取支持。 |
| 401 或请求转到其他提供程序 | 检查 APIMASTER_API_KEY、提供程序选择和继承的设置。重试步骤 3 中的隔离命令。 |
| 404 或协议不受支持 | 基础 URL 以 /v1 结尾,而不是 /chat/completions;设置 wire_api = "responses"。 |
| 未知的命令行选项 | 检查已安装的 CLI 版本。文档中的选项已使用 0.153.4 测试。 |
常见问题解答
这是否意味着每个 DeepSeek 端点都可以在 Codex 中使用?
不。这些结果适用于 APIMaster 的网关配置。提供程序必须支持 Codex 期望的协议和工具行为;接受 /chat/completions 并不能建立 Responses 兼容性。
此设置是否需要 ChatGPT 订阅?
此自定义提供程序使用您的 APIMaster API 密钥和账户配额。它不使用 ChatGPT 订阅配额。请查看模型广场了解当前的 API 费率。
我可以从这些测试中声称完全兼容 Codex 吗?
验证的范围是短文本输出和本地文件读取工具往返。上述警告仍然相关;未涵盖长上下文行为、每个工具以及每个未来的 CLI 版本。