AI工具 Skill技能库 关于道场
代码质量 编程准则 最佳实践 AI编程 开发者工具

Karpathy代码指南:减少LLM编程错误的四大行为准则

interfluve-wav/andrej-karpathy-skills-hermes |2026-06-20

源自Andrej Karpathy观察的LLM编程陷阱总结,包含编码前思考、简约优先、手术刀式编辑、目标驱动验证四大原则。适用于代码编写、审查、重构等场景,帮助AI编码代理避免常见错误,提升代码质量。

【适用场景】

本技能适用于以下场景:

1. 代码编写与审查:在编写新代码、编辑现有代码、代码审查或重构时,作为行为准则加载。 2. 复杂需求澄清:当需求模糊、存在多种解释或涉及未知领域时,主动提出问题而非盲目猜测。 3. 代码简化判断:当代码过于复杂或存在过度设计时,主动建议更简单的方案。 4. 小任务快速处理:对于简单的修复(如 typo、一行代码改动),可直接执行而无需完整流程。

【操作步骤】

原则一:编码前先思考 在实现任何功能之前,必须: 1. 明确陈述所有假设,不确定时主动提问 2. 存在多种解释时,展示所有选项而非默默选择 3. 发现更简单方案时,主动提出并说明理由 4. 遇到不清晰之处,停止并明确说明疑问

示例: ``` 实施导出功能前,我需要确认: 1. 导出全部用户还是筛选后的用户?(涉及隐私) 2. 文件下载、API端点还是后台任务? 3. 包含哪些字段?部分字段可能涉及敏感信息 请问您偏好哪种方案? ```

原则二:简约优先 只实现解决问题所需的最小代码,不做投机性开发: - 不添加未请求的功能 - 不为单次使用的代码创建抽象 - 不添加未请求的"灵活性"或"可配置性" - 不处理不可能发生的错误场景 - 如果200行可以写成50行,重写它

原则三:精准手术刀式编辑 - 每次改动针对具体目标,不做大片区重构 - 优先小步提交,便于回滚和问题定位 - 改动前说明改了什么、为什么这样改

原则四:目标驱动的执行与验证 - 每一步都有明确目标,不为写代码而写代码 - 完成后验证结果是否符合预期 - 主动汇报完成状态和验证结果

何时跳过完整流程 以下情况可跳过上述流程,直接执行: - 用户明确说"快速做完即可" - 纯配置文件(YAML、JSON、env) - 用户确认是临时原型

【代码模板】

简约 vs 过度设计对比

过度设计示例: ```python

策略模式、抽象基类、配置系统...

用于一个折扣计算

class DiscountStrategy(ABC): @abstractmethod def calculate(self, amount: float) -> float: pass class PercentageDiscount(DiscountStrategy):

50+ lines

```

简约设计示例: ```python def calculate_discount(amount: float, rate: float) -> float: return amount * rate ```

假设声明模板 ``` 在开始之前,我需要确认以下几点假设: 1. [假设1] — 如果不对请纠正 2. [假设2] — 我计划这样处理 3. 更简单的方案是[方案],原因是[原因],您觉得呢? ```

【复盘要点】

1. 假设声明是红线:如果即将写代码但尚未陈述假设,则违反了本技能的核心准则。 2. 简约不等于简单:简约的设计是精确匹配需求,而非简陋。评估标准是"资深工程师是否认为过于复杂"。 3. 主动提问优于默默猜测:遇到模糊需求时,说出来比假设后返工更高效。 4. 权衡取舍要透明:当存在多种实现方案时,展示权衡利弊,让用户做决定。 5. 验证是最后一步:执行完成后必须验证结果,并主动汇报验证状态。

来源:GitHub https://github.com/interfluve-wav/andrej-karpathy-skills-hermes