卡帕西总结智能体稳定性十二铜表法

AI资讯
智能体多步任务流程示意
Karpathy 把过去半年的智能体踩坑总结成 12 条工程纪律

Andrej Karpathy 在 5 月 19 日转发了一篇标题为 Twelve-Factor Agents 的博客,列出了自己半年来从 Claude Code、Cursor、internal agent 实践中提炼出的 12 条工程纪律。X 用户 @MaxForAI 整理了中文版,把它称为”智能体稳定性十二铜表法”,单条推文 24 小时内拿到 18 万阅读、4200 转发。

问题不在模型,在状态管理

原帖核心论断:当前 LLM 智能体出问题的常见原因不在模型本身,在状态管理。模型这一层已经被推到相当好的水准——Sonnet 4.5、Opus 4.6、GPT-5.2 处理 single-shot 任务的成功率都在 90% 以上。但当任务被拆成 20 步以上的工作流时,端到端成功率会掉到 30% 左右。Karpathy 的复盘是:失败几乎全部发生在状态边界——上下文截断、工具调用回执不一致、checkpoint 丢失、错误恢复无策略。他给了一组自己跑过的数字:baseline 智能体 20 步任务成功率 31%;逐条加上 12 条规则后到 97%——错误率从 69% 压到 3%。剩下 66 个百分点全是工程问题。

十二条里最反直觉的几条

第 3 条:把工具调用当成有副作用的纯函数。每次调用都要写到 append-only 的事件流里,模型读到的不是”现在的状态”,而是”从初始状态到现在所有事件的有序回放”。Karpathy 在原帖里点名:”这是从分布式系统借来的常识,但在 agent 实现里几乎没人这么写。”

第 7 条:每 N 步强制 checkpoint。不是错误时才 save,是按时间或步数节拍硬切。当模型走到错误路径,能从最近的 checkpoint 回滚而不是从头来。Karpathy 给的具体值是”每 5-7 步一次”——这是他实测里错误率最低的区间。

第 9 条:上下文不是越长越好,是越准越好。过去半年很多人把 1M token 长上下文当银弹,Karpathy 直接打脸:”长上下文里的’迷失中段’问题在 2026 年仍然没被解决。最优策略是动态压缩——保留最近 5 步原文,更早步骤总结成结构化记录。”

这套规则的工程边界

Twelve-Factor Agents 原文作者是 dexhorthy(HumanLayer 主要贡献者),完整版本在 humanlayer/12-factor-agents 仓库。HumanLayer 创始人 Dexter Horthy 在 X 上的解释比较清楚:”这 12 条针对的是生产环境的 agent,要服务真实用户、要持续运行数天甚至数周的那种。对于一次性 demo 或 weekend project,遵守这些规则反而是过度工程。”判据是任务运行时长——agent 一次跑 5 分钟没必要写 event sourcing;一跑就是几小时甚至几天,每一条都是必需。

补工程比追新模型版本回报更高

模型升级是免费的——每隔几个月新版本会自动让你的 agent 表现更好;工程纪律是要靠自己写代码堆出来的。多数团队在 demo 阶段忽略这部分,等 agent 上线两周开始跑生产请求时才发现状态管理是真正的瓶颈。短期内最值得做的不是去等下一个 SOTA 模型,是把 12 条里和你团队最相关的 3-5 条先落到代码里。


参考链接: