Karpathy Skills 四大原则示意图:先想再写、简单至上、精准手术、目标驱动
26

5 月

154 K Star!Andrej Karpathy 用一份文件改了 Claude Code 的”脑子”

核心结论:这份让 GitHub 一夜爆火的 CLAUDE.md 不是魔法,是 Karpathy 把 LLM 的「品控问题」翻译成了 AI 能执行的 4 条铁律。读完你就能让它作用于你自己的项目。

作者:智盒编辑团队 · 2026 年 5 月 26 日 · 实测环境:Claude Code v 2.1+, Cursor 0.47+

我们实测安装 48 小时后的感受:Claude Code 的 diff 肉眼可见地变干净了。最明显的变化是——它开始反问你了。需求写得不清楚时,它不会像以前一样闷头写,而是列出 2-3 种理解让你选。这种体验差异,就像从和一个”听话但不动脑”的初级工程师合作,变成了和一个”会挑战你假设”的高级工程师配对。

AI 摘要

  • Andrej Karpathy 公开指出 LLM 编程的核心问题:瞎假设、过度工程、乱改无关代码
  • 社区将他的洞见转化为一份 CLAUDE.md 文件,在 GitHub 一夜获 154,995 Stars
  • 4 条原则直击痛点:先想再写、简单至上、精准手术、目标驱动
  • 这份文件可以直接安装到你的 Claude Code / Cursor / Codex CLI 项目中

适合谁读

  • 日常使用 Claude Code、Cursor、GitHub Copilot 写代码的开发者
  • 被 AI 过度工程、乱改无关代码、不问你直接假设等行为折磨过的工程师
  • 想了解「如何驯服 AI 编程助手」的团队 Tech Lead

背景:Karpathy 的「灵魂暴击」

2026 年 5 月,Andrej Karpathy 在 X 上发了一条帖子,直指 LLM 编程助手的核心问题。这不是技术问题,是行为问题:

“模型替你做了错误的假设,然后闷头往下跑,不检查。它们不会管理自己的困惑,不寻求澄清,不揭示矛盾,不呈现权衡,该反驳的时候不反驳。”

他列出的问题清单精准戳中了每个 AI 编程用户的痛点:

  1. 沉默假设 — 遇到模糊需求不提问,选一个理解闷头写,错了也不说
  2. 过度工程 — 100 行能解决的事写成 1000 行,凭空造抽象
  3. 副作用删除 — 改 A 模块顺手把 B 模块的注释和代码”优化”掉
  4. 不清理自己 — 改了代码不删对应的 import,变量和方法悬空

这条帖子迅速引爆了开发者社区。但真正的爆点在后头。

重点:一个文件,四条铁律

社区开发者 @jiayuan_jy 把 Karpathy 的洞见翻译成了一个可执行的 CLAUDE.md 文件,托管在 GitHub 上。24 小时内突破 15 万 Star,项目地址:andrej-karpathy-skills

为什么一个 CLAUDE.md 能拿到 15 万 Star?因为它解决了 AI 编程助手最根本的信任问题:你的 AI 需要一个行为准则。

这个文件的精髓是 4 条原则,每一条都是一道防止 AI “跑偏”的防火墙。

原则一:先想再写(Think Before Coding)

不假设。不隐藏困惑。呈现权衡。

这是最核心的一条。LLM 面对模糊需求时的默认行为是”选一个最可能的解释直接开写”,这恰恰是 bug 的温床。

  • 显式陈述假设 — 不确定就问,别猜
  • 呈现多种解释 — 需求有歧义时,列出选项而非悄悄选一个
  • 该反驳就反驳 — 需求有明显更简单的方案时,说「不」并提出替代
  • 困惑就停 — 明确说出哪里不清楚,请求澄清

实际效果:你的 AI 从”闷头干的初级工程师”变成了”会提问、会反驳、会权衡的高级工程师”。

原则二:简单至上(Simplicity First)

解决问题的最少代码。零投机代码。

这是对过度工程的直接回应:

  • 不写没被要求的功能
  • 不为单一用途的代码建抽象层
  • 不加没被要求的”灵活性”或”可配置性”
  • 不给不可能出现的场景写错误处理
  • 200 行能变 50 行?重写。

测试标准:一个高级工程师看到这段代码会说它”过度复杂”吗?如果是,简化。

Karpathy Skills 四大原则示意图

原则三:精准手术(Surgical Changes)

只碰必须碰的。只清理你自己制造的垃圾。

这是对”副作用修改”的防线:

  • 不要顺手”优化”旁边的代码、注释、格式
  • 不要重构没坏的东西
  • 沿用现有风格,即使你认为你的方式更好
  • 发现无关的遗留死代码?提出来,但别删
  • 你自己的修改造成了未使用的 import/变量/函数?删掉

测试标准:diff 里的每一行改动,都应该能追溯到用户的需求。

原则四:目标驱动(Goal-Driven Execution)

定义成功标准。循环直到验证通过。

这是 Karpathy 最核心的洞见。他原话是:

“LLM 在循环直到达成特定目标这件事上异常出色……不要告诉它做什么,给它成功标准,看它自己跑。”

AI代码对比:过度工程 vs 简洁方案

对读者的影响:装上之后到底有什么变化?

简单说:你的 AI 从”最快速度写代码”变成了”最稳方式写代码”。

  1. diff 变干净了 — 每次 PR 只有你要求的改动,没有”顺便优化”
  2. 重构率下降 — 代码一次到位,不再因为过度复杂而重写
  3. AI 开始提问了 — 需求模糊时它会反过来问你,而不是闷头写错
  4. PR review 变快了 — 每个改动都有清晰的目的,不用猜”这行为什么改”

项目 README 中有一条关键提醒:这些规则偏向谨慎而非速度。对于简单任务(改个拼写、改个明显的单行 bug),用常识判断,不需要完整的严谨流程。

实用价值:三种方式接入你的项目

方式一:Claude Code 插件(推荐)

/plugin marketplace add forrestchang/andrej-karpathy-skills
/plugin install andrej-karpathy-skills@karpathy-skills

方式二:直接下载 CLAUDE.md

curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md

方式三:Cursor 用户

项目已包含 .cursor/rules/karpathy-guidelines.mdc,直接在 Cursor 中生效。

风险与限制

  • 不适合所有场景 — 对简单任务可能显得过度谨慎
  • 语言覆盖 — 目前仅英文和简体中文 README
  • 非官方 — 这是社区项目,但原则完全源自 Karpathy 的公开观点

FAQ

这份文件和 Claude Code 自带的 CLAUDE.md 有什么区别?

不冲突,是增强。Claude Code 的 CLAUDE.md 是你的项目上下文,Karpathy 原则是 AI 的行为规范。

适合所有编程语言吗?

是的。4 条原则与具体语言无关。

会不会让 AI 变得太谨慎?

对简单任务用常识判断,不需要完整严谨流程。

和 Cursor Rules 有什么关系?

原理相同——定义 AI 的行为准则。Claude Code 用 CLAUDE.md,Cursor 用 rules 文件。

分享这篇文章

RELATED

Posts