作者是 Karpathy,OpenAI 联合创始人、前 Tesla AI 总监。
他把多年踩过的坑总结成 4 条规则,教 AI 怎么写代码。
我看完发现,这 4 条规则解决的不是技术问题,是人和 AI 协作的问题。
你有没有遇到过这种情况。
你让 AI 帮你改一段代码,它把整个文件重写了。
你让它加个错误处理,它顺便给你加了日志系统、配置文件、全局异常处理器。
你只是想修个小 bug,它却把半个项目都重构了。
这不是某个 AI 工具的问题,是所有 AI 都有的通病。
AI 不知道"适可而止"是什么意思。
Karpathy 的 4 条规则,就是在教 AI 学会克制。
我用大白话给你翻译一下。
规则 1:Don’t be lazy(不要偷懒)
AI 最容易犯的错误,就是猜你想要什么。
你说"优化代码",它就开始瞎改。
你说"让这个页面更好用",它就开始重新设计 UI。
Karpathy 说,别猜,问清楚。
就像去理发店,好的理发师会先问你"剪多短、什么风格",而不是上来就咔嚓咔嚓。
AI 也一样。
你说"优化代码",它应该先问你"优化性能还是可读性?"
你说"让页面更好用",它应该先问你"是减少操作步骤,还是提升加载速度?"
问清楚了再动手,不要猜。
规则 2:Make surgical changes(手术式修改)
AI 的第二个毛病,就是改东西的时候不知道收手。
你让它修个 bug,它能把整个函数重构了。
Karpathy 说,只改有问题的那几行,其他地方不要动。
就像修水管,只换漏水的那一段,而不是把整个房子的管道都拆了重装。
这条规则让 AI 学会"克制"。
不做多余的改动。
规则3:Surface assumptions(明确假设)
AI 的第三个毛病,就是它会根据自己的理解去做事,但不告诉你它是怎么理解的。
你让它"处理空值情况",它可能理解成"把空值替换成默认值",也可能理解成"遇到空值就报错"。
如果它不说,你就不知道它到底做了什么。
Karpathy 说,AI 应该明确说出它的假设。
“我假设你要把空值替换成默认值,如果我理解错了,请告诉我。”
这样你能第一时间发现理解偏差。
规则4:Define verifiable goals(定义可验证目标)
AI 的第四个毛病,就是改完代码说"优化完成",但你不知道它优化了什么。
Karpathy 说,给出证据。
不是说"我优化了性能",而是"我把这个函数的执行时间从 100ms 降到了 50ms,这是测试结果"。
有数据、有证据,改动效果清清楚楚。
这 4 条规则,不只是给程序员的。
你让 AI 帮你写文案,它能给你写 3000 字,但你只想要 500 字。
你让 AI 帮你改文章,它把你的风格全改了。
你让 AI 帮你做方案,它给了你 10 个方向,但你不知道它是怎么理解你的需求的。
这些问题,和程序员遇到的问题,本质上是一样的。
AI 不知道"适可而止"。

我看完这 4 条规则之后,觉得最有用的是第 3 条。
明确假设。
因为大部分时候,AI 做错事不是因为它笨,是因为它理解错了你的意思,但它不说。
如果它能主动说出"我是这样理解的",你就能第一时间纠正它。
这能省下很多返工的时间。
这个项目叫 andrej-karpathy-skills,是一个 Claude Code 的技能包。
装上之后,Claude Code 写代码的时候就会遵循这 4 条规则。
我自己还没装,因为我不是程序员,不怎么用 Claude Code 写代码。
但我觉得这 4 条规则值得分享,因为它说的不只是写代码的问题,是所有人用 AI 时都会遇到的问题。
AI 会猜你的需求。
AI 会多做事情。
AI 不会主动说出它的理解。
AI 不会给你证据。
这 4 条规则,其实是在教我们怎么和 AI 协作。
如果你也在用 AI 写代码,可以去 GitHub 搜 andrej-karpathy-skills,看看这个项目。
如果你不写代码,也可以想想,这 4 条规则能不能用在你和 AI 的协作上。
比如你让 AI 帮你写文案,是不是也可以先问清楚"你想要什么风格",而不是让它猜?
比如你让 AI 帮你改文章,是不是也可以要求它"只改有问题的地方,其他地方不要动"?
比如你让 AI 帮你做方案,是不是也可以要求它"先说出你的假设,让我确认一下"?
我觉得可以。
写到这里,我突然想起一句话。
工具是死的,人是活的。
Karpathy 总结的这 4 条规则,表面上是在教 AI 怎么写代码,实际上是在教我们怎么用 AI。
不要让 AI 猜。
不要让 AI 多做。
让 AI 说出它的理解。
让 AI 给出证据。
这 4 条规则,值得记住。
项目地址:github.com/forrestchang/andrej-karpathy-skills
(公众号不支持外链,复制地址到浏览器打开)
夜雨聆风