让 Codex 先读项目再动手
让 Codex 先读项目再动手
Section titled “让 Codex 先读项目再动手”这是 Codex 和普通聊天 AI 最大的差别之一。
普通聊天 AI 更像“你问一句,我答一句”。
Codex 真正厉害的地方,是它可以先读项目,再基于项目真实结构做判断。
所以很多任务能不能做稳,关键不在“第一句怎么让它改”,而在:
你有没有先让它读懂当前项目。前置教程:第一次让 Codex 阅读项目
如果你还没有跑通过一次只读分析,先完成前置教程,再回到本篇。
依据来源:OpenAI Codex 官方手册中关于 read codebase、任务上下文、只读分析和最小风险工作流的说明。
跟着本篇做完后,你应该能做到:
- 知道什么任务必须先读项目。
- 会让 Codex 先做只读分析。
- 会让它输出你真正需要的项目信息。
- 会判断它有没有读懂,而不是在乱猜。
- 会把“先读后改”变成固定习惯。
为什么一定要先读项目
Section titled “为什么一定要先读项目”因为你大多数时候并不想教 Codex 怎么实现。
你真正想要的是:
- 它自己找到入口
- 它自己判断相关文件
- 它自己缩小影响范围
- 它自己识别风险点
这些能力的前提,就是它先把项目读一遍。
如果你一上来就直接说:
帮我修这个问题它当然也可能修好,但更容易出现这些情况:
- 改错文件
- 误判技术栈
- 顺手多改
- 漏掉约束
- 你和它来回补背景很多轮
哪些任务一定要先读项目
Section titled “哪些任务一定要先读项目”这些任务,强烈建议先读项目再动手:
- 修一个真实 Bug
- 新增一个功能
- 改一个已有页面
- 改接口逻辑
- 排查构建失败
- 处理多人协作项目
- 你自己也不确定入口在哪
只有极少数特别小的任务可以不先读,比如:
- 改一篇你已经打开的文档
- 改一句你明确指出位置的文案
- 撤回某一个具体文件的修改
先读项目时,你到底要它读什么
Section titled “先读项目时,你到底要它读什么”不是让它“随便看看”,而是让它建立能干活的上下文。
最常用的上下文有这几类:
- 项目是什么技术栈
- 入口文件和关键目录在哪
- 当前任务可能涉及哪些文件
- 当前项目有哪些明显约束
- 当前 Git 状态是否干净
- 它还不确定什么
最推荐的第一句,不是“帮我修”,而是这个
Section titled “最推荐的第一句,不是“帮我修”,而是这个”请先只读分析当前项目,不要修改文件。
我这次的目标是:【这里写目标,例如“修复首页按钮点击无响应”】。
请优先告诉我:1. 这个问题最可能涉及哪些文件2. 你为什么这么判断3. 哪些地方你还不确定4. 如果要继续动手,你建议先做什么这句话的重点是:
- 先只读
- 先结合当前任务读
- 先讲判断依据
- 先暴露不确定项
这比一句“读一下项目”有用得多。
让 Codex 先读项目,不等于让它给你写长篇大论
Section titled “让 Codex 先读项目,不等于让它给你写长篇大论”有些用户会踩另一个坑:
让 Codex 读项目-> 它输出一大坨-> 实际没法拿来继续做事所以你最好让它按结构输出。
比如:
请先只读分析当前项目,按下面格式输出:
## 技术栈判断- 你判断的技术栈:- 依据:
## 和本次任务最相关的文件- 文件 1:- 文件 2:- 文件 3:
## 你目前的判断- 你觉得问题最可能在哪:
## 你还不确定什么- 不确定项:
## 继续动手前建议- 你建议下一步做什么:这样它输出的内容,后面能直接接着用。
怎么判断它是真的读懂了
Section titled “怎么判断它是真的读懂了”你重点看这 4 件事:
- 它有没有说清楚判断依据
- 它提到的文件是不是项目里真的存在
- 它有没有主动承认不确定项
- 它下一步建议是不是合理、收敛的
如果它说:
我猜测这是某个登录组件的问题这种不够。
你可以继续追问:
请不要只给猜测。请告诉我你是根据哪些文件和目录做出这个判断的。如果依据不足,请明确写不确定。真正高效的地方在这里
Section titled “真正高效的地方在这里”“先读项目再动手”厉害的地方,不只是更稳,而是后面每一轮都更省话。
因为一旦它已经读过:
- 你后面补需求会更快
- 它后面缩范围会更准
- 它后面解释 diff 会更清楚
- 它后面做检查也更知道该看什么
所以这一步不是额外动作,而是后面省时间的起点。
一个非常实用的工作流
Section titled “一个非常实用的工作流”以后你可以固定这样用:
先只读分析,不要修改。基于你刚才读到的项目结构,告诉我这次任务最小修改范围应该是什么。好,按这个范围开始动手。这三轮,比一上来就“帮我修”要稳很多。
如果你已经知道大概文件位置,还要不要先读
Section titled “如果你已经知道大概文件位置,还要不要先读”也建议读,只是读得更聚焦。
例如你可以这样说:
我怀疑问题在首页相关文件。请先只读分析首页相关实现,不要修改文件。优先判断实际入口文件、相关组件和潜在影响范围。这样你不是在教它实现,而是在给它一个更好的搜索起点。
什么才叫“读项目读过头了”
Section titled “什么才叫“读项目读过头了””如果任务很小,它却:
- 扫了太多无关模块
- 输出很多和任务无关的信息
- 一直停留在分析阶段不推进
那就是读过头了。
你可以把它收回来:
请只聚焦和本次任务直接相关的实现,不要展开无关模块。我现在只需要继续这次任务需要的上下文。下一步该看什么
Section titled “下一步该看什么”建议接着看:
这三篇连起来,基本就是“让 Codex 真正变聪明”的核心用法。