Andrej Karpathy Skills 详解:源自 Karpathy 观察的 Claude Code 行为准则
Andrej Karpathy skills 是什么?一个改进 Claude Code 行为的 CLAUDE.md 准则文件,源自 Karpathy 对 LLM 写代码常见毛病的观察。四大原则、逐字安装命令与常见问题,一文讲清。
最近更新: 2026-10-31
Andrej Karpathy skills 是什么?
"Andrej Karpathy skills" 是这个项目的流行叫法,README 的正式标题是 Karpathy-Inspired Claude Code Guidelines:一个单独的 CLAUDE.md 文件,用来改善 Claude Code 的行为,内容提炼自 Andrej Karpathy 公开发表的、关于 LLM 编码代理实际会出哪些问题的观察。这个项目踩中了几乎所有开发者的痛点 —— 仓库已经收获超过 22.7 万 GitHub star,足以说明有多少人认出了它描述的那些失败模式。
Karpathy 的帖子(README 里附了链接)点名了三类反复出现的问题:
"模型会替你做出错误的假设,然后一路跑下去,从不回头检查。它们不管住自己的困惑,不主动澄清,不暴露矛盾,不摆出取舍,该反驳的时候也不反驳。"
"它们特别喜欢把代码和 API 复杂化,堆砌抽象,不清理死代码……本该 100 行的活,整出一个 1000 行的臃肿工程。"
"它们有时仍然会在副作用里改动或删除自己并没有真正理解的注释和代码,哪怕这些内容与任务毫无关系。"
需要说清楚的一点:项目本身是社区做的,Karpathy 本人并没有发布它 —— README 作者(同时在做 Multica,一个用于运行和管理编码代理、支持可复用技能的开源平台)把 Karpathy 的公开观察整理成了一套可以直接落地的准则。项目采用 MIT 许可证。
给本站读者的定位说明:这是一个 Claude Code 插件 / CLAUDE.md 文件,不是 DeepSeek Harness(dsh)原生插件。但它仍然值得你读,因为它编码的四条原则对任何 LLM 编码代理都适用 —— dsh 也一样。
它规定了哪些准则?
一个文件,四条原则,每条都直接对应上面的一种失败模式。
1. 先想清楚再写代码(Think Before Coding)
不要臆测,不要藏起困惑,要把取舍摆上桌面。
- 显式说出假设 —— 没把握就问,别瞎猜
- 存在歧义时给出多种解读 —— 不要默默替用户选一个
- 该反驳时就反驳 —— 如果存在更简单的方案,要说出来
- 困惑了就停下 —— 说清楚哪里不明白,请求澄清
2. 简单优先(Simplicity First)
用解决问题的最少代码,不写任何投机性的东西。
- 不加没被要求的功能
- 不为一次性代码做抽象
- 不加没人要的"灵活性"和"可配置性"
- 不为不可能发生的场景写错误处理
- 如果 200 行能压到 50 行,就重写
README 给出的检验标准:一位资深工程师会不会觉得这段代码过度复杂?会,就简化。
3. 外科手术式修改(Surgical Changes)
只动你必须动的,只清理你自己制造的垃圾。
- 不要顺手"改进"相邻的代码、注释或格式
- 不要重构没坏的东西
- 遵循现有风格,哪怕你会用别的写法
- 发现无关的死代码,提一句就好 —— 别删
- 只有当你的修改导致 import、变量或函数不再被使用时,才移除它们
检验标准:每一行改动都应该能直接追溯到用户的请求。
4. 目标驱动执行(Goal-Driven Execution)
先定义成功标准,循环验证直到通过。 命令式任务被转换成可验证的目标:"加个校验"变成"为非法输入写测试,然后让测试通过";"修这个 bug"变成"写一个能复现它的测试,然后让测试通过";"重构 X"变成"保证重构前后测试都通过"。多步任务则先给出简要计划:
1. [步骤] → 验证:[检查项]
2. [步骤] → 验证:[检查项]
3. [步骤] → 验证:[检查项]
README 归结给 Karpathy 的关键洞察是:"LLM 极其擅长围绕明确目标循环执行……别告诉它做什么,给它成功标准,然后看它跑。" 强成功标准让模型独立循环;弱标准("让它能跑起来")则需要不断澄清。
怎么判断准则在起作用?README 列了信号:diff 里没有多余改动、因过度复杂导致的返工变少、澄清问题出现在实现之前而不是犯错之后、PR 干净精简、没有顺手重构。
如何安装
方式 A:Claude Code 插件(推荐)。 在 Claude Code 内先添加 marketplace:
/plugin marketplace add forrestchang/andrej-karpathy-skills
然后安装插件:
/plugin install andrej-karpathy-skills@karpathy-skills
这样准则会以 Claude Code 插件的形式安装,在你所有项目里都可用。注意安装来源:README 的命令指向的是 forrestchang/andrej-karpathy-skills 仓库。
方式 B:CLAUDE.md(按项目)。 新项目直接下载:
curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md
已有项目则追加到现有文件末尾:
echo "" >> CLAUDE.md
curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md
这套准则的设计初衷就是与项目自有指令合并使用,所以追加到现有 CLAUDE.md 是官方支持的做法 —— 你可以在下面继续加自己的项目规则,比如"使用 TypeScript strict 模式""所有 API 端点必须有测试"。用 Cursor 的话,仓库里还提交了一条 Cursor 项目规则(.cursor/rules/karpathy-guidelines.mdc),设置方法见仓库的 CURSOR.md。
必须用 Claude Code 吗?
这个项目是为 Claude Code 打造的:方式 A 以 Claude Code 插件安装,方式 B 面向的是 Claude Code 的项目指令文件 CLAUDE.md。如果你日常就用 Claude Code,装上就行。
如果你用的是其他 harness,实话实说:不装 Claude Code 也能受益,只是拿不到打包好的体验。它的本体就是一份纯 Markdown 准则,任何会读取项目指令文件的代理都能套用同一段文本 —— 把四条原则贴进你自己代理的指令文件,就已经拿到了大部分价值。Cursor 规则随仓库附带,也是同样的道理。
无论用哪个 harness,都请记住 README 的权衡说明:这套准则偏向谨慎而不是速度。琐碎任务 —— 改错字、显而易见的一行改动 —— 靠判断力即可,不必套用全部流程。它的目标是减少非琐碎工作里代价高昂的错误,而不是拖慢简单任务。
FAQ
Andrej Karpathy skills 是 Karpathy 官方出品吗? 不是。这个仓库把 Karpathy 公开发表的观察整理成准则,是社区项目,采用 MIT 许可证。README 引用了他的帖子,但他本人既没有开发也没有背书这个包。
装插件还是用 CLAUDE.md? README 推荐插件方式:全项目生效。CLAUDE.md 方式按项目生效,可以和你已有的项目规则混排 —— 想把准则限定在单个代码库时就选它。
这是 DeepSeek Harness 插件吗? 不是原生的。它以 Claude Code 插件 / CLAUDE.md 文件的形式发布,不是 dsh 插件。不过这些原则与 harness 无关 —— dsh 用户可以在自己的代理指令里采用同样的四条规则。
它会让简单任务变慢吗? README 自己回应了这一点:准则偏向谨慎而非速度,琐碎改动靠判断力即可,不必走完整流程。
Cursor 里能用吗?
可以 —— 仓库内置了一条 Cursor 项目规则 .cursor/rules/karpathy-guidelines.mdc,设置方法见其 CURSOR.md。
相关的 DeepSeek Harness 插件
Karpathy 准则是通过指令注入的纪律;它强制的很多东西,其实也能靠 harness 工具实现:
- Agent、自动化与工作流 —— 循环、哨兵、多智能体编排插件,与目标驱动执行是天然搭档。
- 插件工具 —— 插件管理器、模板和校验器,帮你的 dsh 环境保持精简、改动保持外科手术式。
- 什么是 DeepSeek Harness? —— 刚接触 dsh?从这里开始,再浏览全站目录。
