Codex
Codex 接入 DeepSeek:Responses、多 Agent 與 Thinking Max
通过 OpenAI 兼容端点将 Codex 接入 DeepSeek API。配置 API Key、切换模型,用免费或低成本的 DeepSeek 额度运行 Codex。Codex 使用 OpenAI Responses API 与模型通信,本教程使用 Moon Bridge 作为转发层。
1. 安装依赖
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.toml 和 models_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 后按下面步骤验证:
- 运行
/status,确认当前 Provider 是 Moon Bridge。 - 要求 Codex 把两个互不依赖的只读调查交给子 Agent。
- 使用
/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配置;当前格式是顶层providers、models、routes、defaults。 401或认证失败:检查config.yml中的 DeepSeek API Key 是否正确。402或余额错误:检查 DeepSeek 开放平台账户余额。- 图片输入失败:如果启用了 Visual 扩展,需要单独配置视觉 Provider(如 Kimi)的 API Key。你可以配置该 Provider,或移除
visual.enabled: true来禁用 Visual 扩展。