
🚩 2026 年「术哥无界」系列实战文档 X 篇原创计划 第 179 篇,AI 编程最佳实战「2026」系列第 61 篇
大家好,欢迎来到 术哥无界 | ShugeX | 运维有术。
我是术哥,一名专注于 AI 编程、AI 智能体、Agent Skills、MCP、云原生、AIOps、Milvus 向量数据库的技术实践者与开源布道者!
Talk is cheap, let's explore。无界探索,有术而行。

上周 Anthropic 发了一篇叫 Getting started with loops 的文章,把最近很火的 Loop Engineering 拆成了 Claude Code 里可以直接用的四层能力。
当时很多人在传。但因为官方博客写得太克制,没真正讲清楚每层的版本要求和停止机制。
我把这篇文章、官方文档和社区一个月的反馈一起翻了一遍,想把几个容易忽略的边界补出来。
Agent 真正开始干活后,最贵的就不再是让它动起来。更难的是让它在对的地方停下来,并拿证据证明自己做完了。
下面这张图把官方四层 Loop 和每个控制点放到一起看:
说明:本文内容基于 Anthropic 官方博客 Getting started with loops、Claude Code 官方文档及 GitHub Issues(#58348、#64744)整理而成。文中的命令示例、版本要求和参数边界仅供参考,实际使用请以你的 Claude Code 版本和官方最新文档为准。 如果有实际落地经验,欢迎在评论区分享交流。
官方对 loop 的定义很朴素:Agent 重复执行一轮轮工作,直到满足停止条件
这里有三个关键问题:
我自己的理解更土一点:Loop 工程就是把「我下一步该怎么催 AI」改成「我怎样设计一个 AI 会自己推进的系统」
这个变化很大
以前我们写 prompt,像是在旁边盯着实习生做事:读这个文件、改那段代码、跑一下测试、再给我看结果
Loop 工程更像搭一套班组制度:任务怎么来、谁先处理、怎么验收、失败怎么重试、什么时候升级给人
停止条件是整件事的核心
没有停止条件的 Loop,就是 Token 焚烧炉
没有验证步骤的 Loop,就是自动化产生幻觉
官方把 Claude Code 里的 Loop 分成四层,从人盯人,到系统自动跑:
Loop 类型 | 你交出去的东西 | 适合场景 | 对应能力 | 关键边界 |
|---|---|---|---|---|
Turn-based | 检查动作 | 探索、临时修改、小任务 | 普通对话 + Skills | 验收主要靠人 |
Goal-based | 停止条件 | 有明确验收标准的长任务 |
| 需要 v2.1.139+,条件 ≤ 4,000 字符 |
Time-based | 触发节奏 | 定时检查外部状态 |
| 本地 session ≤ 50 任务,recurring 7 天到期 |
Proactive | 整套提示和流程 | 重复发生、边界清楚的工作流 |
| Workflow 每 run ≤ 1,000 agent,并发 ≤ 16 |
这张表可以当作 Claude Code 的自动化路线。别一上来就上最复杂的 Proactive loop:先从最小的一层开始,把能验证的东西写清楚,再逐步放权。
下面四节按层级展开。我会把每层最容易踩坑的那一处单独点出来,其他次要细节直接给命令或表格,不展开。

你每发一条 prompt,其实都启动了一个手动 Loop
Claude 会读上下文、动手改、跑检查、判断是否完成,然后把结果交回来
这就是最普通的 Agentic Loop
问题在于,这一层的验收主要还靠人
比如你让 Claude 做一个前端按钮。它改完代码、跑完测试,然后告诉你完成了。真正的验收还包括:页面能不能打开,按钮点了有没有变化,控制台有没有报错,手机端会不会挤爆布局,截图前后是否符合预期。
Anthropic 的建议是把这些人工检查步骤写进 SKILL.md
这点我非常认同
Skills 最值钱的地方,是让 Claude 知道你认为什么才叫完成
一个好的 Skill,应该把怎么做和怎么验收都写进去
前端、数据分析、视频处理、文章发布这类任务,光听模型说“看起来没问题”不够。得让它真的打开、点击、跑脚本、看输出。
/goal 是这篇文章里最值得普通用户立刻用起来的能力
官方文档写得很直白:/goal 需要 Claude Code v2.1.139 或更新版本(v2.1.139 release 明确把 /goal 列为新增命令)。低于这个版本,命令根本不识别
它的核心作用是:你给 Claude 一个完成条件,它会跨多轮持续工作。每轮结束后,再由一个评估模型判断条件是否满足。
一个最常见的例子:
/goal npm test exits 0 and npm run lint exits 0, stop after 6 turns或者官方给的:
/goal get the homepage Lighthouse score to 90 or above, stop after 5 tries这里有个细节决定 /goal 到底能不能用:
评估模型(默认是 Haiku)不会自己跑命令、读文件。它只能看当前会话里已经出现的证据。
换句话说,你必须让命令真的跑过,把 exit code 写进对话,评估者才看得到。
所以一个好的 /goal 条件,最好写清三件事:
我建议你以后少写这种:
/goal 把这个项目优化好多写这种:
/goal npm test exits 0, npm run build exits 0, homepage Lighthouse performance score is at least 90, stop after 6 turns前者像许愿,后者才像工程。
另外几个工程上要注意的硬约束(官方文档明确):
/goal 看状态,用 /goal clear 停止,stop/off/reset/none/cancel 都是 clear 的别名--resume / --continue 恢复,但计时、turn 数和 token 基线会重置GitHub 上有个很值得提的 issue:anthropics/claude-code#58348。用户报告 v2.1.139 上 /goal 条件引用了一个未注册、模型调不到的 Skill,结果评估者一直说「这个条件没法验证」。循环跑了 30 多次还没停。这事印证了上面那条判断:goal 条件只能写评估者能从 transcript 里看到证据的事,不能许愿模型去调用某个 Skill 自己搞定
有些任务并不会因为 Claude 当前这一轮努力就结束
比如:
这就该用 /loop 或 /schedule
/loop 是本地循环,官方例子是:
/loop 5m check my PR, address review comments, and fix failing CI它会按你给的间隔重新运行这条任务。如果你只给 prompt 不给间隔,Claude 会在 1 分钟到 1 小时之间自己选下一次触发时间;如果你什么都不给,跑的是内置 maintenance prompt,或读 .claude/loop.md / ~/.claude/loop.md
但 /loop 跑在你的电脑上,电脑关了就停
如果你想把这件事搬到云端,就要用 /schedule 创建 Routine。Routine 跑在 Anthropic-managed infrastructure 上,机器关机也能继续;支持三种触发器:
官方文档明确说,Routine 当前是 research preview,行为、限制和接口都可能变化。云 schedule 最小间隔 1 小时,需要 Pro / Max / Team / Enterprise 且启用 Claude Code on the web。Routine 每次执行都是新的 autonomous cloud session,没有交互 approval prompt。每次运行都会重新 clone repo,默认只能 push claude/ 前缀分支。
这一层最容易踩的坑,是预算失控。
GitHub 上有个 issue #64744 报告了一次真实事故:用户的 /loop 取消异常(ScheduleWakeup 没正常取消),结果跑了 864 次、约 72 小时、花了约 300 美元。这不是普遍行为(只是一个 issue),但足以说明几件事:
/loop 任务后,要确认它真的停了(/loop 列表里检查、CronList / CronDelete 管理任务)我的建议是:能事件触发就别高频轮询,能一天一次就别五分钟一次
另外本地 /loop 还有两个硬约束容易被忽略:session 最多保存 50 个 scheduled tasks,recurring task 在创建 7 天后会自动到期
最猛的是 Proactive loop
它没有实时人类在旁边等着输入下一句
事件或日程一触发,Claude 自己启动,自己拆任务,自己调用 Skills,自己设目标,必要时再拉起 Dynamic Workflows 和多个子 Agent
官方给了一个非常典型的组合:
/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.这句话里藏了四层能力:
/schedule 负责定时启动/goal 负责定义本轮做到什么程度这已经不只是“让 AI 写代码”了。你是在把一小段研发流程交给 Claude Code 托管。
官方文档说 Dynamic Workflows 需要 Claude Code v2.1.154 或更高版本。它让 Claude 生成 JavaScript workflow,runtime 在后台执行,脚本控制 loop、branching、pipeline 与中间变量,subagents 负责文件和 shell 操作
几个数字必须知道:
这两项数字描述的是 runtime 上限,不是推荐规模。官方 UI 在 agents 超过 25 个或 projected tokens 超过 150 万时提示 Large workflow,但提示不自动阻断
我的判断是:绝大多数个人开发者暂时用不到这么大的规模。它先把方向摆出来了——以后真正拉开差距的,可能是能不能设计出一套可靠的 Agent 流水线。
第一处是把外部 payload 当可信输入
Routine 触发时,issue、Slack 消息、API body 都可能包含 prompt injection。官方 Routine API 已经对 fire payload 加 untrusted wrapper,但你保存的 prompt 必须明确只把 payload 当数据,不能让模型自己决定遵循里面的指令
第二处是把 Goal 写成「调用某个 Skill」
上面 #58348 的事在 Proactive 里被放大很多倍:Goal 里写「调用 review-pr Skill 完成 review」,但 Skill 没注册或被禁用,评估者就永远拿不到 yes,循环就一直跑。安全的写法是把验收条件写成「review.md 里包含了 X、Y、Z 三个章节」这种产物层的可验证条件

很多人看到 Loop,会第一时间想到自动化、无人值守、夜里帮我干活
我更关心另一面:质量怎么守住
官方文档提了几条,我觉得都很实在:
这几条合起来其实是一句话:自主程度越高,验证越要前置
你不能指望一个循环跑了 20 轮之后,靠最后一句「请检查一下」兜底
正确做法是把检查机制嵌进循环本身
成本这件事比质量更现实
/loop、/schedule、Dynamic Workflows 都能在你不注意时烧钱。Reddit 上有个用户报告用自学习外循环把 Python 仓库迁到 TypeScript,自述 约 4 小时、119 commits、约 1.4 万行代码,build/tests/examples 都过。
这当然是作者自己说的,没独立审计;但它至少说明:只要不设上限,Loop 可以跑得比你想象的久。
社区对 Loop 最大的批评,是它不适合一次性、探索型需求。先写完整的完成条件、权限、回滚、边界和升级规则,有时比直接跟 Agent 迭代还慢。
这话我同意一半:日常 hack 根本用不上 Loop 工程。只有任务真的会重复、会跑很久,或者需要并行 review 时,这套机制才值回票价。
模型质量波动被循环放大也是真问题。HN 和 Reddit 上都有人吐槽:Claude 在一类任务上能写出很干净的代码,换一类任务就会重复、冗余、范式漂移。
Loop 增加吞吐,也加快了错误复制。这就是为什么要 Maker 和 Checker 分离,也要让一个 review subagent 带着 fresh context 来看。

如果你刚开始玩 Claude Code Loop,建议按这个顺序来
挑一个你最常让 Claude 做的任务,把「完成前必须检查什么」写进 SKILL.md
比如前端改动必须打开页面、脚本必须拿样例数据跑一遍、文章必须查句号和外链、PR 必须确认只动了预期文件
这一步是其他所有层的基础。没这一步就上 /goal,只会让模型自信地错下去
/goal适合 /goal 的任务一定要有明确终点
测试通过、构建通过、分数达标、issue 清空,这些都可以
优化一下、帮我整理好、尽量完善这种模糊愿望,先别交给 /goal
写条件时把退出码、报告路径、turn 上限都写进去,别怕啰嗦
/loop 看外部状态PR、CI、review、部署结果,这些很适合定时检查
但一定要设置合理间隔和 turn 上限
高频轮询看起来很勤奋,本质上是在花钱买焦虑。/loop 在 session 内最多 50 个 scheduled task,recurring 7 天到期,记一下这两个数
当一个任务已经稳定重复出现,而且你知道输入、输出、验收和失败处理,才值得做成 Routine
这时再加并行 Agent、对抗 review、工作树隔离,收益会很明显
但 Dynamic Workflows 的 16 并发 / 1,000 agent 是天花板,不是起步价。先小范围试跑,再扩大规模

第一,Loop 不宜越跑越长
一个任务如果 3 轮都没有明显进展,继续跑大概率只是扩大错误。设置 stop after N turns 是个简单但有效的方法
第二,别把 stop 条件写成主观判断
页面看起来不错很难评估。截图没有遮挡、控制台 0 报错、Lighthouse 超过 90 才靠谱
第三,别把所有任务都塞进多 Agent
小任务用单 Agent 更稳,也更省。Addy Osmani 的建议是只在「第二意见值得付费」的阶段上 subagent,社区也反复强调并行数量不是价值本身,最终 review bandwidth 仍是瓶颈
第四,别忽略成本
Dynamic Workflows 可以拉起很多 Agent。爽是真的爽,账单也是真的账单。先小范围试跑,再扩大规模
第五,别混用 Goal 和未注册 Skill
/goal 条件里不要写「调用某个不存在的 Skill 完成 X」这种条件。GitHub #58348 就是这么卡住的。Goal 条件必须能由 transcript 里的证据验证,不依赖一个可能不存在的工具
第六,把外部 payload 当不可信数据
issue、Slack、API body 都可能被人塞 prompt injection。Routine prompt 要明确只把 payload 当数据,让模型只提取结构化字段,不要遵循里面的指令
Anthropic 这篇文章最有价值的地方,是把 Loop Engineering 从一个流行词,拆成了 Claude Code 里可以直接使用的四层能力
Turn-based 解决临时任务,/goal 解决可验收长任务,/loop 和 /schedule 解决外部状态触发,Proactive loop 解决稳定重复的工作流
如果你只记住一句话,我会这么说:
Loop 工程的核心,是让 AI 知道什么时候该继续、什么时候该停、拿什么证明自己做完了
对于 Claude Code 用户,我建议今天就做两件小事:
/goal 跑一次(注意需要 v2.1.139+)跑完你会发现,AI 编程的手感会从「我不停催它」,变成「我定义好边界,然后等它交付」
这才是 Agent 真正开始替你干活的感觉
好啦,谢谢你观看我的文章,如果喜欢可以点赞转发给需要的朋友,我们下一期再见!敬请期待!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。