
Andrej Karpathy大佬 (前特斯拉 AI 总监,OpenAI 创始成员之一)刚刚分享了他个人在进行“严肃” AI 辅助编程时遵循的一套独特流程(节奏)。注意,这不是随便写写玩(就是现在非常火的一个词 “vibe code”:氛围编程),而是用于他真正关心、需要专业对待的代码项目

这套方法强调了开发者如何与 AI 协作,更像是在引导一位极其聪明但有时不太靠谱的“实习生”,而不是简单地复制代码。信息密度很高,值得我们细细品味
Karpathy 的 AI 辅助编程心法,总结下来有七个关键步骤:
第一步:上下文拉满 (Stuff everything relevant into context)
这是基础。你需要把项目所有相关的信息都喂给 AI。对于大型项目,这可能需要花些时间。如果是小项目,可以直接打包所有相关文件。Karpathy 甚至给出了一个 files-to-prompt
工具的示例命令:files-to-prompt . -e ts -e tsx -e css -e md --cxml --ignore node_modules -o prompt.xml
这个命令大致意思是,将当前目录下所有的 .ts
, .tsx
, .css
, .md
文件内容(忽略 node_modules
文件夹)打包成一个 XML 格式的 prompt 文件,供 AI 读取。核心思想是:给 AI 足够的全貌信息。
第二步:策略先行,而非代码 (Describe the next single, concrete incremental change)
明确你想要实现的下一个具体、增量的改动是什么。关键点来了:不要直接让 AI 写代码。相反,你应该要求 AI 提出几种实现该目标的高级方法,并分析各自的优缺点(pros/cons)。Karpathy 指出,LLM 的判断力并非总是最佳,通常实现一个功能有好几种方式,先看选项再决定。如果需要,可以再让 AI 把选定的方法具体化
第三步:选定方案,获取初稿 (Pick one approach, ask for first draft code)
从上一步 AI 提供的几种方法中,选择你认为最合适的一种。然后,才让 AI 基于这个选定的方法,生成第一版代码草稿
第四步:评审与学习(关键环节) (Review / learning phase)
这是 Karpathy 流程中的核心,也是体现“不复制代码”的关键。你需要手动地:
-
• 在旁边打开浏览器,查阅代码中你不熟悉或新调用的 API 的官方文档。 -
• 向 AI 提问,要求它解释代码、澄清疑点、进行修改。 -
• 如果发现当前方法有问题或不够好,要勇于回溯(wind back),尝试之前讨论过的其他方法。
这个阶段,重点是开发者自己主动学习和理解,而不是把思考完全外包给 AI。
第五步:测试验证 (Test)
对 AI 生成或修改后的代码进行严格的测试。确保它能按预期工作,并且没有引入新的问题。
第六步:代码提交 (Git commit)
测试通过后,将代码提交到版本控制系统(如 Git)。这是一个标准的开发实践,确保工作的成果被记录和保存。
第七步:规划下一步,循环往复 (Ask for suggestions on what we could implement next. Repeat.)
完成一个增量改动后,可以询问 AI 对于“接下来可以实现什么功能”的建议。然后,基于这些建议或你自己的规划,开始新一轮的循环,回到第一步或第二步。
一图总结:

核心理念:管好“天才实习生”
Karpathy 将这个过程中的 AI 形容为一个“过度热情、知识渊博但有时会胡说八道、勇气有余而品味不足的天才实习生”。它知道很多,但需要你严格把控方向和质量
因此,整个流程强调:
保持紧密控制 (Tight leash):开发者始终是主导者
慢下来,保持防御性、谨慎、甚至偏执 (Slow, defensive, careful, paranoid):不轻信 AI 的输出,步步为营
抓住行内学习机会 (Always taking the inline learning opportunity):利用 AI 作为学习工具,深化自己对代码和技术的理解,而不是回避学习
不委托理解 (Not delegating):理解代码的责任最终在开发者自己。
写在最后
Karpathy 也坦言,目前这个流程的很多阶段还显得有些笨拙和手动化。现有的 AI 编程工具在 UI/UX 设计上,对于支持这种精细化的、以开发者为中心的协作流程,还有巨大的改进空间。
AI 辅助编程仍然处在非常早期的阶段。Karpathy 的这套实战心法,无疑为我们如何在实际工作中更有效、更负责任地利用 AI 提供了宝贵的思路。它提醒我们,AI 是强大的助手,但最终的判断力、品味和学习成长的责任,仍然在开发者自己手中
希望这套方法能给你带来启发
⭐
(文:AI寒武纪)