Field Guide · 循环工程

别再推循环,
去设计循环

Loop Engineering(循环工程)说的是一次角色转变:不再由你逐条 prompt Agent,而是设计一套替你 prompt Agent 的系统。这一页把 2026 年 6–7 月爆发的这场讨论收拢成一张地图——谁提出的、官方怎么定义、循环由什么零件组成、什么任务值得建循环、生产环境里踩过哪些坑——最后用 10 道题验证你真的学会了。

四个一手来源:Anthropic《Getting started with loops》(即 @ClaudeDevs 推文所载 X 文章)· 吴恩达 The Batch #359 三循环信 · 本地 LLM-WIKI 概念群(LoopEngineering / Ralph / Harness / AgentLoop)· 阿里《Loop Engineering 实战:从日志扫描到预发部署的全自主闭环》

§1

心智模型:循环是什么,从哪来

先立两块基石:官方定义 + 概念谱系。然后做一个最容易混淆的区分——内层 agent loop 和外层 Loop Engineering 不是一回事。

"We define loops as agents repeating cycles of work until a stop condition is met."

中文大意:循环 = Agent 重复执行工作周期,直到满足某个停止条件。

— Anthropic Claude Code 团队《Getting started with loops》,2026-06-30

"I don't prompt Claude anymore. I write loops that prompt Claude and decide what to do next. My job is to write the loop."

中文大意:我已经不再 prompt Claude——我写循环,由循环去 prompt 它并决定下一步。我的工作就是写循环。(转引自 The New Stack 报道)

— Boris Cherny,Anthropic Claude Code 负责人

谱系:一个月内从个人习惯变成行业术语

最容易混淆的区分:内层循环 vs 外层循环

Inner · 模型级 · 产品自带Agent Loop(智能体循环)每个编码 Agent 的最内层机制:收集上下文 → 行动(调工具)→ 验证 → 重复。Claude Code、Codex 都内置这一层,你不用造它。Thorsten Ball:一个 agent = 一个 LLM + 一个循环 + 足够的 token。
Outer · 系统级 · 你来设计Loop Engineering(循环工程)包在外面的那层:谁来 prompt 这个 agent loop、什么时候触发、怎么验证产出、状态记在哪里。Loop Engineering 自动化的正是这一外层——把「prompt Agent 的人」替换成系统。

一条判别公式贯穿全文:循环 = 生成器 + 验证器。能跑起来的循环不等于有用的循环——没有验证器,自动化只是在更快地烧 token(阿里实战文的开篇论断)。

§2

四层演进:Loop 在楼的第几层

AI 工程化像带新人,四层逐级叠加,上层包含下层全部能力。点每一层,看它解决什么、卡在哪。(框架来自阿里实战文与老金的演进链:Prompt → Context → Harness → Loop)

☝ 点一层,看它解决什么、卡在哪。

Harness vs Loop:四个维度看清分界线

维度Harness(挽具)Loop(循环)
触发方式你手动启动一次会话按时间 / 事件自动触发
运行周期单次会话,做完即止持续运转,跨会话
状态在哪在 context 窗口里,关掉就没在磁盘上:markdown、看板、git 历史
你的角色操作者(operator)设计者(designer)

跨越单次对话的记忆,是「循环」和「一次性操作」的分界线。Harness 是为单个 Agent 搭舞台,Loop 是让整出戏自己演下去。(老金)

§3

四种循环:Anthropic 官方分类

官方按「怎么触发、怎么停止、用哪个原语、适合什么任务」把循环分成四种。记住原则:不是所有任务都需要复杂循环,从最简单的开始,按需升级。

① 回合循环 · Turn-based

普通 prompt + SKILL.md
触发
你发一条 prompt——每条 prompt 都启动一个由你导演的手动循环
停止
Claude 自己判断任务完成或需要补充上下文
适合
较短的、不属于固定流程的任务;你还在探索或做决定时
管用量
写更具体的 prompt;把人工检查步骤编成 SKILL.md 让它自验,减少来回轮数

② 目标循环 · Goal-based

