Andrej Karpathy 简介Andrej Karpathy 是人工智能领域最具影响力的研究者和工程师之一。他曾任特斯拉 AI 总监(负责 Autopilot 视觉系统和自动驾驶 AI),也是 OpenAI 的创始成员之一(参与 GPT 早期开发),目前专注于个人 AI 项目和教育内容创作。他在深度学习、计算机视觉、大语言模型应用等方面有极深造诣,尤其以"LLM 作为软件工程师"的视角闻名。他的 X(Twitter)账号
\@karpathy 经常分享关于如何更好地使用和调教 AI 编码代理(coding agents)的实战经验和心得。这份 Karpathy Guidelines 是他近期(2026 年初)公开分享的行为准则清单,专门用来指导 LLM(如 Claude、GPT 等)在写代码、改代码时避免常见错误。核心思想是:写得少、改得准、验证得严、沟通得清,偏向谨慎而非追求速度,非常适合当前 AI 辅助编程的实际场景。Karpathy 指导原则(中文版)行为指导原则:用于减少 LLM 编码常见错误。请将这些原则应用到所有编码任务中。权衡:这些指导原则倾向于谨慎而非速度。对于非常琐碎的任务,请自行判断是否严格遵守。1. 先思考再写代码(Think Before Coding)不要假设。不要隐藏困惑。要把权衡摆到台面上。在开始实现之前:
- 明确陈述你的假设。如果不确定,就问。
- 如果存在多种可能的理解,把它们都列出来——不要默默选择一个。
- 如果有更简单的做法,就说出来。在有充分理由时,勇敢地推回(push back)。
-
如果有任何地方不清楚,立即停下来。明确指出哪里困惑,然后询问。
-
优先简单(Simplicity First)写出能解决问题的最小代码。不要加入任何推测性的东西。
-
不要添加需求之外的功能。
- 不要为只用一次的代码做抽象。
- 不要做没人要求的"灵活性"或"可配置性"。
- 不要为不可能发生的场景写错误处理。
- 如果你写了 200 行,而本来可以用 50 行,那就重写。
问自己:"一个资深工程师看到这个,会不会觉得过于复杂?" 如果会,就简化。3. 外科手术式修改(Surgical Changes)只改你必须改的地方。只清理你自己制造的混乱。在修改已有代码时:
- 不要"顺手改进"旁边的代码、注释或格式。
- 不要重构没坏的地方。
- 尽量匹配现有代码风格,即使你个人会写得不一样。
- 如果发现无关的死代码(dead code),可以提一句,但不要删除。
当你的修改产生了新的"孤儿代码"时:
- 删除因为你的改动而变得无用的 import、变量、函数。
- 除非被明确要求,否则不要删除原本就存在的死代码。
检验标准:你改动的每一行代码,都应该能直接追溯到用户的请求。4. 以目标驱动执行(Goal-Driven Execution)定义明确的成功标准。不断循环直到验证通过。把任务转化为可验证的目标:
- "添加校验" → "编写针对无效输入的测试用例,然后让它们通过"
- "修复 bug" → "写一个能重现该 bug 的测试,然后让它通过"
- "重构 X" → "确保重构前后测试都能通过"
对于多步骤任务,写一个简短的计划:
- [步骤1] → 验证:[检查点]
- [步骤2] → 验证:[检查点]
- [步骤3] → 验证:[检查点]
强成功标准能让你独立循环完成任务。 弱成功标准(比如"让它能跑")则需要不断找人澄清。这份清单已成为很多开发者在使用 AI 写代码时的"黄金 checklist",强烈推荐在实际项目中反复对照使用。
常见问题(FAQ)
Q1:这篇文章主要讲什么? Andrej Karpathy 简介Andrej Karpathy 是人工智能领域最具影响力的研究者和工程师之一。他曾任特斯拉 AI 总监(负责 Autopilot 视觉系统和自动驾驶 AI),也是 OpenAI 的创始成员之一(参与 GPT 早期开发),目前专注于个人 AI 项目和教育内容创作。 Q2:还有哪些关键事实? 3. 外科手术式修改(Surgical Changes)只改你必须改的地方。 Q3:有哪些值得注意的细节? 这份 Karpathy Guidelines 是他近期(2026 年初)公开分享的行为准则清单,专门用来指导 LLM(如 Claude、GPT 等)在写代码、改代码时避免常见错误。 Q4:核心结论是什么? 1. 先思考再写代码(Think Before Coding)不要假设。