← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

Karpathy 编码代理指导原则(Karpathy Guidelines for Coding Agents)

AI/Agent 阅读原文(微信)↗

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. [步骤1] → 验证:[检查点]
  2. [步骤2] → 验证:[检查点]
  3. [步骤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)不要假设。

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)