跳转到内容
API 入口

Codex 教程

用 Codex 修 Bug

用 Codex 修 Bug 的完整指南,覆盖复现步骤、根因定位、最小修复、回归测试、日志脱敏、API 报错边界、Diff 审查和常见误区。

预计阅读
6 分钟
最近更新
2026/07/03
维护方式
人工编辑

用 Codex 修 Bug 的关键不是让它“随便看看哪里错了”,而是把问题变成一个可 复现、可定位、可验证的小闭环。你给出的复现步骤、错误日志、期望行为和验证 命令越清楚,Codex 越容易做出范围小、风险低、能通过测试的修复。

项目 内容
阅读时间 约 6 分钟
更新时间 2026-07-03
适合人群 开发者、产品经理、运营、学生、老师,以及需要让 Codex 帮忙排查项目问题的人
你会得到 修 Bug Prompt、复现模板、根因定位矩阵、回归测试策略、API 报错边界和 Diff 审查清单
Bug 类型 适合用 Codex 吗 需要提供什么
前端交互异常 适合 浏览器、页面路径、操作步骤、截图、控制台报错
API 请求失败 适合 请求路径、状态码、脱敏请求头、响应体、Base URL
测试失败 适合 失败命令、完整错误栈、相关测试文件
数据格式错误 适合 输入样例、输出样例、字段含义、边界数据
性能回退 可用,但要谨慎 慢在哪个操作、基准数据、复现命令、性能日志
部署或 CI 失败 适合 CI 链接、失败 job、环境变量名、构建日志
收集现象步骤 / 日志 / 环境最小复现缩小输入和路径定位根因用证据排除猜测最小修复只改相关路径补回归测试锁住这次错误运行验证失败命令要通过审查 Diff确认无关改动为零

有些问题不适合直接进入代码修改。让 Codex 先补调查,比立刻动手更稳。

情况 推荐动作
没有复现步骤 请 Codex 列出缺失信息,并帮助你设计最小复现
预期行为不清楚 先让产品、业务或题主确认正确结果
同一段日志包含多个问题 拆成独立任务,一个 Prompt 只解决一个根因
涉及生产数据或真实用户信息 先脱敏,再只提供必要字段
怀疑是权限、额度、套餐或模型可用性 先用控制台或官方文档确认当前状态
需要大规模重构才能修 先做止血修复,再单独安排重构任务
project/
AGENTS.md
src/
tests/
scripts/
logs/
bug-2026-07-03-redacted.log
package.json

把复现日志放到本地文件里,再在 Prompt 中引用路径。日志必须先脱敏: AuthorizationCookie、API Key、用户 ID、邮箱、手机号、内部 IP、订单号 等字段都不应原样交给 Codex。

如果团队经常让 Codex 修 Bug,可以在 AGENTS.md 里写清:

  • 项目结构和关键目录。
  • 常用测试、构建、Lint 命令。
  • 日志脱敏规则。
  • 修改范围限制。
  • 修复完成前必须运行的检查。

OpenAI Codex 手册建议把目标、上下文、约束和完成标准写清楚;AGENTS.md 适合沉淀长期规则,Prompt 适合表达这一次 Bug 的具体信息。

Goal:
修复 [Bug 标题]。
保持改动范围小。
补充能证明问题不再复现的验证。
Context:
- 复现步骤:
1. [操作或命令]
2. [操作或命令]
- 实际结果:[看到的错误、状态码、页面表现或测试输出]
- 预期结果:[正确行为]
- 错误日志:[脱敏日志路径或粘贴片段]
- 相关文件:[可选,列出怀疑文件或模块]
- 验证命令:[例如 npm test -- bug-name]
Constraints:
- 先复现;如果无法复现,说明缺少什么信息。
- 用证据说明根因,不要只猜测。
- 只做最小修复,不做无关重构。
- 不删除错误处理,不跳过测试,不吞掉异常。
- 不把 API Key、Cookie、真实用户数据写进代码或日志。
Done when:
- 原始失败命令通过。
- 相关回归测试通过。
- Diff 中没有无关格式化或重命名。
- 说明修改了什么、为什么有效、还剩哪些风险。

这类 Prompt 的重点是让 Codex 有足够信息验证自己的工作。官方 Codex 手册也 强调:提供复现步骤、验证方式、Lint 或预提交检查,会让输出更可靠。

  1. 收集复现步骤、输入数据、环境版本、错误日志和期望结果。
  2. 让 Codex 读取相关文件、测试、配置和 AGENTS.md
  3. 要求它复现问题,或明确说明无法复现的原因。
  4. 让它列出根因证据,例如失败断言、异常位置、请求差异或配置缺口。
  5. 只修改与根因直接相关的代码。
  6. 补一个能在旧代码上失败、在新代码上通过的回归测试。
  7. 运行原始失败命令、相关测试、类型检查或构建,再审查 Diff。
表现 可能层级 该找什么证据 可以交给 Codex 的任务
点击按钮无反应 UI 状态或事件绑定 控制台报错、事件处理函数、禁用状态 追踪点击路径,找出事件没有触发的原因
API 返回 401 鉴权或 Key Authorization、Base URL、Key 是否脱敏但格式正确 对比最小 cURL 与项目代码的请求头
API 返回 404 路径或代理 实际 URL、路由前缀、网关转发日志 找出项目拼接出的最终请求路径
单测突然失败 行为变化或测试假设过期 失败断言、最近变更、Mock 数据 判断是实现问题还是测试需要更新
构建失败 依赖、类型或配置 构建命令、完整错误栈、锁文件变化 定位哪个依赖或类型声明引发失败
线上偶发错误 数据边界或并发 输入样例、时间范围、环境差异 把偶发条件还原成可重复用例

