前言
Codex 看起来很像另一个 AI 编程助手。
能写代码,能解释代码,能补文档,能帮忙看报错。听起来和很多工具差不多。
但用一段时间后,会发现 Codex 的重点不在「多补几行代码」。它更像是被放进项目现场里的一个人:能看文件,能改文件,能跑命令,能看到构建失败,然后继续往下修。
这也是我觉得 Codex 值得单独写一篇文章的原因。
它不是一个适合拿来闲聊的工具。它最好用的时候,是手上已经有一个具体任务:修一个页面、补一组测试、整理一篇文章、排查一次部署、review 一次改动。
OpenAI 官方文档把 Codex 叫做 coding agent。这个说法其实挺准确。它不只是生成代码,而是参与一段工程流程。
下面这篇不是文档翻译。我查了 2026 年 6 月 6 日的 OpenAI Codex 官方手册,也看了几篇中文使用体验文章。最后还是按自己的理解重写成一份使用笔记:怎么把 Codex 用得更像一个能干活的同事,而不是一个回答问题的窗口。
1. 任务别直接扔成一团
很多需求会写成这样:
帮我实现用户登录功能
这句话不能说错,但太大了。
一个登录功能背后可能有表结构、接口、权限、前端页面、错误提示、测试、旧数据兼容。Codex 会努力做,但它很可能凭空猜一套方案,然后一路写下去。
我现在更常用的问法是:
检查项目结构,不要修改文件。告诉我这个功能会影响哪些地方。
这一步很有用。
它会去读目录,找配置,看技术栈,确认测试命令。现场讲清楚了,后面的改动会稳很多。
尤其是接手一个旧项目,或者隔了几周没碰的项目,让 Codex 做一次「看现场」,比直接让它改代码靠谱。
2. Codex 适合做一整段小闭环
过去用 AI 写代码,很多时候是在编辑器里补一段函数。
Codex 更适合这种任务:
给登录模块补测试,运行测试。如果失败,分析原因并修复。最后告诉我改了哪些文件。
这句话背后其实有好几步:
- 找到登录模块。
- 判断项目用什么测试框架。
- 写测试文件。
- 跑测试。
- 读失败日志。
- 修代码或修测试。
- 重新跑一遍。
- 总结 diff。
这就是 Codex 和普通聊天式工具的区别。它不只是在回答「测试应该怎么写」,而是在项目里把这件事做完。
当然,前提是任务不能太虚。
适合交给 Codex 的任务通常长这样:
修复 /search/ 页面 404。不要改主题源码。重点检查 content 页面、路由和 Hugo 配置。修复后运行 hugo 构建,并用本地预览确认页面能打开。
不适合这样:
优化一下博客
「优化」这个词太滑了。它可以是性能、样式、SEO、文案、配置,也可以什么都不是。
3. 好 prompt 不用很长,但要有四样东西
OpenAI 官方最佳实践里提到,给 Codex 的任务最好包含 Goal、Context、Constraints、Done when。
不用背英文。写的时候记四个问题就行:
- 要改成什么结果?
- 它应该看哪里?
- 哪些地方不能乱动?
- 怎么算做完?
比如:
当前 Hugo 博客点击搜索页会 404。
请检查 content、layouts 和 hugo.toml,找到原因后做最小修改。
不要改 themes/PaperMod 里的主题源码。
修复后运行 hugo --cleanDestinationDir --noBuildLock,并确认 /search/ 能打开。
这段话不优雅,但够用。
我以前会写很多背景,后来发现 Codex 更需要的是边界。它不怕任务普通,怕的是任务像半截微信消息。
4. Plan mode 不是装样子
复杂一点的任务,我会让它进入计划状态。
比如:
暂时不要改文件。请给出计划:会看哪些文件,可能怎么改,风险在哪里,最后怎么验证。
这能挡住很多无意义的返工。
有些任务一开始看起来简单,实际会牵扯一堆东西。比如「把文章列表改好看一点」,可能涉及主题模板、CSS、移动端布局、暗色模式、首页和归档页。直接开写,很容易半路发现方向不对。
Plan mode 的价值不是让流程变正式。它只是让 Codex 在动手前把脑子里的路线摊出来。
看到计划不对,马上纠正。比等它改完十个文件才回滚舒服多了。
5. 上下文要给准,不要给一堆
Codex 会自己读项目,但别让它大海捞针。
如果知道文件,直接点名:
重点看 content/posts/codex-guide.md、hugo.toml 和 layouts/partials/。
如果是报错,把完整报错贴出来。
如果是界面问题,截图比描述管用。
如果是网页问题,让它打开本地预览去看。Codex App 的 in-app browser 很适合这种事:本地 Hugo、Vite、Next.js 这类页面,打开以后直接检查路由、样式和交互。
我有个很简单的判断:自己都说不清相关文件在哪里,就让 Codex 查;已经知道入口,就别让它绕远路。
6. 权限别长期全开
Codex 能跑命令,权限就不能乱给。
官方文档里把权限拆成两件事:sandbox mode 和 approval policy。简单说,一个决定它能碰哪里,一个决定什么时候要问人。
日常常见三种:
| 模式 | 我会怎么用 |
|---|---|
| Read-only | 看项目、解释代码、做计划 |
| workspace-write | 日常改项目,最常用 |
| danger-full-access | 明确知道要跨目录、联网或做系统级操作时才考虑 |
workspace-write 通常够了。它能在工作区里读写文件、跑常规命令,越界时会停下来询问。
全权限确实省确认。但省掉确认,也省掉了护栏。
尤其是从网上拉来的仓库、没看过的脚本、需要联网的命令,我不建议直接全开。网页内容也要谨慎。官方文档提醒过,实时网页里可能有 prompt injection。别让一个网页里的奇怪文字影响本地项目。
7. AGENTS.md 是给 Codex 的项目便签
如果一条要求反复出现,就不要每次都写在 prompt 里。
比如这个博客项目,我经常会要求:
- 不改主题源码。
- 文章放在
content/posts/。 - 修改后跑 Hugo 构建。
- 中文文章少一点 AI 腔。
- Dock 在中文里写作「程序坞」。
这些就很适合写进 AGENTS.md。
一个简单版本:
# AGENTS.md
## 项目约定
- 这是一个 Hugo 博客项目。
- 不直接修改 themes/PaperMod 里的主题源码。
- 样式调整放在 assets/css/extended/。
- 文章放在 content/posts/。
## 验证方式
- 修改文章或配置后运行 hugo --cleanDestinationDir --noBuildLock。
- 涉及路由时,用本地预览确认页面能打开。
## 写作要求
- 中文文章少一点 AI 腔。
- 少用连续排比和空泛总结。
- 系统术语按中文界面写,例如 Dock 写作程序坞。
官方文档里提到,Codex 会在开始工作前读取这些文件。个人习惯可以放到 ~/.codex/AGENTS.md,项目规则放仓库里,子目录也可以有更具体的版本。
AGENTS.md 不要写成宣言。写命令、目录、限制、验收方式。越像项目便签,越有用。
8. Skills 适合处理重复手艺活
AGENTS.md 解决项目规则,Skills 更像一套固定手法。
比如「中文文章去 AI 味」这件事,如果每次都临时说:不要三段式、不要排比、少用然而此外、别太像说明书,迟早会漏。
做成 Skill 后,可以把判断标准、改写方法、禁用表达写进去。需要的时候直接调用。
适合做 Skill 的任务:
- 固定风格的文章改写。
- 周报、日报、公众号稿的固定格式。
- 某类项目的发布检查。
- 某个技术栈的 review 清单。
- 需要脚本配合的批量处理。
Skill 不靠长。边界清楚更重要。一个 Skill 解决一类问题就好。
9. MCP 是给 Codex 接外部眼睛
项目里的文件,Codex 自己能看。
项目外面的东西,就要靠工具。
MCP,也就是 Model Context Protocol,可以把外部工具和资料接给 Codex。官方文档里提到的例子包括开发文档、浏览器、Figma、Sentry、GitHub。
什么时候需要 MCP?
- 要查最新官方文档。
- 要看 GitHub issue 或 PR。
- 要读 Figma 设计稿。
- 要查 Sentry 里的线上报错。
- 要控制浏览器验证页面。
别为了显得高级就到处接 MCP。能用项目文件解决,就用项目文件。MCP 适合实时资料、授权资料和外部工具。
有副作用的工具调用要小心。改 issue、发消息、操作线上服务,这些都不是「点一下无所谓」的事。
10. App、CLI、IDE、Cloud 怎么选
我现在不会纠结哪个入口最好。不同场景用不同入口。
Codex App
适合长时间处理项目。
它有多线程、Local / Worktree / Cloud、diff、集成终端、in-app browser、Skills、Automations。写博客、改前端、检查页面、看 diff,我更愿意用 App。
尤其是前端任务,旁边开着本地预览,改完就看,比在终端里来回切舒服。
CLI
适合终端里顺手跑。
codex
也可以直接给一句任务:
codex "解释这个项目的启动流程"
CLI 里可以用 /permissions 切权限,用 /review 做审查,用 codex resume 恢复会话,用 codex exec 做非交互式任务。
IDE Extension
适合贴着代码改小范围问题。
选中一段代码,让它解释、补测试、改局部逻辑,这种场景 IDE 扩展最顺。
Cloud
适合把任务扔到远端环境里跑。
官方文档里说,Cloud 会克隆仓库,在隔离环境中处理任务。适合并行尝试方案,也适合从另一台设备委托任务。
但要记住:本地没提交、没推到 GitHub 的改动,Cloud 默认看不到。
11. Review 要单独拎出来
我现在不太喜欢让 Codex 一边写一边顺手 review。
写代码和审代码是两种状态。写的时候会顺着实现走,审的时候要专门找问题。
可以这样让它审:
Review 当前未提交改动。只输出 findings,按严重程度排序,重点看 bug、行为回归、安全风险和缺失测试。不要修改文件。
前端可以加:
重点看移动端溢出、键盘可访问性、空状态和加载状态。
后端可以换成:
重点看错误处理、权限边界、并发问题和数据库迁移风险。
官方文档里 /review 支持看未提交改动、commit,或者和 base branch 比较。这个功能值得单独用,不要只在最后说一句「看看有没有问题」。
12. 我会反复复制的几句话
看项目:
阅读当前项目结构,说明主要目录、启动方式、构建方式和最重要的约束。不要修改文件。
修 bug:
这个问题的现象是:{现象}。
相关报错是:{报错}。
请定位根因,做最小修复。修复后运行相关测试或构建命令,并说明验证结果。
改文章:
重写这篇文章。保留 front matter,正文重新组织。语气自然,减少 AI 味,不要频繁使用“你/你的”。写完后运行 Hugo 构建检查。
做前端:
优化这个页面的视觉效果。保留现有设计系统和组件结构,不引入新依赖。完成后打开本地预览检查桌面和移动端效果。
做 review:
Review 当前未提交改动。只输出 findings,按严重程度排序,重点看 bug、行为回归、安全风险和缺失测试。
沉淀项目规则:
根据这个项目的实际结构、构建命令、测试方式和我反复强调过的要求,生成一份简洁可执行的 AGENTS.md。不要写空泛原则。
13. 最容易翻车的地方
Git 状态不干净
让 Codex 大改之前,看一眼:
git status
至少知道当前有哪些未提交改动。否则改坏以后,很难分清哪些是原来的,哪些是 Codex 新改的。
任务太大
「实现用户系统」「优化整个项目」「重构前端架构」这种任务,不是不能做,但最好拆开。
拿到 Codex 的计划后,挑一个最小切口开始。
验证缺失
没有测试或构建检查,很多修改只是「看起来对」。
能跑测试就跑测试。没有测试,也至少跑构建、打开页面、检查命令输出。
多线程改同一批文件
Codex 可以并行开线程,但两个线程同时改同一批文件,冲突会很烦。
要并行,就拆清楚范围,或者用 Worktree。
长期开全权限
全权限省事,也容易让小问题变成大问题。日常项目没必要一直开。
14. 结语
Codex 用顺以后,感觉不像「问 AI 一个问题」。
更像是把一段杂活交给一个会读项目的人:看现场,做最小改动,跑验证,把结果说清楚。
它当然会犯错。会误解需求,会改多,会跑偏。所以人还是要定方向、看 diff、做取舍。
但如果把目标、上下文、权限和验收方式都放好,Codex 能接走很多以前很烦但必须做的活。
这就够了。