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 编程圈最值得收藏的开源项目之一。


相关链接

引用链接

[1]https://x.com/karpathy/status/2015883857489522876

[2]https://github.com/multica-ai/andrej-karpathy-skills


15万星!Karpathy 亲自炮轰 AI 编程:LLM 最大的毛病是被抓包也不认错
https://maoyu92.github.io/2026/05/24/07 AI笔记/AI工具与模型/a160_15万星!Karpathy 亲自炮轰 AI 编程:LLM 最大的毛病是被抓包也不认错/
作者
陈文茂
发布于
2026年5月24日
许可协议