两年来,想要从 AI 代理中获得更多,就意味着写出更好的提示词。
那个时代正在悄然落幕。全球顶尖工程师早已不再写提示词,转而开始写循环——一种让代理执行指令、检查结果、并持续运行直至任务完成的系统。
Karpathy 的夜间脚本在二十年手工调优中,发现了 20 个他遗漏的优化点。Boris Cherny——Claude Code 的构建者——今年一行代码都没写过。Anthropic 的工程师现在每天合并的代码量,几乎是 2024 年的 8 倍。
他们并没有写出更聪明的指令。他们干脆不再打字了。
以下就是循环的实际含义、何时需要它、何时不需要,以及如何构建你的第一个循环。
700 次实验,人类在睡觉
2026 年 3 月。Andrej Karpathy 向 GitHub 推送了三个文件。大约 630 行代码。
一个文件包含模型,一个文件负责评分,还有一个文件告诉代理哪些可以探索、哪些必须忽略。代理只能修改训练文件,其他文件一概不能动。
这个循环的设计刻意平淡:读取代码、提出修改、训练五分钟、检查分数是否提升、提升则保留修改、否则回滚,然后重复。
他将其指向一个自己手工调优了二十年的模型,让它运行了两天。
它跑了 700 次实验,发现了 20 个改进点。其中一个是在注意力机制中缺失的一个标量乘数——非常细微,不是任何 linter 能捕捉到的 bug,但恰恰是那种细心工程师本应发现却从未发现的错误。
Shopify 的 CEO 也在内部模型上用了同样的技巧,过了一夜,模型质量提升了 19%,而模型大小只有之前的一半。
关键洞察不是“AI 更聪明了”。人类在第十二次实验后就会疲惫。循环却永远不会累。

循环不是定时执行的提示词
大多数人听到“循环”就想到 cron。这完全误解了。
提示词是一条指令。循环是一个目标,AI 会持续努力直到达成目标,全程无需人坐在椅子上。它规划、执行、验证自身结果、将结果反馈回来,然后重复。
五个阶段:发现、规划、执行、验证、迭代。其中三个阶段负责实际工作。
验证器是循环的核心。如果没有一个真正的输出关卡,你拥有的就不是循环,而是让代理永远给自己作业打分。一个关卡就是一条测试——通过或失败;一个构建——编译成功或崩溃;一个 linter——返回零或非零。而不是第二个有主观意见的代理。
状态让循环能够学习。一个侧边文件、一个 Linear 项目、一个项目日志——只要是对话之外记录尝试过什么、失败过什么的地方。明天的运行可以从中断处继续,而不是从头开始。
停止条件让循环保持理智。每个真正的循环都有两个出口:目标达成,或硬性上限触发。跳过这一点,你就造出了一台整夜无果运行的机器。
缺少以上三个中的任何一个,你都没有构建出循环,而是构建了一个昂贵的脚本。
构建循环前的四个条件
循环只有在四个条件同时满足时才能发挥其价值。缺一个,设置的成本就会超过回报。
- 任务至少每周重复。低于这个频率,设置成本永远无法摊销。
- 有东西能自动判定工作失败。测试、类型检查、linter、构建。
- 你的 token 预算能承受浪费。循环会重新读取上下文、重试、探索。
- 代理拥有高级工程师的工具。日志、复现环境、运行自己写的代码并看到哪里出错的能力。
诚实的版本——那些推销循环的人不会告诉你的是:大多数人还不需要重型版本。如果你使用的是个人计划,试图在重要工作上运行过夜验证循环,那么 token 账单会在生产力提升到来之前先到。
好的第一个循环是那些无聊的。CI 分类、依赖更新、lint 修复、不稳定测试复现、在有强测试的代码库上从 issue 到 PR 的草稿。
坏的第一个循环是那些有趣的。架构重写、鉴权代码、支付。任何“完成”需要人类判断的东西。
构成真实循环的五个模块
每个真实的循环都由相同的五个部分组装而成。Claude Code 和 Codex 现在已经全部支持它们。
第一个是自动化——心跳。一个按计划或事件触发循环的东西。/loop 按节奏运行。/goal 持续运行直到你定义的条件成立。没有心跳,循环就是一个你运行一次就忘记的脚本。
第二个是技能——项目知识,保存为 claude-md 文件,代理每次运行时都会读取。没有它,循环每次都要从零重新推导你的上下文。有了它,意图会累积。循环知道你的约定、构建步骤,以及三个月前那起事件后你永远不再做的事情。
第三个是子代理——制造者和检查者不能是同一个模型。写代码的人对自己作品的评判过于宽容。写文章的人会忽略自己文章中的薄弱环节。写手要快且便宜,审稿要慢且严格。这种分离就是大部分质量的来源。
第四个是连接器——循环打开拉取请求、关闭工单、当 CI 变绿时通知频道。这就是“这里有一个建议修复”和“早上报告说 PR 已经合并了”之间的区别。
第五个是验证器——测试、类型检查或构建,自动否决低质量的工作。其他都是管道。这个模块决定了循环是帮助你,还是只是花你的钱。
把这些堆叠起来,你就得到了严肃团队现在大规模运行的东西。几十个循环,每个负责一个狭窄的领域,在所有人睡觉时并行运行。一位工程师使用这样的循环舰队,在约六天内将整个代码库从一种语言重写为另一种语言——这项工作手工完成需要近一年。

