andrej-karpathy-skills 深度拆解:4 条行为准则如何改掉 LLM「闷头开干」的毛病
【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills
让编码助手「修一下这个 bug」,diff 打开后除了修问题的两行,还多出引号风格被统一、类型注解被加上、一行注释被删掉——这是 LLM 辅助编码的日常。andrej-karpathy-skills 就是一个单文件 CLAUDE.md 行为准则,源自 Karpathy 对 LLM 编码弊端的观察,用 4 条原则约束 AI 助手的编码行为。
🔍 ① 它到底在解什么问题
- 静默假设。你说「导出用户数据」,它直接导出全部用户、全部字段。根因:模型遇到歧义时自己挑一种解释继续执行,不寻求澄清(README 引 Karpathy 原话:模型会「代你做错误假设,然后不假思索地执行」)。
- 过度设计。算一个折扣,返回抽象类 + 策略模式 + 配置对象约 150 行。根因:习惯性添加没人要的「灵活性」「可配置性」。
- 顺手重构。修一个 bug,同时「改进」相邻代码、改注释、加 docstring。根因:把对任务无关的代码清理也当成任务的一部分(README 引述「even if orthogonal to the task」)。
⚙️ ② 四条核心机制拆解
项目本体就是 CLAUDE.md 里的四节原则,每一条都是一种「行为链」约束:
编码前思考:管「动手之前」
它先让模型在编码前显式陈述假设;存在多种解释时全部列出并提问;困惑时停下并说明哪里不清楚。
- ❌ 常规:「让搜索变快」→ 一次性上缓存、索引、异步,约 200 行
- ✅ 项目做法:先列出 3 种解释(降响应时间 / 提并发 / 优化感知体验)及各自成本,再问要哪种(EXAMPLES.md 第 1 节)
- 出处:CLAUDE.md 原文 "State your assumptions explicitly. If uncertain, ask."
简洁优先:给代码量设上限
它先限定「只写解决问题的最小代码」,写完再自检一次:「资深工程师会认为这过度复杂吗?」会,就重写。
- ❌ 常规:单个折扣计算写 150 行(抽象类、策略、配置对象)
- ✅ 项目做法:3 行单函数;真出现多种折扣类型的需求时再重构(EXAMPLES.md 第 2 节)
- 出处:CLAUDE.md 原文 "If you write 200 lines and it could be 50, rewrite it."
精准修改:每行改动可追溯
它要求改现有代码时先「匹配现有风格」;只删自己改动造成的孤儿代码(导入、变量);发现无关死代码「提一下,别删」。
- ❌ 常规:修空邮件 bug 时顺手统一引号、加注解、重写注释,diff 膨胀 20 多行
- ✅ 项目做法:只改与 bug 直接相关的两行(EXAMPLES.md 第 3 节)
- 出处:CLAUDE.md 原文 "Every changed line should trace directly to the user's request."
目标驱动执行:把指令变成可验证目标
它先把指令式任务翻译成可验证标准,多步任务列「步骤 → 验证」计划,然后可独立循环直到通过。
- ❌ 常规:「我会审查代码并做改进」——没有终止条件,需要人全程盯
- ✅ 项目做法:「加验证」→「写一个对无效输入失败的测试,然后让它通过」;限速这类多步任务拆成每步可独立验证、可部署(EXAMPLES.md 第 4 节)
- 出处:CLAUDE.md 原文 "Define success criteria. Loop until verified."
📊 ③ 效果对照
| 维度 | 不用准则 | 用准则后 |
|---|---|---|
| diff 内容 | 含未要求的格式与重构 | 只有请求的改动 |
| 首次代码 | 倾向过度设计,需返工 | 首次即最小实现 |
| 澄清问题 | 出事后才问 | 实现前就提出 |
| 多步任务 | 300 行一次性大提交 | 每步可独立验证 |
依据为 README.md 的 "How to Know It's Working" 一节与 EXAMPLES.md 各案例的对照。
⚖️ ④ 适用边界
最适合:
- 修改现有代码库——「精准修改」直接兑现为更干净的 PR
- 非平凡任务、多步任务——目标驱动让模型能独立循环,减少人工盯守
- 团队协作,需要一致的 diff 与审查标准
代价与不适用:
- 项目文档明确:这些准则「偏谨慎而非速度」(caution over speed)。拼写错误、一行修复这类琐碎任务不必走完整严谨流程——「目标是减少非平凡工作中的代价高昂的错误,而不是拖慢简单任务」(Tradeoff Note 原意)。
- 机制本质是自然语言行为约束,没有运行时强制,效果依赖模型对指令的遵循程度。
🚀 ⑤ 三步上手
- 用 Claude Code 的话,在插件市场安装(推荐,所有项目可用),步骤见 README.md 的 Install 一节。
- 或不装插件,把 CLAUDE.md 拷到项目根目录,已有项目追加合并即可;需要完整仓库时
git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills。 - 用 Cursor 的,把仓库里的
.cursor/rules/karpathy-guidelines.mdc规则文件拷入目标项目,说明见 CURSOR.md。
这个项目没有让模型变聪明,它只是强制模型先说假设、少写代码、只改该改的、自己定义停止条件——四条约束换来的,是可审查的 diff 和更少的返工。
【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考