AI Coding 最容易踩的坑:让同一个模型又写代码又审代码
Codex Plugin for Claude Code 完整使用指南——写给产品经理和 AI Coding 工程师
想象一下这个场景:
你在 Claude Code 里写代码,写到一半,突然想做一次代码审查。你能怎么做?切换窗口,打开 Codex,粘贴代码,等结果,再切回来——这一圈折腾下来,思路早断了。
或者,测试挂了,Bug 找不到根因。你一行行看代码,脑子转了半小时,还是没找到。这时候你最需要的,是有个人帮你接手调查,你去干别的,他查好了告诉你。
Codex Plugin for Claude Code 就是为这两种需求而生的。
它是 OpenAI 官方出品的 Claude Code 插件,把 Codex 的能力直接嵌进你的开发环境——不切窗口,不另起进程。一行斜杠命令,代码审查、Bug 调查、任务委派,全在 Claude Code 里搞定。
更重要的是,它不只是个”提建议的工具”。当你把任务交给它,它可以直接读取、修改你的代码,跑完告诉你结果,你来决定要不要接受。这才是真正的 AI 副驾驶该有的样子。
下面这篇指南,会带你从零到熟练,一步一步把这个工具真正用起来。
一、它能帮你做什么?
在动手装插件之前,先把它能做的事情搞清楚——这样你后面遇到什么场景,能第一时间想到该用哪个命令。
四大核心能力:
-
• 🔍 代码审查:提交前让 Codex 扫一遍代码,发现潜在问题 -
• 🛡️ 对抗性审查:上线前主动”找茬”,质疑设计决策,防止翻车 -
• 🚑 任务救援:Bug 调查、问题修复,直接交给 Codex 在后台跑 -
• 📋 任务管理:查看进度、获取结果、取消卡住的任务
注意第二条——”对抗性审查”不是普通的代码审查。普通审查问的是”代码写得对不对”,对抗性审查问的是”这个方案本身对不对“。它会质疑你的设计选择、挑战你的实现思路、寻找隐含假设和潜在的失败场景。上线前用一次,胜过事后救火。
还有一个更深层的原因,值得单独说清楚:同一个模型,天然倾向于认同自己的输出。Claude 写出来的代码,反映的是它的训练偏好、设计倾向和对某类解法的判断——让它审查自己写的代码,等于让它在心理上”续写”一个已经建立好的叙事,那些被它当初”默默跳过”的问题,审查时往往还是会被跳过。引入 Codex——一个来自不同公司、不同训练数据的模型——做交叉审查,本质上是用异构性对抗自我认同偏差:两个模型的盲点不同,覆盖范围的交集才更接近代码的真实质量。这和”为什么代码审查一定要让别人来做”是同一个道理。
二、装插件之前,先检查这三件事
不用复杂的前置准备,三个条件检查一下就行:
|
|
|
|---|---|
|
|
node -v 检查版本 |
|
|
|
|
|
|
💡 不确定自己有没有安装 Codex?别慌,插件的
/codex:setup命令会帮你一键检查,还能自动安装。
三、安装与配置:三步搞定
3.1 三步装好插件
在 Claude Code 里依次输入以下命令:
# 第一步:添加插件市场源/plugin marketplace add openai/codex-plugin-cc# 第二步:安装插件/plugin install codex@openai-codex# 第三步:重新加载插件/reload-plugins
装完后,你会看到一系列 /codex: 开头的斜杠命令——这就是你接下来的武器库。
3.2 用 /codex:setup 检查环境
这是安装后的第一个命令,也是遇到任何问题时的”万能检查器”:
/codex:setup
它会自动检查三件事:
-
• ✅ Codex CLI 是否已安装 -
• ✅ 是否已完成登录认证 -
• ✅ 环境是否就绪
实际输出示例:
✅ Codex CLI: v1.2.0 (installed)✅ Authentication: logged in as user@example.com✅ App server: readyAll checks passed. You're ready to use Codex commands.
如果提示 Codex 未安装,插件会问你”要不要帮你装?”——选 Install Codex (Recommended) 就行。
如果提示未登录,运行:
!codex login
按提示用 ChatGPT 账号或 API Key 登录即可。
3.3 Review Gate(审查门控)是什么?
Review Gate 是一个可选的安全网。开启后,每次你结束 Claude Code 会话时,插件会自动跑一次 Codex 审查——如果发现问题,就阻止会话结束,提醒你先修复。
# 开启审查门控/codex:setup --enable-review-gate# 关闭审查门控/codex:setup --disable-review-gate
⚠️ 注意:Review Gate 可能导致 Claude/Codex 反复循环检查,消耗你的使用额度。建议只在重要提交前短时间开启,用完记得关掉。
💡 Review Gate 只在你上一轮实际修改了代码时才会触发审查。纯查看状态、聊天、跑
/codex:setup等操作不会触发,所以不必担心无谓的审查消耗。
四、七大命令详解
环境装好了,现在进入核心部分。这七个命令,就是你每天和 Codex 协作的全部界面。
命令一:/codex:setup — 环境检查与配置
语法:
/codex:setup [--enable-review-gate|--disable-review-gate]
检查 Codex CLI 是否安装、是否登录、环境是否正常,还能管理 Review Gate 开关。
参数说明:
|
|
|
|---|---|
|
|
|
--enable-review-gate |
|
--disable-review-gate |
|
使用建议:
把 /codex:setup 当成”晨检命令”,每天开工跑一次,确认环境一切正常再开始工作。发版日的早上,配合 --enable-review-gate 开启安全网。
命令二:/codex:review — 标准代码审查
语法:
/codex:review [--wait|--background] [--base <分支名>] [--scope auto|working-tree|branch]
让 Codex 对你的代码做一次标准审查。它只会读取代码,不会修改任何文件。
参数说明:
|
|
|
|---|---|
--wait |
|
--background |
|
--base <分支名> |
|
--scope auto |
|
--scope working-tree |
|
--scope branch |
|
实际例子:
场景:你改了两个文件的 bug fix,想快速检查一下
/codex:review --wait
Codex 直接在当前窗口返回审查结果,一两分钟搞定。
场景:你在 feature 分支上开发了三天,想对比 main 分支做一次全面审查
/codex:review --base main --background
后台运行,你可以继续干别的。过一会儿用 /codex:status 查看进度,用 /codex:result 获取结果。
⚠️ 重要:多文件审查可能耗时较长,推荐始终使用
--background,除非你只改了 1-2 个文件。
⚠️
/codex:review不支持自定义焦点文本。如果你想让 Codex 重点审查某个方面(如”检查认证逻辑”),请改用/codex:adversarial-review。
命令三:/codex:adversarial-review — 对抗性审查
语法:
/codex:adversarial-review [--wait|--background] [--base <分支名>] [--scope auto|working-tree|branch] [关注的焦点文本...]
这是整个插件里最有意思的命令。它是一个专门”找茬”的审查模式——Codex 会质疑你的设计选择、挑战你的实现思路、寻找隐含假设和潜在的失败场景。
普通审查问的是”代码写得对不对”,对抗性审查问的是”这个方案本身对不对“。
参数说明:
|
|
|
|---|---|
--wait |
|
--background |
|
--base <分支名> |
|
|
|
|
实际例子:
场景:你设计了一套缓存+重试机制,上线前想让 Codex 狠狠质疑一下
/codex:adversarial-review --base main challenge whether this was the right caching and retry design
场景:涉及用户认证和会话管理的模块,想专门检查竞争条件和安全隐患
/codex:adversarial-review --background look for race conditions and question the chosen approach
使用建议:
-
• 上线前的最后一道关卡,用这个命令比普通审查更安心 -
• 焦点文本越具体,审查越有针对性——比如”检查认证流程有没有权限绕过风险” -
• 审查也是只读的,不会修改代码 -
• 💡 进阶用法:对高风险模块,同时用 Claude 和 Codex 各做一次对抗性审查,再对比两份报告的差异。差异的地方,往往才是最值得深挖的风险点——两个异构模型都标记了同一个问题,几乎是确定的坑;只有一个模型提出的,则是值得独立判断的设计争议。
命令四:/codex:rescue — 任务救援
语法:
/codex:rescue [--background|--wait] [--resume|--fresh] [--model <模型名|spark>] [--effort <级别>] [任务描述]
这是整个插件中最强大的命令——把一个具体的编程任务交给 Codex 去做:调查 Bug、尝试修复、继续之前的工作,或者用更便宜的模型跑一遍。
⚠️ 重要提示:rescue 默认具有写权限。Codex 会直接读取和修改你的代码文件,而不是只生成建议。如果你只想要纯调查/诊断(不改文件),请在任务描述中明确说 “read-only” 或 “investigation only”。
参数说明:
|
|
|
|---|---|
--background |
|
--wait |
|
--resume |
|
--fresh |
|
--model <模型> |
gpt-5.4-mini |
--model spark |
gpt-5.3-codex-spark |
--effort <级别> |
none/minimal/low/medium/high/xhigh |
|
|
|
实际例子:
场景:测试突然挂了,你不知道为什么
/codex:rescue investigate why the tests started failing
场景:想让 Codex 用最小的改动修复失败的测试
/codex:rescue fix the failing test with the smallest safe patch
场景:上一次 Codex 找到了问题但还没修,让它继续
/codex:rescue --resume apply the top fix from the last run
场景:想快速修个小问题,用便宜的模型
/codex:rescue --model spark fix the typo in the error message
场景:复杂的集成测试时好时坏,让 Codex 用中等推理力度去调查
/codex:rescue --model gpt-5.4-mini --effort medium investigate the flaky integration test
使用建议:
-
• 不指定 --model和--effort,Codex 会自动选择最佳默认值 -
• spark是性价比最高的快捷模型别名,日常小任务用这个就够了 -
• 复杂任务用 --background,简单调查可以前台等 -
• 如果你省略 --resume和--fresh,插件会聪明地问你要继续上次的还是开新的 -
• 你也可以直接用自然语言告诉 Claude:”帮我把这个 Bug 交给 Codex 调查一下”,Claude 会自动调用 rescue 命令,不一定非要手动输入斜杠命令
命令五:/codex:status — 查看任务状态
语法:
/codex:status [任务ID] [--all]
显示当前 Claude 会话中正在运行和最近完成的 Codex 任务。后台跑了一个审查或救援任务?用这个命令看看进度。
参数说明:
|
|
|
|---|---|
|
|
|
任务ID |
|
--wait |
|
--all |
|
实际例子:
场景:你后台跑了一个审查,想看看进行到哪了
/codex:status
输出会是一个表格,包含任务 ID、类型、状态、耗时等信息:
|
|
|
|
|
|
|
|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
场景:想看某个具体任务的详情
/codex:status task-abc123
使用建议: 配合后台任务使用,养成”启动任务 → 定期 status → 完成后 result”的习惯。
命令六:/codex:result — 获取任务结果
语法:
/codex:result [任务ID]
获取一个已完成任务的完整输出——包括审查结论、发现的问题、修复建议,以及 Codex 会话 ID(方便你在 Codex 中继续操作)。
参数说明:
|
|
|
|---|---|
|
|
|
任务ID |
|
实际例子:
场景:你看到 status 显示任务完成了,想看完整结果
/codex:result
场景:查看特定任务的结果
/codex:result task-abc123
输出会包含完整的审查报告:问题列表、文件路径、行号、严重程度、修复建议,以及一个 Codex 会话 ID。
💡 如果结果里有
Codex session ID: sess-xxx,你可以用codex resume sess-xxx在 Codex 中直接继续那个会话。
命令七:/codex:cancel — 取消任务
语法:
/codex:cancel [任务ID]
取消一个正在后台运行的 Codex 任务。任务跑太久了?方向不对?直接取消。
参数说明:
|
|
|
|---|---|
|
|
|
任务ID |
|
实际例子:
场景:你发现审查任务跑了 10 分钟还没完,可能是卡了
/codex:cancel
场景:想取消特定的任务
/codex:cancel task-abc123
使用建议: 取消操作不会影响已完成的任务结果,只针对正在运行的任务。
五、实战演练——一次完整的 Sprint 工作日
七个命令都介绍完了。光看命令,感觉还是有点抽象?
现在用一个真实的开发场景,把七个命令全部串起来,模拟一次完整的工作日。
背景故事
你是”光典灵智”团队的新人开发。产品经理刚提了一个需求:私域知识库问答助手 2.0,核心功能包括:
-
• 🔧 全新 RAG(检索增强生成)检索模块 -
• 🔐 用户认证和会话管理 -
• 📊 问答结果缓存和重试机制
你花了三天写好了代码,今天是上线前的最后一天。
第一步:晨检环境 — /codex:setup
周一早上 9 点,你打开 Claude Code,第一件事就是检查环境:
/codex:setup
输出:
✅ Codex CLI: v1.2.0 (installed)✅ Authentication: logged in as zhangwei@guangdian.com✅ App server: readyAll checks passed. Codex is ready to use.
一切正常!今天是发版日,你决定开启 Review Gate 作为安全网:
/codex:setup --enable-review-gate
✅ Review gate enabled. A Codex review will run before each session stop.
第二步:审查新功能代码 — /codex:review
你刚写完了 RAG 检索模块(涉及 src/retriever.ts、src/embeddings.ts、src/vector-store.ts 等 8 个文件)。提交前先让 Codex 审一遍:
/codex:review --base main --background
插件自动评估改动规模(8 个文件),推荐后台运行。
Codex review started in the background. Check `/codex:status` for progress.
你继续干其他活,过了几分钟查看进度:
/codex:status
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
审查完成了!获取结果:
/codex:result rv-a7f3c1
Codex 发现了 3 个问题:
-
1. retriever.ts:45— embedding 维度校验缺失,可能导致空指针异常 -
2. vector-store.ts:112— 批量插入没有错误处理,部分失败会静默丢失数据 -
3. embeddings.ts:78— API 调用缺少超时设置,网络抖动时会无限等待
你逐一修复了这些问题。
第三步:上线前极限施压 — /codex:adversarial-review
RAG 模块的 bug 修完了,但你心里不踏实——认证和会话管理是安全敏感模块。让 Codex 来”找茬”:
/codex:adversarial-review --base main challenge the auth/session design, look for race conditions and permission bypass risks
Codex 的对抗性审查报告出来了:
⚠️ needs-attention —
session-manager.ts:89竞争条件:并发请求可能在 token 刷新窗口期同时触发多次刷新,导致第一个请求的 token 被第二个覆盖,用户被意外登出。
建议:添加 mutex 锁或使用单一刷新 promise 队列,确保同一时刻只有一个刷新操作。
⚠️ needs-attention —
auth-middleware.ts:34权限绕过风险:管理员路由仅检查
role === 'admin',但未校验 token 的签发来源。如果知识库接入第三方 SSO,伪造的 token 可能绕过校验。建议:添加
issuer和audience校验到 JWT 验证逻辑。
看完报告,你冒了一身冷汗——还好上线前查了!赶紧修了这两个问题。
第四步:紧急 Bug 调查 — /codex:rescue
下午 3 点,测试同事在群里 @你:”问答助手对超过 500 字的长查询总是返回错误答案,短查询没问题。”
你先自己看了一会儿代码,没找到根因。果断交给 Codex:
/codex:rescue --background investigate why long queries (over 500 chars) return wrong answers while short queries work fine, focus on the text chunking and retrieval pipeline
后台跑起来了,你继续处理其他事情。
💡 Codex 任务描述可以用英文也可以用中文,英文通常效果更稳定。习惯中文的话也可以写:
/codex:rescue --background 调查为什么超过500字的查询返回错误答案,重点关注文本分块和检索管线
第五步:查看调查进度 — /codex:status
过了五分钟,你查看进度:
/codex:status
|
|
|
|
|
|
|
|---|---|---|---|---|---|
|
|
|
|
|
|
|
还在跑,看来问题不简单。你耐心等了一会儿。
第六步:获取调查结果 — /codex:result
十分钟后再看:
/codex:status
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
完成了!获取结果:
/codex:result tk-b9d2e4
Codex 找到了根因,并且已经直接修复了代码(rescue 默认具有写权限):
根因:
text-splitter.ts:23中,splitBySentences()函数对超过 500 字的输入会截断到固定 500 字,丢弃后续内容。导致长查询只检索到前半段的 embedding,答案自然不完整。已应用修复:将
splitBySentences()改为滑动窗口分块策略,保留上下文重叠区域。涉及文件:text-splitter.ts、retriever.ts。
你 git diff 看了看 Codex 的改动——逻辑没问题,跑了测试,全部通过 ✅。
第七步:取消卡住的任务 — /codex:cancel
下班前,你又跑了一次全量审查:
/codex:review --base main --background
但这次审查跑了 15 分钟还没结束——可能是 Codex 服务端负载较高。你不想等了:
/codex:status
|
|
|
|
|
|
|
|---|---|---|---|---|---|
|
|
|
|
|
|
|
状态是 queued(排队中),看来确实卡了。直接取消:
/codex:cancel rv-c8e5f2
✅ Job rv-c8e5f2 cancelled.
你决定明天再看,先关掉 Review Gate 下班:
/codex:setup --disable-review-gate
✅ Review gate disabled.
完美收工。七个命令全部用上,知识库问答助手 2.0 明天准时上线!🎉
六、最佳实践
七个命令,四个场景,弄清楚”什么时候用什么”,才是真正的高效用法。
6.1 场景 → 命令速查
|
|
|
|
|---|---|---|
|
|
/codex:setup |
|
|
|
/codex:review --wait |
|
|
|
/codex:review --base main --background |
|
|
|
/codex:adversarial-review |
|
|
|
/codex:rescue |
|
|
|
/codex:status |
|
|
|
/codex:result |
|
|
|
/codex:cancel |
|
6.2 后台 vs 前台怎么选?
|
|
|
|
|---|---|---|
|
|
--wait
|
|
|
|
--background
|
|
|
|
--background |
|
|
|
--wait |
|
|
|
--background |
|
简单记法:不确定就选 --background,总不会错。
6.3 Review Gate:什么时候开,什么时候关?
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
6.4 新人常见坑
|
|
|
|---|---|
/codex:setup 检查环境 |
|
|
|
--background + /codex:status 追踪 |
|
|
|
--resume |
--resume |
|
|
spark(便宜快),复杂调查不指定让 Codex 自己选 |
|
|
|
七、速查表——贴在工位上的那种
┌─────────────────────────────────────────────────────────────┐│ Codex Plugin 速查表 │├──────────────────┬──────────────────────────────────────────┤│ /codex:setup │ 检查环境 / 开关 Review Gate ││ /codex:review │ 标准代码审查(只读) ││ /codex:adversarial-review │ 对抗性审查(找茬模式) ││ /codex:rescue │ 委派任务给 Codex(调查/修复) ││ /codex:status │ 查看后台任务进度 ││ /codex:result │ 获取已完成任务的结果 ││ /codex:cancel │ 取消卡住的后台任务 │├──────────────────┴──────────────────────────────────────────┤│ 常用参数: ││ --background 后台运行 --wait 前台等待 ││ --base <分支> 对比分支审查 --resume 继续最近的任务 ││ --model spark 便宜快速模型 --fresh 开始新任务 ││ --effort <级别> 推理力度控制 │├─────────────────────────────────────────────────────────────┤│ 推荐工作流: ││ 开工 → setup → 写代码 → review → 改问题 ││ 上线前 → adversarial-review → rescue 调查 bug ││ 后台任务 → status 查进度 → result 取结果 ││ 下班 → cancel 卡住的任务 → disable-review-gate │└─────────────────────────────────────────────────────────────┘
工具只是辅助,理解问题本身才是核心。Codex Plugin 能帮你发现问题、调查 Bug,但最终的判断和决策还是靠你自己。
多用、多试、多总结——一周之后,这些命令就是你的肌肉记忆了。
祝你编码愉快!🚀
夜雨聆风