Codex 接入 DeepSeek:Responses、多 Agent 与 Thinking Max

通过 OpenAI 兼容端点将 Codex 接入 DeepSeek API。配置 API Key、切换模型,用免费或低成本的 DeepSeek 额度运行 Codex。Codex 使用 OpenAI Responses API 与模型通信,本教程使用 Moon Bridge 作为转发层。

1. 安装依赖

  • Node.js 18+。
  • Go 1.25+。
  • 安装 Codex CLI:
npm install -g @openai/codex

验证安装:

codex --version
go version

2. 获取 DeepSeek API Key

前往 DeepSeek 开放平台 创建并复制 API Key。

3. 配置 Moon Bridge

克隆 Moon Bridge 并创建本地配置文件:

git clone https://github.com/ZhiYi-R/moon-bridge.git
cd moon-bridge

创建 config.yml,并填入 DeepSeek API Key:

mode: "Transform"

server:
  addr: "127.0.0.1:38440"

models:
  deepseek-v4-pro:
    context_window: 1000000
    max_output_tokens: 384000
    default_reasoning_level: "high"
    supported_reasoning_levels:
      - effort: "high"
        description: "High reasoning effort"
      - effort: "xhigh"
        description: "Extra high reasoning effort"
    supports_reasoning_summaries: true
    default_reasoning_summary: "auto"
    extensions:
      deepseek_v4:
        enabled: true
  deepseek-v4-flash:
    context_window: 1000000
    max_output_tokens: 384000
    default_reasoning_level: "high"
    supported_reasoning_levels:
      - effort: "high"
        description: "High reasoning effort"
      - effort: "xhigh"
        description: "Extra high reasoning effort"
    supports_reasoning_summaries: true
    default_reasoning_summary: "auto"
    extensions:
      deepseek_v4:
        enabled: true

providers:
  deepseek:
    base_url: "https://api.deepseek.com/anthropic"
    api_key: "sk-your-deepseek-api-key"
    offers:
      - model: deepseek-v4-pro
      - model: deepseek-v4-flash

routes:
  moonbridge:
    model: deepseek-v4-pro
    provider: deepseek

defaults:
  model: moonbridge
  max_tokens: 65536

这个最小配置使用当前 Moon Bridge 配置结构,启用 DeepSeek V4 Pro / Flash、Codex 模型元数据和 DeepSeek V4 兼容扩展。如果需要图片输入、Web Search 或多 Provider 路由,可以再参考 Moon Bridge 的 config.example.yml 扩展配置。

4. 启动 Moon Bridge

go run ./cmd/moonbridge --config config.yml

保持这个终端运行。默认情况下,Moon Bridge 监听 127.0.0.1:38440,并提供 OpenAI Responses 兼容接口:

http://127.0.0.1:38440/v1/responses

5. 生成 Codex 配置

另开一个终端,在 Moon Bridge 目录下执行以下命令,将 Codex 的 config.tomlmodels_catalog.json 写入 CODEX_HOME_DIR

如果你已经有 Codex 配置,建议先备份当前 config.toml

macOS / Linux:

CODEX_HOME_DIR="${CODEX_HOME:-$HOME/.codex}"
mkdir -p "$CODEX_HOME_DIR"

# 备份当前config.toml
cp "$CODEX_HOME_DIR/config.toml" "$CODEX_HOME_DIR/config.toml.bak" 2>/dev/null || true

# 创建config.toml和models_catalog.json
MODEL="$(go run ./cmd/moonbridge --config config.yml --print-codex-model)"
go run ./cmd/moonbridge \
  --config config.yml \
  --print-codex-config "$MODEL" \
  --codex-base-url "http://127.0.0.1:38440/v1" \
  --codex-home "$CODEX_HOME_DIR" \
  > "$CODEX_HOME_DIR/config.toml"

Windows PowerShell:

$CODEX_HOME_DIR = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { "$HOME\.codex" }
New-Item -ItemType Directory -Force -Path $CODEX_HOME_DIR | Out-Null

# 备份当前config.toml
if (Test-Path "$CODEX_HOME_DIR\config.toml") {
  Copy-Item "$CODEX_HOME_DIR\config.toml" "$CODEX_HOME_DIR\config.toml.bak" -Force
}

# 创建config.toml和models_catalog.json
$MODEL = go run ./cmd/moonbridge --config config.yml --print-codex-model
go run ./cmd/moonbridge `
  --config config.yml `
  --print-codex-config "$MODEL" `
  --codex-base-url "http://127.0.0.1:38440/v1" `
  --codex-home "$CODEX_HOME_DIR" `
  | Set-Content -Path "$CODEX_HOME_DIR\config.toml"

这会创建:

  • config.toml:Codex provider 配置,使用 wire_api = "responses"
  • models_catalog.json:Codex 使用的模型能力元数据,包括上下文窗口、推理档位和工具支持。

生成前可以先检查 Moon Bridge 读到的默认 Codex 模型:

go run ./cmd/moonbridge --config config.yml --print-codex-model
# moonbridge

6. 启动 Codex

进入要处理的项目目录,然后启动 Codex。

cd /path/to/my-project
codex

此时 Codex 会把 OpenAI Responses 请求发送给 Moon Bridge,再由 Moon Bridge 路由到 DeepSeek V4。

Codex App 也可以使用同一份生成的 Codex 配置。

一键启动脚本

Moon Bridge 提供了面向 Codex CLI 的辅助脚本,可以一键构建并启动代理、生成 Codex 配置并启动 Codex:

./scripts/start_codex_with_moonbridge.sh --project-directory /path/to/my-project

Windows PowerShell 用户可以使用:

.\scripts\start_codex_with_moonbridge.ps1 -ProjectDirectory C:\path\to\my-project

验证

查看可用模型:

curl http://127.0.0.1:38440/v1/models

发送一条 Responses 测试请求:

curl http://127.0.0.1:38440/v1/responses \
  -H "Content-Type: application/json" \
  -d '{
    "model": "moonbridge",
    "input": "请用一句话打个招呼。",
    "max_output_tokens": 1024
  }'

当 Codex 发出请求后,Moon Bridge 终端应出现 POST /v1/responses 日志。

也可以验证推理档位是否进入配置:

curl http://127.0.0.1:38440/v1/responses \
  -H "Content-Type: application/json" \
  -d '{
    "model": "moonbridge",
    "input": "用一句话说明 Moon Bridge 的作用。",
    "reasoning": {"effort": "high"},
    "max_output_tokens": 1024
  }'

DeepSeek V4 Flash Responses API 接入 Codex

Codex 不调用 OpenAI Chat Completions,而是向 POST /v1/responses 发送 OpenAI Responses 请求。DeepSeek 原生提供 Chat Completions 和 Anthropic Messages,但不提供 Responses,因此把 Codex 直接指向 https://api.deepseek.com/v1 会得到 404 或协议不兼容错误。

Moon Bridge 用下面这条链路解决协议差异:

Codex
  → OpenAI Responses(/v1/responses)
  → Moon Bridge
  → Anthropic Messages
  → DeepSeek V4 Flash 或 Pro

Codex Provider 应这样配置:

model = "moonbridge"
model_provider = "moonbridge"

[model_providers.moonbridge]
name = "Moon Bridge"
base_url = "http://127.0.0.1:38440/v1"
wire_api = "responses"

关键字段是 wire_api = "responses"。不要改成 chat,也不要把 base_url 填成上游 DeepSeek 地址。Codex 连接本地桥,桥再连接 DeepSeek。

Codex 接 DeepSeek 后如何使用多 Agent

多 Agent 是 Codex 的能力,不是模型 API 的能力。换成 DeepSeek 不会自动禁用子 Agent,但协议桥必须保留 Responses 工具调用,生成的模型目录也必须声明支持工具。

当前 Codex 默认启用多 Agent 工具。可以在 ~/.codex/config.toml 中显式配置:

[agents]
enabled = true
max_concurrent_threads_per_session = 3
default_subagent_model = "moonbridge"
default_subagent_reasoning_effort = "high"

重启 Codex 后按下面步骤验证:

  1. 运行 /status,确认当前 Provider 是 Moon Bridge。
  2. 要求 Codex 把两个互不依赖的只读调查交给子 Agent。
  3. 使用 /agent/subagents 查看已经创建的线程。

如果 Codex 能对话但不能创建子 Agent:

  • 升级 Codex,旧版本可能没有稳定的多 Agent 工具。
  • 修改 Moon Bridge 模型配置后,重新生成 models_catalog.json
  • 检查项目级配置是否把 agents.enabled 设成了 false
  • 如果上游 API 因并发触发限流,降低线程数。

每个子 Agent 都有自己的上下文,多 Agent 会放大 token 用量。探索、搜索和重复检查可用 V4 Flash,主 Agent 或困难复核再使用 V4 Pro。

Codex 接 DeepSeek 如何开启 Thinking Max

Codex 通常把最高推理档位命名为 xhigh;DeepSeek 产品文案可能把对应的高预算模式称为 Max。在 Codex 配置里应使用 xhigh,不要直接填写字符串 max

Moon Bridge 的模型配置必须声明 xhigh

models:
  deepseek-v4-pro:
    default_reasoning_level: "xhigh"
    supported_reasoning_levels:
      - effort: "high"
        description: "High reasoning effort"
      - effort: "xhigh"
        description: "Maximum reasoning effort"
    extensions:
      deepseek_v4:
        enabled: true

也可以设置 Codex 默认档位:

model_reasoning_effort = "xhigh"

硬调试、架构设计或长程任务可使用 xhigh;日常工作继续用 high。最高推理会增加延迟和输出 token 消耗,也无法弥补目标描述不清的问题。

Codex DeepSeek FAQ

为什么 Codex 直连 DeepSeek 会返回 404?

Codex 请求 /v1/responses,而 DeepSeek 没有原生 OpenAI Responses 端点。应把 Codex 指向 Moon Bridge,由桥把 Responses 转换为 DeepSeek 兼容的 Anthropic 格式。

Codex 接入 DeepSeek 后能使用多个 Agent 吗?

可以,前提是使用新版 Codex,并使用能完整保留 Responses 工具调用的桥。启用 [agents]、重新生成模型目录,并确保上游 API 能接受并行请求。

Codex 里怎么开启 DeepSeek Thinking Max?

在 Codex 中使用 model_reasoning_effort = "xhigh",同时在 Moon Bridge 模型配置里声明 xhigh。Codex 使用的名称是 xhigh,直接填写 max 可能无法识别。

Codex 子 Agent 应该用 V4 Flash 还是 Pro?

并行探索、搜索和重复检查使用 V4 Flash;主规划线程、困难实现或最终复核使用 V4 Pro。这样可以控制多 Agent 的成本。

常见问题

  • connection refused:Moon Bridge 未启动,或 config.yml 中的 server.addr 使用了其他端口。
  • Codex 看不到模型:重新执行第 5 步;Codex 需要 CODEX_HOME 目录下的 models_catalog.json
  • 配置加载失败且提示 field provider not found:你使用的是旧版 provider.providers 配置;当前格式是顶层 providersmodelsroutesdefaults
  • 401 或认证失败:检查 config.yml 中的 DeepSeek API Key 是否正确。
  • 402 或余额错误:检查 DeepSeek 开放平台账户余额。
  • 图片输入失败:如果启用了 Visual 扩展,需要单独配置视觉 Provider(如 Kimi)的 API Key。你可以配置该 Provider,或移除 visual.enabled: true 来禁用 Visual 扩展。

相关资源