OpenAI 内部如何使用 Codex|官方实战指南

发布于:2026-5-26|最后更新: 2026-5-25|
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 等专业术语保留英文原词。
notion image

引言: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 不是「再写一段代码」的工具,而是一个可以并行执行、可回放、可委派的工程协作者。给它结构、给它上下文、给它迭代空间,你会发现它能承接的工作量远比想象中多。
随机漫谈-01-关于AI的性格与人类的“拟人化本能”企业如何借助 Claude 推动 AI 转型|Anthropic