Skip to content
0

循环工程(Loop Engineering)详解 ​

本文系统梳理循环工程的概念、起源、核心思想、构成要素,以及它在 Claude Code 等 AI Agent 工具中的落地方式。


一、它是什么 ​

循环工程(Loop Engineering)是 AI / 大模型领域在 2026 年涌现的一个新概念,它重新定义了人与智能体的协作方式。

它的本质,是把**「谁来给 agent 下一步指令」这件事,从人迁移到一个你自己写的小系统 / 循环**。

二、概念起源 ​

这是一个非常新的概念,诞生于 2026 年 6 月初:

  • Addy Osmani(Google Chrome 工程负责人)把这句话和 PSPDFKit 创始人 Peter Steinberger 的类似观点结合,提炼出 "Loop Engineering" 这个概念,迅速成为社区标准用语。
  • 最初引发讨论的那篇文章,几天内浏览量超过 650 万,扩散速度极快。

值得强调的是:这个概念本身就诞生在 Claude Code 这套工具链里——你现在用的工具,正是它被提出的背景。

三、核心思想:从「人写 prompt」到「系统持续 prompt」 ​

维度传统方式循环工程
指令来源人手动写 prompt系统根据状态自动生成下一步 prompt
人在哪里在回路里反复打断、纠正人只设目标和停止条件,过程自治
指令粒度一次性指令递归目标,迭代到收敛
你的角色提示者(Prompter)循环系统的设计者

四、一个「循环」由什么构成 ​

一个能自治运转的循环,通常包含五个要素:

  1. 目标定义——一个可判定的目的(不是一次性任务),系统能判断"达成与否"。
  2. 触发器——按时间、按事件、或按条件唤醒循环。
  3. 上下文注入——每一轮把当前状态与历史结果喂给 agent。
  4. 验证 / 停止条件——怎么算"做完了",以及何时该放弃或转人工。
  5. 反馈回路——上一轮的产出,变成下一轮的输入,逐步逼近目标。

五、在 Claude Code 里的落地体现 ​

你现在使用的 Claude Code,本身就内置了做循环工程的工具——它们正是 Boris 所说"在运行的循环"的具体形态:

工具在循环里的角色
/loop让一个 prompt / 命令按间隔反复运行(如"每 5 分钟检查一次部署状态")
ScheduleWakeupagent 自己决定"多久后再醒来继续",动态自定步调
CronCreate定时触发,可持久化、跨会话存活
Workflow把"分解 → 执行 → 验证 → 综合"编排成确定性循环,支持多 agent 并行

把它们组合起来,你就能搭出一个会自己跑的系统,而不再逐条打字发 prompt。

六、实践:搭一个会自己跑的「需求实现循环」 ​

光讲概念不够,下面用一个最小可复现的案例,把上面五个要素和四件工具串起来。场景很常见:你拿到一个需求,希望 agent 自己把它做完、做到通过校验,而不是你盯着一轮轮发指令。

1. 把目标拆成可判定的停止条件 ​

循环要能自治,首先得让"做完没有"可被机器判断。把模糊的"做好"翻译成三条硬指标:

  • lint:npm run lint 退出码为 0
  • 测试:npm test 全绿,无失败用例
  • 清单:新增列在「有数据 / 无数据」两种情况下都渲染正确,且取值与接口返回一致

2. 用 Workflow 把"一轮"写成确定性流程 ​

一轮迭代 = 改代码 → 跑校验 → 判断。用 Workflow 把它编排成 pipeline,每一站产出喂给下一站:

text
改代码(agent)
   ↓ 输出:本次 diff
跑 lint + 测试(bash)
   ↓ 输出:通过 / 失败日志
判定(agent)
   ↓ 全绿 → 结束;有失败 → 提取原因进入下一轮

3. 用 /loop 让它反复跑,直到收敛 ​

单轮流程写好后,用 /loop 套一层外壳让它反复执行:每一轮把上一轮的失败日志作为上下文重新喂进去,逐步逼近三条硬指标。

text
/loop 当 lint 与测试未全绿时,基于上轮失败日志继续修复;全绿则停止

4. 设一条"放弃"兜底,避免死循环 ​

递归目标最怕永远不收敛。加一条停止条件:连续两轮 无新增进展(diff 为空或失败数不降)→ 停止循环并把你拉回回路转人工。这一步对应五要素里的「验证 / 停止条件」。

七、一句话总结 ​

延伸阅读:这个概念仍在快速演进,两份一手资料可直接看——Addy Osmani 的概念原文,以及社区维护的 GitHub 参考仓库(含模式、starter 与 CLI 工具)。

最近更新