前言
最近在 Twitter 上看到 Andrej Karpathy 的一条推文,简直说出了所有用 AI 写代码的人的心声:
"模型会代你做错误假设,然后不假思索地执行。它们不管理自身的困惑,不寻求澄清,不呈现矛盾..."
相信很多人都有这样的经历:让 AI 写代码,它噼里啪啦写了一堆,看起来很完美,结果一运行全是坑。明明 100 行能搞定的事情,非要写成 1000 行的臃肿架构。
直到我发现了这个项目 —— andrej-karpathy-skills,一个专门解决这些问题的 Claude Code 插件。
为什么 AI 写代码容易踩坑?
Karpathy 总结了几个核心问题:
- 想当然
:AI 会默默做错误假设,然后直接执行 - 过度设计
:喜欢堆砌抽象概念,把简单问题复杂化 - 手欠
:经常改动或删除自己不理解的代码和注释 - 不验证
:做完就完了,不管结果对不对
这些问题真的太戳心了!每次用 AI 写完代码,我都要花大量时间去 debug,有时候还不如自己写。
四个原则,让 AI 变靠谱
这个项目提出了四个核心原则,专门针对这些问题:
1️⃣ 编码前先思考
AI 最喜欢做的事情就是瞎猜。这个原则强制它:
明确说明假设,如果不确定就问 遇到歧义时,给出多种解释,不要默默选择 困惑时停下来,要求澄清
简单说就是:先想清楚再动手!
2️⃣ 简洁优先
对抗 AI 的过度工程倾向:
不要添加要求之外的功能 不要为一次性代码创建抽象 如果 200 行能写成 50 行,重写它
检验标准:资深工程师会觉得这过于复杂吗? 如果是,简化!
3️⃣ 精准修改
这个太重要了!AI 经常手欠改一些无关的代码。这个原则要求:
只碰必须碰的代码 不要"改进"相邻的代码、注释或格式 不要重构没坏的东西 匹配现有风格,即使你不喜欢
检验标准:每一行修改都能直接追溯到用户的请求。
4️⃣ 目标驱动执行
把模糊的指令变成可验证的目标:
"添加验证" → "为无效输入编写测试,然后让它们通过" "修复 bug" → "编写重现 bug 的测试,然后让它通过"
这样 AI 就能自己循环执行,直到达成目标。
怎么用?
方式一:Claude Code 插件(推荐)
在 Claude Code 中执行两条命令就行:
/plugin marketplace add forrestchang/andrej-karpathy-skills/plugin install andrej-karpathy-skills@karpathy-skills安装后,这些指南会自动应用到你所有的项目中。
方式二:Trae 编辑器规则
如果你使用 Trae 编辑器,可以直接将 CLAUDE.md 的内容添加到你的规则中:
在 Trae 中创建或编辑你的规则文件(通常在 .trae/rules/目录下)访问 CLAUDE.md 获取完整内容 将内容复制到你的规则文件中
这样 Trae 的 AI 助手也会遵循这四个原则来帮你写代码。
方式三:按项目配置
在项目根目录创建 CLAUDE.md 文件:
1curl-o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md
这种方式适合需要针对特定项目定制规则的场景。
我的使用体验
用了几天之后,最明显的感受是:
- AI 变"谨慎"了
:遇到不确定的地方会主动问,不会瞎猜 - 代码简洁了
:不再有一堆没用的抽象,该多少行就多少行 - 改动精准了
:diff 里只有我要求的改动,没有乱七八糟的"顺手改进" - 验证意识强了
:写完代码会自己跑测试,直到通过
总结
这个插件真的是用 AI 写代码的神器!它不是让 AI 写得更快,而是让 AI 写得更准、更稳、更符合人类工程师的思维方式。
四个原则看似简单,但直击 AI 编码的痛点。如果你经常用 Claude Code 写代码,强烈推荐试试这个插件,会让你的开发体验提升一个档次!
互动时间
你平时用 AI 写代码时遇到过哪些坑?欢迎在评论区分享!如果觉得这篇文章对你有帮助,别忘了点赞、在看、转发三连支持一下~
项目地址:https://github.com/forrestchang/andrej-karpathy-skills
夜雨聆风