4条铁律:Karpathy的Claude Code插件实战指南

0 阅读5分钟

这些坑,你肯定踩过

用AI写代码这么久,你是不是也经常遇到这些让人血压飙升的情况:

  • 让它加个简单功能,结果整出一堆花里胡哨的抽象,代码膨胀了10倍
  • 明明只改一行代码,它把整个文件的注释和格式都改了,review时满屏都是diff
  • 需求没说清楚的地方,它不问你,直接瞎猜,做出来完全不是你想要的
  • 代码看起来没问题,一运行就发现各种过度设计带来的bug

如果你也这样,那今天这篇文章适合你。

这些问题的解法,Andrej Karpathy早就想明白了。

GitHub地址:

github.com/forrestchan…


Karpathy是谁?他发现了什么?

Andrej Karpathy,前特斯拉AI总监、OpenAI创始成员,现在在搞教育。他在AI圈的地位,大概相当于篮球界的乔丹。

他之前在社交媒体上吐槽过LLM编程的问题,每一条都戳中痛点。总结起来就三个:

问题一:盲目假设,不懂就问

AI会自作主张地做错误假设,然后一路走到黑。它不会说"这里我不确定",而是直接选一个它觉得对的方案开干。等你发现不对,它已经写了100行代码。

问题二:过度设计,代码臃肿

AI特别喜欢把代码复杂化,过度使用抽象,不清理无用代码。本来100行能搞定的事,它非要写1000行,还美其名曰"更好的架构"。

问题三:副作用太大,乱改代码

AI有时会顺手改掉它"觉得"有问题但实际上没问题的代码。注释、格式、甚至没让你动的功能,都可能被它"优化"了。

这三个问题,用过AI写代码的人都懂。

解决方案来了——四大原则

最近有个开发者把Karpathy的这些经验做成了一个Claude Code插件,叫andrej-karpathy-skills

这个插件的核心,就是通过一个CLAUDE.md文件,给AI设定了四条必须遵守的铁律。

原则一:思考先行(Think Before Coding)

核心要求:不假设,不隐藏困惑,展示权衡。

具体怎么做:

  • 明确陈述假设——如果不确定,就提问而不是猜测
  • 展示多种解释——当存在歧义时,不要默默选一个
  • 必要时提出反对——如果有更简单的方法,就说出来
  • 困惑时停止——指出不清楚的地方并要求澄清

说人话:让AI先想明白再动手,别急着写代码。遇到不确定的地方,先问清楚,别瞎猜。

原则二:简洁至上(Simplicity First)

核心要求:用最少的代码解决问题,不做任何投机的事情。

具体约束:

  • 不添加超出要求的功能
  • 不为单次使用的代码做抽象
  • 不添加未被要求的"灵活性"或"可配置性"
  • 不为不可能出现的场景做错误处理
  • 如果200行可以简化为50行,那就重写

说人话:别过度设计,够用就行。AI特别喜欢炫技,你要按住它。

原则三:精准改动(Surgical Changes)

核心要求:只碰必须碰的,只清理你自己制造的混乱。

具体规则:

  • 不要"改进"相邻的代码、注释或格式
  • 不要重构没有坏掉的东西
  • 匹配现有的风格,即使你会用不同的方式
  • 如果注意到不相关的死代码,提及它——但不要删除它

测试标准:每一行改动都应该直接追溯到用户的需求。

说人话:让你改A,就别动B。AI的手太长了,得给它戴个"紧箍咒"。

原则四:目标驱动(Goal-Driven Execution)

核心要求:定义成功标准,循环直到验证通过。

把命令式任务转化为可验证的目标:

不要说应该说
"添加验证""为无效输入编写测试,然后让它们通过"
"修复这个bug""编写一个能复现它的测试,然后让它通过"
"重构X""确保测试在重构前后都通过"

对于多步骤任务,陈述一个简要计划:

  1. [步骤] → 验证:[检查]
  2. [步骤] → 验证:[检查]
  3. [步骤] → 验证:[检查]

正如Karpathy所说:"LLMs异常擅长循环直到它们满足特定目标……不要告诉它做什么,给它成功标准,然后看着它去做。"

说人话:给AI定个目标,让它自己想办法达成,而不是一步步教它怎么做。


怎么用?两种方式

这个插件用起来很简单,有两种方式:

方式一:Claude Code插件(推荐)

在Claude Code中,先添加插件市场:

/plugin marketplace add forrestchang/andrej-karpathy-skills

然后安装插件:

/plugin install andrej-karpathy-skills@karpathy-skills

这样就把指南安装为Claude Code插件,在你的所有项目中都可用。

方式二: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

怎么知道它在起作用?

用了这套原则后,你会发现这些变化:

diff中更少的不必要改动——只出现被要求的改动,不会满屏都是无关的修改

更少因过度复杂导致的重写——代码第一次就很简单,不用返工

实现前先提出澄清问题——AI会先问清楚需求,而不是在犯错之后

干净、最小化的PR——没有顺便的重构,review起来轻松多了


结语:给AI套上"紧箍咒"

用AI写代码,就像雇了一个特别聪明但有点"多动症"的实习生。它能力强,但需要你给它设定明确的边界。

Karpathy的这四条原则,就是给AI套的"紧箍咒"。不是限制它的能力,而是让它的能力用在正确的地方。

试试这个插件,让你的AI助手从"猪队友"变成"神助攻"。


关注

如果这篇文章对你有帮助,欢迎点赞、在看、转发三连!你的支持是我持续创作的动力。

想第一时间获取更多AI编程技巧?关注我的公众号,一起写出更好的代码!