编程 Codex 深度拆解:当 OpenAI 决定「把 Codex 塞进 Claude Code 的身体」——30.4K Star 的跨厂商 Agent 协作插件如何用 App Server 协议和双 Harness 架构重新定义 AI 编程的终极形态

2026-08-05 02:14:30 +0800 CST views 6

Codex 深度拆解:当 OpenAI 决定「把 Codex 塞进 Claude Code 的身体」——30.4K Star 的跨厂商 Agent 协作插件如何用 App Server 协议和双 Harness 架构重新定义 AI 编程的终极形态

引言:两个死对头,第一次在同一间办公室里上班

2026 年 7 月 30 日,OpenAI 官方发布了一个名为 codex-plugin-cc 的 Claude Code 插件,在 GitHub 上 72 小时内斩获 30.4K Star。这不是一个第三方适配器,不是社区补丁,而是 OpenAI 官方下场,把自家的 Codex 能力直接嵌入了竞争对手 Anthropic 的 Claude Code 生态。

在 AI 编程工具领域,这堪称一个里程碑事件——两个死对头的模型第一次在同一个工作流里并肩工作

很多开发者使用 Coding Agent 时已经形成了固定工作流:先让 Claude Code 阅读项目、修改代码、运行测试,再切换到另一个模型检查 Diff,确认代码有没有遗漏边界情况、引入安全风险。但问题是,模型虽然换了,负责组织上下文和调用工具的 Harness 往往没有变化。后接入的模型看到的,可能依然是上一套工作流筛选和整理过的信息,也很容易顺着前一个 Agent 已经形成的技术假设继续往下走。

换了一个脑子,却没有完全换掉观察问题的视角。

codex-plugin-cc 的出现,从根本上解决了这个问题。本文将从架构设计、核心机制、实战场景三个维度,深度拆解这个 30.4K Star 的跨厂商 Agent 协作插件。

一、插件定位:不是换模型,而是换 Harness

1.1 为什么这不是一个简单的模型切换

很多人第一眼看到这个插件,会以为它只是让 Claude Code 内部切换到 GPT 模型。这是完全错误的理解。

codex-plugin-cc 做的事情要深刻得多:它调用开发者本机安装的 Codex CLI,通过 CLI 提供的 codex app-server 接口执行任务。整个过程中,它会继续使用 Codex 自己的认证信息、模型配置和运行机制,同时与 Claude Code 操作同一个代码仓库和本机环境。

简单说:Claude Code 还是 Claude Code,Codex 还是 Codex,但它们共享了同一个代码仓库和本机环境,通过插件桥接实现了真正的双 Harness 协作。

1.2 双 Harness 协作模型

理解这个插件的关键在于理解 Harness 的概念。Harness 不是模型本身,而是围绕模型构建的完整运行时系统:包括上下文管理、工具调用、审批流程、沙箱隔离、状态持久化等。

Claude Code 有自己的 Harness(200K 上下文窗口、MCP 工具链、子 Agent 委托机制),Codex 也有自己的 Harness(Thread/Turn/Item 三层会话模型、App Server 协议、沙箱安全层)。这个插件让两套 Harness 各自独立运行,但共享同一个代码工作区。

这意味着什么?当 Claude Code 完成一次功能开发后,你可以输入 /codex:review,让 Codex 用自己的 Harness 独立审查代码——它看到的是原始的 Git Diff,而不是 Claude Code 整理过的信息。这是真正的"换脑子",而不仅仅是"换模型"。

二、架构深度解析:从 App Server 到双线程协作

2.1 整体架构:四层堆栈

插件的架构可以分为四层:

┌─────────────────────────────────────────┐
│         Claude Code UI / Terminal        │  ← 用户交互层
├─────────────────────────────────────────┤
│      codex-plugin-cc Bridge Layer        │  ← 插件桥接层
│   (slash commands → Codex CLI calls)     │
├─────────────────────────────────────────┤
│         Codex CLI + App Server           │  ← Agent Runtime 层
│   (Thread/Turn/Item 会话模型)            │
├─────────────────────────────────────────┤
│         Codex Core (Rust Runtime)        │  ← 底层执行层
│   (沙箱、文件系统、命令执行)              │
└─────────────────────────────────────────┘

用户在 Claude Code 终端输入 /codex:review,插件桥接层将这个命令翻译为 Codex CLI 调用,Codex CLI 启动 App Server 会话,App Server 通过 JSON-RPC 协议与底层 Rust Runtime 通信,最终在沙箱中完成代码审查。

