
字节笔记本
2026年10月5日 · 约 9 分钟读完
Karpathy 十条军规:让 Claude 从码农变搭档
Karpathy 加入 Anthropic 才五周,他团队里的人把他真正在用的 CLAUDE.md 发了出来,全网随即炸了:2800+ 赞、7400+ 书签、60 万浏览。
这不是之前 GitHub 上 18.3 万 Star 的那个 4 条社区版,而是一份全新的内部版十条军规,比社区版多了整整 6 条,全是他在 Anthropic 内部贴身实战 Claude 之后攒出来的精华。
更大的事也在同时发生:Claude Code 创始人 Boris Cherny 说了句让全网安静的话,「我不再给 Claude 写提示词了。循环替我写。」十条军规和循环工程,正好是理解这句话的两把钥匙。

一、泄露了什么
这次流传出来的文件,不是 GitHub 上那个 18.3 万 Star 的 karpathy-skills 仓库(4 条规则、65 行文本),而是 Karpathy 入职 Anthropic 后,在内部实战中不断迭代的真实配置文件。它被排版成学术论文的格式,标题叫:
CLAUDE.md: Field Notes on Getting a Language Model to Write Code You Will Not Rewrite
(CLAUDE.md:让语言模型写出你不会重写的代码的实战笔记)
副标题更妙:A Short List of Rules, Earned by Watching the Same Mistakes Twice,看够了同样的错误犯两遍,才攒出来的规则。
摘要一句话点明核心:模型擅长生成看起来合理的代码,但不擅长发现「看起来合理」跟「真的对」之间的差距,这份纪律只能从过程中来。
补充一个背景:CLAUDE.md 是 Claude Code 每次启动都会读取的项目说明文件,相当于给 AI 立的规矩。规矩立得好不好,直接决定它在你的代码库里是帮手还是拆迁队。Karpathy 这份的特殊之处在于,它不是一次性的提示词,而是跟着真实项目迭代出来的纪律清单。
二、前四条:社区版的底子
前四条在社区版里就有,这次是精炼重写。
1. 先读再写(Read Before You Code)
模型写出烂代码最大的原因,是它根本没读你的代码库就开始动手。先读不是扫一眼,而是去看要改的文件,把已有模式照搬,把 import 看清楚,弄明白项目实际依赖什么,而不是凭空猜。
2. 先想再敲(Think Before You Code)
搞清楚要做什么再动手。「添加认证」其实是五件不同的事:把它们列出来,说明取舍。搞不懂就停下来问,而不是用一段看着像那么回事、一跑就崩的代码糊弄。
3. 极简主义(Simplicity)
写能解决眼前问题的最少代码。测试标准是:如果某样东西被抽象出来的唯一理由是「以防万一」,那就是过度构建。
4. 精准手术(Surgical Changes)
diff 应该和任务一样小。没让碰的别碰,匹配已有代码风格,不要顺手重排格式。判断标准:你能为每一行改动找到和用户需求的直接关联吗?找不到,就撤回。
三、后六条:内部版真正的精华

5. 验证(Verification)
你觉得能跑的代码和真正能跑的代码之间,隔着一条叫「测试」的鸿沟。修 bug 时别上来就改:先写一个能稳定复现的测试用例,然后修,跑一遍测试通过才算真修好。测那些真会在用户面前炸的场景,不只是鸡毛蒜皮。
6. 目标驱动执行(Goal-Driven Execution)
整份文件的灵魂。动手前把「做完了」长什么样说清楚,而且得是能验证的:
- 反例:「加个验证」,太模糊,AI 只能自由发挥
- 正例:「用户邮箱没填或填错了,弹出明确报错,两种情况都测过」
活儿分几步的,先把计划列出来,别让 AI 闷头干了一小时,回来一看方向就是错的。
7. 调试(Debugging)
东西坏了,去查,别猜。读完整的报错和堆栈跟踪,先复现再改,一次只改一个地方。
8. 依赖管理(Dependencies)
每一个依赖都是你无法控制的永久代码。加之前先问:标准库能不能搞定?加了就说清楚为什么,让选择可见,不要悄悄塞进 manifest。
9. 沟通(Communication)
说你做了什么、为什么,不只是丢一块代码。对不确定的事要精确描述:「我不确定这个库是否支持流式传输」叫好沟通,「我觉得这应该能用」不叫。
10. 常见翻车模式(Common Failure Modes)
Karpathy 给 AI 最常见的翻车姿势起了名字,个个精准:
| 名称 | 症状 |
|---|---|
| Kitchen Sink(厨房水槽) | 让你修水龙头,它把整个厨房拆了重装 |
| Wrong Abstraction(错误抽象) | 同一段代码复制粘贴好几遍,却不知道该合并 |
| Optimistic Path(盲目乐观) | 只想一切顺利,没考虑用户输错、网络断、服务器挂 |
| Runaway Refactor(失控连锁) | 本来只改一个文件,结果像多米诺骨牌倒了十几个 |
发现自己正在犯这些错时,正确做法是立刻停手,而不是硬着头皮冲到底。
四、4 条与 10 条差在哪
社区版 4 条告诉 AI 怎么写代码:先读、先想、极简、精准。内部版 10 条补上了怎么检查自己、怎么调试、怎么沟通、怎么识别翻车,这是从「听话的码农」到「有自检能力的工程搭档」的质变。
没有这份纪律文件,循环跑得再快也只是一台高速生产 bug 的机器;有了它,循环才知道怎么在翻车前刹车。
五、更大的事:循环工程(Loop Engineering)

Boris Cherny 的原话是:「我不再给 Claude 写提示词了。循环替我写。我的工作,就是写循环。」
这不是比喻。Claude Code 已经内置了两条命令:
/goal:干到完成为止/loop:按节奏定期检查
写代码的 Claude 不给自己打分,另一个模型专门负责检查到没到目标。做完一件记下来,下次启动接着干,你睡着了,它还在跑。
Boris 的用法更极端:他让好几个 Agent 在后台永远运转,一个找架构优化点,一个找可以合并的重复代码。Claude 犯了重复错误,他就让 Claude 自己把教训写进 CLAUDE.md,修正随即传播到未来的每一次运行。
Karpathy 的十条军规,本质上就是给循环提供自检标准。
六、三次范式跃迁
| 阶段 | 范式 | 人的角色 |
|---|---|---|
| 1.0 | 提示词工程 | 一句一句跟 AI 对话的「操作员」 |
| 2.0 | 上下文工程 | 管理上下文的「编辑者」 |
| 3.0 | 循环工程 | 定好目标、搭好系统、放手让 AI 自己跑的「设计者」 |
人类正在从操作员变成设计者:定义约束、设计系统,在更高维度上驾驭 AI。
七、写在最后
Karpathy 的十条军规和 Boris 的循环工程,是同一枚硬币的两面:一面刻着纪律,一面刻着自动化。纪律告诉 AI 怎么检查自己,自动化让这套检查永不停歇地运转。
对普通开发者来说,这件事的门槛并不高:从给自己项目的 CLAUDE.md 写下第一条「先读再写」开始,把每次踩过的坑沉淀成规则,再逐步把可验证的目标交给循环。当 AI 足够聪明的时候,约束它的方式,比使用它的方式更重要。而那个能定义约束、设计系统、在更高维度上驾驭 AI 的人,才是下一个时代真正的稀缺资源。
参考来源:本文基于公开的 X 帖子与新智元等媒体报道整理,参考 GitHub multica-ai/andrej-karpathy-skills 与 新浪财经/新智元报道。



