编程 OpenAI Codex 开放第三方模型接入:AI 编程工具的「开放生态」革命——从Responses API到DeepSeek/Claude/国产模型全攻略(2026)

2026-06-19 10:28:00 +0800 CST views 15

OpenAI Codex 开放第三方模型接入:AI 编程工具的「开放生态」革命——从Responses API到DeepSeek/Claude/国产模型全攻略(2026)

2026年6月,OpenAI 宣布 Codex 支持接入任何第三方模型。这不仅仅是一个技术更新——它是 AI 编程工具生态的一次范式转移。本文将从协议底层到实战配置,带你彻底搞懂这背后的技术逻辑和商业博弈。

目录


一、背景:OpenAI Codex 的前世今生

1.1 从代码补全到全栈智能体

2021年,OpenAI 推出了名为 Codex 的代码生成模型,基于 GPT-3 微调,能将自然语言翻译为代码。那时的 Codex 只是一个"会写代码的模型",远没有今天的形态。

到了2025年4月,OpenAI 将 Codex 开源为 CLI 工具——一个真正运行在终端里的 AI 编码智能体。它不再是单纯的聊天补全工具,而是能进入项目目录、读代码、改代码、跑命令、做代码审查的完整编程助手。从 TypeScript 重写为 Rust 后,二进制体积控制在 20MB 左右,启动时间低于 300ms。

到2026年6月,Codex 已积累了 67,000+ GitHub Stars,周活跃用户突破 500万,自2026年2月桌面应用上线以来增长了超过6倍。非开发者用户占比已达20%,增长速度是开发者的3倍。

更重要的是,OpenAI 在2026年2月发布的《Harness Engineering》论文中披露:一个仅由3名工程师组成的团队,在5个月内让 Codex 智能体从零构建了一个拥有 100万行代码 的完整产品——没有一行代码是人类手写的。合并了 1,500个 Pull Request,实现了约 10倍的效率提升

1.2 为什么这次开放如此重要

2026年6月18日,OpenAI Codex 负责人 Tibo 在社交媒体X上宣布:

"You can use Codex apps, CLI, and SDK with any open-source model, not just OpenAI models."

这项宣布的核心意义在于:

从「模型绑定」到「模型中立」:Codex 不再是 GPT 系列模型的专属客户端,而是一个完全模型中立的编码代理平台。开发者可以根据成本、性能或隐私需求,自由选择 DeepSeek、Claude、Gemini 等替代方案。

与过去封闭策略的强烈反差:一直以来,OpenAI 以高度封闭的生态著称——模型 API 绑定自家客户端,开发者几乎没有任何选择余地。此次主动打破这种绑定,将选择权完全交给开发者。

竞品的差异化优势:这项开放策略使 Codex 在与 Claude Code、GitHub Copilot 等竞品的竞争中,建立起独特的差异化优势——Claude Code 只能用 Anthropic 模型,而 Codex 现在什么模型都能用。

1.3 背后的商业逻辑

那么,为什么 OpenAI 突然开放?这背后有三层商业逻辑:

第一层:工具层 vs 模型层的战略分离。OpenAI 开始意识到,Codex 的核心价值不在"你必须用 GPT",而在"用 Codex 这种 Agent 架构来写代码"。如果 Codex 被绑死在 GPT 上,一旦竞争对手的模型在某项指标上超越 GPT,开发者就会连工具带模型一起跑掉。解绑之后,即使开发者临时切到 DeepSeek 做便宜任务,他们仍然留在 Codex 生态里。

第二层:数据飞轮效应。Codex 的500万周活用户每天产生海量的代码执行数据——哪些任务需要多轮推理、哪些工具调用最频繁、哪些模型在什么场景下表现更好。这些数据对 OpenAI 训练下一代模型至关重要。哪怕你用 DeepSeek,你的使用数据仍然在 Codex 生态中流转。

第三层:对抗 Claude Code 的增长势头。Claude Code 在2026年上半年增长迅猛,凭借 Anthropic 模型的强推理能力和 MCP 协议的开放生态,正在蚕食 Codex 的开发者市场份额。OpenAI 需要一个足够有竞争力的回应——而"什么模型都能用"恰恰是 Claude Code 做不到的。


二、核心原理:Responses API vs Chat Completions API

2.1 Chat Completions API:简洁但单薄

Chat Completions API 是 OpenAI 最经典的接口,几乎所有开发者都用过。它的核心结构非常简单:

# Chat Completions API 的典型调用
from openai import OpenAI
client = OpenAI(api_key="your-key")

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "你是资深技术专家"},
        {"role": "user", "content": "解释一下什么是向量数据库"}
    ],
    temperature=0.7,
    max_tokens=1024
)
print(response.choices[0].message.content)

请求体结构:

{
  "model": "gpt-4o",
  "messages": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "...", "tool_calls": [...]}
  ],
  "tools": [...],
  "temperature": 0.7,
  "max_tokens": 1024,
  "stream": false
}

响应体结构:

{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "...",
        "tool_calls": [...]
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 50,
    "completion_tokens": 200,
    "total_tokens": 250
  }
}

问题在哪里? Chat Completions 是为"问一句答一句"设计的。当你需要做多步 Agent 任务时——先搜索文档,再读代码,然后执行修改,最后跑测试——这个接口的模型就变得非常勉强:

  • 多轮调用的状态管理需要你自己维护
  • 工具调用的结果需要手动拼回 messages 数组
  • 流式事件格式不够丰富,缺少结构化状态跟踪
  • 没有内建的可观测性(tracing)和评估(evaluations)支持

2.2 Responses API:为 Agent 场景重新设计

2025年3月11日,OpenAI 发布了《New tools for building agents》,其中 Responses API 被定位为构建 Agent 的新默认基础层。

Responses API 的典型调用:

# Responses API 的调用方式
from openai import OpenAI
client = OpenAI(api_key="your-key")

response = client.responses.create(
    model="gpt-4.1",
    instructions="You are a coding assistant.",
    input="How do I check if a Python object is an instance of a class?",
    max_output_tokens=1024
)
print(response.output_text)

请求体结构:

{
  "model": "gpt-4.1",
  "instructions": "You are a coding assistant.",
  "input": [
    {"role": "user", "content": "Fix the bug in auth.py"}
  ],
  "tools": [
    {"type": "code_interpreter"},
    {"type": "file_search"},
    {"type": "web_search"},
    {"type": "function", "name": "read_file", ...}
  ],
  "tool_choice": "auto",
  "max_output_tokens": 16384,
  "previous_response_id": "resp_xxx",
  "truncation": "auto"
}

响应体结构:

{
  "id": "resp_68a98322e3c88...",
  "object": "response",
  "created_at": 1755939618,
  "status": "completed",
  "model": "gpt-4.1",
  "output": [
    {
      "id": "msg_xxx",
      "type": "message",
      "status": "completed",
      "role": "assistant",
      "content": [
        {"type": "output_text", "text": "The issue is..."}
      ]
    },
    {
      "type": "function_call",
      "id": "fc_xxx",
      "name": "read_file",
      "arguments": "{\"path\": \"auth.py\"}"
    }
  ],
  "usage": {
    "input_tokens": 1500,
    "output_tokens": 500,
    "total_tokens": 2000
  }
}

2.3 关键差异对比

维度Chat Completions APIResponses API
设计目标单轮/多轮对话Agent 多步执行
请求路径/v1/chat/completions/v1/responses
状态管理无状态,需自行维护有状态,通过 previous_response_id 延续
工具调用tool_calls 在 message 内独立的 function_call output item
内置工具web_search, file_search, code_interpreter
流式事件data: {"choices": [...]}结构化事件流(message_delta, function_call等)
可观测性无内建支持Tracing + Evaluations 内建
并行工具调用需手动处理原生支持
Computer Use不支持原生支持
模型路由支持基于内容的路由决策

2.4 为什么 Codex 必须迁移到 Responses API

Codex 不再只是一个聊天补全工具。它是一个 AI 编码智能体,需要:

  1. 多步推理:读取文件 → 分析代码 → 生成修改方案 → 执行修改 → 运行测试 → 迭代修复
  2. 工具调用链:shell 命令执行、文件读写、MCP 工具调用、子 Agent 派生
  3. 状态延续:一个长任务可能跨越多个 API 调用,需要维护上下文
  4. 可观测性:追踪每一步决策过程,便于调试和优化

Chat Completions 可以勉强做到其中一些,但代价是开发者(或 Codex 自身)需要维护大量胶水代码。Responses API 把这些能力内建到了协议层。

这就是为什么 Codex 在 2026年2月起停止支持 Chat Completions API,全面转向 Responses API 的根本原因。这不是 OpenAI 强行推新接口,而是 Agent 架构的必然要求。

2.5 第三方模型的挑战

问题来了:几乎所有第三方模型厂商——DeepSeek、Claude、Gemini、国产模型——对外提供的都是 Chat Completions 兼容接口。

这意味着,当 Codex 发出一个 Responses API 请求到 DeepSeek 的服务器时:

// Codex 发出的 Responses 格式
POST /v1/responses
{
  "input": [{"role": "user", "content": "Fix the auth bug"}],
  "tools": [{"type": "function", "name": "read_file", ...}],
  "previous_response_id": "resp_xxx"
}

DeepSeek 的服务器只能理解:

// DeepSeek 期望的 Chat Completions 格式
POST /v1/chat/completions
{
  "model": "deepseek-v4-pro",
  "messages": [{"role": "user", "content": "Fix the auth bug"}],
  "tools": [{"type": "function", "function": {"name": "read_file", ...}}]
}

请求路径不同、请求体结构不同、工具调用格式不同、流式事件格式也不同。 直接把 Codex 的 base_url 指向 DeepSeek,必定报 404 或 400 错误。