2.2 App Server 协议:Codex 的统一控制面

App Server 是理解整个插件的关键。它不是传统意义上的 HTTP API,而是一个本地 Agent Runtime 的控制接口。

客户端通过 JSON-RPC 发起 Thread、Turn、Approval、工具调用,App Server 再把这些请求翻译成 Codex Core 能理解的内部操作。

App Server 的进程由四块组成:

组件职责
stdio reader读取客户端输入
Codex message processor解析 JSON-RPC 消息
thread manager管理会话线程生命周期
core threads执行底层 Rust Runtime 操作

这个设计让 Codex 的状态不在客户端——客户端关掉浏览器或终端,任务还能继续跑。这对于 /codex:rescue 的后台执行模式至关重要。

2.3 三层会话模型:Thread / Turn / Item

Codex 不是简单的一问一答,它把会话拆成三个原语:

Thread:一条可持久化的会话。它能 resume、fork、archive,也能让客户端断线后重新接上。每个 /codex:rescue 任务就是一个独立 Thread。

Turn:一次用户输入触发的完整任务。一个 Turn 里面可能有推理、计划、搜索、读文件、跑命令、改代码、申请用户确认。Claude Code 的一次 /codex:review 调用就是一个 Turn。

Item:最小事件单元。可以是 agent message、plan delta、command execution output、file patch、MCP tool call、approval request。客户端通过订阅 Item stream 实现实时进度展示。

这个抽象的意义在于:富客户端如果只拿到"最终答案",就做不出好体验。它需要知道现在执行到了哪一步,哪个命令正在跑,哪个 diff 被生成,哪个操作需要用户确认。

2.4 安全沙箱:三档权限控制

Codex 的沙箱机制是其区别于普通 AI 编程工具的核心竞争力之一:

沙箱级别含义适合场景
read-only只读探索,不改文件Review、理解代码、风险分析
workspace-write工作区可写,外部资源受限日常开发、测试修复
danger-full-access不隔离已有容器保护的 CI

/codex:review 默认使用 read-only 沙箱——Codex 可以查看代码、分析 Diff 并指出问题,但不会直接修改文件。而 /codex:rescue 默认使用 workspace-write,允许 Codex 修改文件和执行命令,但高风险操作仍需审批。

这个设计非常务实:审查场景不需要写权限,修复场景需要写权限但要受控,CI 场景可以放宽但要靠外部容器兜底。

三、核心功能:三大场景实战

3.1 代码审查:/codex:review

写完代码准备提交前,直接在 Claude Code 里输入:

/codex:review

Codex 会分析你的未提交改动,给出结构化的审查报告,包括问题严重性(critical/high/medium/low)、置信度分数和具体的文件行位置。

智能审查范围判断:插件会自动判断审查范围——如果工作区存在未提交改动,就检查暂存、未暂存和未跟踪的文件;如果工作区已经干净,则审查当前开发分支相对默认分支的改动。

# 指定对比的基线分支
/codex:review --base main

# 后台运行
/codex:review --background

只读不修复:这是 /codex:review 的核心设计原则。Codex 可以查看代码、分析 Diff 并指出问题,但不会直接修改文件。也就是说,它在这里扮演的是代码审查者,而不是修复者。

为什么只读很重要? 因为如果审查者也能修改代码,那审查结果的可信度就大打折扣。一个独立的、只读的审查者给出的意见,比一个"既当裁判又当球员"的系统更有价值。

3.2 对抗式审查:/codex:adversarial-review

如果希望 Codex 不仅检查代码错误,还进一步质疑 Claude Code 选择的技术路线,则可以使用:

/codex:adversarial-review

普通代码审查主要回答"这段代码有没有写错",对抗式审查更关注"这个问题是否应该这样解决"。

# 给它一个具体的挑战方向
/codex:adversarial-review --base main challenge whether this caching design is right

这个功能的价值在哪里? 在实际工程中,最大的风险往往不是代码写错了,而是技术选型选错了。一个缓存设计可能代码完美、测试全绿,但如果选错了缓存策略(比如用 LocalStorage 存敏感数据、用 Redis 做时序数据),后果可能是灾难性的。

对抗式审查让 Codex 扮演"技术合伙人"的角色,专门挑毛病、找边界情况、质疑架构决策。这相当于给你的开发流程加了一道反脆弱防线

3.3 任务委派:/codex:rescue

遇到一个头疼的 Bug,或者一个需要深入调查的问题?直接委派给 Codex:

/codex:rescue investigate why the tests started failing

