乐于分享
好东西不私藏

AI Coding 最容易踩的坑:让同一个模型又写代码又审代码

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.js ≥ 18.18
在终端运行 node -v 检查版本
ChatGPT 账号(含免费版)或 OpenAI API Key
Codex 使用你的 ChatGPT 订阅额度
Claude Code
你已经在用的开发工具

💡 不确定自己有没有安装 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 狠狠质疑一下

/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
继续上一次 Codex 任务
--fresh
开始新的任务(不续接上一次)
--model <模型>
指定模型,如 gpt-5.4-mini
--model spark
快捷别名,映射到 gpt-5.3-codex-spark
--effort <级别>
推理力度:none/minimal/low/medium/high/xhigh
任务描述
用自然语言描述你想让 Codex 做什么

实际例子:

场景:测试突然挂了,你不知道为什么

/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 任务。后台跑了一个审查或救援任务?用这个命令看看进度。

参数说明:

参数
说明
(无参数)
查看当前 Claude 会话的任务
任务ID
查看特定任务的详细状态
--wait
需要搭配任务 ID,轮询等待直到该任务完成
--all
显示所有会话的任务(默认只显示当前 Claude 会话)

实际例子:

场景:你后台跑了一个审查,想看看进行到哪了

/codex:status

输出会是一个表格,包含任务 ID、类型、状态、耗时等信息:

Job ID
Kind
Status
Phase
Elapsed
Summary
task-abc123
review
running
analyzing
2m 30s
Reviewing 12 files
task-def456
rescue
completed
done
5m 12s
Bug fix applied

场景:想看某个具体任务的详情

/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.tssrc/embeddings.tssrc/vector-store.ts 等 8 个文件)。提交前先让 Codex 审一遍:

/codex:review --base main --background

插件自动评估改动规模(8 个文件),推荐后台运行。

Codex review started in the background. Check `/codex:status` for progress.

你继续干其他活,过了几分钟查看进度:

/codex:status
Job ID
Kind
Status
Elapsed
Summary
rv-a7f3c1
review
completed
4m 18s
Found 3 issues

审查完成了!获取结果:

/codex:result rv-a7f3c1

Codex 发现了 3 个问题:

  1. 1. retriever.ts:45 — embedding 维度校验缺失,可能导致空指针异常
  2. 2. vector-store.ts:112 — 批量插入没有错误处理,部分失败会静默丢失数据
  3. 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
Job ID
Kind
Status
Phase
Elapsed
Summary
tk-b9d2e4
rescue
running
investigating
5m 12s
Analyzing chunking logic in retriever.ts

还在跑,看来问题不简单。你耐心等了一会儿。


第六步:获取调查结果 — /codex:result

十分钟后再看:

/codex:status
Job ID
Kind
Status
Elapsed
Summary
tk-b9d2e4
rescue
completed
10m 35s
Root cause found: truncation in text splitter

完成了!获取结果:

/codex:result tk-b9d2e4

Codex 找到了根因,并且已经直接修复了代码(rescue 默认具有写权限):

根因text-splitter.ts:23 中,splitBySentences() 函数对超过 500 字的输入会截断到固定 500 字,丢弃后续内容。导致长查询只检索到前半段的 embedding,答案自然不完整。

已应用修复:将 splitBySentences() 改为滑动窗口分块策略,保留上下文重叠区域。涉及文件:text-splitter.tsretriever.ts

你 git diff 看了看 Codex 的改动——逻辑没问题,跑了测试,全部通过 ✅。


第七步:取消卡住的任务 — /codex:cancel

下班前,你又跑了一次全量审查:

/codex:review --base main --background

但这次审查跑了 15 分钟还没结束——可能是 Codex 服务端负载较高。你不想等了:

/codex:status
Job ID
Kind
Status
Phase
Elapsed
Summary
rv-c8e5f2
review
running
queued
15m 02s
Waiting for Codex slot

状态是 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
养成习惯,30 秒搞定
日常提交前审查代码
/codex:review --wait
改动少就前台等
多文件功能分支审查
/codex:review --base main --background
改动多就后台跑
上线前质疑设计方案
/codex:adversarial-review
发版前的最后一道关
Bug 调查/修复
/codex:rescue
让 Codex 帮你排查
查看后台任务进度
/codex:status
配合后台任务使用
获取完成的任务结果
/codex:result
查看完整报告
任务卡住了
/codex:cancel
不浪费时间等待

6.2 后台 vs 前台怎么选?

情况
选择
原因
只改了 1-2 个文件
--wait

(前台)
快,一两分钟出结果
改了 3 个以上文件
--background

(后台)
多文件审查耗时长
调查复杂 Bug
--background
调查可能 5-10 分钟
快速修个小问题
--wait
简单任务前台就行
不确定耗时
--background
后台更安全,不会阻塞你

简单记法:不确定就选 --background,总不会错。

6.3 Review Gate:什么时候开,什么时候关?

时机
建议
发版日 / 重要提交
✅ 开启
日常开发
❌ 关闭
调试复杂问题
❌ 关闭(避免循环检查消耗额度)
下班前
❌ 记得关掉

6.4 新人常见坑

解决方案
忘记 /codex:setup 检查环境
每天开工第一件事就跑这个命令
审查跑了很久没结果
应该用 --background + /codex:status 追踪
Review Gate 忘了关
设个下班提醒:关 Gate 再走
rescue 任务没指定 --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,但最终的判断和决策还是靠你自己。

多用、多试、多总结——一周之后,这些命令就是你的肌肉记忆了。

祝你编码愉快!🚀