这就是整个"第三方模型接入"问题的核心——协议不兼容


三、深度解析:Codex 如何工作

3.1 Agent 架构总览

Codex 的架构可以理解为四层:

┌───────────────────────────────────────────┐
│  用户交互层 (App / CLI / SDK / IDE)       │
├───────────────────────────────────────────┤
│  Agent 编排层 (Codex Core)                │
│  - 任务规划 / 多轮推理 / 工具调度          │
│  - MCP 协议 / 子Agent派生 / 状态管理       │
├───────────────────────────────────────────┤
│  协议层 (Responses API Client)             │
│  - 请求构建 / 响应解析 / 流式处理           │
├───────────────────────────────────────────┤
│  模型层 (OpenAI / DeepSeek / Claude / ...) │
│  - 推理能力 / 上下文窗口 / 工具调用支持      │
└───────────────────────────────────────────┘

关键设计决策:

  • Codex Core 是模型无关的:它只关心"模型能理解指令、能调用工具、能返回结构化输出",至于背后是 GPT-5.5 还是 DeepSeek V4,它并不关心。
  • 协议层是唯一的耦合点:Codex 通过 Responses API 协议与模型通信。只要模型(或中间桥接层)能正确响应 Responses API 格式的请求,一切都能工作。

3.2 工具调用机制

Codex 定义了一套内置工具,用于与本地开发环境交互:

工具名称功能
shell执行 shell 命令
read_file读取文件内容
write_file写入文件
edit_file编辑文件(diff/patch)
list_directory列出目录结构
search_files在项目中搜索
spawn_agent派生子 Agent 执行子任务
wait_agent等待子 Agent 完成
close_agent关闭子 Agent

这些工具通过 Responses API 的 tools 参数传递给模型。模型在推理过程中决定调用哪些工具,Codex Core 执行后将结果返回给模型继续推理。

一个典型的多轮交互流程:

用户: "修复登录模块的空指针异常"
  │
  ▼
Codex → [Responses API Request]
  │    input: "修复登录模块的空指针异常"
  │    tools: [shell, read_file, write_file, ...]
  │
  ▼
Model → [Responses API Response]
  │    function_call: read_file("src/auth/login.py")
  │
  ▼
Codex → 执行 read_file → 返回文件内容
  │
  ▼
