Claude Code 学习站

Claude Code 循环任务四种模式:从单轮到自主运行

摘要 Anthropic 官方博文,讲解 Claude Code 中「循环」的四种类型(单轮、/goal、/loop 与 /schedule、主动式循环)及其触发方式、停止条件与 token 管理建议。

本页目录8
要点速览
  • 官方把「循环」定义为智能体反复执行工作直到满足停止条件,按触发方式分为四类
  • 单轮循环由用户提示触发,靠 Claude 自行判断任务是否完成,适合较短的一次性任务,可用 Skill 文件固化人工验证步骤
  • `/goal` 循环需设定可验证的完成标准和最大轮数上限,避免过早或无限循环
  • `/loop` 在本地按时间间隔运行,`/schedule` 则把同类循环搬到云端长期运行
  • 主动式循环无需人工触发,组合 `/schedule`、`/goal`、Skill 与动态工作流,适合稳定的重复性工作流
  • 控制 token 消耗的关键是选对 primitive 和模型规模、明确停止条件,并用 `/usage`、`/goal`、`/workflows` 观察实际用量

本文是对 Anthropic 官方博文「Getting Started with Loops」的中文要点摘要,完整内容以原文为准:https://claude.com/blog/getting-started-with-loops

这篇官方文章把 Claude Code 中的「循环」(loop)定义为:智能体不断重复一轮又一轮的工作,直到满足某个停止条件为止。文章按「谁来触发」「何时停止」「用什么原语」「适合什么任务」这几个维度,把循环分成了四类,并给出了对应的 token 管理建议。

循环的四种类型

1. 单轮循环(Turn-Based Loops)

  • 触发方式:用户手动发一条 prompt
  • 停止条件:由 Claude 自己判断任务是否完成,或者判断是否需要更多上下文
  • 适合场景:较短、非重复性的一次性任务

这类循环最容易出现「Claude 以为做完了,实际没做完」的问题。官方建议用具体、可验证的 prompt,并借助 Skill 把人工验证步骤固化下来——比如写一个 SKILL.md,规定「涉及 UI 改动时必须启动开发服务器、在浏览器里实际操作、检查控制台报错、做性能审计」之后才能宣布任务完成,而不是让 Claude 凭感觉判断。

2. 目标式循环(Goal-Based Loops,/goal

  • 触发方式:仍是实时手动 prompt
  • 停止条件:目标达成,或达到设定的最大轮数
  • 适合场景:有明确、可验证退出条件的任务

关键在于把「完成」定义成可判定的量化标准,而不是模糊描述。文中给的例子是:「把首页 Lighthouse 分数做到 90 分以上,最多试 5 次」——这种确定性的成功标准加上轮数上限,既避免 Claude 提前收工,也避免无限循环消耗 token。

3. 定时循环(Time-Based Loops,/loop/schedule

  • 触发方式:按设定的时间间隔自动触发
  • 停止条件:人工取消,或工作确实完成
  • 适合场景:重复性工作,或需要对接外部系统的场景

/loop 在本地运行,典型用法如:

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

即每 5 分钟检查一次 PR、处理评审意见、修复失败的 CI。

/schedule 则是把同样的循环搬到云端,可以脱离本机长期跑,适合更持久、更「基础设施化」的定时任务。

4. 主动式循环(Proactive Loops)

  • 触发方式:由事件或计划驱动,不需要人工介入
  • 停止条件:每个子任务在目标达成时各自退出
  • 适合场景:稳定、边界清晰的重复性工作流

这是四类里最「自动化」的一种,通常是把 /schedule/goal、Skill、动态工作流(dynamic workflows)以及 auto mode 组合起来,让 Claude 在无人值守的情况下持续处理一类工作。

保持代码质量的建议

  • 保持代码库整洁:Claude 会遵循已有的代码风格和模式,代码库越干净,循环的产出质量越稳定
  • 通过 Skill 让 Claude 具备自我验证能力,减少「看似完成实则有问题」的情况
  • 维护清晰、易读的文档,帮助 Claude 更好地理解上下文
  • 代码评审建议交给独立的 agent 来做,而不是和实现任务混在同一个循环里

Token 用量管理

官方给出了几条控制成本的原则:

  • 根据任务规模挑选合适的原语(单轮 / /goal / /loop / /schedule)和合适规模的模型
  • 明确定义「成功」和「停止」的标准,避免循环空转
  • 在大规模跑动态工作流之前,先小范围试跑(pilot)一次
  • 对于结果确定、逻辑固定的工作,优先用脚本而不是让 Claude 每次重新推理
  • 定时任务的执行间隔要匹配实际变化频率,不要设得过于频繁
  • 通过 /usage/goal/workflows 这几个命令查看实际的循环执行和用量情况

如何上手

文章建议的起点很简单:先找出你工作流程里的一个瓶颈任务,再判断它该交给哪个组件——是需要补一个验证检查(Skill)、需要更清晰的目标定义(/goal),还是需要按计划触发(/schedule)。从一个具体场景切入,比一开始就设计复杂的自动化体系更容易见效。