前特斯拉人工智能总监、OpenAI创始成员Andrej Karpathy在一次播客中分享了如何提高Agent稳定性减少错误的“十二铜表法”
他表示:Agent(Claude)90%的错误来自缺乏上下文,而不是模型本身薄弱。
当没有 CLAUDE.md 时错误率为 41%。
当仅仅使用 4 条规则时为 11%。
使用下面的 12 条规则时为 3%。
以下是硅谷资深工程师们达成一致的“十二铜表法”:
1. 开始Coding前人先思考:陈述假设,不要猜测。模型不能读心术,别奢望它能做到。
2. 简单优先:最少代码,不做猜测性的抽象。一旦你允许 Claude 为“未来的灵活性”添加东西,你就会多出 200 行代码,下个季度又得删掉。
3. 外科手术式改动:只接触必须改的部分。不要让改动扩散到相邻代码,那样会导致拉取请求膨胀
4. 目标导向执行:事先定义成功标准,循环直到验证通过。没有这些,Claude 要么无限循环要么过早停止
5. 仅把模型用于判断类工作:分类、起草、摘要、抽取。不要用于路由、重试、状态码处理、确定性转换。如果代码能回答,就由代码来回答
6. Token应该设置预算而不是建议:每个任务 4000,每个会话 30000。在一次漫长调试的第 40 条消息时,Claude 会重新建议你在第 5 条消息时已拒绝的修复方案
7. 处理表面冲突,而不是平均妥协:代码库里有两种模式?选一个。Claude 把它们融合在一起就是错误被双重掩盖的方式
8. 先读再写:阅读导出、调用方、共享工具。Claude 很乐意在一个它从未阅读过的相同函数旁边添加一个重复函数
9. 测试验证意图,而不仅仅是行为:当业务逻辑改变时仍然不会失败的测试就是有问题的。Claude 的所有 12 个测试都可能通过,而函数却返回一个常量
10. 在每个重要步骤做检查点:Claude 在第 4 步已处于损坏状态的基础上完成了第 5 和第 6 步。没人注意到有整整一小时
11. 遵循代码库约定:使用类组件?不要悄无声息地改用钩子(hooks)。测试模式假定存在 componentDidMount,钩子破坏了这些假设却没有暴露出来
12. 大声报错:“已成功完成”但有 14% 的记录被悄然跳过,这是最糟糕的一类错误。要把不确定性暴露出来,不要掩盖它
同时,他也分享了Agent工程中常见的会导致问题加剧的一些做法:
- 使用跨会话记忆的 CLAUDE.md 文件
- 以评估为导向的变更,而非凭感觉
- 重视检查点胜过追求速度
- 明确冲突胜过默默融合
-纪律胜过框架,每次都是
- 一个仓库,一份规则文件,不允许例外
如果你在研究Agent,那你一定要研究这个
显示更多