最近,GitHub 上一个名为 andrej-karpathy-skills 的项目火出了圈。Pull requests · multica-ai/andrej-karpathy-skills · GitHub
这并非 Andrej Karpathy(前 Tesla AI 总监)本人发布的仓库,而是开发者 Forrest Chang 基于 Karpathy 对大模型编码问题的敏锐观察,整理成的一份 CLAUDE.md 指南。它在公开首日便斩获近 6,000 stars,目前已突破 60k 大关。

为什么一份简单的 Markdown 文件能引起如此大的关注?
因为它揭示了当前 AI 编程的一个核心问题:AI Coding Agent 的瓶颈不在“知识量”,而在“工程纪律”。大多数 AI 写的代码难以直接使用,不是因为模型能力不足,而是因为它执行任务时缺乏清晰约束和系统化流程。

AI 编程的四大常见问题

在没有明确规范的情况下,AI Agent 经常出现以下情况:

  • 沉默假设 (Silent Assuming):遇到模糊需求不提问,直接选择一种理解开始执行。
  • 过度工程 (Over-engineering):即便是小需求,也会增加多余抽象、配置或“可能未来用到”的结构。
  • 边界模糊 (Scope Creep):修改 A 点时,顺带修改了其他无关部分,导致 PR 扩大且难以管理。
  • 结果导向缺失:在未验证的情况下就认为任务完成。

针对这些问题,这份 CLAUDE.md 提出了四条核心原则。

Karpathy 核心原则:AI 编程的“外科医生”准则

1. 动笔前先思考 (Think Before Coding)

核心:拒绝盲目猜测,让权衡过程显性化。

LLM 习惯于沉默地执行。这一原则强制要求模型进行显性推理:

  • 明确假设:不确定时,宁可询问也不要猜测。

  • 呈现多重解读:当需求存在歧义,列出所有可能性及其利弊。

  • 敢于推回需求:如果有更简单的路径,主动提出。

  • 困惑时止步:明确指出模糊点,请求澄清。

2. 简约至上 (Simplicity First)

核心:只写解决当前问题所需的最小代码,拒绝投机性设计。

对抗 AI 喜欢过度设计的倾向:

  • 无需求,不功能:绝不添加要求之外的特性。

  • 拒绝单次使用的抽象:不为只运行一次的代码搞复杂架构。

  • 不预留“灵活性”:除非被明确要求,否则不加任何配置化逻辑。

  • 极致精简:如果 200 行能写成 50 行,那就重写。

  • 测试标准:一位资深工程师会觉得这段代码太复杂吗?如果是,请简化。

3. 外科手术式修改 (Surgical Changes)

核心:只动必须动的地方,只清理你制造的垃圾。

修改代码时要保持极高的边界感:

  • 不触碰邻近代码:不要顺便优化格式、注释或重构那些没坏的东西。

  • 适配既有风格:即使你觉得原本的风格很糟,也要保持一致。

  • 清理“孤儿”资源:只删除由你的修改导致的无用变量或导入,不删除预存的死代码。

  • 测试标准:每一行代码的变动,都必须能直接追溯到用户的具体需求。

4. 目标驱动执行 (Goal-Driven Execution)

核心:将模糊的指令,转化为可验证的成功标准。

把“命令式”任务变成“可闭环验证”的目标:

模糊指令 (Imperative) 转型为:可验证目标 (Verifiable)
“添加验证逻辑” “为非法输入写测试,并让测试通过”
“修复 Bug” “写一个能重现 Bug 的测试,再修复它,最后通过测试”
“重构 X 模块” “确保在重构前后,所有的既有测试依然能通过”

操作范式:对于多步骤任务,必须声明计划——“步骤 -> 验证 -> 检查点”,让 AI 能够独立循环。


为什么这些原则重要

andrej-karpathy-skills 的走红说明,AI 编程工具的核心挑战不在于模型本身,而在于工程约束的落实。这份指南将资深工程师的实践经验显式化,让 Agent 在执行任务时遵循清晰流程、减少不必要改动,并始终以可验证目标驱动执行。

总结来说,一个高效的 AI 编程 Agent,应遵循纪律、确保动作精确,并在执行前明确完成标准,而不是单纯追求速度或自作主张。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