andrej-karpathy-skills
Karpathy 亲授的 AI 编程行为准则,让 Claude Code 减少错误假设、过度工程和附带修改
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Karpathy 亲授的 AI 编程行为准则,让 Claude Code 减少错误假设、过度工程和附带修改
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否遇到过这种情况:让 AI 帮你写代码,它却自作主张改了一堆你根本没要求改的地方,最后引出一堆莫名其妙的问题?
这不只是你的感受——这是整个 AI 编程领域的共识性痛点。
2025年末,AI 领域传奇人物 Andrej Karpathy(斯坦福教授、Tesla AI 负责人、OpenAI 创始成员之一)在 X 上发帖,直指当前 LLM 编程的三大顽疾:
隐式假设:模型会替你做错误假设,然后不假思索地执行。它不问清楚,就直接选一个方向跑下去。
过度工程:明明50行能搞定的事情,AI 偏偏要写200行——搞一堆抽象、留一堆"扩展性",结果代码读不懂、维护更头疼。
附带修改:让你改一个文件,它顺便把旁边的注释和代码也一起改了,而这些改动你根本不需要,也完全不知情。
图1:multica-ai 组织头像
Karpathy 的这番话,引发了开发者社区的广泛共鸣。一位名叫 forrestchang(GitHub @forrestchang,X @jiayuan_jy)的独立开发者,从 Karpathy 的观察中提炼出了四个可操作的行为准则,浓缩为一份 CLAUDE.md 文件——这就是 andrej-karpathy-skills 项目的起源。
这份规范不依赖任何代码或技术栈,它的核心价值是改变 AI 编程的行为模式:
| 原则 | 解决的问题 |
|---|---|
| Think Before Coding(编码前思考) | 错误假设、隐藏困惑、缺少权衡 |
| Simplicity First(简洁优先) | 过度复杂、臃肿抽象 |
| Surgical Changes(精准修改) | 附带编辑、触碰不应改的代码 |
| Goal-Driven Execution(目标驱动执行) | 模糊指令、无验证标准 |
这是整个体系的核心出发点。当 AI 遇到歧义时,正确的做法是停下来,说清楚自己哪里不确定,然后向用户提问——而不是默默选一个方向继续。
具体来说,AI 应该:遇到不确定的情况,明确说明自己的假设,而不是默认其中一个;当存在多种合理的实现方式时,把选项呈现给用户,而不是自行决定;如果发现用户提出的方案存在明显缺陷,要主动提出来。
这个原则听起来简单,却是大多数 AI 编程工具最容易踩的坑:用户说"帮我加个验证",AI 立刻按自己的理解实现了一套复杂的验证逻辑,结果和业务场景完全不符。
Karpathy 点名批评的"过度工程"是 AI 编程中最常见的浪费行为。AI 似乎天生喜欢"多做准备"——创建各种抽象层、预留各种"将来可能用到的"接口、把简单逻辑包装得复杂无比。
这份规范要求:只实现用户明确要求的功能,不为单次使用创建抽象,不添加"将来可能有用"的配置选项。判断标准也很直接:如果一个资深工程师看到这个实现觉得"过于复杂",那就简化。
当你让 AI 修改一个函数时,它不应该"顺便"把周围的代码风格也统一了、把不相关的注释也改了。这个原则给 AI 划了一条硬边界:每一行改动都必须能追溯到用户的原始请求。
例外情况也有:如果你的改动产生了新的无用代码(孤儿代码),AI 应该清理自己造成的这部分垃圾——但不要动项目原本就存在的死代码,除非用户明确要求。
最后一个原则针对的是"模糊指令"问题。很多用户会说"帮我优化一下这段代码"——这种指令对 AI 来说根本无法验证。
规范要求将模糊指令转化为可验证的目标:不是"添加验证",而是"为无效输入编写测试,然后让它们通过"。不是"修复 bug",而是"编写能重现 bug 的测试,然后让它通过"。
对于多步骤任务,规范建议使用结构化格式:
1. [步骤] → 验证: [检查项]
2. [步骤] → 验证: [检查项]
这样 AI 可以自主循环执行,直到所有验证点都通过。
这份规范最初针对 Claude Code 设计,但作者很快意识到这只是冰山一角。项目同时提供了 CLAUDE.md(适用于 Claude Code)、CURSOR.md(适用于 Cursor IDE)和 .cursor/rules/karpathy-guidelines.mdc(Cursor 的规则格式),实现了跨工具适配。
此外,作者还提供了 Claude Code 插件安装方式,通过插件市场(/plugin marketplace add)一键安装,无需手动复制文件。
作者的另一项目 Multica(multica-ai/multica)则是一个更宏大的开源平台,用于运行和管理多个编码智能体,并支持可复用技能。andrej-karpathy-skills 也是 Multica 平台的预置技能之一。
这是这个项目最特殊的地方——它不需要安装任何运行环境,不需要配置 GPU,也不需要 Docker。
如果你是 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/multica-ai/andrej-karpathy-skills/main/CLAUDE.md
安装完成后,Claude Code 在当前项目目录下会自动读取 CLAUDE.md,并按照其中定义的四个原则行事。
作为一个纯规范文件而非代码项目,andrej-karpathy-skills 本身无法通过技术手段强制执行——它依赖 AI 模型的理解和遵从程度。不同模型对 CLAUDE.md 内容的遵循程度可能存在差异。
此外,这份规范偏向于"保守谨慎"的编程风格,在面对简单重复性任务时可能显得有些过度谨慎,速度上不如完全放开的 AI。规范本身也承认这一 trade-off。
另外值得注意的是,这是一个作者(forrestchang)基于 Karpathy 的公开推文总结而成的个人项目,并非 Karpathy 本人创建和维护——项目名称中的"Karpathy"来自灵感来源,而非官方背书。
这个项目之所以能在短时间内获得超过14万星,背后反映的是整个 AI 编程领域的范式转变。
2023-2024年,行业追求的是"让 AI 写更多代码";而2025年开始,社区逐渐意识到:AI 编程的瓶颈不在于能力,而在于行为模式。一个过度主动、过度工程的 AI 编程助手,可能比一个"保守但精准"的助手更有害。
Karpathy 的观察 + forrestchang 的产品化,代表了一种新兴的"AI 编程最佳实践"运动:不追求 AI 做什么都最快最全,而是让 AI 在每一步都更准确、更可预测。
如果你经常使用 Claude Code、Cursor 或类似 AI 编程工具,这个项目值得一试——它可能不会让 AI 写代码更快,但会让 AI 写出来的代码更符合你的预期。