15万星!Karpathy 亲自炮轰 AI 编程:LLM 最大的毛病是被抓包也不认错
15万星!Karpathy 亲自炮轰 AI 编程:LLM 最大的毛病是被抓包也不认错
“
“模型会默默做出错误假设,然后一路狂奔,从不检查、不提问、不质疑、不呈现权衡、不在应该时说 NO。”
2026年1月26日,AI 圈教父 Andrej Karpathy 发了一条推,直指当前大模型编程的 4大致命缺陷。

这条推没有引发骂战——因为他说得太对了。
3周后,开发者 Forrest Chang 把这4条原则写成了一份 65 行的 CLAUDE.md 文件,上线 GitHub。
现在:15万颗星,15300个 Fork。
一、Karpathy 炮轰的 4 大 LLM 编程顽疾
Karpathy 原话翻译如下,每一条都扎在程序员的痛点上:
毛病1:暗中假设,从不确认
“
“它们悄咪咪地做出错误假设,然后一路狂奔,从来不检查、不提问、不质疑。”
典型场景:你要导出用户数据,它直接假设了文件路径、字段名、格式,连问都不问你。
毛病2:代码膨胀,抽象泛滥
“
“它们真的超爱把代码和 API 搞得很复杂,堆砌抽象层级,不清理死代码……实现一个 1000 行的大结构,明明 100 行就能搞定。”
典型场景:加一个校验,它给你造一套「可扩展的」校验框架。
毛病3:顺手改代码,边角料一堆
“
“它们有时候会顺手改掉/删掉那些自己没充分理解的注释和代码——即便这些改动和任务正交,完全没必要动。”
典型场景:你让它修一个 bug,它「顺便」把相邻的模块也重构了,然后测出问题。
毛病4:给指令,不给目标
“
“它们喜欢用模糊的指令,而不是定义清晰的成功标准,导致需要反复确认。”
典型场景:「把这个功能优化一下」——优化成什么样?不知道。
二、4 大原则,对症下药
Forrest Chang 的 CLAUDE.md 文件针对这 4 个毛病,给出了 4 个原则:
| 原则 | 解决的问题 |
|---|---|
| Think Before Coding | 暗中假设、从不确定 |
| Simplicity First | 代码膨胀、抽象泛滥 |
| Surgical Changes | 顺手改代码、边角料一堆 |
| Goal-Driven Execution | 给指令不给目标、反复确认 |
原则1:Think Before Coding(编码前先思考)
核心:别假设,有疑问就问。
不确定的时候 → 问用户,而不是猜
存在多种解释 → 不要默默选一个,要呈现出来
有更简单的方案 → 说出来,而不是闷头实现
遇到困惑 → 停下来,明确说出哪里不清楚,请求指示
原则2:Simplicity First(简单优先)
核心:最小代码解决问题,不做任何多余的事。
不做没人要求的功能
不给单次使用的代码写抽象
不加没人要的「灵活性」和「可配置性」
不处理不可能发生的错误场景
如果 200 行能写成 50 行,就重写
“
检验标准:一个高级工程师会说「这太复杂了吗?」——如果是的,简化。
原则3:Surgical Changes(手术刀式修改)
核心:只动你必须动的,清理自己留下的烂摊子。
编辑现有代码时:
不「优化」相邻代码、注释、格式
不重构没坏的东西
不改你理解不了的代码
✅ 匹配现有风格,即使你会有不同做法
⚠️ 发现无关的死代码 → 说出来,而不是删掉
当你的改动产生了孤儿代码:
✅ 删除你这次改动导致的无用 import/变量/函数
❌ 不删除改动前就有的死代码(除非被要求)
“
检验标准:每一行改动都应该能直接追溯到用户的请求。
原则4:Goal-Driven Execution(目标驱动执行)
核心:给成功标准,而不是给命令,让 LLM 自主循环。
| 不要 | 要 |
|---|---|
| 「添加校验」 | 「写测试覆盖无效输入,然后让测试通过」 |
| 「修掉这个 bug」 | 「写一个能复现 bug 的测试,然后让测试通过」 |
| 「重构 X」 | 「确保重构前后测试都通过」 |
对于多步任务,先说计划:
1. [步骤] → 验证:[检查点] 2. [步骤] → 验证:[检查点] 3. [步骤] → 验证:[检查点]
“
Karpathy 原话:「LLM 超擅长在遇到特定目标时循环……别告诉它要做什么,给它成功标准,然后看它跑。」
三、安装使用:30秒见效
方式1:Claude Code 插件(推荐)
# 第一步:添加市场 /plugin marketplace add forrestchang/andrej-karpathy-skills # 第二步:安装插件 /plugin install andrej-karpathy-skills@karpathy-skills
方式2:CLAUDE.md(按项目)
新项目:
curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md
已有 CLAUDE.md 的项目(追加):
echo "" >> CLAUDE.md curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md
方式3:Cursor 用户
仓库自带 .cursor/rules/karpathy-guidelines.mdc,打开项目自动生效。
四、怎么衡量它有没有起作用?
仓库给出了 4 个信号,说明指南在生效:
✅ Diffs 变干净了 —— 只出现你要求的改动
✅ 重写变少了 —— 代码第一次就足够简单
✅ 先问再做 —— 实现前会先确认,而不是出错后再来
✅ PR 变小了 —— 没有顺手的重构或「优化」
五、为什么这个项目爆了?
15万星背后,是整个行业对 AI 编程助手的「爱恨交织」。
爱:coding agent 确实让开发效率起飞。
恨:它同时带来了:
过度工程(一个登录功能写了 2000 行)
静默错误(偷偷改了什么你不知道)
无限循环(反复确认却没有结论)
难以审查(PR 里有 80% 是你不需要的改动)
Karpathy 的 4 条原则,精准命中了这 4 大痛点。
而这份 CLAUDE.md,用 65 行代码 解决了这个问题。
“
这是 2026 年到目前为止,AI 编程圈最值得收藏的开源项目之一。
相关链接
🌐 Karpathy 原推:https://x.com/karpathy/status/2015883857489522876[1]
💾 GitHub:https://github.com/multica-ai/andrej-karpathy-skills[2]