Codex 会在后台自主运行,调查问题并给出修复建议。它使用的是你本地 Codex CLI 的配置和当前工作目录,安全性取决于你本地的 Codex 沙盒设置。

# 指定模型
/codex:rescue --model gpt-5.4-mini --effort medium investigate the flaky test

# 恢复上次任务并应用修复
/codex:rescue --resume apply the top fix from the last run

# 后台运行
/codex:rescue --background investigate the regression

--resume 的意义:Codex 的 Thread 是持久化的,你可以随时恢复之前的调查线程,保留它自己的调查记录和任务记忆。这意味着你不需要每次都从头描述问题,Codex 已经记住了之前的上下文。

后台执行模式:加入 --background 后,Codex 在独立线程中运行,你可以继续使用 Claude Code 处理其他工作。通过 /codex:status 查看进度,通过 /codex:result 读取最终结果。

四、实战代码:完整工作流演示

4.1 安装与配置

前置条件

  • Node.js 18.18 或更高版本
  • ChatGPT 账号(免费版就行)或 OpenAI API Key

第一步:安装 Codex CLI

# 全局安装
npm install -g @openai/codex

# 登录认证
codex login

第二步:在 Claude Code 中安装插件

# 添加插件源
/plugin marketplace add openai/codex-plugin-cc

# 安装插件
/plugin install codex@openai-codex

# 重载并验证
/reload-plugins
/codex:setup

/codex:setup 会自动检测你的 Codex CLI 是否安装正确、认证是否有效。如果 Codex 已安装但未登录,会自动引导你完成登录。

4.2 完整开发工作流

以下是一个典型的"Claude Code + Codex"协作开发工作流:

# 1. 在 Claude Code 中开始开发
claude

# 2. 让 Claude Code 理解项目并实现功能
> 帮我实现一个用户认证模块,支持 JWT + OAuth2

# 3. Claude Code 完成代码后,让 Codex 审查
/codex:review --base main

# 4. 如果 Codex 发现了潜在的设计问题,用对抗式审查深入
/codex:adversarial-review challenge whether JWT refresh token rotation is necessary

# 5. 如果发现了 Bug,委派给 Codex 调查
/codex:rescue investigate why the token refresh fails under high concurrency

# 6. 查看 Codex 的调查结果
/codex:result

# 7. 如果需要继续之前的工作
/codex:rescue --resume apply the recommended fix

# 8. 最终审查
/codex:review

4.3 配置文件详解

插件使用和本地 Codex CLI 相同的配置文件:

用户级别~/.codex/config.toml

# 默认模型
model = "gpt-5.4-mini"

# 推理强度:low / medium / high / xhigh
model_reasoning_effort = "xhigh"

# 沙箱模式:read-only / workspace-write / danger-full-access
sandbox = "workspace-write"

# 审批策略:never / always / on-failure
ask_for_approval = "on-failure"

项目级别.codex/config.toml

# 项目特定配置,覆盖用户级别
model = "gpt-5.4"
model_reasoning_effort = "high"

# 项目特定的沙箱策略
sandbox = "read-only"

⚠️ 注意:项目级 .codex/config.toml 仅在项目被标记为受信任后才会生效。对于新克隆的仓库,需要先通过 Codex 信任该项目,否则项目级配置会被静默忽略。

4.4 团队协作配置

对于团队项目,建议在 .gitignore 中排除本地 Codex 配置,同时在项目中提供一份推荐配置模板:

# .gitignore
.codex/config.toml

# .codex/config.toml.example (提交到仓库)
model = "gpt-5.4-mini"
model_reasoning_effort = "medium"
sandbox = "workspace-write"
ask_for_approval = "on-failure"

五、性能优化与最佳实践

5.1 Token 消耗控制

插件调用的 Codex 任务会消耗你的 Codex 使用量,并非独立免费。以下策略可以帮助控制成本:

审查场景:默认使用 gpt-5.4-mini 模型,配合 medium 推理强度。对于非关键代码的日常审查,这个配置已经足够。

对抗式审查:使用 gpt-5.4 模型 + high 推理强度。对抗式审查需要更深入的推理能力,不建议省这个钱。

任务委派:根据任务复杂度动态选择模型。简单 Bug 调查用 mini,复杂架构重构用 gpt-5.4

# 轻量审查
/codex:review --model gpt-5.4-mini --effort low

# 深度审查
/codex:adversarial-review --model gpt-5.4 --effort xhigh

5.2 Review Gate 的正确使用

