AI 编程避坑指南:AI 代理核心规则
在 AI 编程时代,我们遇到的最大挑战往往不是 AI “不够聪明”,而是它“太聪明”了——它会写出过度设计的代码、做出一堆未经确认的假设,或者在修复一个 Bug 时顺手把周围没坏的代码也给重构了。
特斯拉前 AI 总监 Andrej Karpathy 曾多次吐槽大模型编程中的这些陷阱。受此启发,社区提炼出了一套 Karpathy-Inspired AI Guidelines,旨在让 AI 代理(如 Claude Code, Trae, Cursor 等)回归本质:写最简单的代码,做最精准的修改。

🚀 核心规则:复制即用
你可以将以下规则直接作为“全局说明”或“项目指令”配置到你的 AI 工具中。
- **编码前思考 (Think Before Coding)**
- **拒绝假设**:在写代码前,先陈述你的理解和假设。如果有不确定的地方,先提问。
- **暴露权衡**:如果存在多种实现方案,请列出优缺点,不要默默替我做决定。
- **推崇简单**:如果我提出的方案太复杂,请主动建议更简单的替代方案。
- **简单至上 (Simplicity First)**
- **最小化代码**:只写能解决当前问题的代码,不多写一行。
- **严禁过度设计**:不要在没要求的情况下添加抽象、枚举、类结构或“灵活性”。
- **拒绝投机**:不要预判我未来可能需要的特性。
- **精简原则**:如果 50 行代码能解决,绝不写 200 行。
- **外科手术式修改 (Surgical Changes)**
- **精准打击**:只触碰必须修改的代码。不要“顺便”重构邻近代码、调整格式或更新注释。
- **尊重现有风格**:匹配现有的编码风格,即使你认为有更好的写法。
- **清理现场**:只负责清理**由你这次修改**导致的冗余(如未使用的导入/变量)。
- **目标驱动执行 (Goal-Driven Execution)**
- **定义成功标准**:将模糊的任务(如“修复 Bug”)转化为可验证的目标(如“写一个失败测试,修复代码,确保测试通过”)。
- **小步快跑**:对于复杂任务,按“步骤 -> 验证”的循环进行,每一步都必须可验证。
简洁版
- **编码前思考**:拒绝假设,先陈述理解;不隐瞒困惑,暴露权衡;推崇简单方案。
- **简单至上**:最小化实现,不臆测需求;严禁过度设计(抽象/枚举/类);精简原则(50行对200行)。
- **外科手术式修改**:精准打击,不重构邻近代码或格式;尊重现有风格;仅清理由本次修改产生的冗余。
- **目标驱动执行**:定义可验证的成功标准(测试驱动);复杂任务采用“步骤 -> 验证”循环。
🛠️ 如何配置到你的工具?
为了让这些规则生效,你需要将它们配置到 AI 工具的“全局指令”或“系统提示词”中。
1. Claude Code (CLI)
Claude Code 默认会读取项目根目录下的 CLAUDE.md 文件。
- 在项目根目录创建
CLAUDE.md。 - 将上述核心规则粘贴进去。
- 也可以通过
.claude-plugin/plugin.json配置为插件。
2. Trae / Cursor
Trae 和 Cursor 提供了“全局规则”设置:
- Trae: 进入
Settings->General->Rules(或者在.trae/rules目录下创建.md文件)。 - Cursor: 进入
Settings->General->Rules for AI。 - 将核心规则粘贴到输入框中,AI 在每次对话和生成代码时都会遵循这些准则。
3. GitHub Copilot / Codex
如果你使用的是 GitHub Copilot Chat:
- 可以在 VS Code 中设置
.github/copilot-instructions.md。 - 或者在项目根目录创建
.cursorrules(部分版本兼容)。
💡 为什么这套规则有效?
AI 编程的核心痛点在于 “控制感”。
- 外科手术式修改 保证了你的 Git Diff 是干净的,不会因为 AI 的重构而产生一堆无关痛乱。
- 简单至上 避免了 AI 引入复杂的抽象,导致后续代码难以维护。
- 目标驱动 强迫 AI 像高级工程师一样思考:如何证明我的代码是正确的?
通过这套 Karpathy 指南,你可以将 AI 从一个“不可控的黑盒”转变为一个“精准执行的外科医生”。
本文基于 forrestchang/andrej-karpathy-skills 项目分析整理。
本文链接:AI 编程避坑指南:AI 代理核心规则 - https://h89.cn/archives/512.html
版权声明:原创文章 遵循 CC 4.0 BY-SA 版权协议,转载请附上原文链接和本声明。