Codex → [Responses API Request #2]
  │    previous_response_id: "resp_xxx"
  │    (包含文件内容作为上下文)
  │
  ▼
Model → [Responses API Response #2]
  │    function_call: edit_file("src/auth/login.py", diff=...)
  │
  ▼
Codex → 执行编辑 → 返回成功/失败
  │
  ▼
Codex → [Responses API Request #3]
  │    previous_response_id: "resp_yyy"
  │
  ▼
Model → [Responses API Response #3]
  │    function_call: shell("npm test")
  │
  ▼
Codex → 执行测试 → 返回结果
  │
  ▼
Model → "修复完成,测试全部通过"

3.3 配置系统

Codex 使用 TOML 格式的配置文件,优先级为:

CLI flags / --config (最高)
  > profile
  > 项目级 .codex/config.toml
  > 用户级 ~/.codex/config.toml
  > 系统级 /etc/codex/config.toml
  > 内置默认值

核心配置项(~/.codex/config.toml):

# 模型配置
model = "gpt-5.5"
model_provider = "openai"

# 自定义 Provider 示例
[model_providers.third_party]
name = "Third Party API"
base_url = "https://api.example.com/v1"
env_key = "MY_API_KEY"
wire_api = "responses"  # 关键:指定协议类型

# 模型属性(非 OpenAI 模型需要手动声明)
[model_properties."deepseek-v4-pro"]
context_window = 1000000
max_context_window = 1048576
supports_parallel_tool_calls = true
supports_reasoning_summaries = true
input_modalities = ["text"]

# 沙箱与权限
sandbox_mode = "workspace-write"
approval_policy = "on-request"

wire_api 字段是最关键的配置之一,它决定了 Codex 以哪种协议与模型通信:

  • "responses":使用 Responses API(新版 Codex 默认)
  • "chat":使用 Chat Completions API(仅 v0.80.0 及以下版本)

四、第三方接入实战:配置 DeepSeek/Claude/国产模型

4.1 核心挑战回顾

接入第三方模型的核心问题是 协议不兼容。Codex 发出 Responses API 请求,而第三方模型只理解 Chat Completions API。解决思路有三个层次:

  1. 直接配置(仅限原生支持 Responses API 的服务)
  2. 协议桥接(通过中间层转换协议)
  3. 本地路由(通过代理服务统一管理)

4.2 方案一:直接配置(原生 Responses API 兼容)

如果第三方 API 服务已经原生支持 Responses API(部分中转站已实现),可以直接配置:

步骤 1:创建配置目录

# macOS / Linux
mkdir -p ~/.codex

# Windows PowerShell
New-Item -ItemType Directory -Force -Path "$HOME\.codex"

步骤 2:写入 config.toml

# ~/.codex/config.toml
model = "gpt-5.5"
model_provider = "openai"
openai_base_url = "https://your-responses-api-gateway.com/v1"

步骤 3:配置 API Key

# macOS / Linux
export OPENAI_API_KEY="your-api-key"
printenv OPENAI_API_KEY | codex login --with-api-key

# Windows PowerShell
$env:OPENAI_API_KEY="your-api-key"
$env:OPENAI_API_KEY | codex login --with-api-key

⚠️ 关键注意

  • openai_base_url 填到 /v1 为止,不要包含 /responses/chat/completions
  • 中转站必须支持 Responses API(即 /v1/responses 端点)
  • 仅支持 Chat Completions 的中转站无法直接使用

步骤 4:验证

cd your-project
codex "请只回复 OK"

4.3 方案二:自定义 Provider 配置

适用于需要同时配置多个 API 网关的场景:

# 设置独立的环境变量
export CODEX_PROXY_API_KEY="your-api-key"
# ~/.codex/config.toml
model = "your-model-name"
model_provider = "third_party"

[model_providers.third_party]
name = "Third Party API"
base_url = "https://your-api-gateway.com/v1"
env_key = "CODEX_PROXY_API_KEY"
wire_api = "responses"

# 声明模型元数据
[model_properties."your-model-name"]
context_window = 131072
max_context_window = 131072
supports_parallel_tool_calls = true
supports_reasoning_summaries = false
input_modalities = ["text"]

4.4 方案三:接入 DeepSeek(通过 codex-relay 协议桥接)

这是目前最成熟的方案。codex-relay 是一个轻量级 Rust 代理,专门做 Responses API → Chat Completions API 的实时转换。

安装 codex-relay

# 从 PyPI 安装(预编译二进制)
pip install codex-relay

# 或从 crates.io 安装
cargo install codex-relay

启动桥接服务

CODEX_RELAY_UPSTREAM=https://api.deepseek.com/v1 \
CODEX_RELAY_API_KEY=$DEEPSEEK_API_KEY \
CODEX_RELAY_PORT=4446 \
codex-relay

启动后会显示可用模型列表:

ℹ upstream models: deepseek-chat, deepseek-reasoner
⚠ To configure Codex with model metadata, run: codex-relay --print-config --upstream ...

自动生成 Codex 配置

codex-relay --print-config \
  --upstream https://api.deepseek.com/v1 \
  --api-key $DEEPSEEK_API_KEY

这会输出一个完整的 ~/.codex/config.toml 片段,包含所有模型的元数据。

手动配置示例

# ~/.codex/config.toml
model = "deepseek-chat"
model_provider = "deepseek-relay"

[model_providers.deepseek-relay]
name = "DeepSeek (via relay)"
base_url = "http://127.0.0.1:4446/v1"
wire_api = "responses"
env_key = "DEEPSEEK_API_KEY"

[model_properties."deepseek-chat"]
context_window = 262144
max_context_window = 1048576
supports_parallel_tool_calls = true
supports_reasoning_summaries = false
input_modalities = ["text"]

常见供应商的 codex-relay 配置

供应商Base URL建议端口
DeepSeekhttps://api.deepseek.com/v14446
Kimi (Moonshot)https://api.moonshot.cn/v14447
Qwen (通义)https://dashscope.aliyuncs.com/compatible-mode/v14448
Mistralhttps://api.mistral.ai/v14449
Groqhttps://api.groq.com/openai/v14450
xAIhttps://api.x.ai/v14451
OpenRouterhttps://openrouter.ai/api/v14452

4.5 方案四:接入 Claude(Anthropic 模型)

Anthropic 的模型使用自己的 Messages API 格式,但可以通过 codex-relay 的上游适配或通过 OpenRouter 中转:

通过 OpenRouter 中转 Claude

CODEX_RELAY_UPSTREAM=https://openrouter.ai/api/v1 \
CODEX_RELAY_API_KEY=$OPENROUTER_API_KEY \
CODEX_RELAY_PORT=4452 \
CODEX_RELAY_MODEL_MAP=claude-sonnet-4-20250514:claude-sonnet-4 \
codex-relay

配置:

model = "claude-sonnet-4"
model_provider = "claude-relay"

[model_providers.claude-relay]
name = "Claude (via OpenRouter)"
base_url = "http://127.0.0.1:4452/v1"
wire_api = "responses"
env_key = "OPENROUTER_API_KEY"

[model_properties."claude-sonnet-4"]
context_window = 200000
max_context_window = 200000
supports_parallel_tool_calls = true
supports_reasoning_summaries = true
input_modalities = ["text", "image"]

4.6 方案五:接入国产模型(Moon Bridge 方案)

对于需要更精细控制的场景,可以使用 Moon Bridge(Go 编写的协议桥接层):

架构

┌──────────────────┐
│ Codex CLI        │
│ 本地编码助手      │
└─────────┬────────┘
          │ OpenAI Responses API
          │ http://127.0.0.1:38440/v1/responses
          ▼
┌──────────────────┐
│ Moon Bridge      │
│ 本地协议桥接层    │
└─────────┬────────┘
          │ DeepSeek Anthropic/OpenAI Compatible API
          ▼
┌──────────────────┐
│ DeepSeek API     │
│ deepseek-v4-pro   │
│ deepseek-v4-flash │
└──────────────────┘

Moon Bridge 配置文件(config.yml)

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

cd moon-bridge
go run ./cmd/moonbridge --config config.yml

Codex 配置

model = "moonbridge"
model_provider = "moonbridge"
model_reasoning_effort = "high"
model_context_window = 1000000
model_supports_reasoning_summaries = true

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

⚠️ 重要提示

  • wire_api 必须为 "responses",不要用 "chat"
  • 不要把 DeepSeek 官方地址直接作为 Codex 的 base_url
  • Moon Bridge 进程必须保持运行

4.7 接入国产模型 API Key 获取

模型平台获取路径
DeepSeek V4platform.deepseek.com控制台 → API Keys → 创建密钥
通义千问阿里云百炼平台API-KEY 管理 → 创建
智谱 GLMopen.bigmodel.cn控制台 → API Keys → 创建
Kimiplatform.moonshot.cn控制台 → API Keys → 创建
MiniMaxMiniMax 开放平台控制台 → API Key → 获取 Code Plan
小米 MiMo小米 AI 开放平台创建开发者账号 → API Key
百度文心百度智能云千帆控制台 → 应用接入 → 创建密钥

五、CC Switch 本地路由方案:原理、部署、代码

5.1 CC Switch 是什么

CC Switch(由 farion1231 开发)是一款面向多种 CLI 编程助手的全方位模型管理工具,支持 Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw 等工具。它不仅管理模型配置,还内置了本地路由服务,能自动完成 Responses API → Chat Completions API 的协议转换。

GitHub 地址:https://github.com/farion1231/cc-switch

5.2 核心工作原理

CC Switch 的本地路由解决的核心问题是:Codex 始终认为自己在与一个标准的 Responses API 端点通信,而本地路由在中间完成协议识别、请求改写和响应还原。

完整的请求转换链路(四个阶段)

阶段 1: 配置文件改写
  CC Switch 将 Codex 的 live 配置指向 http://127.0.0.1:15721/v1
  强制锁定 wire_api = "responses"
  确保 Codex 发出的所有请求均使用 Responses 协议

阶段 2: 格式标记
  Provider 配置中的 meta.apiFormat = "openai_chat"
  告知路由层该上游的真实接口形态是 Chat Completions

阶段 3: 请求转发与改写
  路由拦截 /responses 或 /v1/responses 路径
  映射为 /chat/completions
  将 Responses 格式的请求体转换为 Chat Completions 格式

阶段 4: 响应回译
  上游返回的 Chat 格式响应(JSON 或 SSE 流)
  由路由层重新组装为 Responses 格式
  返回给 Codex 客户端

5.3 安装与部署

步骤 1:下载 CC Switch

前往 GitHub Releases 页面下载对应平台的安装包:

  • macOS:.dmg 安装包
  • Windows:.exe 安装包(也可在微软商店搜索下载)
# 或使用 Homebrew(macOS)
brew install cc-switch

步骤 2:确保 Codex CLI 已安装并至少运行过一次

npm install -g @openai/codex
codex --version
# 至少启动一次,生成 ~/.codex/ 目录骨架
codex

步骤 3:在 CC Switch 中配置第三方模型

打开 CC Switch,操作流程:

  1. 切换到顶部的「Codex」标签页
  2. 点击右上角「+」添加供应商
  3. 在预设列表中选择目标模型(如 DeepSeek)
  4. 填入 API Key
  5. 保存配置

预设已经自动填入了接口地址、默认模型、可选模型列表及 thinking/reasoning 相关参数,并默认开启了「需要本地路由映射」。

5.4 关键配置详解

CC Switch 预设配置中的关键字段

Provider: DeepSeek
  ├─ Base URL: https://api.deepseek.com
  ├─ Default Model: deepseek-v4-flash
  ├─ Available Models: [deepseek-v4-pro, deepseek-v4-flash, ...]
  ├─ API Format: openai_chat (需开启路由)
  ├─ API Key: sk-xxx
  └─ 需要本地路由映射: true

CC Switch 生成的 Codex 配置(自动写入 ~/.codex/config.toml)

# CC Switch 接管后的 Codex 配置
model = "deepseek-v4-flash"
model_provider = "cc-switch"

[model_providers.cc-switch]
name = "CC Switch Local Router"
base_url = "http://127.0.0.1:15721/v1"
wire_api = "responses"

# CC Switch 生成的模型目录
# 写入 cc-switch-model-catalog.json

5.5 启动路由并验证

在 CC Switch 设置页面操作

  1. 进入「设置」→「路由」
  2. 打开「路由总开关」→ 本地代理在 127.0.0.1:15721 启动
  3. 在「路由启用」中打开 Codex 选项
  4. 回到供应商列表,点击 DeepSeek 的「启用」

验证配置

# 重启 Codex 终端会话
# CC Switch 修改配置后,运行中的 Codex 进程不会热加载

codex
# 进入 Codex 后使用 /model 确认当前模型
# > /model
# 当前模型: deepseek-v4-flash (via CC Switch)

5.6 API Key 安全机制

CC Switch 在本地路由接管模式下有一个重要的安全设计:

  • Codex 的 live 配置中只写入占位符,不暴露真实 API Key
  • 真实的 DeepSeek Key 始终保存在 CC Switch 的 Provider 配置中
  • 本地路由在转发请求时动态注入 API Key
  • 这意味着即使 ~/.codex/config.toml 被泄露,也不会暴露第三方 API 密钥

5.7 常见问题排查

症状原因解决方案
Codex 报 404 或 /responses 不存在接管未生效检查 ~/.codex/config.toml 中 base_url 是否为 http://127.0.0.1:15721/v1
DeepSeek 上游返回 404base_url 配置错误确保使用预设配置,不要手动拼接路径
/model 中看不到 DeepSeekCodex 进程未重启重启 Codex 终端会话
路由已开但请求走到错误供应商供应商未切换确认 Codex 标签下当前供应商为 DeepSeek
模型自称是 GPT-5Codex 内置系统提示词正常现象,实际消耗可在 CC Switch 统计中查看

六、Codex++ 图形化工具:三个关键设置

6.1 Codex++ 是什么

Codex++ 是 Codex 桌面客户端的增强版本,内置了协议转换功能,让用户通过图形界面就能配置第三方模型,无需手动编辑配置文件或启动独立的桥接服务。

6.2 三个关键设置

根据实际使用反馈,Codex++ 有三个必须正确配置的设置,缺一个都无法正常工作:

设置 1:上游协议选「Chat Completions」

这是最关键的设置。Codex++ 内置了协议翻译层,你只需要在图形界面中把上游协议从默认的 Responses 改成 Chat Completions

操作路径:设置页面 → 找到「上游协议」选项 → 选择 Chat Completions

原理:Codex++ 在本地将 Codex 发出的 Responses API 请求转换为 Chat Completions 格式,再发送给上游模型。这样就不需要额外的桥接工具。

⚠️ 注意:如果上游模型本身已经原生支持 Responses API(如某些中转站),则应选择 Responses。只有当上游只支持 Chat Completions 时才选择此项。

设置 2:Base URL 和 API Key

操作路径:设置页面 → 供应商配置 → 填写 Base URL 和 API Key

# 对应的配置
openai_base_url = "https://api.deepseek.com"  # 注意:不要加 /v1/chat/completions

关键注意

  • Base URL 填到根地址或 /v1 为止
  • 不要填完整接口路径(如 /v1/chat/completions
  • API Key 必须完整复制,不要有多余空格

设置 3:模型选择与元数据

操作路径:设置页面 → 模型选择 → 选择目标模型

部分第三方模型不在 Codex 内置的模型目录中,可能需要手动声明模型元数据:

[model_properties."deepseek-v4-pro"]
context_window = 1000000
max_context_window = 1048576
supports_parallel_tool_calls = true
supports_reasoning_summaries = true
input_modalities = ["text"]

没有正确的元数据声明,Codex 可能:

  • 错误估计可用上下文
  • 不启用并行工具调用
  • 不使用推理摘要功能
  • 出现 "Model metadata not found" 警告

6.3 验证配置

配置完成后,建议按以下顺序验证:

# 1. 最简测试
codex "请只回复 OK"

# 2. 只读测试
codex "先阅读这个项目结构,不要修改文件,只告诉我主要目录分别做什么"

# 3. 修改测试(谨慎)
codex "在 README.md 第一行添加一行注释"

七、生态影响:从「OpenAI 绑定」到「模型中立」

7.1 行业转变

Codex 开放第三方模型接入,标志着 AI 编程工具行业从"模型绑定"走向"模型中立":

传统模式(2024-2025)

Claude Code ←→ Claude 模型 (绑死)
GitHub Copilot ←→ GPT 模型 (绑死)
Cursor ←→ 多模型但限定制 (半绑定)

新模式(2026开始)

Codex ←→ 任意模型 (模型中立)
         ├─ GPT-5.5
         ├─ DeepSeek V4
         ├─ Claude Sonnet
         ├─ Gemini 2.5
         ├─ 国产模型 (DeepSeek/Qwen/GLM/Kimi/MiMo)
         └─ 本地模型 (Ollama/LM Studio)

7.2 对竞品的影响

对 Claude Code 的冲击:Claude Code 目前绑死在 Anthropic 模型上。当开发者发现可以用 Codex + DeepSeek V4 Flash 以十分之一的成本完成同样的编程任务时,Claude Code 的订阅价值将受到质疑。Anthropic 可能被迫跟进开放策略。

对 GitHub Copilot 的冲击:Copilot 目前仍以 GPT 系列为主。如果 Codex 可以自由切换模型来优化成本和性能,Copilot 的"全家桶"定价策略将变得尴尬。

对 Cursor/Windsurf 的影响:这些 IDE 已经支持多模型选择,但主要限制在少数几个商业模型。Codex 的完全开放策略可能倒逼它们进一步开放。

7.3 对模型厂商的影响

对国产模型的利好:DeepSeek、Qwen、GLM、Kimi、MiMo 等国产模型终于可以通过 Codex 的 Agent 框架进入主流开发者的工作流。以前这些模型只能在聊天窗口里用,现在可以直接参与代码级别的任务。

对模型厂商的挑战:Codex 的工具调用链对模型的指令遵循能力要求很高。模型需要能正确理解复杂的工具调用指令、在多步推理中保持一致性、处理并行工具调用。这将成为模型能力的新维度——Agent 兼容性

7.4 「协议桥接」成为新赛道

Codex 的开放催生了一个新的技术赛道——协议桥接工具:

工具语言特点
codex-relayRust轻量级,专注协议转换
Moon BridgeGo功能丰富,支持推理模型元数据
CC Switch本地应用图形化管理 + 内置路由
codex-proxyGo带可视化调试界面
Open ResponsesTypeScript开源的 Responses API 实现

这个赛道的本质是:让不兼容的协议变得兼容。随着更多 AI 工具采用不同的 API 规范,协议桥接将变得越来越重要。


八、性能对比:Codex + 各模型的实测效果

8.1 基准测试维度

基于社区实测反馈,以下是 Codex 搭配不同模型在典型编程任务中的表现对比:

8.2 代码理解与生成

维度GPT-5.5Claude Sonnet 4DeepSeek V4 ProDeepSeek V4 FlashQwen 3
简单代码生成⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
复杂重构⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
代码审查⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Bug 定位⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
跨文件修改⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

8.3 工具调用可靠性

这是 Codex 使用第三方模型时最关键的指标。工具调用失败意味着 Codex 无法执行代码修改、运行命令等核心操作。

维度GPT-5.5Claude Sonnet 4DeepSeek V4 ProDeepSeek V4 Flash
单工具调用⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
并行工具调用⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
多步推理链⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
子Agent派生⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

8.4 成本与速度

模型相对成本(以 GPT-5.5 为基准)响应速度上下文窗口
GPT-5.51x(基准)128K
Claude Sonnet 4~0.8x200K
DeepSeek V4 Pro~0.15x1M
DeepSeek V4 Flash~0.05x很快1M
Qwen 3~0.1x128K
MiMo V2.5~0.08x1M
Kimi K2~0.12x128K

8.5 推荐使用场景

场景推荐模型理由
复杂架构设计GPT-5.5 / Claude Sonnet 4多步推理能力强
日常 Bug 修复DeepSeek V4 Flash成本极低,速度极快
大型代码库分析DeepSeek V4 Pro1M 上下文窗口
快速原型开发DeepSeek V4 Flash / MiMo V2.5性价比最优
代码审查与安全审计Claude Sonnet 4安全相关推理最强
本地离线开发Ollama (本地模型)数据不出本地
学习与教学GPT-5.5解释最清晰

8.6 协议桥接的性能损耗

使用协议桥接(codex-relay / Moon Bridge / CC Switch)会引入额外的延迟:

  • 请求改写延迟:约 1-5ms(取决于请求体大小)
  • 响应回译延迟:约 1-5ms(取决于响应体大小)
  • 总延迟增加:通常 <10ms

在实际使用中,这个延迟几乎可以忽略。真正影响体验的是模型本身的推理速度,而非协议转换的开销。


九、未来展望:多模型协作与竞争格局演变

9.1 多模型协作的未来

Codex 开放第三方模型接入后,一个令人兴奋的前景是多模型协作

用户: "重构整个认证系统,支持 OAuth 2.0 和 SAML"

Codex (编排器)
  │
  ├─ [DeepSeek V4 Pro] → 读取全部认证代码,生成架构分析
  │     (利用 1M 上下文窗口处理大量代码)
  │
  ├─ [Claude Sonnet 4] → 安全审计与漏洞扫描
  │     (利用 Claude 在安全领域的优势)
  │
  ├─ [GPT-5.5] → 实现代码重构
  │     (利用 GPT 在代码生成上的综合优势)
  │
  └─ [DeepSeek V4 Flash] → 运行测试并迭代修复
        (低成本高频调用)

虽然目前 Codex 原生还不支持这种"动态模型切换"(一次会话内根据任务类型自动选择模型),但社区已经在探索通过插件和自定义 Agent 实现这种能力。

9.2 竞争格局的三个演变方向

方向一:工具层与模型层彻底分离

未来的 AI 编程工具生态将更像传统的 IDE 生态——VS Code 不绑死任何语言,IntelliJ 不绑死任何框架。Codex 正在走这条路。

方向二:协议标准化

目前 Responses API 是 OpenAI 的专有协议。但随着 Codex 开放第三方模型接入,以及开源的 Open Responses 项目(Julep AI 开源)的出现,一个统一的 Agent API 标准可能正在形成。这类似于 HTTP 之于 Web——一旦协议标准化,工具和模型的解绑就是自然而然的。

方向三:Agent 能力成为模型的新竞争维度

过去模型竞争的核心维度是"能回答多难的问题"。在 Agent 时代,新增了一个关键维度:Agent 兼容性——模型能否正确理解和执行复杂的工具调用链、能否在多步推理中保持一致性、能否有效利用 1M 上下文窗口。DeepSeek V4 在这方面已经表现出了很强的竞争力。

9.3 对开发者的建议

  1. 不要押注单一模型:Codex 的开放意味着你可以随时切换模型。保持配置的灵活性。
  2. 关注 Agent 兼容性:在选择模型时,不仅要看基准测试分数,还要看它在 Codex 中的工具调用成功率。
  3. 善用协议桥接工具:codex-relay、Moon Bridge、CC Switch 这些工具让协议转换几乎无感。不要因为协议不兼容就放弃尝试新模型。
  4. 按任务选模型:简单任务用便宜的模型(DeepSeek V4 Flash),复杂任务用强的模型(GPT-5.5 / Claude Sonnet 4),这是最优策略。

十、总结与行动建议

10.1 核心要点回顾

  1. Codex 已开放第三方模型接入:不再限于 GPT 系列,支持 DeepSeek、Claude、Gemini 等任何模型。

  2. 协议是核心挑战:Codex 使用 Responses API,而大多数第三方模型只支持 Chat Completions API。需要协议桥接。

  3. 三种接入方案

    • 直接配置(仅限原生 Responses API 服务)
    • 协议桥接(codex-relay / Moon Bridge)
    • 本地路由(CC Switch)
  4. 商业逻辑清晰:OpenAI 通过工具层与模型层的分离,锁定开发者生态,同时对抗 Claude Code 的增长。

10.2 行动清单

如果你是新手开发者

# 1. 安装 Codex CLI
npm install -g @openai/codex

# 2. 下载 CC Switch
# https://github.com/farion1231/cc-switch/releases

# 3. 在 CC Switch 中配置 DeepSeek
# - 选 DeepSeek 预设
# - 填 API Key
# - 开启路由

# 4. 启动 Codex
cd your-project
codex

如果你是高级用户

# 1. 使用 codex-relay 获得更精细的控制
pip install codex-relay

# 2. 或使用 Moon Bridge 获得推理模型元数据支持
git clone https://github.com/ZhiYi-R/moon-bridge.git

# 3. 配置多个模型,按任务切换
# - 日常任务: DeepSeek V4 Flash (低成本)
# - 复杂任务: DeepSeek V4 Pro (大上下文)
# - 安全审计: Claude Sonnet 4 (强推理)

如果你是团队负责人

# 项目级配置 .codex/config.toml
# 团队统一使用 Codex + 第三方模型
model = "deepseek-v4-pro"
model_provider = "team-relay"
sandbox_mode = "workspace-write"
approval_policy = "on-request"

[model_providers.team-relay]
name = "Team Relay"
base_url = "http://team-relay.internal:38440/v1"
wire_api = "responses"
env_key = "TEAM_RELAY_API_KEY"

10.3 一句话总结

Codex 的开放不是技术上的让步,而是战略上的升维——从"卖模型"升级为"卖生态"。当所有模型都接入 Codex 时,OpenAI 真正拥有的不再是最强的模型,而是最强的 AI 编程工作流。


本文写于 2026年6月19日。API 规范和工具版本可能随时更新,请以官方文档为准。

参考资料:

  • OpenAI 官方文档:Responses API 规范
  • OpenAI:《Harness Engineering》(2026年2月)
  • OpenAI:《New tools for building agents》(2025年3月)
  • codex-relay:https://github.com/MetaFARS/codex-relay
  • Moon Bridge:https://github.com/ZhiYi-R/moon-bridge
  • CC Switch:https://github.com/farion1231/cc-switch
  • Codex CLI:https://github.com/openai/codex

推荐文章

# 解决 MySQL 经常断开重连的问题
2024-11-19 04:50:20 +0800 CST
2025年,小程序开发到底多少钱?
2025-01-20 10:59:05 +0800 CST
如何在 Linux 系统上安装字体
2025-02-27 09:23:03 +0800 CST
12个非常有用的JavaScript技巧
2024-11-19 05:36:14 +0800 CST
CSS 实现金额数字滚动效果
2024-11-19 09:17:15 +0800 CST
Dropzone.js实现文件拖放上传功能
2024-11-18 18:28:02 +0800 CST
解决 PHP 中的 HTTP 请求超时问题
2024-11-19 09:10:35 +0800 CST
程序员茄子在线接单