Skip to content

Commit b0d0959

Browse files
committed
feat: add karpathy guideline
1 parent 3e685dd commit b0d0959

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# AI 写代码总爱瞎折腾?Karpathy 说这是因为你没教对
2+
3+
不知道大家有没有这种经历:你让 AI 助手改个 bug,结果打开 diff 一看——整份文件都被改了一遍。
4+
5+
你让它加个按钮,它顺手给你重构了整个组件;你让它修个 bug,它把隔壁模块的注释都改了;最绝的是,你让它写个简单的验证逻辑,它给你整出了一套"可扩展、可配置、支持未来 10 年需求"的 1000 行架构。
6+
7+
别急,这事儿不光是你一个人头疼。
8+
9+
最近 Andrej Karpathy 发了一条推文,直接把 LLM 写代码的那些毛病扒了个底朝天。
10+
11+
如果你对 AI 领域稍有关注,应该听过 Karpathy 的名字——OpenAI 创始成员之一,前 Tesla AI 高级总监,当年 Autopilot 就是他在带队。斯坦福博士,著名的 CS231n 深度学习课程也是他写的。总之,这人说话是有分量的。
12+
13+
他指出的问题,说难听点,咱们平时用的 AI 助手基本占全了:
14+
15+
**擅自做假设** —— 你说"加个用户字段",它默认你要加到数据库、改 API、更新前端,一整套流程给你安排得明明白白,但你其实只想加个临时的内存变量。
16+
17+
**不管理困惑** —— 遇到模糊需求时,它不问,直接选一个理解往下干,等到写完了你才发现方向完全错了。
18+
19+
**过度复杂化** —— 100 行能解决的事,它能给你写出 1000 行,抽象、配置、错误处理一应俱全,看着专业,维护的时候直接想砸键盘。
20+
21+
**乱改不相干的代码** —— 修一个 bug,顺便把整个文件的格式、注释、变量名都改了一遍,git diff 一眼望不到头。
22+
23+
翻译成人话就是:AI 太"聪明"了,聪明到不知道什么时候该闭嘴。
24+
25+
但话说回来,这事儿也不能全怪 AI。毕竟,你让它写代码,但你没告诉它"什么时候该停下来",它就默认"永远别停"。
26+
27+
Karpathy 给出的解决方案很有意思——不是训练更好的模型,而是给模型一套"行为准则"。有人把这套准则做成了 Claude Code 插件,四条原则,直击痛点:
28+
29+
**第一,思考优先。**
30+
别瞎猜,搞不清楚就问。遇到有歧义的需求,停下来,问清楚再动手。
31+
32+
**第二,简单至上。**
33+
最小代码解决问题,别瞎加功能。如果能用 50 行解决,就不要写 200 行。
34+
35+
**第三,精准修改。**
36+
只改必须改的,别顺手"优化"。你让它改哪个函数,它就改哪个函数,旁边的格式、注释、无关代码,看都不要看。
37+
38+
**第四,目标驱动。**
39+
明确成功标准,写测试先写后实现。不是"让它去干",而是"给它一个目标,然后让它自己验证有没有达成"。
40+
41+
使用起来也简单得离谱。在 Claude Code 里敲两行命令:
42+
43+
```
44+
/plugin marketplace add forrestchang/andrej-karpathy-skills
45+
/plugin install andrej-karpathy-skills@karpathy-skills
46+
```
47+
48+
完事。
49+
50+
效果呢?说"史诗级提升"可能有点夸张,但至少,你的 PR 不会再像车祸现场了。diff 里只有你真正要改的东西,没有 AI 自作主张的"优化";代码不会因为过度复杂化需要重写;有问题,AI 会在写代码之前问你,而不是写错了你再改。
51+
52+
虽然这些点,咱平时也没少吐槽,但仔细想想,Karpathy 的洞察其实挺有意思的——他没说"我们要更大的模型"或"更好的训练数据",他说的是"我们要教模型什么时候该停手"。
53+
54+
这或许才是 AI 编程真正的关键。不是让 AI 更聪明,而是让 AI 更"懂事"。

0 commit comments

Comments
 (0)