# 循环入门

> Anthropic Claude Code 团队官方博客译文。把 Agent 循环按触发和停止方式分成四类：基于回合、基于目标（/goal）、基于时间（/loop、/schedule）和主动式循环，讲每种适合什么任务、怎么保住代码质量、怎么控制 token 用量。

- 原文链接: https://laojin.blog/repost/20260702_getting_started_with_loops
- 作者: Delba de Oliveira、Michael Segner（老金转载）
- 原始出处: https://claude.com/blog/getting-started-with-loops
- 发布日期: 2026-07-02
- 标签: Claude Code, Loop, AI Agent, Anthropic, 转载

---

> 原文:[Getting started with loops | Claude by Anthropic](https://claude.com/blog/getting-started-with-loops)

现在有很多关于"设计循环（loop）"而非提示编程智能体的讨论。如果你在 X 上花时间去探究循环到底是什么，你会找到多种不同的答案。

在 Claude Code 团队中，我们将**循环定义为智能体重复执行工作周期直到满足停止条件**。我们根据以下几个维度将循环分为不同类型：

- 如何触发
- 如何停止
- 使用哪个 Claude Code 原语
- 最适合什么类型的任务

我们将介绍主要的循环类型、何时使用每种类型，以及如何在管理 token 用量的同时保持代码质量。并非所有任务都需要复杂的循环；从最简单的方案开始，有选择地使用这些模式。

## 基于回合的循环（Turn-based loops）

- **触发方式**：用户提示词。
- **停止条件**：Claude 判断已完成任务或需要额外上下文。
- **最适用于**：不属于常规流程或计划的较短任务。
- **管理用量方式**：编写具体的提示词，并使用技能（skills）改进验证以减少回合数。

你发送的每个提示词都会启动一个手动循环，由你引导每个回合。Claude 收集上下文、执行操作、检查工作成果、必要时重复，然后回复。我们称之为智能体循环（agentic loop）。

例如，让 Claude 创建一个点赞按钮。它读取你的代码，进行编辑，运行测试，然后返回它*认为*可用的成果。然后你手动检查工作，编写下一个提示词。

你可以通过将手动步骤编码为 SKILL.md 来改进验证步骤，这样 Claude 就能端到端地检查更多自己的工作。这应该包括工具或连接器，让 Claude 能够*看到*、*测量*或*交互*结果。检查越量化，Claude 自我验证就越容易。

例如，在你的 SKILL.md 文件中可以这样指定：

```
--- 
name: verify-frontend-change 
description: 在宣布完成之前端到端验证任何 UI 变更。 
--- 

# 验证前端变更 
永远不要仅凭成功的编辑就报告 UI 变更完成。要像人类审查者那样去验证： 

1. 启动开发服务器并在浏览器中打开编辑过的页面。 

2. 直接与变更交互。对于新控件（按钮、输入框、开关）：点击它，确认预期的状态变化，并截取前后对比图。 

3. 检查浏览器控制台：零新错误或警告。 

4. 使用 Chrome Devtools MCP，运行性能追踪并审计 Core Web Vitals。

如果任何步骤失败，修复问题并从步骤 1 重新运行——不要返回只验证了一部分的工作。
```

## 基于目标的循环（Goal-based loop，/goal）

- **触发方式**：实时手动提示词。
- **停止条件**：目标达成或达到最大回合数。
- **最适用于**：具有可验证退出条件的任务。
- **管理用量方式**：设置具体的完成条件和明确的回合上限，"尝试 5 次后停止"。

有时，单个回合不够，尤其是对于更复杂的任务。智能体在能够迭代时表现更好。你可以通过用 /goal 定义"完成"的样子来延长 Claude 的迭代时间。

当你定义了成功标准后，Claude 不需要自行判断什么是"足够好"并提前结束循环。每次 Claude 试图停止时，一个评估器模型会检查你的条件，并将其送回继续工作，直到目标达成或达到你定义的回合数。

这就是确定性标准（如通过测试数量或超过某个分数阈值）如此有效的原因。

例如：

```
/goal 将首页 Lighthouse 分数提升到 90 或以上，尝试 5 次后停止。
```

## 基于时间的循环（Time-based loop，/loop 和 /schedule）

- **触发方式**：指定的时间间隔。
- **停止条件**：你取消它，或工作完成（PR 被合并、队列为空）。
- **最适用于**：定期性工作，或与外部环境/系统的交互。
- **管理用量方式**：设置更长的间隔，或基于事件而非时间进行响应。

一些智能体工作是定期的：任务保持不变，只有输入在变化。例如每天早上总结 Slack 消息。其他工作依赖外部系统，与之交互的简单方式是按间隔检查并对变化做出响应。例如，可能收到代码审查或 CI 失败的 PR。

对于这些情况，你可以使用 `/loop` 来触发 Claude 按间隔重复运行提示词。例如：

```
/loop 5m 检查我的 PR，处理审查意见，修复失败的 CI
```

`/loop` 在你的电脑上运行，所以如果你关机，它就停止了。你可以通过 `/schedule` 创建例程将循环移到云端。

## 主动式循环（Proactive loops）

- **触发方式**：事件或计划，无需实时人工参与。
- **停止条件**：每个任务在目标达成时退出。例程本身持续运行直到你关闭它。
- **最适用于**：有明确定义的重复性工作流：Bug 报告、问题分诊、迁移、依赖升级等。
- **管理用量方式**：将例程路由到更小更快的模型，将最强模型用于需要判断力的环节。

以上原语连同其他 Claude Code 功能如**自动模式**和**动态工作流**（研究预览）可以组合成一个长期运行的循环。

例如，要处理传入的反馈，你可以使用：

1. **`/schedule`**（研究预览）运行一个检查新报告的例程
2. **`/goal`** 定义完成的标准，使用**技能**记录如何验证
3. **动态工作流** 编排智能体对每个报告进行分诊、修复和审查
4. **自动模式** 让例程无需暂停请求许可即可运行

组合在一起，提示词可以是这样的：

```
/schedule every hour: 检查 #project-feedback 中的 Bug 报告。/goal: 在本次运行中发现的每个报告都完成分诊、处理和回复之前不要停止。修复 Bug 时，使用工作流在并行工作树中探索三种解决方案，并让一个裁判进行对抗性审查。
```

## 保持代码质量

循环输出的质量取决于它周围的系统。设计系统时：

- **保持代码库本身整洁**：Claude 会遵循代码库中已有的模式和约定。
- **给 Claude 一种验证自身工作的方式**：用 [skills](https://code.claude.com/docs/en/skills) 编码对你和团队来说什么是好的。
- **让文档易于获取**：框架和库的文档包含最新的最佳实践。
- **使用第二个智能体进行代码审查**：拥有新鲜上下文的审查者偏见更少，不受主智能体推理的影响。你可以使用内置的 `/code-review` 技能或 [Code Review](https://code.claude.com/docs/en/code-review)（GitHub 版）。

当单个结果不符合标准时，不要止步于修复个别问题，尝试将其编码化以改进系统，使所有未来迭代受益。

## 管理 token 用量

为了管理 token 用量，循环应该有明确的边界：

- **为任务选择正确的原语和模型**：较小的任务不需要多智能体或循环。某些任务可以使用更便宜更快的模型。
- **定义明确的成功和停止标准**：具体说明完成的标准，让 Claude 能更快地得出解决方案（但不要太快）。
- **大规模运行前先试点**：动态工作流可以生成数百个智能体。先在较小的工作切片上评估用量。
- **对确定性工作使用脚本**：运行脚本比推理步骤更便宜。例如，一个 PDF 技能可以附带一个表单填写脚本，Claude 每次运行它，而不是重新推导代码。
- **不要以超过需要的频率运行例程**：将间隔匹配到你监控对象的变化频率。
- **审查用量**：`/usage` 命令按技能、子智能体和 MCP 分解近期用量，不带参数的 `/goal` 显示回合数和 token 用量，`/workflows` 显示每个智能体的 token 用量，你可以随时停止某个智能体。

## 开始使用

总结：

| 循环 | 你交出的 | 使用场景 | 使用 |
| --- | --- | --- | --- |
| 基于回合 | 检查环节 | 你在探索或做决策时 | 自定义验证技能 |
| 基于目标 | 停止条件 | 你知道完成的标准 | `/goal` |
| 基于时间 | 触发器 | 工作按计划发生在项目外部 | `/loop`、`/schedule` |
| 主动式 | 提示词 | 工作是定期且定义良好的 | 以上所有加上动态工作流 |

要开始使用循环，先看看你已经在做的工作。挑一个你是瓶颈的任务，问问哪个部分可以交出去：你能写验证检查吗？目标足够清晰吗？工作是否按计划到达？

一旦有了想法，运行循环，观察结果——哪里卡住了或过度延伸了——不要害怕对其进行迭代。

更多信息请阅读 Claude Code 文档中的[并行运行智能体](https://code.claude.com/docs/en/agents)，以及 [loop](https://code.claude.com/docs/en/goal)、[schedule](https://code.claude.com/docs/en/routines)、[goal](https://code.claude.com/docs/en/goal) 和[动态工作流](https://code.claude.com/docs/en/workflows#orchestrate-subagents-at-scale-with-dynamic-workflows)页面。

*本文由 Delba de Oliveira 和 Michael Segner 撰写*