/goal
触发
实时的一条手动 prompt,但你定义「done 长什么样」
停止
目标达成,到达你设定的最大轮数。每次 Claude 想停,评估模型会检查你的条件,不达标就打回去继续
适合
可验证退出条件的任务——测试通过数、分数阈值这类确定性判据最有效
管用量
明确的完成判据 + 显式轮数上限("stop after 5 tries")

③ 时间循环 · Time-based

/loop · /schedule
触发
固定时间间隔。/loop 在你电脑上按间隔重跑一条 prompt(关机即停);/schedule 把循环搬上云端变成 routine
停止
你取消,或工作自然完成(PR 合了、队列空了)
适合
重复性工作(任务不变、只有输入变),或需要按间隔轮询外部系统再做反应(PR 的 review / CI)
管用量
拉长间隔;能按事件驱动就别按时间轮询——间隔要匹配所盯对象的变化频率

④ 主动循环 · Proactive

/schedule + /goal + workflows + auto mode
触发
事件或日程,没有人在场。是前三种原语的组合体:routine 发现工作 → /goal 定义完成 → dynamic workflows 编排多 agent → auto mode 免审批运行
停止
每个任务在目标达成时退出;routine 本身一直跑到你关掉
适合
良定义的重复工作流:bug 报告处理、issue 分诊、迁移、依赖升级
管用量
routine 路由给更小更快的模型,判断类决策才用最强模型

一张表选型:你交出什么,就得到哪种循环

循环你交出的是什么时候用伸手用什么
回合循环检查这一步你还在探索或做决定自定义验证 SKILL.md
目标循环停止条件你知道 done 长什么样/goal
时间循环触发这件事工作按时间表发生在项目之外/loop · /schedule
主动循环prompt 本身工作重复且良定义以上全部 + dynamic workflows

读表方式:从上到下,你逐级把「检查 → 停止 → 触发 → prompt」交给系统——这正是 §1 那句「把 prompt Agent 的人替换掉」的分步实现。

§4

吴恩达的三循环:换个坐标系看同一件事

Anthropic 分类回答「循环怎么触发」;吴恩达在 The Batch #359 里分的是「循环包着谁、多久转一圈」——从写代码上升到造产品。两套坐标互补。

分钟级 · Minutes① Agentic 编码循环给定产品 spec(可选配 evals),Agent 写码 → 自测 → 迭代到无 bug 且符合 spec。吴恩达称之为 game changer:他给女儿做打字 app,Agent 自主工作约一小时、期间多次自己开浏览器测试才需要他介入。
小时级 · Hours② 开发者反馈循环开发者审视当前产品、引导 Agent 改进。过去开发者被迫当 QA 手动找 bug;现在 Agent 能自测了,人腾出来做更高层的产品决策——该做什么功能、UI 哪里要改。
天/周级 · Days③ 外部反馈循环问朋友要反馈、发 alpha 版、生产环境 A/B 测试。几乎不可能快于几小时,常常以天、周计——它是整个系统里最慢的循环,也因此是真正的瓶颈

"So long as the human knows something the AI does not, human-in-the-loop is needed."

中文大意:只要人还知道一些 AI 不知道的事(关于用户、关于业务),人就必须留在循环里。这是吴恩达给「全自动」画的边界——人的价值在于 context advantage(上下文优势),不在于打字速度。

— Andrew Ng,The Batch #359,2026-06-30

两套分类拼起来用:Anthropic 的四种循环是工具箱(拿什么建),吴恩达的三个循环是仪表盘(加速哪个环节最值)。内层循环再快,产品迭代速度仍卡在最慢的外层循环上。

§5

解剖:一个能自己转的循环由什么组成

Addy Osmani 的五构件与阿里实战的「五动作 + 六组件」高度同构。这一节用阿里那条生产级 Loop(AI 云诊断系统的日志维护链路)做标本。

五个动作:缺验证或调度,循环退化为一次性 prompt

动作做什么靠什么组件对应 Osmani 构件
发现找出该做的事(而不是等人指派)Connectors + AutomationsAutomations 定时发现工作
交付隔离地交给 Agent 执行Skills + WorktreesSkills 项目知识 / Worktrees 并行隔离
验证换一个 Agent 说不——生成者不能批改自己的试卷Sub AgentsSub-agents 把「出主意」和「验证」分成不同角色
持久化状态写到对话之外(模型跨轮会遗忘)Statemarkdown / Linear 记录已完成与下一步
调度一圈圈自动转——没有调度就不是循环Automations「跑在定时器上、会派生小助手、会喂养自己」

