首页 / 正文

Vibe Coding 必装:Karpathy Skills 用 4 条约束把 AI 代码写“短、准、能交付”

Mooko
发布于 2026-05-13 · 5分钟阅读
1039 浏览
0 点赞 暴击点赞!

Vibe Coding 必装:Karpathy Skills(65 行 MD,让 AI 写代码像个靠谱同事)

你用 AI 写代码有没有这种崩溃瞬间:

  • 需求没问清楚就开写,写完发现方向错了 😅
  • 一通输出看着很努力,结果代码又臭又长
  • 让它改个小 bug,它顺手把别的地方也“优化”了,然后全挂
  • 做完也不知道算不算完成,反复拉扯到深夜

Karpathy Skills 这套东西,专治这些毛病。

它火的原因也很直接:用 4 条约束把 AI 的“随性输出”拴住,让它按工程方式交付。


这玩意到底是什么?

一句话:一份写给 AI 的工作纪律

形式很朴素,甚至有点离谱——只有 65 行 Markdown。但它把 Andrej Karpathy 那套“写代码的思路”浓缩成可执行的规则。

你可以把它当成:

  • 代码搭子上岗前的“行为手册”
  • 每次对话自动附带的开发规范
  • 让模型少犯蠢的“保险丝”

AI 开发常见 4 个痛点,它用 4 条约束对着打

1)想清楚再写:不懂就问,别瞎编

很多 AI 最大的问题不是不会写,而是不确定也硬写

你真正想要的是这种节奏:

  • 先把需求问完整
  • 不确定的地方列出来
  • 关键决策让你拍板

你会明显感到:输出变慢了一点点,但返工少一大截。

建议你配合一个固定句式,让模型更老实:

“如果信息不够,先问我 3~7 个关键问题;别猜。”


2)极简至上:能用 20 行解决,就别给我 200 行

AI 很爱“堆料”:抽象层、配置层、封装层,全给你上齐。

看起来很专业,维护起来想骂人。

Karpathy Skills 的核心态度是:

  • 优先用最少代码解决问题
  • 先写清晰的小实现
  • 真到需要扩展时再重构

适用场景很广:写脚本、做小工具、改一个 API、修一个 UI 逻辑……

你会得到那种“能跑、易懂、好改”的代码,而不是“像框架作者写的炫技稿”。


3)精准修改:只动该动的,不碰需求外的代码

这条太关键了。

你让 AI 改一个函数,它顺便把文件格式化、变量名全改了、目录结构也“顺手整理”。

然后 Git diff 一眼看过去:全是红绿,根本没法 review。

Karpathy Skills 把它掰回来:

  • 改动范围要受控
  • 不相关的地方别碰
  • 需要大改时要提前说明原因,并征得同意

你会发现 PR 更干净,合并也更快。


4)目标导向:每个任务都要有验收标准

最容易无限拉扯的就是这类对话:

“好像差点意思,你再优化一下。”

优化到天荒地老。

Karpathy Skills 要求模型在动手前就把“完成”的定义写出来,最好是可验证的。

比如:

  • “新增接口返回字段 xxx,并补 2 个单测覆盖异常分支”
  • “点击按钮后 300ms 内弹出 toast,失败时展示错误码”
  • “修复 bug:复现步骤 A/B/C 下不再报错,并加回归测试”

有了验收标准,你就能一句话收工:

“满足这 3 条就合并。”


安装:两行命令搞定

把插件装上(按你提供的命令原样执行):

/plugin marketplace add forrestchang/andrej-karpathy-skills
/plugin install andrej-karpathy-skills@karpathy-skills

装完后建议你做一件事:

  • 在常用 IDE/Agent 里确认它是“默认启用”状态
  • 尝试开一个新对话,让它按约束来工作(下面有测试脚本)

上手用法:给你一套“对话模板”,直接复制

你可以把下面这段当成每次开工的开场白(特别适合 vibe coding):

我要做一件事:<一句话描述>
约束:
- 信息不够就问我问题,别猜
- 尽量用最少代码完成
- 只改我指定范围内的文件/函数
- 先写验收标准(可验证),我确认后再写代码
当前上下文:
- 语言/框架:
- 相关文件:
- 现状:

你会发现 AI 的工作方式变得很“像人”:先对齐目标,再动手。


示例:修一个真实一点的需求(你能直接照抄)

场景:你有个 Node/Express 接口很慢,想加缓存,但不想引入复杂中间件。

你对 AI 说:

我要做一件事:给 GET /products 增加 10 秒内存缓存
只允许改动:routes/products.ts
验收标准:
1) 连续请求 10 秒内第二次开始响应时间明显降低(你用 console.time 打点即可)
2) 10 秒后缓存失效,数据会重新拉取
3) 出错时不写入缓存
信息不够就问我,别猜。先给方案和你要问我的问题。

理想的反馈应该是:

  • 先问:数据是否跟用户/权限相关?缓存 key 怎么区分?
  • 提方案:最小实现就是模块内 Map + timestamp
  • 明确改动范围:只改 routes/products.ts
  • 再给出短小清晰的代码 diff

这就是它的价值:少走弯路 + 代码干净 + 你掌控节奏


避坑清单(踩过的人都懂)

  • 你不写“只改哪些文件”,AI 很可能顺手改一堆。把范围钉死。
  • 你不写验收标准,就会陷入无限“再优化一下”。先把“完成”说清。
  • 你给的信息太少,还要求它直接写代码,结果大概率猜错。让它先提问。
  • 别一上来就要完美架构。小功能用极简实现,能跑能交付更重要。

快速自测:装完是否生效

随便丢一个小任务,看看模型会不会做这两件事:

  1. 提问补信息
  2. 给验收标准

测试口令:

我要把一个 Python 脚本改成支持读取 .env 配置。
先问我必要问题,然后写验收标准。我确认后你再动代码。

它如果直接开始贴代码,说明你的工作流里约束没吃进去。回去检查插件是否启用,或把约束写进系统提示/项目规则里。


你会得到什么变化?

  • 代码更短,更像“能维护的手写代码”
  • 改动更小,diff 更好 review
  • 任务结束更利索,不会拖到半夜

vibe coding 要的不是“写得快”,是“写完能交”。Karpathy Skills 就是干这个的。

OpenClaw
OpenClaw
木瓜AI支持养龙虾啦
木瓜AI龙虾专供API,限时领取免费tokens
可在 OpenClaw接入全球顶尖AI大模型
立即领取