
字节笔记本
2026年5月25日
Codex CLI 接入 DeepSeek V4:通过 Moon Bridge 转发层完整指南
这篇文章将介绍如何通过 Moon Bridge 将 OpenAI Codex CLI 接入 DeepSeek V4 模型,让 Codex 使用 DeepSeek 的高性能推理能力完成编程任务。整个过程涉及 Moon Bridge 的配置搭建、Codex 配置生成和链路验证。
背景:为什么需要转发层
OpenAI Codex 使用 OpenAI Responses API 与模型通信。如果你希望 Codex 使用第三方模型(如 DeepSeek V4),就需要一个转发层来处理协议转换。Moon Bridge 正是这样一个桥梁——它将 OpenAI Responses API 请求转换为目标模型平台的请求格式,并将响应转换回来。
前置依赖
需要安装以下工具:
- Node.js 18+:Codex CLI 的运行环境
- Go 1.25+:Moon Bridge 的编译和运行环境
- Codex CLI:OpenAI 的编程 Agent
# 全局安装 Codex CLI
npm install -g @openai/codex
# 验证安装
codex --version
go version获取 DeepSeek API Key
前往 DeepSeek 开放平台 注册账号,创建并复制 API Key。DeepSeek V4 系列提供了 Pro 和 Flash 两个档位的模型,分别适用于深度推理和快速响应场景。
配置 Moon Bridge
Moon Bridge 是一个用 Go 编写的 API 转发层,支持灵活的模型路由和协议转换。
克隆项目
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配置说明:
- models:定义模型的元数据,包括上下文窗口(100 万 token)、最大输出 token、推理档位等
- providers:配置提供商信息,
base_url指向 DeepSeek 的 Anthropic 兼容接口 - routes:定义路由规则,将
moonbridge模型路由到 DeepSeek Provider 的deepseek-v4-pro模型 - extensions.deepseek_v4:启用 DeepSeek V4 兼容扩展
如果需要图片输入、Web Search 或多 Provider 路由,可以参考 Moon Bridge 项目中的 config.example.yml 扩展配置。
启动 Moon Bridge
在项目目录下执行:
go run ./cmd/moonbridge --config config.yml保持这个终端运行。默认监听 127.0.0.1:38440,并提供 OpenAI Responses 兼容接口:
http://127.0.0.1:38440/v1/responses
生成 Codex 配置
另开一个终端,同样在 Moon Bridge 目录下执行以下命令,将 Codex 配置写入 CODEX_HOME 目录。
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
# 备份
if (Test-Path "$CODEX_HOME_DIR\config.toml") {
Copy-Item "$CODEX_HOME_DIR\config.toml" "$CODEX_HOME_DIR\config.toml.bak" -Force
}
# 创建配置
$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启动 Codex
进入要处理的项目目录,启动 Codex:
cd /path/to/my-project
codex此时 Codex 会把所有 OpenAI Responses API 请求发送给 Moon Bridge(http://127.0.0.1:38440/v1/responses),再由 Moon Bridge 路由到 DeepSeek V4。整个过程对 Codex 完全透明——它认为自己在与 OpenAI API 通信。
Codex App(桌面版)也可以使用同一份生成的配置,无需额外设置。
一键启动脚本
Moon Bridge 提供了面向 Codex CLI 的辅助脚本,可以一键构建启动 Moon Bridge、生成 Codex 配置并启动 Codex:
./scripts/start_codex_with_moonbridge.sh --project-directory /path/to/my-projectWindows PowerShell 用户:
.\scripts\start_codex_with_moonbridge.ps1 -ProjectDirectory C:\path\to\my-project验证链路
查看可用模型
curl http://127.0.0.1:38440/v1/models发送基本测试请求
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
}'常见问题
connection refused
Moon Bridge 未启动,或 config.yml 中的 server.addr 使用了其他端口。检查 Moon Bridge 终端是否在运行,以及端口是否一致。
Codex 看不到模型
重新执行配置生成步骤。Codex 需要 CODEX_HOME 目录下的 models_catalog.json 文件才能识别可用模型。
配置加载失败提示 field provider not found
使用了旧版的 provider.providers 配置格式。当前正确的格式是顶层的 providers、models、routes、defaults 结构。
401 认证失败
检查 config.yml 中的 DeepSeek API Key 是否正确。注意 DeepSeek 平台区分 API Key 类型,确保使用的是有 DeepSeek V4 模型访问权限的 Key。
402 余额不足
登录 DeepSeek 开放平台 检查账户余额。DeepSeek V4 按 token 计费,需要确保账户有足够的额度。
图片输入失败
如果启用了 Visual 扩展,需要单独配置视觉 Provider(如 Kimi)的 API Key。可以单独配置该视觉 Provider,或移除 visual.enabled: true 来禁用 Visual 扩展。