2026年5月28日 周四晚上19:30,报名腾讯会议了解“如何转型成为前线部署工程师(FDE)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


我要投稿

这个Skill太香了!Karpathy说的AI写代码的毛病,直接治好

发布日期:2026-05-24 08:48:32 浏览次数: 1536
作者:算泥

微信搜一搜,关注“算泥”

推荐语

开源 Skill 精准解决 AI 写代码的几大顽疾,让开发者从重复劳动中解放,专注创造性工作。

核心内容:
1. AI 编程的突破性转变与效率革命
2. 开源 Skill 的四条核心原则与解决方案
3. 开发者体验的“甜蜜”提升与仍需警惕的“苦涩”陷阱

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家
算泥社区是集 “AI 大模型开发服务 + 算法 + 算力” 于一体的开源生态社区,欢迎关注!


GitHub 上一个叫 andrej-karpathy-skills 的开源 Skill,深受开发者喜爱。

它是受 Karpathy 在 X 上发表的一篇长推启发实现的,可以说是 Karpathy 最近两年 Vibe Coding 的经验结晶。

Karpathy 说他现在80%的代码是靠指挥 LLM 写的。几周之内把工作方式翻了个底朝天。

他精准指出了 AI 写代码的几大致命毛病,这个开源 Skill 就是专治这些毛病的,方案就藏在一个 CLAUDE.md 文件里。

andrej-karpathy-skills 把他的洞察提炼成四条原则,直接改造 AI Agent 的行为方式。

Agent 编程的甜蜜与苦涩

2025年12月前后,Claude Code 和 Codex 等工具的能力跨过了一道门槛。

Karpathy 说,他从11月的80%手动编码加20% Agent 辅助,变成了12月的80% Agent 编码加20%手动修整。几周时间,二十年的习惯被颠覆。

甜蜜的部分很明显。

Agent 不知疲倦,遇到难题死磕30分钟最终搞定,人早就放弃了,它还在那里一轮一轮地尝试。

Karpathy 称之为"feel the AGI"时刻,你看着它跟一个问题搏斗很久,最后赢了,你会意识到耐力本身就是工作的核心瓶颈,而 LLM 把这个瓶颈撑大了。

对 IDE 和 Agent 集群的热炒,Karpathy 觉得过头了,模型依然会犯错,如果你在乎自己的代码,就得盯着它,在一个宽大的 IDE 里盯着它。

效率的提升也不只是单纯的加速。

Karpathy 提到一个更微妙的效果:他做的事情变多了。以前觉得不值得写的代码,现在可以写了;以前因为知识短板不敢碰的代码,现在敢碰了。

速度确实变快了,但更像是能力的扩展。就像给了你一把更锋利的刀,你切的不只是原来的东西切得更快,你会开始切以前根本不会去切的东西。

这个感受在工程师中间应该正在发生,Karpathy 估计已有两位数比例的工程师经历了类似转变,但大众的认知恐怕还停留在个位数百分比。

编程甚至变得更快乐了。

填空式的苦活被剥离,留下的是创造性的部分。被卡住的感觉也少了,因为跟 Agent 搭伴几乎总能往前推进。

Karpathy 也注意到,这会在程序员中间划出一道分界线:那些主要喜欢写代码的人,和那些主要喜欢造东西的人,对 LLM 编程的感受完全不同。

喜欢造东西的人会觉得如虎添翼,喜欢写代码本身的人可能会觉得乐趣被稀释了。

苦涩的部分同样真实,而且 Karpathy 逐一列举得相当细致。

模型会替你做错误假设,然后不假思索地一路执行。它们不管理困惑,不寻求澄清,不呈现矛盾,不展示权衡,该反驳时沉默,还带着点讨好型人格。

它们热衷于把代码搞复杂,堆砌抽象,100行能解决的事写成1000行,你问一句"能不能简单点",它立马砍到100行。

它们会顺手删改自己没充分理解的代码和注释,哪怕跟当前任务无关。Karpathy 尝试在 CLAUDE.md 里写几句指令来纠正,效果有限。

他把这些错误归类为"一个粗心急躁的初级开发者会犯的错",只是错误发生在更高的抽象层级上。

语法错误已经很少了,取而代之的是微妙的概念性错误。Agent 模式下问题更多,计划模式好一些,但缺少一种轻量级的内联计划模式来衔接。

他的工作流是左边开几个 Claude Code 的终端窗口,右边一个 IDE 用来查看代码加手动编辑,两边配合。

Karpathy 还提醒,尽管有这些问题,Agent 编程依然是净收益巨大的改进,很难想象再回到纯手动编码的日子。 开发者 @Suryanshti777 把上述原则提炼成了 Karpathy 的 CLAUDE.md 文件。

四条原则治住 Agent

andrej-karpathy-skills 项目的核心,是把 Karpathy 指出的每个问题,对应用一条原则去解决。

编码前思考,针对的是 LLM 最常见的毛病:默默选一种理解然后闷头干。

这条原则强制 Agent 必须明确说明假设,不确定就问而不是猜;存在歧义时呈现多种解释,不要偷偷选一个;有更简单的方案就大声说出来;搞不清楚的地方要停下来要求澄清。

本质上,把"先想后做"从建议变成了强制流程。