六个组件的依赖顺序:地基先行

这条 Loop 的实测收益(阿里生产环境)

1210 → 47一周 ERROR 总量(-96%)
48 → 15 分钟同类问题修复时间(-69%)
0 次到预发为止的人工介入

整条链路:一句指令或每日定时 → 从 3 个日志库挖出 bug → 8 阶段诊断 → 生成补丁 → 跑 334 条测试 → 提交 CR → 预发部署 → 集成验证 → 钉钉通知。人只点一次「批准发布」。验证失败自动重试,最多 3 轮,三轮不过升级人工——不在错误方向上无限空转。

§6

该不该建:四格检验 + 最朴素的循环

建 Loop 有 setup 成本(写 Skill、接 Connectors、调验证器)。先过四格检验,四格全满才值得建;缺任何一格,老老实实用回合循环。

① 任务会重复吗每天跑、每周跑的才配得上循环。一次性架构评审不配。
② 验证能自动化吗测试、linter、分数阈值、Trace 指标。「提升用户体验」这类目标模糊的探索不行。
③ Token 预算可承受吗单次耗费可预估、有熔断。阿里初期每次全量诊断 200K+ token,一周烧穿预算。
④ Agent 有高级工程师的工具吗查日志、跑测试、触发发布的通道都得先接好——工具不齐,循环闭不上。

极简形态:Ralph——"Ralph is a Bash loop"

Geoffrey Huntley 把循环做到最朴素:一个 while true,反复把同一个 prompt 文件喂给 Agent。prompt 永不变化,变化只发生在文件系统和 git 历史里——文件即记忆,Agent 每轮读自己上一轮的产出来自我纠错。约定一个完成短语(completion promise),输出它就结束;配 --max-iterations 做逃生舱。Claude Code 官方已有 ralph-wiggum 插件(用 Stop hook 在会话内部拦截退出并喂回 prompt,无需外部脚本)。

✓ 适合 Ralph / 全自动循环
  • 有明确成功标准 + 自动验证(测试 / linter)的良定义任务
  • 可放手的 greenfield 项目(README 自述战绩:一晚生成 6 个仓库;$297 API 成本完成 5 万美元合同)
  • 批量、机械、可分片的迁移类工作
✗ 不适合
  • 需要人类判断 / 设计决策的任务
  • 一次性操作(setup 成本收不回)
  • 成功标准说不清楚的探索
  • 生产环境调试(后果不可逆)

Ralph 哲学四条:迭代优先于完美;失败即数据("deterministically bad"——失败可预测且有信息量);操作者技能(写好 prompt)比模型更关键;坚持即胜利。

§7

可复制模板:把循环敲进工作流

功能性 prompt 保留英文原文(是拿来用的,不是拿来读的),每条附中文大意。从上到下,自动化程度递增。

Goal-based · /goal

把「什么算完成」交给系统

用在:有确定性验收判据的任务。评估模型会在 Claude 每次想停时检查条件,不达标打回重做。

/goal get the homepage Lighthouse score to 90 or above, stop after 5 tries.

中文大意 把首页的 Lighthouse 分数提到 90 以上,最多尝试 5 次。要点:分数阈值是确定性判据 + 显式轮数上限,两者缺一不可。

Time-based · /loop

按间隔盯一个外部系统

用在:轮询外部环境并对变化做出反应。跑在本机,关机即停;间隔要匹配所盯对象的变化频率。

/loop 5m check my PR, address review comments, and fix failing CI

中文大意 每 5 分钟检查一次我的 PR:处理 review 意见、修掉挂了的 CI。PR 合并即自然停止。

Proactive · /schedule + /goal + workflows

官方给出的完全体:无人值守的反馈处理线

用在:良定义的重复工作流。四个原语一次组合:routine 发现工作、/goal 定义完成、workflow 编排多 agent、auto mode 免审批。

/schedule every hour: check #project-feedback for bug reports. /goal: don't stop until every report found this run is triaged, actioned, and responded to. When fixing a bug, use a workflow to explore three solutions in parallel worktrees and have a judge adversarially review them.

