乐于分享
好东西不私藏

为什么你的 AI 助手总是"过度热情"?karpathy 的 4 条铁律让代码质量飙升

为什么你的 AI 助手总是"过度热情"?karpathy 的 4 条铁律让代码质量飙升

为什么你的 AI 助手总是”过度热情”?karpathy 的 4 条铁律让代码质量飙升

你可能也遇到过这种情况——

让 AI 帮你写个”简单的登录功能”,它噼里啪啦一顿输出,结果给你整了一个包含微服务架构、消息队列、权限网关的”企业级解决方案”。

代码堆了 2000 行,真正需要的登录逻辑埋在里面,找都找不到。

这不是你的问题。是 AI 的”性格缺陷”。


01 发现者:Andrej Karpathy

这个人什么来头?

OpenAI 创始团队成员、特斯拉 Autopilot 负责人、李飞飞的学生——妥妥的 AI 圈顶级大佬。

他最近发了条推文,直指 LLM 编程的核心问题:

“模型会静默做出假设,不验证、不提问、不确认。它们不管理自己的困惑,不呈现权衡,不在该拒绝时说 NO。”

然后他列举了几个具体症状:

  • 过度热情:明明 100 行代码能搞定,偏要给你整出个”可扩展架构”
  • 擅自做主:遇到模糊的地方不问你,直接选一个方向闷头干
  • 误删代码:改一个函数,把旁边不相关的代码也一起”优化”了
  • 制造混乱:留下一堆死代码、废弃的 import、永远用不到的”灵活配置”

扎心了吗?


02 4 条铁律,对症下药

这位大佬的观点被一个叫 forrestchang 的开发者做成了一个 CLAUDE.md 文件,专门用来”调教”AI 编程助手。

核心就是 4 条原则:

铁律一:Think Before Coding——别猜,有问题先问

AI 最常见的毛病是静默假设

你说”加个用户验证”,它可能默认你要 JWT,实际上你想的是最简单的 Session。

这条铁律要求 AI:

  • 说出自己的假设:不确定就问,别猜
  • 列出多个方案:有歧义时呈现选项,不静默选一个
  • 有疑虑就说:发现更简单的方案,要主动提出来
  • 困惑就停下:搞不清楚的地方,不要糊弄过去

效果: 减少返工,避免”做完了才发现不是你要的”。


铁律二:Simplicity First——先做减法,再做加法

过度设计是 AI 的重灾区。

这条铁律要求:

  • 没有明确要求的功能,一个都不要加
  • 只用一次的代码,不要抽象成通用函数
  • 没有要求的”灵活性”和”可配置性”,不要加
  • 不可能发生的错误情况,不要做防御性处理

有个自测标准:如果资深工程师说这过度设计了,那就简化。

效果: 代码量骤降,可维护性飙升。


铁律三:Surgical Changes——精准手术,只切该切的

AI 还有一个毛病——喜欢”顺手优化”。

你让它改个登录逻辑,它顺带把整个项目的代码格式都调整了一遍。

这条铁律要求:

  • 只改必须改的,不要动旁边的代码
  • 不破坏的东西不要去”重构”
  • 沿用现有风格,而不是按自己喜好重写
  • 自己改动产生的垃圾要清理,但别动原本就有的”死代码”

效果: Diff 干净,改动可追溯,代码审查不再头疼。


铁律四:Goal-Driven Execution——目标驱动,验证闭环

AI 擅长循环迭代,弱点是不知道什么时候算完成

这条铁律要求把:

  • “加个验证” → “先写测试,确保无效输入会报错,再实现功能”
  • “修个 bug” → “先写测试复现问题,再修复”
  • “重构 X” → “确保重构前后测试都通过”

多步任务要分解成:步骤 → 验证点,每个步骤完成后检查。

效果: AI 能独立工作,不需要你一遍遍检查进度。


03 怎么用?3 步上手

这个项目支持 Claude Code 插件模式,安装非常简单:

第一步:安装插件

在 Claude Code 里执行:

/plugin marketplace add forrestchang/andrej-karpathy-skills

第二步:安装技能

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

第三步:开始对话

现在 AI 会自动遵循这 4 条铁律工作。

如果你用 Cursor,也支持。下载 .cursor/rules 配置文件即可。


04 效果如何?

使用一段时间后,你会注意到几个明显变化:

Diff 更干净 —— 只会出现你要求改动的代码
过度设计减少 —— 代码第一次就能写到合适的复杂度
问题出现在实现前 —— 有疑问会先问,不会在错误方向走很远
PR 更轻 —— 没有”顺手优化”的垃圾改动


05 适合你吗?

这套方法偏向谨慎而非速度

对于简单任务(改个 typo、加个明显的一行代码),不需要走完整流程,用判断力就行。

但如果是复杂的非平凡工作,这套方法能显著减少代价高昂的返工。


简单说:这不是让你变慢,是让 AI 少做无用功。

把省下来的时间,用来思考真正重要的事。


参考资料:

  • GitHub:forrestchang/andrej-karpathy-skills
  • Andrej Karpathy 原始推文

💬 你用过 AI 编程助手吗?有没有被它的”过度热情”坑过?留言聊聊。