Codex 使用指南:从入门到高效开发
- Codex 是什么?
Codex 是 OpenAI 提供的 AI 编程 Agent。它不仅可以“回答代码问题”,还可以直接围绕一个真实项目完成开发任务,例如:
阅读和理解整个代码仓库查找 Bug 并修改代码新增功能重构代码编写单元测试执行测试、Lint、类型检查和构建命令分析报错日志Review 代码和 Pull Request修改多个文件并保持上下文一致使用终端、IDE 或云端环境完成较长的开发任务
与普通聊天式代码助手相比,Codex 更接近一个可以操作开发环境的“AI 软件工程师”。官方目前将 Codex 定位为一套编程 Agent 产品,包括本地 CLI、IDE 集成以及云端工作流等。
- Codex 适合做什么?
Codex 最适合处理“有明确目标、可以通过代码和命令验证结果”的任务。
例如:
分析这个项目的登录流程,并告诉我 JWT 是在哪里生成和验证的。
或者:
修复用户登录后偶尔出现 401 的问题。
要求:
-
先分析原因,不要直接修改。
-
找到根因后修改代码。
-
添加对应测试。
-
运行测试。
-
最后总结修改了哪些文件。
又或者:
给当前 Express 项目增加 Redis 缓存。
要求:
-
缓存 GET /api/products
-
TTL 10 分钟
-
商品更新后自动清除缓存
-
添加单元测试
-
不改变现有 API 返回格式
这种任务比单纯说:
帮我优化代码。
效果好得多。
- Codex 的几种主要使用方式
目前可以把 Codex 的常用方式理解为:
Codex / ChatGPT 中的编程 Agent
适合直接把代码项目交给 Agent,让它分析、修改和验证。
Codex CLI
直接在终端中运行 Codex,让它操作当前代码仓库。
IDE 集成
例如在 VS Code 等开发环境里使用 Codex,对当前工程进行分析和修改。
云端任务
将较长的开发任务交给 Codex,在独立环境中执行。
Codex CLI 尤其适合已经习惯 Terminal + Git 工作流的开发者。官方文档明确支持在代码仓库中启动 Codex,让它探索项目、规划修改、编辑文件并运行本地开发工具。
- Codex CLI 快速入门
第一步:进入项目目录
例如:
cd my-project
建议先确认当前 Git 状态:
git status
最好在独立分支操作:
git checkout -b codex/test-feature
这样即使 Codex 修改结果不理想,也可以很容易恢复。
第二步:启动 Codex
安装并登录 Codex CLI 后,可以在项目目录启动 Codex。
进入之后,你就可以直接使用自然语言给它任务。
例如:
先阅读这个项目,不要修改任何文件。
告诉我:
-
项目使用什么技术栈
-
程序入口在哪里
-
核心目录分别负责什么
-
如何启动项目
-
如何运行测试
这是第一次接触陌生项目时非常推荐的做法。
不要一开始就:
重构整个项目。
让 Codex 先理解项目,再做修改,通常更加稳定。
- Codex 最重要的使用技巧:任务要具体
Codex 的能力很强,但结果质量非常依赖任务描述。
一个比较好的 Prompt 通常包含:
目标+背景+修改范围+限制条件+验证方式+最终输出格式
例如:
目标:修复订单重复创建的问题。
背景:用户快速点击“提交订单”按钮时,偶尔会生成两个订单。
请:
-
找到创建订单的调用链。
-
分析重复订单产生的原因。
-
不改变现有 API contract。
-
使用最小修改解决问题。
-
添加覆盖该问题的测试。
-
运行相关测试。
-
最后告诉我:
- 根因
- 修改文件
- 修改方案
- 测试结果
这样的 Prompt 通常远优于:
修一下订单 Bug。6. 推荐的 Codex 工作模式
一个比较稳定的工作流程是:
Explore↓Plan↓Implement↓Test↓Review
也就是:
第一步:Explore —— 先调查先不要修改代码。
分析这个 Bug 可能涉及哪些文件,找到调用链和可能的根因。第二步:Plan —— 给方案根据刚才的分析,给我一个最小改动方案。说明需要修改哪些文件,以及为什么。暂时不要修改。第三步:Implement —— 开始修改按照方案实施修改。尽量保持改动最小。不要修改无关代码。第四步:Test —— 验证运行与此次修改相关的测试。
如果测试失败:
-
判断是代码问题还是测试问题
-
修复
-
再运行测试
第五步:Review —— 最后检查
Review 你刚才的修改。
重点检查:
-
潜在 Bug
-
边界条件
-
安全问题
-
并发问题
-
是否存在不必要修改
如果发现问题,修复后重新测试。
这种方式通常比一句:
完成这个功能。
更加可靠。
- 一个非常实用的 Prompt 模板
日常开发可以直接使用:
任务:[描述你想完成的事情]
背景:[项目背景 / Bug 情况 / 功能需求]
要求:
-
先阅读相关代码。
-
找出涉及的文件和调用链。
-
在修改前简要说明方案。
-
尽量采用最小修改。
-
不修改无关代码。
-
保持现有代码风格。
-
添加或更新必要测试。
-
修改后运行相关测试和检查。
-
如果测试失败,继续分析并修复。
限制:
-
不改变现有 API contract
-
不引入不必要依赖
-
不进行大规模重构
完成后告诉我:
-
根因 / 实现思路
-
修改了哪些文件
-
每个文件修改了什么
-
运行了哪些测试
-
是否还有潜在风险
这是一个比较通用的 Codex 开发模板。
- 如何让 Codex 理解整个项目
如果项目比较复杂,可以先让 Codex制作“项目地图”。
例如:
阅读当前代码仓库。
先不要修改代码。
请输出:
之后继续问:
重点分析 authentication 模块。
告诉我从:
POST /login
开始,到 JWT 返回给客户端为止,完整调用链经过哪些文件和函数。
这种“逐层缩小范围”的方式非常适合大型项目。
- 使用 AGENTS.md 给 Codex 设置项目规则
Codex 支持通过 AGENTS.md 给 Agent 提供长期项目说明。Codex 会在执行任务前读取这些说明,因此它非常适合存放项目规范。
例如在项目根目录创建:
AGENTS.md
内容:
Project Instructions
Tech Stack
-
TypeScript
-
Node.js
-
Express
-
PostgreSQL
-
Jest
Code Style
-
使用 TypeScript strict mode
-
优先使用 async/await
-
不使用 any
-
函数保持简短
-
避免重复逻辑
Architecture
Controller:负责 HTTP request/response
Service:负责业务逻辑
Repository:负责数据库访问
禁止 Controller 直接访问数据库。
Testing
任何新增功能必须包含测试。
修改后运行:
npm test
以及:
npm run lint
Rules
不要:
-
修改 package-lock.json,除非新增依赖
-
修改 API response contract
-
删除已有测试
-
大规模重构无关模块
这样以后就不需要每次 Prompt 都重复这些规则。
- Bug 修复场景
假设程序出现:
TypeError: Cannot read properties of undefined
不要只告诉 Codex:
修这个错误。
更好的方式:
调查这个错误:
TypeError: Cannot read properties of undefined
出现位置:src/services/order.ts:125
请:
-
找到导致 undefined 的完整数据流。
-
判断是调用方还是 order service 的问题。
-
检查是否还有类似代码。
-
先告诉我根因。
-
使用最小修改修复。
-
增加 regression test。
-
运行测试验证。
重点是让 Codex解决根因,而不仅仅是加:
if (!value) return;
这种表面修补。
- 新功能开发场景
例如:
给系统增加“忘记密码”功能。
当前技术栈:
-
Next.js
-
Node.js
-
PostgreSQL
要求:
流程:用户输入邮箱→生成一次性 token→发送 reset link→用户设置新密码
安全要求:
-
token 30 分钟过期
-
token 只能使用一次
-
数据库存储 token hash
-
新密码必须经过现有 password hashing 逻辑
请先:
-
分析现有 authentication 架构
-
找出需要修改的文件
-
给出实现计划
我确认方案之后再修改代码。
复杂功能尤其适合先 Planning。
- 重构场景
重构时最大的风险是 Codex “顺手改很多东西”。
因此最好明确边界:
重构 src/services/payment.ts。
目标:降低函数复杂度,提高可测试性。
限制:
-
不改变任何外部行为
-
不改变 public API
-
不更换第三方库
-
不修改数据库 schema
-
不修改无关文件
步骤:
-
分析当前代码的问题。
-
给出重构方案。
-
保证现有测试全部通过。
-
进行重构。
-
再次运行测试。
-
对比重构前后的行为。
-
测试场景
Codex 非常适合帮助补测试。
例如:
分析:
src/services/payment.ts
找出目前测试没有覆盖的重要逻辑。
重点检查:
-
成功路径
-
参数错误
-
网络失败
-
timeout
-
retry
-
duplicate request
-
concurrent request
然后:
-
给出缺失测试列表
-
编写测试
-
运行测试
-
修复失败测试
-
Code Review 场景
可以让 Codex 模拟高级工程师 Review:
Review 当前 branch 相对于 main 的所有修改。
不要直接修改代码。
重点检查:
-
correctness
-
security
-
race condition
-
error handling
-
performance
-
backward compatibility
-
test coverage
-
maintainability
只报告真正值得修改的问题。
每个问题包含:
-
severity
-
文件
-
行或函数
-
原因
-
推荐修改方式
之后:
修复 High 和 Medium severity 的问题。
Low severity 暂时不要改。15. 让 Codex 自己验证结果
一个非常重要的原则是:
不要只让 Codex“写代码”,还要让 Codex“证明代码能工作”。
例如:
修改完成后:
-
运行 unit tests
-
运行 integration tests
-
运行 lint
-
运行 typecheck
-
运行 build
如果其中任何一步失败,分析原因并修复。
不要因为已有测试失败就直接忽略,先判断失败是否与你的修改有关。
Codex 可以操作开发工具并把执行结果纳入下一轮推理,这正是 Agent 与普通代码生成器之间的重要区别。
- Git + Codex 推荐工作流
推荐:
git checkout -b feat/user-search
启动 Codex 后:
实现用户搜索功能。
修改完成:
Review 当前 git diff。
检查:
-
是否修改了无关文件
-
是否存在 debug code
-
是否存在 TODO
-
是否存在 hardcoded value
-
是否遗漏测试
之后自己查看:
git diff
测试:
npm test
最后再:
git status
确认无误后才 Commit。
原则是:
Codex 可以写代码,Git 负责给你安全网。17. 不推荐的使用方式
以下 Prompt 往往效果一般:
优化项目。
因为范围太大。
改成:
分析 src/api。
找出三个最明显的性能瓶颈。
先不要改代码,按影响程度排序并说明原因。
另一个问题:
把代码写得更好。
“更好”没有客观标准。
改成:
重构这个模块,目标是:
-
降低重复代码
-
单个函数 < 50 行
-
提高可测试性
-
不改变外部行为
-
不新增依赖
还有一种危险 Prompt:
重构整个项目并修复所有问题。
范围过大会增加:
修改不可控上下文过长错误难以定位Review 困难
更推荐拆成:
分析↓模块 A↓测试↓模块 B↓测试18. Codex 高阶技巧:让它“调查”,而不是“猜”
如果遇到 Bug,可以说:
不要猜原因。
通过以下方式调查:
-
搜索相关代码
-
查看调用方
-
检查数据结构
-
查看测试
-
必要时运行程序或测试
用实际代码证据确定根因。
这是非常有效的一条指令。
- 高阶技巧:限制修改范围
例如:
允许修改:
src/auth/tests/auth/
除非绝对必要,不要修改其他目录。
如果认为必须修改其他文件,先解释原因。
大型项目里非常实用。
- 高阶技巧:要求最小 Diff
可以明确告诉 Codex:
优先选择最小可行修改。
避免:
-
无关 formatting
-
重命名无关变量
-
顺手重构
-
改变目录结构
-
新增不必要 abstraction
这样 Code Review 会轻松很多。
- 高阶技巧:让 Codex 给出证据
不要只问:
修好了吗?
可以问:
证明这个问题已经解决。
告诉我:
-
根因是什么
-
哪段代码解决了它
-
哪个测试覆盖了这个问题
-
测试执行结果
-
是否存在尚未覆盖的边界情况
-
Codex 的上下文管理
Codex 的一次任务并不是简单的一问一答。
Agent 可以:
读取文件↓执行命令↓查看输出↓再次推理↓继续修改↓再次测试
这些操作形成 Agent Loop。随着对话越来越长,历史消息、工具调用和输出都会消耗上下文,因此特别复杂的任务最好拆分成明确阶段,而不是无限延长一个巨大的任务。
- 一个完整实战示例
假设你的任务是:
给一个 Node.js 项目增加 Rate Limiting。
第一次:
分析当前项目。
找到:
-
API 入口
-
middleware 架构
-
authentication middleware
-
Redis 是否已经存在
暂时不要修改代码。
第二次:
设计 Rate Limiting 方案。
要求:
登录接口:5 次 / 分钟 / IP
普通 API:100 次 / 分钟 / 用户
优先复用 Redis。
给出需要修改的文件。
第三次:
按方案实现。
要求:
-
最小修改
-
保持现有架构
-
添加测试
第四次:
运行:
npm testnpm run lintnpm run typecheck
修复与你修改相关的所有失败。
第五次:
Review 当前 git diff。
重点检查:
-
是否可以绕过 rate limit
-
Redis failure 时行为
-
race condition
-
IPv6
-
authenticated / unauthenticated user
第六次:
给我最终总结:
修改文件核心设计测试结果潜在风险
这就是比较成熟的 Codex 工作方式。
- 一套推荐的日常 Codex 工作流
可以把日常开发固定成:
需求↓让 Codex Explore↓让 Codex Plan↓确认修改范围↓Implement↓Test↓Review Diff↓再次 Test↓人工 Review↓Commit
其中最重要的三个习惯是:
先调查,再修改。
让测试参与整个过程。
始终 Review Git Diff。
-
Codex Prompt 速查表
理解项目
阅读当前代码仓库,不修改代码。
解释架构、入口、核心模块和测试方式。
找 Bug
调查这个 Bug。
不要猜。
找到完整调用链和根因后再提出修改方案。
修 Bug
使用最小修改修复该问题,并添加 regression test。
新功能
先分析现有架构,给出实现计划。
不要立即修改代码。
重构
重构这个模块,但不改变任何外部行为。
保证所有测试继续通过。
测试
分析该模块缺失的关键测试并补充。
重点覆盖边界条件和失败路径。
Review
Review 当前 branch 相对于 main 的修改。
重点检查 correctness、security 和 regression。
验证
运行测试、lint、typecheck 和 build。
如果失败,分析并修复。
最终检查
Review git diff。
找出无关修改、debug code、TODO 和潜在风险。 -
最后的原则
使用 Codex 时,不要把它简单理解成:
“帮我写代码的 AI。”
更有效的理解是:
“可以读取代码、执行工具、修改项目并验证结果的软件工程 Agent。”
因此最理想的合作模式不是:
我描述需求→Codex 输出代码
而是:
我定义目标和边界↓Codex 调查↓Codex 提出方案↓Codex 修改↓Codex 测试↓Codex Review↓我最终确认
官方的最佳实践同样强调:为 Codex 提供明确目标、充分上下文、可验证结果,并让 Agent 使用测试和开发工具来验证工作,通常能明显提高结果质量。
按照这个模式使用,Codex 最适合承担的就不只是“补全几行代码”,而是完整的软件开发任务
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/ai002/post/20260815/Codex-%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E9%AB%98%E6%95%88%E5%BC%80%E5%8F%91/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com