中文大意 每小时检查 #project-feedback 频道的 bug 报告;本轮发现的每个报告都要分诊、处理、回复完才许停。修 bug 时用 workflow 在并行 worktree 里探索三种方案,并由一个裁判 agent 对抗式评审。

验证器 · SKILL.md

把你的人工检查编成 Agent 的自检清单

用在:任何循环的「验证」步。检查越量化,Agent 越能自验——这是回合循环减少来回、目标循环判定 done 的共同基础。官方原文示例:

---
name: verify-frontend-change
description: Verify any UI change end-to-end before declaring it done.
---

# Verifying frontend changes
Never report a UI change as complete based on a successful edit alone.
Verify it the way a human reviewer would:

1. Start the dev server and open the edited page in the browser.

2. Interact with the change directly. For a new control (button, input,
   toggle): click it, confirm the expected state change, and screenshot
   before/after.

3. Check the browser console: zero new errors or warnings.

4. Use the Chrome Devtools MCP, run a performance trace and audit
   Core Web Vitals.

If any step fails, fix the issue and rerun from step 1 — do not hand
back partially verified work.

中文大意 任何 UI 改动都不许只凭「编辑成功」就报告完成:起 dev server 亲自打开页面 → 直接操作改动点并截图前后对比 → 控制台零新增报错 → 用 Chrome DevTools MCP 跑性能 trace 审计 Core Web Vitals。任一步失败就修掉并从第 1 步重来,不许交回部分验证的工作。

极简全自动 · ralph-wiggum 插件

同一个 prompt 循环到底

用在:良定义 + 可自动验证 + 可放手的任务。--completion-promise 是精确字符串匹配,表达不了多种完成状态,所以 --max-iterations 才是首要安全阀

/ralph-loop "Implement the spec in SPEC.md one item at a time. After each change, run the full test suite and fix failures before moving on. When every item is implemented and all tests pass, output DONE." --max-iterations 20 --completion-promise "DONE"

中文大意 逐条实现 SPEC.md 里的规格;每次改动后跑全量测试、修完失败再继续;全部实现且测试全绿时输出 DONE(完成短语)。最多迭代 20 轮。取消用 /cancel-ralph

最小可用 Loop:四周落地计划(阿里版)

做什么产出验收标准
1四格检验 + 选场景一张四格表 + 一个确定的目标场景四格全满
2–3建 Connectors(接日志 / 监控 / 发布)Agent 能查日志、能触发发布一条命令跑通全链路
4写第一个 Skill + 加定时调度每天自动跑一轮 Loop连续 3 天无人值守运转

老金的同构建议:最小可用 Loop = cron + 一个 skill + markdown 记忆,先跑起来再逐层加——Maker/Checker 分离和防静默失败(changelog + 异常上报 + 通知)随后补上。

§8

血泪教训与边界:循环不会替你负责

先看阿里在生产环境交的四笔学费,再看两条来自命名者和吴恩达的认知边界,最后是官方的 token 纪律。

教训一:连续两周不看 diff 就合并。系统越好用,人越松懈。一个 Agent 把 retry=3 改成 retry=0,线上超时率翻倍。对策:每周至少抽查 3 个 diff。
教训二:验证器覆盖不全 = 假安全感。初版只有单元测试,logger.error → warning 的假修复畅通无阻。对策:至少 3 层独立验证才允许自动合并。
教训三:Token 成本失控。初期每次全量诊断 200K+ token,一周烧穿预算上限。对策:小模型先初筛(5K token),高优问题才上大模型深诊 + 预算熔断。
教训四:Connectors 建设被低估。工具链占总工作量 30%,但前两周几乎没投入,上层全在空转。对策:先花两周打好 Connectors 地基,再建上层。

两条认知边界

官方 token 纪律(Anthropic)

收束到一句话:工程师的价值正从「写 prompt」转向「设计能自己转的循环」——别再当循环里最慢的那一环。但循环转得再快,diff 还是要看,责任还是你的。

§9

自测:通过才算学会

10 道题:定义与谱系、四种循环选型、三循环视角、解剖学、适用判断、实战纪律。答错会告诉你回读哪一节。全对解锁一句话总结。

0 / 10 已作答