当人类还需要坐在键盘前,逐行指导智能体工作时,核心能力是编写提示词。如今,智能体已经可以接收一个目标,然后自行运行,新的核心能力便是循环工程。
文章作者:CyrilXBT
文章编译、来源:ME News
2026 年 6 月,一周之内,三个人各自独立地得出了同一个结论。
OpenClaw 的开发者 Peter Steinberger 公开表示,人们应该停止直接给编程智能体编写提示词,转而设计那些能够自动向智能体发出指令的循环系统。
几乎在同一时间,Anthropic Claude Code 负责人 Boris Cherny 也表示,他已经不再直接向 Claude 输入提示词。现在,他运行的是一套套能够自动调用 Claude、判断下一步该做什么的循环,而他真正的工作,是编写和设计这些循环。
几天后,Google 工程师 Addy Osmani 对这一实践进行了系统总结,并给出了一个名字:
Loop Engineering,循环工程。
他们并不是凭空创造了这种工作方式,而是为一种已经悄然发生的变化命名。
因为在此之前,底层工具已经跨过了一个关键临界点:编程智能体开始能够在无人值守的情况下完成真正的任务;自动调度的成本足够低,反复定时运行一项任务不再显得浪费;单次智能体运行的成本也下降到了一个新的水平——与其花大量时间精心思考一次,不如让智能体尝试五次,成本可能反而更低。
这正是这份路线图存在的原因。
当人类还需要坐在键盘前,逐行指导智能体工作时,核心能力是编写提示词。如今,智能体已经可以接收一个目标,然后自行运行,新的核心能力便是循环工程。
下面是一条从提示词操作者走向系统设计者的完整 20 步路径。必须按照顺序推进,因为在这条路径中,步骤之间的先后关系,往往比任何单独一个步骤都更加重要。
为什么必须按照顺序构建
循环工程并不是一种“掌握了”或“没掌握”的单一技能,而是一套层层叠加的能力栈。每一层,都依赖下方基础是否足够牢固。
例如,在第 10 步建立真正的停止条件之前,就直接构建第 14 步的自动调度触发器,只会得到一个能够在无人值守状态下自动浪费资金的系统。过去它至少只会在你盯着屏幕时浪费资源,现在它可以自己持续烧钱。
同样,如果在完成第 6 步和第 7 步的可靠验证机制之前,就先搭建第 11 步的持久化记忆层,你可能会把一个过于宽松、不断放行错误结果的“评审者”所总结出的经验认真保存下来。
这不仅不会帮助系统进步,反而会让错误经验不断积累,使记忆层从“暂时无用”变成“主动有害”。
因此,跳过某些步骤并不只是少实现一个功能。更严重的问题在于,你会把那些看起来激动人心的高级能力,建立在一个根本无法支撑它们的基础之上,并且往往要等到系统已经规模化运行、造成实际后果之后,才会发现问题。
第一阶段:完成思维转变第 1 步:承认瓶颈在你,而不在模型
真正的第一步并不涉及任何技术。
你必须承认,在当前工作流中,限制效率的因素往往已经不再是模型能力,而是你本人仍然停留在循环之中。
每当你坐在电脑前等待模型回答,阅读结果,再输入下一条指令时,你就成为了整个系统中最慢的环节。
模型可以执行、验证和重试,而这些操作的速度远远快于人类逐步监督它完成任务的速度。
这一步没有对应的提示词,它是一项认知决策。
在你真正接受这一点之前,后续所有步骤看起来都会像是不必要的额外工作,而不是它们真正的意义——移除系统中最大的效率瓶颈。
第 2 步:不要再把更长的提示词等同于更好的系统
当模型输出出现问题时,人们最自然的反应,通常是在原来的提示词中再增加一条规则。
几个月之后,这种做法会制造出一堵由规则组成的高墙:内容密集、彼此矛盾,长到模型无法在工作记忆中同时处理所有要求。
最终,模型往往只能根据最近出现或看起来最显眼的内容进行模式匹配,并在不知不觉中忽略其他规则。
循环工程彻底改变了这种思路。
当问题出现时,你不再只是向提示词里添加一条新要求,而是为系统增加一个新的组件,例如:
- 增加一个独立验证步骤;
- 增加一个记忆文件;
- 增加一个定时触发器;
- 增加一个结构化评审环节。
随着外围系统能力不断增强,提示词本身应该越来越短,而不是越来越长。
第 3 步:把每项任务拆解为五个动作
无论具体任务属于哪个领域,循环中的每一次运行,都可以拆解为五个基本动作:
识别、交接、验证、持久化、调度。
识别(Discovery)
弄清楚真正需要完成的任务是什么。
交接(Handoff)
把任务交给负责执行的模型、智能体或工具。
验证(Verification)
依据真实标准检查结果是否正确。
持久化(Persistence)
记录本次运行发生了什么、学到了什么,避免经验在下一次运行时丢失。
调度(Scheduling)
决定这套流程什么时候再次运行。
大多数人的现有工作流,只明确包含了前两个动作:识别任务和交接任务,而且通常是在聊天窗口中手动完成的。
另外三个动作要么根本不存在,要么隐藏在人类自己的大脑中。
循环工程的核心,就是把这五个动作全部显式化,并尽可能实现自动运行。
第 4 步:找到第一个真正适合构建循环的任务
在开始搭建系统之前,先选择一项你已经在重复执行、并且能够明确描述质量标准的任务。
不要选择最困难的问题,也不要选择完全没有先例的创新任务。
第一个候选任务应该满足三个条件:
- 你需要反复执行它;
- 它拥有可以写下来的明确标准;
- 它有一个容易识别的“完成状态”。
换句话说,一位同事看到结果后,应该能够迅速判断这项任务是否被正确完成。
这一限制比表面上看起来更加重要。
如果一项任务没有清晰的完成标准,就无法构建真正的验证环节。而一个没有可靠验证机制的循环,并不是真正的循环,只是一次无人监督的猜测。
第二阶段:构建第一个循环第 5 步:先写“完成定义”,再写提示词
这是大多数人最容易跳过的一步,却也是决定后续系统能否正常运行的关键步骤。
在为智能体编写任何指令之前,先用清晰、自然的语言写下:一个正确结果究竟应该是什么样子。
你需要的是具体、可检查的标准,而不是“感觉不错”“看起来专业”之类模糊的质量判断。
可以使用以下模板:
任务名称:[任务名称]
完成定义(Definition of Done,DoD):
- [具体、可检查的标准 1]
- [具体、可检查的标准 2]
- [具体、可检查的标准 3]
即使最终输出看起来完整且经过精心润色,只要缺少上述任何一项,这项任务就不能被视为已经完成。
如果你无法为当前选择的任务填写这份模板,就应该回到第 4 步,重新选择一项更适合构建循环的任务。
第 6 步:将“构建者”与“评审者”分离
这是所有循环系统中最重要的架构决策。
负责生成结果的角色,与负责检查结果的角色,必须彼此分离。
原因在于,当模型在生成内容之后立刻审查自己的输出时,它往往会倾向于为刚刚生成的答案辩护,而不是真正从批判角度审视其中的问题。
在一套合理的循环中,至少应该存在两个独立角色:
构建者(Builder)
构建者拥有一定的创造空间,负责生成第一个版本的结果。
评审者(Judge)
评审者接收构建者的输出,以及第 5 步制定的完成定义,并依据这些标准判断结果是否合格。
理想情况下,评审者还应该能够访问构建者无法访问的独立证据,例如:
- 测试套件;
- 原始资料;
- 实时数据;
- 权威数据库;
- 原始任务简报。
这样,评审者的判断才能建立在真实证据上,而不是用与构建者相同的思路,再生成一次主观意见。
第 7 步:给评审者提供客观依据,而不只是让它发表意见
如果评审者只能看到构建者的输出,它最多只能判断结果“看起来是否连贯”。
它无法判断结果是否真正正确。
因此,评审者必须拥有可以核对的客观依据,也就是 Ground Truth。根据具体语境,可以将其理解为“基准事实”“真实数据”或“权威依据”。
对于不同任务,客观依据也各不相同。
编程任务
客观依据是测试套件,以及代码真实运行后的输出结果。
内容生产任务
客观依据是原始资料和内容简报。评审者需要将原始资料与生成稿件并排比较。
研究任务
客观依据是任务明确要求使用的原始文件、论文、数据集或权威来源。
如果你无法明确说出评审者需要依据什么进行检查,那么你的循环就还没有真正的验证机制,无论评审者的措辞听起来多么自信。
第 8 步:先设计交接格式,再编写交接提示词
构建者的输出和评审者的结论,都需要采用明确定义的结构,而不能只是自由流动的自然语言。
否则,下一步的管理器就没有稳定、可靠的信息可以进行判断和路由。
构建者可以采用以下输出格式:
构建者输出:
- 最终交付内容;
- 对结果的信心程度;
- 已知的不确定性。
评审者可以采用以下输出格式:
评审结论:
- PASS:通过;
- FAIL:失败;
- NEEDS REVISION:需要修改;
- 发现的具体问题;
- 本次检查所依据的客观标准或原始证据。
第 9 步:在自动化之前,先手动完整运行一次
在接入自动调度和自动重试之前,先亲自手动运行一次完整的“构建者—评审者”流程。
仔细阅读评审者给出的判断,并问自己:
- 你是否同意它的结论?
- 它有没有放过一个你明知存在错误的结果?
- 它有没有错误地否定一个原本合格的结果?
如果评审者通过了一个你知道是错误的结果,或者否定了一个实际上没有问题的结果,应当先修正客观依据或完成标准,再继续搭建系统。
把一个错误的验证步骤自动化,只会让系统以更快的速度生产错误结果。
第 5 步至第 9 步的完整示例
为了让上述五个步骤更加具体,我们可以观察一个常见任务:把一份原始资料转化为一篇完整文章。
第 5 步:制定完成定义
这项任务的完成标准可以是:
- 草稿中的每一项事实,都能够追溯到原始资料中的明确内容;
- 草稿满足简报中的所有具体要求,包括篇幅、语气和结构;
- 原文的核心论点得到清晰保留,没有被无意义的填充内容稀释。
第 6 步:构建者生成草稿
构建者接收原始资料和内容简报,生成一版草稿。
与此同时,它还需要明确列出写作过程中存在的不确定性,例如:
- 某个数字是否真的出现在原始资料中;
- 某项结论是原文明确表述,还是由模型自行推断;
- 某一事实是否缺乏充分来源。
第 7 步:评审者对照原文检查
评审者同时接收草稿和原始资料,而不是只接收草稿。
它需要分别检查完成定义中的三个标准,并对每项标准单独给出通过或失败结论,而不是把所有维度压缩成一个模糊的综合分数。
将三个不同标准合并成一个总体判断,会掩盖究竟是哪一个维度出现了问题。这是许多原本能够运行的循环,逐渐失去反馈价值的最常见原因。
第 8 步:结构化交接
评审者的结论应该是一个结构化对象,而不是一段充满保留措辞的自然语言。
它需要输出三个明确的通过或失败结果,并针对每一项失败提供具体原因。
第 9 步:手动验证评审机制
在系统自动运行之前,手动执行一次完整流程,能够帮助你发现评审者是否过于宽松或过于严格。
过于宽松的评审者,可能因为文章写得流畅,就放过其中虚构的数据。
过于严格的评审者,则可能因为某种从未写入简报的个人风格偏好,错误地否定一篇合格文章。
这两种问题在第一次搭建时都很常见。
而在系统无人值守地运行 50 次之后再发现它们,远比第一次手动测试时解决问题更加昂贵。
第三阶段:补齐循环缺失的组件第 10 步:建立管理器和真正的停止条件
管理器(Manager)负责读取评审者的判断,并决定下一步操作。
停止条件也应该存在于管理器之中,而且必须被写成明确的硬逻辑,而不是一条模型可以通过自我解释绕开的软性指令。
例如:
停止条件:
- 最大修改次数:3 次;
- 第 3 次评审仍然失败时,将完整历史记录提交给人类处理,不得启动第 4 次修改;
- 质量标准:完成定义中的每一项都必须显示 PASS;
- 预算上限:如果任务成本超过 X,或运行时间超过 Y,无论当前状态如何,都必须立即停止。
一个没有真正停止条件的循环不是系统,而是一项等待暴露风险的负债。
为什么“结果足够好时停止”之类的软性指令并不可靠?
因为它只是一条建议。
当模型已经连续修改多次仍未通过时,为了给任务提供一个看起来令人满意的结局,它很可能说服自己相信“这一版已经足够接近标准”,从而自行降低判断门槛。
相比之下,由代码机械检查的迭代次数,或者管理器无法通过推理绕开的明确规则,不会出现这种问题。
第 11 步:增加持久化机制,让循环能够跨运行记忆
如果一套循环每次启动时都从零开始,它就不会记得上一次运行学到了什么。
因此,需要增加一个简单的持久化层。
可以为每一条真正的新经验建立一个文件,并在文件顶部用一句话概括:
- 学到了什么;
- 修正了什么;
- 为什么这项经验重要。
关键原则是:只记录尚未在其他地方保存的新知识。
重复的记忆不是知识,而是噪声。
要让持久化机制长期有效,必须在写入时保持克制。
人们很容易产生记录所有运行细节的冲动,但这样只会重现第 2 步提到的“臃肿提示词”问题,只不过这一次,膨胀的对象从提示词变成了记忆文件夹。
真正值得记录的经验,是那些一旦遗忘,就需要付出大量时间重新发现的内容,而不是某次按照预期顺利完成的普通运行记录。
第 12 步:定期进行记忆合并与整理
单纯增加持久化机制,最终也会产生与超长提示词类似的问题。
随着时间推移,系统会积累几十个文件,其中许多内容只是对同一问题的略微不同表述。
因此,应当按照固定周期对记忆文件进行整理。每周执行一次通常是一个合理频率。
整理过程包括:
- 审查现有记忆;
- 合并重复内容;
- 将多个相似经验压缩成一条更明确的原则;
- 删除已经被证明错误或过时的内容。
目标不是积累越来越多的文件,而是得到数量更少、信息密度更高的知识。
很多人会完全跳过这一步,因为它不会立刻带来肉眼可见的新能力,只是在预防未来的问题。
但恰恰因为它缺少即时反馈,才更应该被明确加入调度,而不是等到有人发现记忆文件夹已经难以管理时再处理。
在现实中,这种“以后有空再整理”的任务通常永远不会发生,直到系统性能已经因为大量矛盾、过时和半相关的记忆争夺上下文窗口而开始下降。
第 13 步:增加记忆召回环节
每次新任务开始时,让循环先扫描记忆文件中的一句话摘要,判断哪些经验与当前任务真正相关,并且只加载这些相关内容。
同时,还应当明确要求系统:如果现有记忆没有任何内容适用于当前任务,就直接说明没有适用经验。
不要因为记忆系统已经存在,就强行把过去的经验套用到一个完全不同的新问题上。
第 14 步:增加自动调度触发器
接下来,需要决定这套循环什么时候在没有人工启动的情况下自动运行。
触发方式可能包括:
- Cron 定时任务;
- 文件变化监听器;
- 基于日历的周期触发器;
- 某个外部事件或状态发生变化时触发。
这一步会把一套只能由你手动启动的系统,转变为一套能够在你睡觉时继续运行的系统。
讽刺的是,这通常是整份清单中最容易实现的一步,却也是许多人即使已经完成其他组件,仍然迟迟没有实施的一步。
第四阶段:扩展规模并强化可靠性第 15 步:在真正信任循环之前,对它进行压力测试
在把循环用于任何重要任务之前,需要主动针对四种故障模式进行测试。
测试一:不可完成的任务
给系统一个真正无法解决的任务版本,确认管理器能够按照停止条件退出,而不是无限循环。
如果一套循环只在能够成功完成的任务上接受过测试,它就从未证明自己拥有优雅失败的能力。
测试二:看起来合理但实际错误的结果
向评审者提供一个你明确知道存在细微错误的输出。
这个结果应该读起来非常流畅,但包含一个你有意植入的事实或逻辑错误。
观察评审者能否发现问题,而不是仅仅因为内容听起来合理就予以通过。
测试三:构建者与评审者共享模型盲区
如果构建者和评审者使用同一个底层模型,可以故意加入一个该模型经常犯的典型错误,观察评审者是否会放过它。
如果评审者与构建者拥有相同的盲区,那么第 6 步所设计的角色分离就失去了意义。
测试四:计算最坏情况下的运行成本
按照最大修改次数,使用最昂贵的模型调用和合理范围内最长的输出,计算这套循环在最坏情况下需要消耗多少成本。
然后诚实地问自己:
如果这笔数字出现在真实账单上,你是否会感到不安?
在信任循环处理重要任务之前完成这四项测试,能够提前发现绝大多数潜在问题。
否则,这些问题很可能会第一次出现在客户、管理者面前,或者直接体现在你的账单上,而不是出现在一次由你主动控制的测试中。
第 16 步:把不同任务路由给合适的模型
当循环能够稳定运行后,不要让所有角色都使用同一个你最喜欢的模型。
循环中的不同角色,对模型能力的要求并不相同。
构建者
构建者通常应该使用能力最强的模型。
因为它承担主要的复杂推理和内容生成工作。如果在这里使用能力不足的模型,第一版结果的质量会下降,后续可能需要更多修改轮次。
最终,修正低质量初稿所消耗的成本,可能高于一开始就使用更强模型的成本。
评审者
评审者负责依据明确标准进行检查,通常不需要太强的创造能力。
在标准足够具体的情况下,一个规模更小、成本更低、速度更快的模型,往往也能可靠地完成评审任务。
一个小模型如果依据极其明确的检查清单工作,其稳定性可能接近大模型,但成本和延迟都显著更低。
管理器
管理器只是按照已经写好的规则进行路由,几乎从来不需要使用最昂贵的模型。
它的任务是执行已经定义好的逻辑,而不是进行开放式推理。
此外,无论构建者和评审者表现如何,管理器在每一轮迭代中至少都会运行一次,因此,它的单次调用成本尤其值得关注。
合理的分层配置通常是:
- 强模型负责构建;
- 便宜而稳定的模型负责常规评审;
- 低成本模型或规则程序负责路由和管理。
循环系统中真正显著的成本优化,通常来自这种模型角色匹配。
很多人认为控制成本意味着减少循环数量或修改次数。实际上,更有效的方法,是让模型成本与循环中每个角色的实际难度相匹配。
第 17 步:先扩展到第二个循环,而不是同时搭建五个
第一个循环成功之后,人们很容易立刻尝试同时构建多个循环,平行处理五种不同任务。
即使当前架构已经能够支持这种扩展,也应当克制这种冲动。
你应该先让第一个循环稳定运行足够长的时间,直到你真正不再需要密切检查它的每一次输出。
这并不是指某次所有人都在认真观看的演示恰好成功,而是指它经过一段真实运行后,仍然能够持续通过人工抽查。
只有达到这一状态,才应该开始构建第二个循环。
第二个循环最好处理一种与第一个循环明显不同的任务。
这样才能验证底层架构是否具有真正的通用性,而不是仅仅针对同一个任务进行了越来越精细的调优。
第 18 步:为所有循环建立统一监控视图
当你同时运行多个循环之后,需要建立一个统一的监控视图,集中追踪所有循环的成本和停止条件触发情况,而不是只分别查看每一个循环。
单独来看,一套循环的任务预算可能完全合理。
但如果十套循环都各自在预算范围内运行,它们的总成本仍然可能达到一个令人意外的水平。
由于每个循环的独立数据看起来都很正常,这种风险往往直到汇总账单出现时才会被发现。
除了成功完成的任务之外,还需要专门记录每一次停止条件的触发。
如果某个循环频繁触及最大修改次数,而其他循环很少出现这种情况,它传递的信号可能不是“这项任务特别困难”,而是:
- 评审标准设置不合理;
- 评审者过于严格,导致任何结果都无法通过;
- 系统检查了错误的客观依据;
- 完成定义本身存在问题。
如果只追踪成功结果,并把每次人工升级都视为彼此无关的偶发事件,这种设计层面的模式就不会被发现。
第五阶段:成为真正的系统设计者第 19 步:不要再用“写了多少提示词”衡量自己
判断思维转变是否真正完成,最明显的标准,是你日常关注的指标发生了变化。
提示词操作者关心的是:
- 今天写了多少条有效提示词;
- 哪条提示词效果最好;
- 如何把提示词写得更加精巧。
系统设计者关心的是:
- 当前有多少套循环正在运行;
- 每套循环的可靠性如何;
- 系统为自己释放了多少时间;
- 哪些工作已经不再需要人工监督。
如果你仍然用输入了多少条提示词衡量自己的生产力,那么无论技术上已经搭建了多少循环,第 1 步要求的思维转变都还没有真正完成。
第 20 步:把五个动作教给另一个人
最后一步已经不再完全关于你自己的系统。
它用于验证你是否真正理解了这套方法。
你需要尝试在不依赖复杂术语的情况下,向另一个人解释五个基本动作:
识别、交接、验证、持久化、调度。
如果你能够只依靠这五个动作和前面的步骤,带领另一个人构建出他的第一套循环,就说明你已经完成了这份路线图描述的真正转变。
你不再是那个待在循环内部、不断输入下一条指令的人。
你成为了站在循环之外,设计系统并观察它自行运行的人。
跳过步骤后,会悄然积累的四种成本
在文章结尾,有必要给出一个警告。
跳过这份路线图中的步骤,往往不会立即导致系统崩溃。
它的失败通常是安静的,甚至在很长一段时间里都难以察觉,直到问题已经积累到相当严重的程度。
一、验证债务
当你跳过第 6 步和第 7 步,没有建立真正独立的评审者,也没有提供可靠的客观依据时,验证债务就会开始积累。
循环表面上看起来仍然在正常工作,因为生成结果“看起来还不错”。
直到某一个错误在几十次运行中不断累积,最终被人发现时,你才会意识到,系统从一开始就没有真正判断结果是否正确。
二、理解退化
当你跳过第 20 步时,就可能出现理解退化。
你仍然运行着自己曾经构建的循环,却已经无法清楚解释每个组件为什么存在,也无法在系统故障时有效调试。
原因在于,你从未真正内化这套架构背后的逻辑。
三、认知投降
如果第 1 步从未真正完成,就会出现认知投降。
即使验证系统已经通过长期运行证明了自己的可靠性,你仍然会因为习惯,手动复查每一项输出。
这种行为看起来谨慎,实际上却抵消了构建系统的全部意义。
四、Token 成本失控
如果跳过第 10 步,没有为循环设置真正的停止条件,就可能出现 Token 消耗和调用成本的失控。
你往往不会在系统开始失控的第一时间意识到问题,而是直到最终账单出现,才发现循环已经进行了大量无效调用。
上述所有成本都可以避免。
避免它们的方法,始终是同一种纪律:
按照顺序构建,不要跳过那些看起来不够精彩的步骤。
真正发挥作用的,往往正是那些最枯燥的部分:
- 明确的完成定义;
- 可靠的停止条件;
- 可以核验的客观依据;
- 独立的评审机制。
相比之下,那些听起来更有吸引力的部分——巧妙的提示词、复杂的系统架构图——远没有人们想象中那么重要。
真正决定系统质量的,是你所构建的系统是否知道:
- 什么时候自己是正确的;
- 什么时候自己是错误的;
- 什么时候必须停止。
这就是提示词操作者与系统设计者之间的全部区别。
区别不在于谁更加聪明,也不在于谁能写出更华丽的提示词。
真正的区别,是你是否有足够的纪律,认真构建那些枯燥、容易被跳过,却真正决定系统可靠性的部分。