循环在哪里无声失败
循环不会崩溃。它们会默默地向你收费。有两种值得指出的失败模式,而且随着循环变得更好,这两种模式会变得更糟,而不是更简单。
第一种是 Ralph Wiggum 循环。工程师 Geoffrey Huntley 记录过这种情况。代理过早地认为自己完成了任务,在半成品上发出完成信号,循环满意地退出。如果没有一个客观的关卡,循环会继续在下一夜运行,继续花钱,继续产生没人会接受的工作。
修复方法不是更聪明的代理,而是更笨的关卡。一条通过或失败的测试,一个编译或崩溃的构建。没有主观意见的东西。
第二种更微妙:理解债务。循环越快交付你没有写过的代码,你的仓库实际内容与你真正理解之间的差距就越大。一个运行顺畅的循环会对此差距收取复利。当你不得不调试一个团队里没人读过的系统时,成本比 token 费用高得多。
认知放弃也随之而来。当循环自行运行时,很容易停止形成自己的意见,接受任何返回的结果。带着判断力设计循环是解药。为了逃避思考而设计循环则是加速器。同样的动作,相反的结果。
两个人可以构建完全相同的循环,最终却走向相反的方向。一个人用它来在自己深入理解的工作上更快推进。另一个人用它来完全避免理解工作。循环不知道其中的区别。你知道。

从一个循环开始,而不是十个
每个人都会犯的错误是试图在第一天就构建整个系统。十个循环、一个仪表盘、一支舰队。到周末它就崩溃了,因为你无法分辨哪个循环做了什么。
从一个开始。选择你最烦人的重复性任务——那个你每天早上习惯性检查的事情——然后把那个单一任务变成一个循环。让它运行几天。观察它哪里过度扩展,哪里遗漏。收紧。然后添加第二个。
顺序比工具更重要。先让一个手动运行变得可靠——不是快,而是可靠。把这个运行变成一个 claude-md 技能。用带有客观关卡和硬停止条件的循环包装这个技能。然后,只有在那之后,才把它放到计划上。跳过步骤,把还没有经过手工验证可靠的东西安排计划,正是循环在你睡觉时爆炸的原因。
判断循环是否有效的指标,不是花费的 token、尝试的任务或打开的 PR,而是每次被接受的变更的成本。如果你的变更接受率低于 50%,那么你正在做循环本应替你省去的审查工作,循环正在亏钱。
Karpathy 不再写训练代码。Cherny 不再写提示词。但他们都没有停止思考。如果只能从这篇文章中带走一件事,那就是这一点。循环是一个系统,它处理无聊的 95%,而你则把全部注意力集中在真正承载风险的 5% 上。
你正在为一支代理舰队付费,却只用一个聊天窗口。
关注我并订阅我的 Telegram 频道: [https://t.me/+75nMf005jRpjMDU1](https://t.me/+75nMf005jRpjMDU1)





