Karpathy 给 Claude Code 开的药方:四个原则治住 AI 乱写代码
- Smars
- Agent Skills , AI 工作流
- 11 May, 2026
Andrej Karpathy 一句话戳到了痛点:LLM 会带着错误的假设一路狂奔。它们把代码搞复杂、造抽象层、乱动不该动的东西。最气人的是,它们做得彬彬有礼、信心满满、而且批量生产。
一个 CLAUDE.md 文件 —— 现在已经是 Claude Code 的插件了 —— 专门治这些毛病。四个原则,直接从 Karpathy 的观察提炼而来,从根上改变 Claude Code 的行为方式。
四个原则
每个原则对应 Karpathy 指出的一个特定失败模式:
先想再写 —— LLM 会默默选择一个解释然后开干。这个原则强制显式推理:说清假设、给出可选项、有更简单的方案要提出来。如果 Claude 不确定,它会说出来而不是瞎猜。
“它们会替你做出错误假设,然后一路执行下去。它们不管理自己的困惑,不寻求澄清,不指出矛盾。”
保持简单 —— 默认行为是把 100 行的东西写成 1000 行。这个原则扼杀了这种倾向:不做需求之外的功能,不为只用一次的东西造抽象层,不搞没人要的”灵活性”。检验标准:一个资深工程师会觉得这东西过于复杂吗?
“它们特别喜欢把代码和 API 搞复杂,堆砌抽象层。”
只改该改的 —— LLM 会作为副作用改动它们不完全理解的代码。这个原则把修改范围严格限制在任务所需。不改动相邻代码。不重构没坏的东西。每行改动都必须能追溯到用户的需求。
“它们有时会改动或删除它们不完全理解的注释和代码,即使这些与任务无关。”
目标驱动 —— Karpathy 指出 LLM 特别擅长循环直到达成具体目标。这个原则把命令式指令变成可验证的成功标准。不是”加个校验”,而是”给无效输入写测试,然后让测试通过”。
“不要告诉它做什么,给它成功标准,看它自己跑。“
什么时候用
代码 Review —— 只改该改的原则产出的 PR 只包含请求的改动。没有顺手重构,没有神秘 diff。
新功能开发 —— 目标驱动把模糊需求变成可测试的结果。Claude 自己验证自己迭代,不需要牵着走。
调试 —— 先想再写在写代码之前就截住错误假设。Claude 主动告诉你它不确定什么,而不是猜错。
遗留代码 —— 只改该改的防止”我顺手清理一下”的陷阱。Claude 只动 bug,不动周围 500 行风格存疑的代码。
一个你需要知道的取舍
这些原则偏向谨慎而非速度。修个 typo、改个明显的一行代码,不需要走全套流程。设计这些原则是为了减少非琐碎工作上的昂贵错误,不是为了拖慢简单任务。
不加区分地用,你会得到一个过分谨慎、问太多问题的助手。Skill 最好用在你脑子分得清”加个字段”和”重设计认证流程”的区别的时候。
安装
方式一:Claude Code 插件(推荐)
在 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
已有项目,追加到现有的 CLAUDE.md。
Claude 的行为会怎么变
没加 guidelines 之前,让 Claude”修一下校验的 bug”,它可能重写整个校验模块、加个配置系统、顺便”修正”你的错误处理风格。
加了之后,它先在测试里复现 bug,然后应用最小修复,最后列出正好三行改动。
差异体现在 diff 里。干净、最小化、可追溯。每处改动都能对应到一个需求。
实战:从指令式到声明式
没有 guidelines 的典型交互:
你:给 API 加限流
Claude:[加了 rate-limit 中间件、Redis 存储、配置系统
带环境变量、顺便重写了错误处理]
有 guidelines 的相同请求:
你:给 API 加限流
Claude:我来实现。目标:每分钟超过 100 次请求返回 429。
加中间件和配置开关。
[三个文件,最小 diff,聚焦]
区别不微妙。第一个版本需要回滚,第二个直接进 review。
Karpathy 的批评并不新鲜 —— 每个重度 AI 编程用户都感受过这些痛点。新鲜的是有了一个系统性的解决方案,而且只装在一个文件里。
如果你的 Claude Code 会话经常以”它为什么也改了那个”结束,你早就知道这个工具解决的是什么问题。装好它只需要三十秒。
项目地址: https://github.com/forrestchang/andrej-karpathy-skills Karpathy 原文: https://x.com/karpathy/status/2015883857489522876