导读:你是否有过这种体验——花了大价钱订阅了 Copilot、Claude Code,写代码时 AI 也在旁边"滴滴答答"地给建议,可一周下来,代码质量还是堪忧,bug 照出,进度照拖?你不是一个人。
01 痛点:你以为 AI 在帮你写代码,其实你在帮 AI 改错
凌晨两点,你对着屏幕叹气。AI 刚刚给你生成了一段看起来"很完美"的代码——函数签名优雅,变量命名规范,甚至还贴心地加上了注释。你复制粘贴,运行,报错;再问 AI,AI 给你另一段"更完美的",再运行,再报错。
这不是 AI 不够聪明。这是你的提示词和交互策略,从一开始就挖了坑。
Andrej Karpathy——特斯拉 AI 总监、斯坦福 CS 博士、被誉为"AI 圈最会写博客的人"——也遇到了同样的问题。他在用 AI 编程的过程中,观察到了一系列反复出现的系统性失误:AI 容易过度工程化、容易忽略边界条件、容易在复杂逻辑里"幻觉"出一个看似合理但实际跑不通的解法。
这些失误不是 bug,而是使用方式的问题。Copilot 们默认你懂得怎么问问题、怎么校验结果、怎么在关键节点介入——但大多数普通开发者,并不知道这些。
02 方案:一份 CLAUDE.md,把顶级工程师的心法装进你的 AI
Karpathy 没有去 GitHub 上 star 一堆新工具,也没有发一篇长博客。他做了一件更聪明的事——写了一份 CLAUDE.md 配置文件。
CLAUDE.md 是 Anthropic 为 Claude Code 设计的一种特殊配置文件,本质上是一份"AI 使用说明书"。你把它放在项目根目录,Claude Code 每次启动时会自动读取其中的指令,从此"学会"你期望的交互方式。
Karpathy 在这份文件里浓缩了他用 AI 编程的核心原则:
他告诉 AI:不要急于写代码,先理解问题。很多程序员习惯性地一遇到需求就埋头开写,AI 也被带偏了节奏,结果写出来的代码和需求根本不在一个频道上。Karpathy 的指令让 AI 先用自然语言把问题澄清,再动手。
他告诉 AI:小步迭代,不要一口气写完整文件。AI 生成的代码一旦超过 50 行,出错的概率就会显著上升。Karpathy 的策略是把大任务拆成多个 10-20 行的小任务,每步都验证,再推进。
他还告诉 AI:主动暴露不确定性,而不是假装自己会。这是 AI 最常见的"幻觉"根源——它倾向于给出一个完整答案,即使其中某个环节它并不确定。Karpathy 的指令要求 AI 在不确定的地方明确标注,而不是含糊带过。
这不是一份技术文档。这是一位顶级工程师用无数次踩坑换来的AI 编程心法清单。
03 体验:用了这份配置,AI 编程发生了什么变化?
让我们用一个具体场景来感受这份配置的力量。
假设你要实现一个异步文件处理队列,需求涉及并发控制、错误重试、进度回调。你把需求丢给普通的 Claude Code,它大概率会给你一个"完整解决方案"——一个几百行的类,包含线程池、队列、回调钩子,代码看起来相当专业。但当你实际运行,边界条件一个没处理,并发数写死成了 10,错误重试逻辑甚至是空的。
现在,你把 Karpathy 的 CLAUDE.md 放进项目根目录,同样的需求丢给 Claude Code。这一次,它的行为变了:
第一步,它没有直接写代码,而是先回复:"我来理解一下这个需求——你期望的并发控制是指单线程内同时处理多个文件,还是多进程并行?错误重试的策略是指数退避还是固定间隔?" 它在用提问来消除歧义,而不是用猜测来代替理解。
第二步,它把任务拆分:先实现基础的队列结构,验证通过;再加并发控制,验证通过;最后加错误重试。每一步都只做一件事,每一步都有可控的输出。
这不是魔法。这是正确的交互策略被固化到配置文件之后,AI 行为模式的系统性改善。
04 对比:裸用 AI 编程 vs 有了这份配置之后的差别
我们来做一个更直接的对比。
裸用 AI 写代码,你的体验是:AI 给出一个完整方案 → 你发现有问题 → 你反馈给 AI → AI 给出一个"修复版" → 你又发现新问题 → 再反馈……这是一个无限回调的调试循环,AI 生成的代码越多,需要排查的错误就越多,到最后你甚至分不清是 AI 的问题还是自己的问题。
用 CLAUDE.md 配置之后,你的体验是:AI 先问清楚需求 → 给你一个最小可用的初版 → 你验证这个初版 → AI 在此基础上叠加下一个功能 → 你再验证……这是线性推进的开发节奏,每一个节点都是干净的、可控的。
背后的本质差异是:前者是"AI 替你做决定",后者是"AI 帮你思考,但决定权在你"。Karpathy 的配置,本质上是在 AI 和开发者之间重新划分了职责边界——AI 负责执行和校验,人负责方向和决策。
这不是降低 AI 的参与度,而是让 AI 的参与更有价值。
05 支持的 AI Agent 平台
这份 CLAUDE.md 配置文件针对 Claude Code 设计,但它的核心理念可以迁移到其他 AI 编程助手。
对于 Claude Code 用户,直接把文件放入项目根目录即可生效;对于其他平台,可以将其中的交互原则适配到各自的 System Prompt 或自定义指令中。
06 安装路径
项目仓库为 andrej-karpathy-skills,只有一个核心文件 CLAUDE.md,使用方式极为简单。
cd your-project
curl -O https://raw.githubusercontent.com/multica-ai/andrej-karpathy-skills/main/CLAUDE.md
# Claude Code 会自动读取项目根目录的 CLAUDE.md
cd your-project
curl -O https://raw.githubusercontent.com/multica-ai/andrej-karpathy-skills/main/CLAUDE.md
# 在项目根目录打开 Claude Code,自动生效
安装只需要一次。此后每次在项目目录下启动 Claude Code,它都会自动加载这份配置,无需重复操作。
07 总结:这不是一个工具,是一种协作方式
很多人把 AI 编程助手当成一个"更快的搜索引擎"——需求丢进去,代码弹出来。这是对 AI 能力的浪费,也是对自己时间的消耗。
Karpathy 的这份 CLAUDE.md 告诉我们:AI 编程的瓶颈,从来不在于 AI 不够强,而在于我们不知道怎样和 AI 协作。把顶级工程师的交互心法配置化,放进项目里,让每一次 AI 交互都建立在一个更理性的基础之上——这才是可持续的 AI 编程方式。
如果你也在用 AI 写代码,不妨从今天起,在你的项目根目录放上这份配置文件。感受一下,当 AI 开始"先思考再动手",你的开发体验会发生什么变化。
你在 AI 编程中踩过哪些坑?有哪些独特的调试心得?欢迎在评论区聊聊。
GitHub: https://github.com/multica-ai/andrej-karpathy-skills
夜雨聆风