效率提升来自流程而非单次生成
前面几篇文章里,我写了 AI 编程助手、AI Agent 工作流,以及普通开发者使用 AI 时需要守住的边界。写到 Codex 这一篇时,我更想把它写成一篇可以反复翻回来的实践笔记。
Codex 这类工具和普通聊天机器人不太一样。普通聊天机器人更像一个问答窗口,你问一句,它答一句;Codex 更像一个可以进入项目、阅读代码、修改文件、运行命令、解释结果的开发协作者。OpenAI 官方把 Codex 描述为用于软件开发的 coding agent,可以帮助写代码、理解陌生代码库、review 代码、调试问题和自动化开发任务。
但工具越强,越不能随便用。很多人第一次用 Codex,会把它当成“高级代码生成器”:给一句需求,期待它马上给出完美代码。这样当然偶尔能成功,但不稳定。真正稳定提升效率的方法,是把 Codex 放进一套清楚的工程流程里:准备上下文、明确任务、让它先计划、让它小步实现、跑测试、看 diff、复盘沉淀。
下面这 10 个技巧,是我理解里最适合普通开发者落地的用法。
技巧一:把需求写成一个小 issue,而不是一句口号
很多人对 Codex 的第一句提示是:“帮我优化一下代码。”这句话的问题不是太短,而是没有验收标准。什么叫优化?是性能变快、代码更短、结构更清楚,还是减少重复?如果没有边界,Codex 只能猜。
更好的写法,是把任务写成一个小 issue:
1 | 目标:给订单列表增加按状态筛选功能。 |
这种写法看起来啰嗦,但它会显著降低返工。Codex 最怕的不是任务复杂,而是任务含糊。你越能把“想要什么”和“不要什么”说清楚,它越容易给出可 review 的结果。
我的经验是:凡是超过十分钟的开发任务,都值得先写成小 issue。即使最后不是交给 Codex 做,这个过程也能帮自己想清楚。
技巧二:为仓库准备 AGENTS.md,把长期规则沉淀下来
如果每次都在提示里重复“项目用 pnpm”“测试命令是 npm test”“不要改 public 目录”“提交前要跑 lint”,时间久了会很烦,而且容易漏。
Codex 支持通过 AGENTS.md 这类仓库说明文件获得项目规则。你可以把它理解成给 AI 看的 README:告诉它项目结构、常用命令、代码风格、测试方式、哪些目录不能动、遇到失败时如何处理。
一个简单的 AGENTS.md 可以这样写:
1 | # 项目规则 |
这类规则越早沉淀,后面越省心。Codex 做得不稳定,很多时候不是模型能力问题,而是项目没有把“好结果长什么样”告诉它。
技巧三:先让 Codex 读代码和写计划,不要直接开改
面对一个真实项目,我不建议第一步就让 Codex 修改文件。更稳的方式是先让它做两件事:
第一,阅读相关代码并总结当前结构。
第二,给出准备修改的计划。
比如可以这样说:
1 | 先不要修改代码。请阅读和用户登录相关的文件,说明当前登录流程、 |
这一步的价值很大。它能让你提前发现 Codex 是否找对了入口、是否理解了业务、是否准备改错层级。如果计划已经偏了,就不要让它继续实现。
对复杂任务来说,“先计划再实现”比“直接生成代码”慢几分钟,但通常能省掉半小时返工。
技巧四:一个任务只聚焦一个目标,控制变更范围
人类开发也一样,一个 PR 同时做登录、样式、数据库迁移、依赖升级,review 会非常痛苦。Codex 更是如此。
好的任务应该是可切分、可验证、可回滚的。比如:
不太好的任务:
1 | 帮我把后台系统整体优化一下,顺便修几个 bug,再加点测试。 |
更好的拆法:
1 | 任务1:修复用户列表分页参数丢失问题。 |
每个任务都有一个焦点,Codex 就不容易迷路。你也更容易 review 它的输出。
技巧五:让 Codex 小步实现,并要求解释关键取舍
Codex 能一次性生成很多代码,但“大量生成”不等于“高效”。我更喜欢让它小步推进:
1 | 先完成最小可运行版本,不要做额外抽象。 |
这样做有两个好处。
第一,你能快速看到方向是否正确。
第二,Codex 会被迫解释自己的取舍,而不是只给结果。
当它解释“为什么这样改”时,你很容易看出它有没有理解项目。如果解释含糊,就继续追问;如果解释清楚,再进入下一步。
技巧六:把测试命令写进任务,而不是事后才想起来
Codex 的一个重要价值,是它可以帮你运行测试、构建、类型检查、格式检查等命令。但前提是它知道应该跑什么。
所以在任务里直接写:
1 | 完成后请运行: |
如果项目没有自动化测试,也可以写手工验证标准:
1 | 没有单元测试。请生成后检查: |
这比“你看着办”可靠得多。Codex 可以帮你执行验证,但验证标准应该由人来定。
技巧七:把 Codex 用在阅读和定位上,不只是写代码
很多人低估了 Codex 的阅读能力。实际工作里,最耗时间的不一定是写代码,而是弄清楚代码在哪里、数据怎么流、为什么这个 bug 会出现。
有些特别适合交给 Codex 的阅读任务:
1 | 请梳理这个接口从路由到数据库查询的调用链。 |
1 | 请找出用户头像上传失败可能经过的所有错误处理分支。 |
1 | 请比较这两个组件的重复逻辑,说明是否值得抽公共组件。 |
这类任务风险低,收益高。即使最后不让 Codex 改代码,它也能帮你节省大量翻文件的时间。
我的习惯是:先让 Codex 当“代码导游”,再决定要不要让它当“代码作者”。
技巧八:用 /review 或明确 review 指令,让它站到审查者角度
写代码和审代码是两种不同心态。让 Codex 生成代码之后,最好再让它切换角色:
1 | 请以 code review 的角度检查刚才的改动,重点看: |
OpenAI 的 Codex 最佳实践也强调,不要只让 Codex 改代码,还要让它创建测试、运行检查、确认结果并 review 工作。这个思路非常重要:Codex 不应该只是“生产代码”,还应该帮助发现代码里的风险。
当然,AI review 不能代替人类 review。它更像第一道自动筛查,可以提前发现低级问题、遗漏分支和不一致风格。最终是否接受,仍然要人判断。
技巧九:权限要克制,默认从安全配置开始
效率和权限不是一回事。给 Codex 越多权限,它能做的事越多,但风险也越高。
比较稳的原则是:
第一,默认使用沙箱和审批。
第二,不把生产密钥、真实用户数据、内部敏感信息交给它。
第三,危险命令必须先说明目的,再由人确认。
第四,部署、删除、迁移、批量替换这类任务要格外谨慎。
官方最佳实践里也提到,如果刚开始使用 coding agent,应该从默认权限开始,保持 approval 和 sandboxing 收紧,等你理解工作流之后,再对可信仓库或特定流程放宽。
这点我很赞同。AI 工具最容易制造一种错觉:既然它能做,就让它全做。但工程里真正可靠的方式,是最小权限、可观察、可回滚。
技巧十:每次用完都复盘,把经验写回项目
Codex 用得好不好,不只取决于一次提示词,还取决于你有没有把经验沉淀下来。
每次任务结束后,可以复盘几个问题:
第一,哪些上下文给得有效?
第二,Codex 哪一步误解了?
第三,哪些测试命令必须写进下次任务?
第四,哪些规则应该放进 AGENTS.md?
第五,有没有可以沉淀成固定提示模板?
比如你发现 Codex 总是忘记运行某个检查,就把它写进 AGENTS.md。你发现某类任务总要提醒“不要修改生成目录”,也写进去。你发现某种 review checklist 很有效,就整理成 code_review.md,以后让 Codex 引用。
这就是复利。第一次用 Codex,可能只是省一点时间;第十次之后,如果规则、模板、测试、权限都沉淀好了,它省下的就不只是写代码时间,而是整个工程流程的沟通成本。
一个完整的使用模板
下面是我比较推荐的一段 Codex 任务模板,可以按项目改:
1 | 请完成以下任务: |
这个模板看起来很普通,但它能解决大部分“AI 写偏了”的问题。因为它把目标、范围、上下文、实现、验证都拆开了。
总结
Codex 提高效率的关键,不是让开发者少思考,而是把重复、明确、可验证的工作交出去,让开发者把精力放在判断、设计和质量把关上。
我认为最值得记住的是这 10 点:
- 把需求写成小 issue。
- 用
AGENTS.md沉淀项目规则。 - 先让 Codex 读代码和写计划。
- 一个任务只做一个焦点。
- 小步实现,并解释关键取舍。
- 把测试命令写进任务。
- 让 Codex 帮你阅读和定位。
- 用 review 指令检查风险。
- 默认收紧权限和沙箱。
- 每次用完都复盘沉淀。
用 Codex 最好的状态,不是“我完全不管,它自动完成”,而是“我把任务定义清楚,它帮我推进,我负责判断和验收”。这样才是真正稳定的软件工程效率提升。