好的修复通常很克制。你可以要求 Codex 按下面规则审查自己的改动:

原则 为什么重要
一个根因对应一个补丁 避免把多个风险混到同一个 Diff
保留原有正确行为 修复不能让正常路径退化
不静默吞异常 错误需要被处理或暴露,不能假装不存在
不随意放宽类型 any、空判断和默认值可能掩盖真实问题
不删除失败测试 测试是问题证据,不是障碍
配置问题不硬编码 Base URL、Key、模型等配置应留在环境变量或工具配置中

如果项目调用 OpenAI-compatible API 时返回 401,不要一开始就让 Codex 大改 SDK 封装。先让它用最小请求确认外部入口是否可用。

Terminal window
export OPENAI_BASE_URL="https://api.ofapp.cn/v1"
export OPENAI_API_KEY="sk-xxxx"
curl -i "$OPENAI_BASE_URL/models" \
-H "Authorization: Bearer $OPENAI_API_KEY"

排查顺序可以这样写给 Codex:

  1. 如果最小 cURL 失败,检查 Key、Base URL、账户状态、网络和当前官方文档。
  2. 如果最小 cURL 成功,检查项目代码是否覆盖了 OPENAI_BASE_URL
  3. 对比 SDK 实际发出的 URL、请求头、代理和运行环境变量。
  4. 修复配置读取、请求头拼接或部署环境变量,而不是硬编码真实 Key。

OfApp.cn 官方页面展示的 OpenAI / Codex 生态 Base URL 是 https://api.ofapp.cn/v1。真实模型、套餐、额度和价格会变化,接入前请以 OfApp.cn 控制台或官方文档为准。

修复 Bug 后,最有价值的测试是能证明“同一个问题不会再回来”。

Bug 来源 回归测试写法 验证方式
API 请求头丢失 Mock 请求,断言 Authorization 被传入 运行相关单测
Base URL 拼接错误 输入不同 Base URL,断言最终 URL 运行配置测试
表单提交重复 模拟连续点击,断言只发送一次请求 运行组件测试
数据字段为空 给空值、缺字段、边界值样例 运行单元测试
解析失败 固定一段错误响应体 运行解析器测试
CI 环境才失败 用 CI 同款命令在本地复现 运行构建或类型检查

更多测试 Prompt 可以继续看:用 Codex 生成测试

让 Codex 修完后,再让它按这个清单自查一次:

  • 这次 Bug 的根因是否被写清楚。
  • 修复是否只触碰相关文件。
  • 是否新增或更新回归测试。
  • 原始失败命令是否已经通过。
  • 是否有 API Key、Cookie、用户信息或内部地址进入代码。
  • 是否把配置写死到源码里。
  • 是否删除了错误处理、日志或测试。
  • 是否引入了与 Bug 无关的格式化、重命名或依赖升级。

Codex App 的 Review 面板会展示 Git 仓库里的未提交变化,包括你和 Codex 的 改动。仓库已经有其他未提交内容时,要按文件和 Diff 逐项确认,不要把无关变 更混入同一次修复。

错误 表现 更好的做法
只说“页面坏了” Codex 难以定位入口 提供页面路径、操作步骤和截图
只贴报错末尾一行 根因可能在上游栈 提供完整 stack trace,并脱敏
一次修多个 Bug Diff 变大,测试难覆盖 拆成多个小任务
没有验证命令 修复无法被证明 写清要运行的命令
让 Codex 顺手优化 引入无关改动 修复完成后再开优化任务
真实 Key 出现在日志里 安全风险 立即撤销 Key,并使用脱敏日志重跑
风险 处理方式
日志含密钥 脱敏后再交给 Codex;公开仓库里不要提交原始日志
修改范围过大 要求 Codex 把非必要改动撤回或拆出新任务
只修表象 要求说明根因证据和修复为什么有效
测试不稳定 让 Codex 解释不稳定来源,不要简单跳过
API 兼容边界不清 同时检查 Base URL、路径、请求头、模型参数和状态码
线上环境差异 对比本地、CI、服务器的环境变量和依赖版本

不要急着让它修改代码。让 Codex 列出缺失信息,例如环境变量、测试数据、浏 览器版本、请求样例、依赖版本或登录状态。补齐条件后再进入修复。

不建议。先删除用户信息、API Key、Cookie、内部 IP、订单号、邮箱、手机号 和任何可识别个人或业务的数据。必要时只保留字段名、状态码、错误类型和脱敏 后的样例。

多数情况下不建议。先用最小修复关闭问题,并用测试证明修复有效。重构可以 作为独立任务处理,这样更容易回滚和审查。

修复 API Bug 要先查代码还是先查请求?

Section titled “修复 API Bug 要先查代码还是先查请求?”

先用最小请求确认外部入口,再查项目代码。最小请求失败时,重点检查 Key、 Base URL、账户状态和官方文档;最小请求成功时,再检查 SDK 封装、代理、部 署环境变量和业务参数。

Codex 修好后为什么还要补回归测试?

Section titled “Codex 修好后为什么还要补回归测试?”

因为测试能把这次错误固定成可验证的事实。没有回归测试时,Bug 可能在后续 重构、依赖升级或配置调整中再次出现。

按最早出现、最稳定复现、影响链路最上游的报错拆任务。一个 Prompt 只解决 一个明确根因,修完并验证后再处理下一个。

用 Codex 修 Bug 的高质量流程是:复现清楚、根因有证据、补丁范围小、测试能 证明、Diff 经得起审查。只要把问题压缩成可验证的小闭环,Codex 就更像一个 可靠的工程搭档,而不是只会猜测的代码生成器。