/codex:setup --enable-review-gate 可以在每次 Claude 停止时自动触发 Codex 审查,但这会创建长时间运行的 Claude/Codex 循环,可能快速消耗你的额度。

建议:只在关键项目中启用 Review Gate,日常开发手动触发审查即可。

5.3 后台任务管理

# 查看所有正在运行的任务
/codex:status

# 查看最新完成的结果
/codex:result

# 取消正在跑的任务
/codex:cancel

后台任务的核心优势是不阻塞主工作流。你可以让 Codex 在后台审查代码或调查 Bug,同时继续用 Claude Code 做其他开发工作。

六、与竞品对比:为什么这个插件如此重要

6.1 对比传统工作流

维度传统工作流codex-plugin-cc
模型切换手动切换终端,复制粘贴代码一个命令完成
上下文共享需要手动整理 Diff 和上下文自动共享 Git 工作区
审查独立性后一个模型可能受前一个影响完全独立的 Harness
后台执行不支持支持 --background
状态持久化每次重新开始Thread 持久化,可 resume

6.2 对比其他 AI 编程工具

工具审查能力后台执行状态持久化沙箱安全
Claude Code基础
Codex强大
Cursor中等部分
Copilot基础
codex-plugin-cc强大

这个插件让 Claude Code 获得了 Codex 的审查能力和后台执行能力,同时保留了 Claude Code 自身的上下文理解和代码生成优势。

6.3 为什么 OpenAI 要给竞争对手做插件

这个决策背后的商业逻辑值得深思:

生态锁定:让开发者在任何环境下都能使用 Codex,增加了 OpenAI API 的粘性。

数据飞轮:更多的使用场景 = 更多的训练数据 = 更好的模型 = 更多的使用场景。

标准制定:通过 App Server 协议,OpenAI 正在定义 Agent Runtime 的事实标准。如果其他工具也接入这个协议,OpenAI 就成了 Agent 时代的"Windows"。

竞争策略:与其让开发者在 Claude Code 和 Codex 之间二选一,不如让他们全都要——但每个选择都意味着 OpenAI 的收入。

七、局限性与注意事项

7.1 当前限制

  • 审查只读不修复/codex:review 发现问题后不会自动修改代码,需要你自己决定是否采纳
  • Review Gate 慎用:自动审查会快速消耗额度
  • Rescue 任务默认可写:委派给 Codex 的任务默认有写权限,写入范围取决于你本地 Codex CLI 的沙盒和审批配置
  • Token 消耗:插件调用的 Codex 任务会消耗你的 Codex 使用量

7.2 安全建议

  1. 生产环境隔离:不要在生产环境目录中运行 /codex:rescue,除非你完全信任 Codex 的沙箱配置
  2. 敏感项目审查:对于包含敏感信息的项目,使用 read-only 沙箱 + --base main 限制审查范围
  3. 团队权限管理:在团队中使用时,确保每个成员都有独立的 Codex 认证,避免共享 API Key
  4. 审计日志:定期检查 ~/.codex/history~/.codex/logs,确保没有异常操作

八、总结与展望

codex-plugin-cc 的推出,释放了一个清晰的信号:AI 编程工具正在从竞争走向融合

Claude Code 擅长交互式编程、上下文理解和精细的代码生成;Codex 擅长时间运行的自主任务、沙盒执行和独立审查。两个工具各有所长,而这个插件让它们实现了互补。

对于开发者来说,这意味着你不再需要在"选 Claude 还是选 Codex"之间纠结——全都要,而且在同一个工作流里协同工作。

但更深层的意义在于:这个插件证明了 Agent Runtime 的可组合性。当不同的 Agent Harness 可以通过标准化协议协作时,开发者可以像搭积木一样组合不同厂商的能力。这不是简单的工具集成,而是 Agent 生态走向"跨厂商编排"的起点。

下一阶段拼的不是谁会写代码,而是谁能把 Agent 变成可靠的工程系统。codex-plugin-cc 是这个方向上的一个重要里程碑。


项目地址:https://github.com/openai/codex-plugin-cc

参考资源

推荐文章

Rust async/await 异步运行时
2024-11-18 19:04:17 +0800 CST
`Blob` 与 `File` 的关系
2025-05-11 23:45:58 +0800 CST
从Go开发者的视角看Rust
2024-11-18 11:49:49 +0800 CST
如何在Vue3中定义一个组件?
2024-11-17 04:15:09 +0800 CST
PHP服务器直传阿里云OSS
2024-11-18 19:04:44 +0800 CST
程序员茄子在线接单