读完三遍还是不敢改 - 我用AI读懂开源项目的那套笨办法,先别学
一个常见的失败现场
你大概经历过这样的场景:GitHub 上看到一个非常合适开源项目,README 写得漂亮,Star 数也不错,正好能解决手头的问题。于是 clone 下来,打开编辑器,准备深入研究。
第一遍,你从 main.go 或 index.ts 开始读。二十分钟后,你在十几个文件之间跳转,脑子里只剩下「这个函数调用那个函数,那个函数又依赖另一个文件」的碎片印象。
第二遍,你学聪明了,开始画调用关系图。画到一半发现遗漏了一个关键的中间件,图作废重来。
第三遍,你干脆直接跑起来,打断点跟一遍。结果环境依赖报错,光解决依赖就花了一晚上。
最后,你做了一件大多数人在这种时候都会做的事:不读了,直接改。凭感觉找到「大概是这里」的代码,改两行,跑一下,碰运气。运气好,能跑;运气不好,引入一个三天后才爆出来的隐藏 Bug。
这不是能力问题,是方法问题。读陌生代码库这件事,人类天生不擅长——工作记忆装不下几十个文件之间的依赖关系,但 AI 恰好擅长。
常见的失败用法(先别急着丢给AI)
很多人已经意识到可以让 AI 帮忙,但常见做法本身也是坑:
失败做法一:一句话全丢。「帮我看看这个项目是干嘛的」——AI 拿到几个零散文件,给你编一段听起来很像回事的概述。你点头觉得有道理,改代码时照样两眼一抹黑。
失败做法二:只喂 README。README 是作者想让你看到的部分,不是代码真实的结构。基于 README 的理解去改代码,等于看宣传册去拆发动机。
失败做法三:一次塞一整个仓库。上下文窗口塞满了,AI 对每个文件都只能浅尝辄止,回答全是「大概」「可能」,没有一句敢直接用。
正确路径:把「读项目」拆成三次提问
正确的做法不是问得更用力,而是问得更碎。我的流程分三步,每步一个明确产出:
第一步:地图。 先让 AI 只看目录结构、入口文件和配置文件(package.json / go.mod / 依赖清单),产出一张模块地图:这个项目分几个模块、各自负责什么、依赖方向是什么。这一步不读实现代码,只看骨架。
第二步:动脉。 带着「我想改什么」的具体目标,让 AI 追踪一条核心链路。比如「用户请求从入口到落库经过了哪些文件、哪些关键函数」。这一步的产出是一条可以画在白板上的时序路径。
第三步:手术点。 明确你要改的位置,让 AI 回答三个问题:改这里会波及哪些文件?有没有同名逻辑藏在别处?现有代码里有没有我可以直接复用的工具函数?这一步的产出是一份「改动影响清单」——动手前你最需要的东西。
三次提问,三次产出,每一步都在上一步的地基上。这比一次问「这项目怎么运作的」有效得多。
可复制的提示词模板
以下是我在第二步(追踪核心链路)常用的模板,直接替换方括号内容即可:
你是一名资深代码审查者。我在研究开源项目 [项目名],目标是在
[具体场景,例如:给导出功能增加异步模式] 前先理解其结构。
我的具体问题是:[用一句话描述你想搞清楚的链路,例如:
一个用户请求从 API 入口到数据写入经过了哪些环节]。
以下是相关文件:
[粘贴入口文件代码]
[粘贴核心模块代码]
请按以下格式回答:
1. 链路时序:按执行顺序列出经过的文件与关键函数名
2. 关键分支:链路中存在条件分叉的位置及各分支含义
3. 隐藏依赖:这条链路依赖了哪些没贴出来的文件,我还需要看哪些
4. 改动预警:如果我要 [你的改动目标],最先受影响的三个位置
要求:所有结论必须指向具体文件和函数名,不确定的地方明确标注
「此处不确定,建议查看 xxx 文件」,不要推测。最后那句「不要推测」很重要——不给 AI 退缩的空间,它就不会用含糊的话糊弄你。
前后对比
用AI之前: 我接手过一个几千行的开源工具库,想加一个小功能。断断续续读了三个晚上,画了两版调用图,最后靠全文搜索硬猜改动点,改完提心吊胆地跑测试。整个功能从研究到合并花了大约一周,其中「读代码」占了一多半时间。
用AI之后: 同样规模的项目,用上面三步流程:第一次提问拿到模块地图(10分钟),第二次追踪目标链路(15分钟),第三次拿到改动影响清单(10分钟)。之后动手写代码时,我已经知道该复用哪个工具函数、哪个分支不用碰。研究阶段压缩到一小时内,而且信心来自具体的文件和函数名,不是来自「感觉差不多了」。
更重要的是失败率的变化。靠猜的改动,偶尔会漏掉藏在不同模块里的同名逻辑;有了影响清单,这类问题在动手前就暴露了。
工具与成本的一点提醒
- 不必追求「一次读完整个仓库」的重型工具,从你手头的通用对话模型开始就够用,关键是提问的分步结构。
- 三步流程中,第一步用便宜快速的模型即可(只看目录),第二三步涉及大量代码上下文,用能力更强的模型效果明显更好。如果需要在不同模型之间切换和统一管理 API 调用,可以了解一下多模型网关类服务,具体价格以官网价格页为准。
结语
读不懂别人的开源项目,卡住你的从来不是智商,而是缺少一个能把几十个文件的依赖关系摊开在你面前的助手。下次 clone 下来一个陌生仓库,别急着从第一个文件硬读——先花十分钟让 AI 给你画张地图,再顺着地图走。你会发现自己敢改的代码,比想象中多得多。
如果你还没有趁手的模型调用渠道,可以从这里注册开始试试:https://api.thistoken.ai/register
---
不想折腾多家供应商的接入差异?在 https://api.thistoken.ai/register 注册,用一个 base_url 调用所有模型。