Karpathy 在推文里原话就是,模型会代你做错误假设然后一路执行下去,它们不管理困惑,不寻求澄清,不呈现矛盾,不展示权衡,该反驳时也不反驳。编码前思考这条原则,一条一条地堵住了这些窟窿。

简洁优先,对抗的是 Agent 的过度工程倾向。

不添加要求之外的功能,不为一次性代码创建抽象,不添加没人要求的"灵活性"和"可配置性",不为不太可能发生的场景写错误处理。

200行能写成50行,就重写。检验标准很直观:资深工程师会不会觉得这段代码过于复杂?如果是,简化。

这条原则直接回应了 Karpathy 的观察,Agent 总是倾向于构建臃肿脆弱的方案,1000行的过度工程你一问能不能简化,它立马砍到100行。与其每次都靠你主动提醒,不如把简洁写入规则。

精准修改,针对 Agent 乱改代码的老毛病。

只碰必须碰的,只清理自己制造的混乱。不要"改进"相邻的代码、注释或格式,不要重构没坏的东西,匹配现有风格即使你更倾向于不同写法。注意到无关的死代码可以提一句,但不要删。反过来,你的改动产生的孤儿代码,比如不再使用的导入、变量、函数,那得自己清理干净。

检验标准:每一行修改都应该能直接追溯到用户的请求。

Karpathy 专门指出,Agent 有时会改动或删除自己不够理解的代码和注释,即使那些内容跟当前任务无关,精准修改这条就是来管住这双手的。

目标驱动执行,是 Karpathy 认为最有杠杆效应的一条。

把指令式任务转化为可验证的声明式目标。"添加验证"变成"为无效输入编写测试然后让它们通过","修复 bug"变成"编写重现 bug 的测试然后让它通过"。

多步骤任务要说明简短计划,每一步都有验证检查。

Karpathy 原话是:"LLM 非常擅长循环执行直到达成特定目标,不要告诉它该做什么,给它成功标准,然后看着它完成。"

强标准让 Agent 能独立循环,弱标准需要你不断澄清。这跟软件开发中先写测试再写实现是同一个逻辑,只是现在你让 Agent 来执行这个循环。

项目 README 里也给了很好的对照:"添加验证"应该变成"为无效输入编写测试然后让它们通过","修复 bug"应该变成"编写重现 bug 的测试然后让它通过","重构 X"应该变成"确保重构前后测试都能通过"。

从告诉它怎么做,变成告诉它什么叫做好了,剩下的让它自己跑。

开发者社区对 Karpathy 推文的解读,把问题引向了更深的层面。

有人指出,CLAUDE.md 文件之所以突然遍地开花,跟提示词无关,它们在充当 Agent 的操作系统。

这带来一个关键转变:从"告诉模型做什么"到"给它目标、约束、测试和验证体系,让它迭代到正确为止"。

有人已经开始并行运行多个 Claude Code Agent,像工程团队一样分工,一个负责调研,一个调试,一个写测试,一个优化代码,一个验证输出。

这已经超越了 AI 辅助的范畴,进入了 Agent 编排的领域。

Karpathy 提到,最好的 AI 工程师不再是在提示词上下功夫,而是在 Agent 周围搭建系统。

先写大概率正确的朴素算法,再让 Agent 在保持正确性的前提下优化。把 Agent 放进浏览器 MCP 的循环里。从指令式转向声明式,让 Agent 循环更久,获得更大杠杆。

他还提了几个开放问题,值得琢磨:10倍工程师和普通工程师的生产力差距会不会拉得更大?借助 LLM,通才是否会越来越胜过专才?LLM 在微观层面的填空能力远强于宏观层面的战略判断,所以通才搭配 Agent 可能比深钻一个领域的专才更有优势。LLM 编程未来是什么感觉,像打星际争霸,像玩异星工厂,还是像演奏音乐?社会有多少比例的瓶颈其实是数字知识工作?

装上就能用

andrej-karpathy-skills 的安装很简单。用 Claude Code 的话,推荐插件方式:

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


所有项目自动生效。也可以按项目安装,一行命令把 CLAUDE.md 下载到项目根目录:

curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md


已有项目可以追加到现有 CLAUDE.md 末尾。

用 Cursor 的开发者也有对应的项目规则文件,开箱即用。

项目还支持自定义,你可以在 CLAUDE.md 里加项目特定规则,比如 TypeScript 严格模式、API 端点必须有测试之类,跟四条原则合并生效。

怎么判断它在起作用?diff 里不必要的改动少了,代码第一次就写得简洁,澄清问题在实现之前就提出来了,PR 干净利落没有顺手重构。

这个项目倾向谨慎而非速度,琐碎任务自行判断,核心目标是减少非琐碎工作中代价高昂的错误。

项目也做了权衡声明:四条原则对琐碎任务可能过于严谨,简单的拼写错误修复、显而易见的一行修改,不需要走完整流程,目标是减少大活儿上的失误,别拖慢小活儿的节奏。

andrej-karpathy-skills 做的事情,就是把那些本不该让 Agent 自由发挥的部分,用规则约束住,让你把注意力放在真正需要人类判断的地方。

你的 Agent,哪条原则最缺?

参考资料:

https://github.com/multica-ai/andrej-karpathy-skills

https://x.com/Suryanshti777/status/2057389330625339902

https://x.com/karpathy/status/2015883857489522876


END

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询