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 安全建议
- 生产环境隔离:不要在生产环境目录中运行
/codex:rescue,除非你完全信任 Codex 的沙箱配置 - 敏感项目审查:对于包含敏感信息的项目,使用
read-only沙箱 +--base main限制审查范围 - 团队权限管理:在团队中使用时,确保每个成员都有独立的 Codex 认证,避免共享 API Key
- 审计日志:定期检查
~/.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
参考资源: