Karpathy用一个文件拿了3万星:AI写代码的三个致命问题,终于有人说清楚了

4 阅读6分钟

Karpathy发了条推,说他现在80%的代码都是AI写的。

这不稀奇。稀奇的是,有人把他对AI编程的观察,浓缩成一个文件,放到GitHub上——3万颗星,还在涨。

一个文件。不是框架,不是工具,不是SDK。就是一个叫CLAUDE.md的纯文本文件,告诉AI编程助手"你应该怎么写代码"。

为什么一个文本文件能火成这样?因为它戳中了所有用AI写代码的人的痛点。

Karpathy发现的三个致命问题

问题一:AI太爱猜了

你给AI一个模糊的需求,它不会问你"你到底想要什么"。它会自己脑补一个理解,然后一路狂奔,写出一堆你根本没要的东西。

等你发现方向跑偏,代码已经写了200行了。

这不是偶尔发生,是每次都发生。因为大语言模型的训练目标就是"给出一个看起来合理的回答",而不是"在不确定的时候停下来"。

问题二:过度设计成瘾

让AI写一个简单功能,它恨不得给你搭一个完整的架构出来。100行能解决的问题,它写1000行。单次使用的逻辑,它非要抽象成一个通用框架。

没人要求的配置项、没人需要的错误处理、不可能发生的边界情况——AI全给你加上了。

结果就是:代码能跑,但没人看得懂,也没人敢改。

问题三:手痒改别的代码

你让AI改一个函数,它顺手把旁边的注释也改了,把不相关的变量名也重构了,甚至把import顺序都调整了一遍。

diff一看,改了50行,真正有用的就3行。其余47行都是AI的"顺手优化"。

这在个人项目里最多烦人,在团队协作里就是灾难——Code Review的人根本分不清哪些是有意改动,哪些是AI的副作用。

四条规则,治三个病

Karpathy的解法出奇简单,就四条规则:

规则一:先想再写。 遇到模糊需求,先说出自己的理解,列出可能的解读方式,该问就问。不确定的时候停下来,比猜错了再改强一百倍。

规则二:最简方案。 用最少的代码解决当前问题。不加没人要的功能,不建用一次就扔的抽象,不处理不可能发生的异常。三行重复代码比一个过早抽象好。

规则三:精准手术。 每一行改动都必须追溯到用户的需求。不改旁边的代码,不重构正常运行的逻辑,不调整现有代码风格。只清理自己这次改动制造的垃圾。

规则四:目标驱动。 不是"加一个验证",而是"写出无效输入的测试,然后让测试通过"。把模糊指令变成可验证的目标,做完能检查。

一个文件为什么比一个框架更有用

你可能会问:这不就是常识吗?

是常识。但问题在于,AI不具备常识。

大语言模型的行为模式是"在训练数据的分布上生成最可能的下一个token"。它不知道什么是"够用就好",因为训练数据里充满了过度设计的开源项目。它不知道什么是"别动其他代码",因为训练数据里大量的commit都包含顺手重构。

CLAUDE.md的作用,是在每次对话开始时给AI注入一套行为准则。相当于给新来的实习生一份入职须知:公司风格是这样的,你按这个来。

这就是为什么它比任何框架都有效——框架约束的是代码的结构,CLAUDE.md约束的是AI的行为模式。

不只是Karpathy:一个生态正在形成

Karpathy的CLAUDE.md只是冰山一角。如果你今天打开GitHub Trending,会看到一个清晰的信号:围绕AI编程助手的工具生态正在爆发式增长。

claude-mem——给AI编程助手装上"记忆"。它在后台记录你每次编程会话的上下文,用AI压缩成语义摘要,下次开新对话时自动注入相关记忆。解决了AI助手"每次都从零开始"的问题。54,000星。

superpowers——一个Agent技能框架,151,000星。它不让AI一上来就写代码,而是强制走"设计→规划→执行→验证"的流程。包含头脑风暴、测试驱动开发、系统化调试等预设技能,适配Claude Code、Cursor、GitHub Copilot等多个平台。

Caveman——今天Product Hunt上线的Claude Code插件,口号是"Why use so many tokens when few do trick?"(能少用token为什么要多用)。专门优化AI编程的token消耗。

这四个项目加起来,描绘了一条完整的进化路径:

  1. 先用CLAUDE.md规范AI的基本行为(不乱猜、不过度设计)
  2. 再用claude-mem给AI装上长期记忆(记住项目上下文、过往决策)
  3. 然后用superpowers建立结构化工作流(不再随意写代码,而是走流程)
  4. 最后用Caveman优化效率(用更少的token完成同样的工作)

这意味着什么

AI编程正在从"让AI帮我写几行代码"进化到"管理AI作为一个编程团队成员"。

就像你不会把一个新入职的工程师扔到代码库前面说"随便写",你也不应该让AI编程助手在没有任何约束的情况下工作。

Karpathy的CLAUDE.md本质上是一份AI编程纪律。而"纪律"这个词很关键——它意味着这不是一次性的配置,而是一套需要持续维护和迭代的规范。

对于正在用AI编程的你,我的建议是:

  1. 立刻建一个CLAUDE.md。即使你不用Claude Code,这些原则也适用于任何AI编程工具。在每次对话开头贴进去,或者配置成系统提示词。

  2. 根据你的项目定制规则。Karpathy的四条规则是通用的,但你的项目可能还需要"不要用any类型"、"所有API必须有错误处理"这样的具体约束。

  3. 记录AI犯过的错。每次AI产出不符合预期的代码,想想能不能加一条规则避免下次再犯。CLAUDE.md应该是一个持续进化的文档。

一个文件,3万颗星。这个数字本身就在说:AI编程的瓶颈不在AI的能力,而在人类管理AI的方法论。

Karpathy只是第一个把这件事说清楚的人。