Created time
May 25, 2026 06:19 PM
category
library
date
May 26, 2026
status
Published
icon
password
slug
how-openai-uses-codex
type
post
likes
views
summary
OpenAI 官方电子书《How OpenAI uses Codex》中文精读版:基于内部访谈与使用数据,覆盖 7 类高频用例(代码理解、重构迁移、性能优化、测试覆盖、提速、保持心流、探索与构想),并附 6 条最佳实践与展望。
tags
OpenAI
实用教程
Agent
本文基于 OpenAI 官方电子书 How OpenAI uses Codex 整理。在保留原文信息量的前提下,对语言表达和排版做了适合中文阅读的优化。Codex / Ask Mode / Code Mode / Best-of-N / AGENTS.md 等专业术语保留英文原词。

引言:Codex 在 OpenAI 内部到底怎么用?
Codex 已经是 OpenAI 多个工程团队的日常工具——安全、产品工程、前端、API、基础设施、性能工程……几乎覆盖了从研发到稳定性的全部场景。
它的用法跨度非常大:
- 理解复杂系统
- 重构庞大的代码库
- 交付新功能
- 在紧迫时限内处理线上事故
OpenAI 团队结合对内部工程师的访谈与使用数据,整理出了一份非常具体的「用例 + 最佳实践」清单,呈现 Codex 如何帮助团队跑得更快、做得更好、复杂度更可控。
下面按 7 个最常见的用例展开。
用例 1:代码理解(Code Understanding)
Codex 帮助团队在陌生的代码区域里快速建立认知——无论是新人 onboarding、调试线上 bug,还是事故响应。
常见用法:
- 定位一个功能的核心逻辑在哪里
- 梳理服务或模块之间的关系
- 跟踪一个请求/数据如何在系统中流动
- 浮现出架构模式与「文档里没写但代码里在用」的关键约定
在 incident response 中尤其有用:可以快速搞清楚某个组件与其他部分如何交互,以及故障状态是怎样在系统里扩散的。
一线工程师怎么说
修一个 bug 时,我会用 Ask 模式让 Codex 帮我看看,代码库里还有哪里可能存在同样的问题。
— Performance Engineer, Retrieval Systems
On-call 时,我直接把堆栈贴进去,让 Codex 告诉我「auth 流程在哪」。它能直接跳到对应文件,让我快速分诊。
— Site Reliability Engineer, API Platform
「我要在哪里改这个?」这种跨 Terraform + Python 的 repo 级问题,Codex 比 grep 快多了。
— DevOps Engineer, Infrastructure Services
可直接复用的 Prompt 示例
Where is the authentication logic implemented in this repo?
Summarize how requests flow through this service from entrypoint to response.
Which modules interact with [insert module name] and how are failures handled?
用例 2:重构与迁移(Refactoring & Migrations)
这是 Codex 最常被调用的场景之一——跨多个文件、多个 package 的批量改动。
典型场景:
- 更新某个 API
- 改变某种模式的实现方式
- 迁移到新的依赖
- 大规模代码清理:拆解臃肿模块、用现代写法替换老 pattern、为提升可测试性做准备
它特别适合那种「同一个改动要在几十个文件里完成」的工作——而且必须感知到结构和依赖关系,不是简单的 regex 或 find-and-replace 能搞定的。
一线工程师怎么说
Codex 把所有遗留的
getUserById() 调用都换成了我们的新服务模式,并自动开了 PR。几分钟就完成了原本要几小时的事情。— Backend Engineer, ChatGPT Web
为了清掉发布前的阻塞项,我让 Codex 扫描所有旧 pattern 的实例,用 Markdown 总结影响范围,然后逐个开修复 PR。
— Product Engineer, ChatGPT Enterprise
可直接复用的 Prompt 示例
Split this file into separate modules by concern and generate tests for each one.
Convert all callback-based database access to async/await.
用例 3:性能优化(Performance Optimization)
Codex 在识别和处理性能瓶颈上也是常客。
在性能调优和可靠性改进时,工程师会让 Codex 分析慢路径或高内存代码段——比如:
- 低效的循环
- 重复的冗余操作
- 昂贵的查询
并让它给出更优的替代方案,往往能换来切实可见的效率与可靠性提升。
Codex 还被用来维护「代码健康度」:识别仍在使用、但已经被标记为风险或废弃的模式,主动减少长期技术债,防止 regression。
一线工程师怎么说
我用 Codex 扫描重复的昂贵 DB 调用。它擅长标出热点路径,并起草批处理后的查询,让我之后再去精调。
— Infrastructure Engineer, API Reliability
Codex 找性能问题非常快——我花 5 分钟写 prompt,就能省掉 30 分钟的工作。
— Platform Engineer, Model Serving
可直接复用的 Prompt 示例
Optimize this loop for memory efficiency and explain why your version is faster.
Find repeated expensive operations in this request handler and suggest caching opportunities.
Suggest a faster way to batch DB queries in this function.
用例 4:补齐测试覆盖(Improving Test Coverage)
Codex 让工程师写测试的速度显著加快——尤其是覆盖率薄弱或完全空缺的部分。
常见用法:
- 修 bug 或重构时,让它针对边界情况和失败路径给出测试建议
- 新代码:基于函数签名和周围逻辑,自动生成单元测试或集成测试
- 主动识别那些初版测试经常漏掉的边界条件——空输入、最大长度、不常见但合法的状态
一线工程师怎么说
我把覆盖率低的模块丢给 Codex,让它过夜跑。第二天醒来就能看到可运行的单元测试 PR。
— Frontend Engineer, ChatGPT Desktop
mono-repo 切分支太麻烦时,我让 Codex 去写测试、把 CI 跑起来,自己继续在当前分支干活。
— Backend Engineer, Payments & Billing
可直接复用的 Prompt 示例
Write unit tests for this function, including edge cases and failure paths.
Generate a property-based test for this sorting utility.
Extend this test file to cover missing scenarios around null inputs and invalid states.
用例 5:提升开发节奏(Increasing Development Velocity)
Codex 在研发周期的两端都能显著提速。
项目启动期:
- 搭脚手架——生成目录、模块、API stub
- 让代码「先跑起来」,不用手工把每一根线都接上
项目临近发布期:
- 处理那些小而关键的零散事项:bug 分诊、最后一公里的实现补全、生成 rollout 脚本 / telemetry hook / 配置文件
它也常用来把产品反馈直接转成 starter code——把用户请求或 spec 贴进去,先拿到一份粗稿,再回头精修。
一线工程师怎么说
那天我开了一整天会,还是合并了 4 个 PR——因为 Codex 在后台一直在干活。
— Product Engineer, ChatGPT Enterprise
Codex 帮我把 backlog 里 3-4 个本来可能永远不会被处理的低优先级修复给上线了。这种感觉真的非常爽。
— Full-Stack Engineer, Internal Tools
可直接复用的 Prompt 示例
Scaffold a new API route for POST /events with basic validation and logging.
Generate a telemetry hook for tracking success/failure of the new onboarding flow, using this template [insert example of your telemetry code].
Create a stub implementation based on this spec: [insert spec or product feedback].
用例 6:保持心流(Staying in Flow)
工程师的日程往往是碎片化的——会议、on-call、各种打断。Codex 在这种节奏下尤其有用。
它被用来:
- 保存未完成的工作
- 把想法或笔记转成可工作的原型
- 把那些「不该现在做但值得做」的任务分流出去,之后再回来处理
这样切换上下文时的损耗大大降低,「暂停—恢复」变得更顺。
一线工程师怎么说
看到顺手能修的 bug,我不再切分支,而是直接丢给 Codex 一个任务,有空再去 review 它的 PR。
— Backend Engineer, ChatGPT API
我会把 Slack 讨论、Datadog trace、issue 都转给 Codex,让自己专注在真正的高优先级工作上。
— API Engineer, Infrastructure Observability
可直接复用的 Prompt 示例
Generate a plan to refactor this service and split it into smaller modules.
Stub out the retry logic and add a TODO — I'll fill in the backoff logic later.
Summarize this file so I can pick up where I left off tomorrow.
用例 7:探索与构想(Exploration & Ideation)
对开放式问题——找替代方案、验证设计决策——Codex 也很有用。可以请它:
- 给出多种解法
- 探索陌生的设计模式
- 压力测试当前的假设
这能帮你看清取舍空间,扩展设计选择,让最终的实现决定更扎实。
它还擅长帮你顺藤摸瓜挖出相关 bug:基于已知的某个问题或废弃方法,去识别代码库中其他类似模式,方便补齐 regression 防御与清理工作。
一线工程师怎么说
Codex 帮我解决了「冷启动」难题——我把 spec 和文档贴上去,它要么搭好代码,要么提醒我漏了什么。
— Product Engineer, ChatGPT Desktop
修完一个 bug,我会问 Codex「类似 bug 还可能藏在哪里」,再起一批后续任务。
— Performance Engineer, Retrieval Systems
可直接复用的 Prompt 示例
How would this work if the system were event-driven instead of request/response?
Find all modules that manually build SQL strings instead of using our query builder.
Rewrite this in a more functional style, avoid mutation and side effects.
最佳实践:OpenAI 团队总结的 6 个习惯
Codex 在被给予结构、上下文和迭代空间时表现最好。下面是 OpenAI 各团队在日常工作中逐渐沉淀出的 6 条经验。
1. 从 Ask Mode 起手
对大型改动,先用 Ask Mode 让 Codex 生成一份实现计划,再把这份计划作为输入切换到 Code Mode 跟进。
这种两步走让 Codex 始终有「地基」,输出更稳,错误率更低。
经验值:Codex 最擅长的任务规模,是「你或队友大约一小时能做完」、或者几百行代码量级的工作。随着模型能力提升,这个上限还会继续往上抬。
2. 持续打磨 Codex 的开发环境
配置好以下几项,能显著降低 Codex 的失败率:
- 启动脚本(startup script)
- 环境变量
- 联网访问
执行任务时,注意观察构建错误,逐步把它们沉淀到环境配置里。这种迭代前期会花一点时间,但长期收益巨大。
3. 把 Prompt 写得像一份 GitHub Issue
Codex 对结构良好的描述响应更好。一份「像 PR / Issue 一样」的 prompt 通常包含:
- 文件路径
- 组件名称
- diff
- 相关文档片段
一种特别有效的句式:
「按照 [module X] 里的做法实现这个。」
这类「对齐已有模式」的引导能显著提升结果质量。
4. 把 Codex 任务队列当成轻量级 Backlog
看到一个想法、临时性的改动、不重要的小修复——别犹豫,直接发一个 Codex 任务过去。
不必强求一次到位生成完整 PR。把它当成「待办暂存区」,回到状态时再回来 review。
5. 用 *AGENTS.md* 提供持久上下文
维护一份
AGENTS.md 文件,让 Codex 在你的 repo 中跨 prompt 持续地理解项目背景。文件中通常包含:- 命名约定
- 业务逻辑
- 已知的「坑」
- 代码看不出来的依赖关系
这些「光看代码学不到」的信息一旦写下来,就能稳定地复用。
6. 用「Best-of-N」拿到更好的结果
Best-of-N 让你对同一个任务同时生成多个响应,便于:
- 快速比较多种解法,挑出最好的
- 对复杂任务,把不同响应中的优点拼合成一个更强的版本
展望
Codex 还处在 research preview 阶段,但它在 OpenAI 内部已经产生了实实在在的影响:
- 跑得更快
- 写得更好
- 承担那些原本不会被优先处理的工作
随着模型继续进化、Codex 被更深度地嵌入工作流,OpenAI 期待解锁更强大的软件开发方式——并会持续把过程中的经验分享出来。
一句话总结:Codex 不是「再写一段代码」的工具,而是一个可以并行执行、可回放、可委派的工程协作者。给它结构、给它上下文、给它迭代空间,你会发现它能承接的工作量远比想象中多。