Codex
接入 Codex
Codex 是 OpenAI 的编程 Agent,支持 CLI 和 App 使用。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
}'
常见问题
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 扩展。