跳转到内容

让 Codex 先读项目再动手

这是 Codex 和普通聊天 AI 最大的差别之一。

普通聊天 AI 更像“你问一句,我答一句”。
Codex 真正厉害的地方,是它可以先读项目,再基于项目真实结构做判断。

所以很多任务能不能做稳,关键不在“第一句怎么让它改”,而在:

你有没有先让它读懂当前项目。

前置教程:第一次让 Codex 阅读项目
如果你还没有跑通过一次只读分析,先完成前置教程,再回到本篇。

依据来源:OpenAI Codex 官方手册中关于 read codebase、任务上下文、只读分析和最小风险工作流的说明。

跟着本篇做完后,你应该能做到:

  1. 知道什么任务必须先读项目。
  2. 会让 Codex 先做只读分析。
  3. 会让它输出你真正需要的项目信息。
  4. 会判断它有没有读懂,而不是在乱猜。
  5. 会把“先读后改”变成固定习惯。

因为你大多数时候并不想教 Codex 怎么实现。

你真正想要的是:

  • 它自己找到入口
  • 它自己判断相关文件
  • 它自己缩小影响范围
  • 它自己识别风险点

这些能力的前提,就是它先把项目读一遍。

如果你一上来就直接说:

帮我修这个问题

它当然也可能修好,但更容易出现这些情况:

  • 改错文件
  • 误判技术栈
  • 顺手多改
  • 漏掉约束
  • 你和它来回补背景很多轮

这些任务,强烈建议先读项目再动手:

  • 修一个真实 Bug
  • 新增一个功能
  • 改一个已有页面
  • 改接口逻辑
  • 排查构建失败
  • 处理多人协作项目
  • 你自己也不确定入口在哪

只有极少数特别小的任务可以不先读,比如:

  • 改一篇你已经打开的文档
  • 改一句你明确指出位置的文案
  • 撤回某一个具体文件的修改

先读项目时,你到底要它读什么

Section titled “先读项目时,你到底要它读什么”

不是让它“随便看看”,而是让它建立能干活的上下文。

最常用的上下文有这几类:

  1. 项目是什么技术栈
  2. 入口文件和关键目录在哪
  3. 当前任务可能涉及哪些文件
  4. 当前项目有哪些明显约束
  5. 当前 Git 状态是否干净
  6. 它还不确定什么

最推荐的第一句,不是“帮我修”,而是这个

Section titled “最推荐的第一句,不是“帮我修”,而是这个”
请先只读分析当前项目,不要修改文件。
我这次的目标是:【这里写目标,例如“修复首页按钮点击无响应”】。
请优先告诉我:
1. 这个问题最可能涉及哪些文件
2. 你为什么这么判断
3. 哪些地方你还不确定
4. 如果要继续动手,你建议先做什么

这句话的重点是:

  • 先只读
  • 先结合当前任务读
  • 先讲判断依据
  • 先暴露不确定项

这比一句“读一下项目”有用得多。

让 Codex 先读项目,不等于让它给你写长篇大论

Section titled “让 Codex 先读项目,不等于让它给你写长篇大论”

有些用户会踩另一个坑:

让 Codex 读项目
-> 它输出一大坨
-> 实际没法拿来继续做事

所以你最好让它按结构输出。

比如:

请先只读分析当前项目,按下面格式输出:
## 技术栈判断
- 你判断的技术栈:
- 依据:
## 和本次任务最相关的文件
- 文件 1:
- 文件 2:
- 文件 3:
## 你目前的判断
- 你觉得问题最可能在哪:
## 你还不确定什么
- 不确定项:
## 继续动手前建议
- 你建议下一步做什么:

这样它输出的内容,后面能直接接着用。

你重点看这 4 件事:

  1. 它有没有说清楚判断依据
  2. 它提到的文件是不是项目里真的存在
  3. 它有没有主动承认不确定项
  4. 它下一步建议是不是合理、收敛的

如果它说:

我猜测这是某个登录组件的问题

这种不够。

你可以继续追问:

请不要只给猜测。
请告诉我你是根据哪些文件和目录做出这个判断的。
如果依据不足,请明确写不确定。

“先读项目再动手”厉害的地方,不只是更稳,而是后面每一轮都更省话

因为一旦它已经读过:

  • 你后面补需求会更快
  • 它后面缩范围会更准
  • 它后面解释 diff 会更清楚
  • 它后面做检查也更知道该看什么

所以这一步不是额外动作,而是后面省时间的起点。

以后你可以固定这样用:

先只读分析,不要修改。
基于你刚才读到的项目结构,告诉我这次任务最小修改范围应该是什么。
好,按这个范围开始动手。

这三轮,比一上来就“帮我修”要稳很多。

如果你已经知道大概文件位置,还要不要先读

Section titled “如果你已经知道大概文件位置,还要不要先读”

也建议读,只是读得更聚焦。

例如你可以这样说:

我怀疑问题在首页相关文件。
请先只读分析首页相关实现,不要修改文件。
优先判断实际入口文件、相关组件和潜在影响范围。

这样你不是在教它实现,而是在给它一个更好的搜索起点。

如果任务很小,它却:

  • 扫了太多无关模块
  • 输出很多和任务无关的信息
  • 一直停留在分析阶段不推进

那就是读过头了。

你可以把它收回来:

请只聚焦和本次任务直接相关的实现,不要展开无关模块。
我现在只需要继续这次任务需要的上下文。

建议接着看:

这三篇连起来,基本就是“让 Codex 真正变聪明”的核心用法。