---
layout: post.njk
source: https://baoyu.io/blog/2026-07-06/claudedevs-2074208949205881033
speaker: baoyu.io
title: 从零开始玩转循环 (Getting started with loops) | 宝玉的分享
date: '2026-07-06'
summary: 本文介绍了设计和理解 AI 智能体中的“循环 (loops)”概念，并从触发方式、停止条件、基础指令类型和适用场景四个维度对循环进行了分类。文章详细阐述了回合制循环、目标导向循环、基于时间的循环以及主动式循环等四种主要模式，并提供了如何通过具体提示词定义验证技能、设置明确的完成标准来控制 Token 消耗和保证代码质量的实践方法。
area: PAI
category: ai-workflow
tags:
  - agentic-loop
  - turn-based-loop
  - goal-based-loop
  - time-based-loop
  - proactive-loop
people: []
companies_orgs: []
products_models: []
media_books: []
draft: true
status: evergreen
---

宝玉的分享

Menu

See all posts

Published on 2026-07-06

# 从零开始玩转循环 (Getting started with loops)

原文：

Getting started with loops

作者：

宝玉

# 从零开始玩转循环 (Getting started with loops)

最近大家都在热议“设计循环 (designing loops)”，而不是简单地给你的编程 AI 智能体 (AI Agent) 扔一条提示词 (prompt) 就完事。如果你在 X（原 Twitter）上花点时间，想搞清楚到底什么是“循环”，你会听到五花八门的答案。

在 Claude Code 团队，我们将“循环”定义为：AI 智能体不断重复执行工作周期，直到满足某个预设的停止条件。 为了方便理解，我们根据以下四个维度，对循环进行了分类：

它是如何被触发的

它是如何停止的

它使用了哪种 Claude Code 基础指令 (primitive) (在这里指系统内置的基础命令或核心功能模块)

哪种类型的任务最适合它

接下来，我们将带你了解这几种主要的循环类型、适用场景，以及如何在控制 token 消耗的同时，保证产出的代码质量。请记住，并不是所有任务都需要复杂的循环；建议从最简单的方案开始上手，然后根据实际情况灵活挑选这些模式。

## 回合制循环 (Turn-based loops)

触发方式：用户输入提示词。

停止条件：Claude 自行判断任务已经完成，或者它发现需要向你索要更多上下文信息。

最佳适用场景：不属于常规流程或定时计划的、比较简短的任务。

如何控制消耗：编写非常具体的提示词，并通过“技能 (Skills)”功能强化验证环节，从而减少来回交互的回合数。

你发送给 AI 的每一个提示词，其实都开启了一个由你手动主导的循环。在这个循环里，你指挥着每一个回合：Claude 收集上下文、采取行动、检查自己的工作，必要时重复这些动作，最后给你回复。我们称之为“智能体循环 (agentic loop)”。

举个例子：你让 Claude 做一个“点赞”按钮。它会阅读你的代码、进行修改、运行测试，然后把它认为没问题的成果交还给你。接着，你手动检查一遍它的工作，发现没问题或需要修改后，再写出下一条提示词。

其实，你可以把你自己手动检查的这些步骤，写进一个名为 SKILL.md 的文件里。这样一来，Claude 就能端到端地自行完成更多检查工作。在这个文件里，你应该提供各种工具或连接器，让 Claude 能够“看”到、衡量或与最终结果进行真实交互。验证的标准越量化、越具体，Claude 就越容易进行自我判断。

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

```
<code class="language-markdown">--- 
name: verify-frontend-change 
description: 在宣布完成之前，端到端验证任何 UI 更改。 
--- 

# 验证前端更改 (Verifying frontend changes) 
绝不能仅仅因为代码修改成功，就报告 UI 更改已完成。必须像人类代码审查员那样进行验证： 

1. 启动开发服务器 (dev server)，并在浏览器中打开修改后的页面。 

2. 直接与更改后的内容交互。对于新增的控件（如按钮、输入框、开关）：点击它，确认状态如预期般改变，并在操作前后截图。 

3. 检查浏览器控制台 (browser console)：确保没有新增任何错误 (errors) 或警告 (warnings)。 

4. 使用 Chrome 开发者工具的 MCP **(Model Context Protocol，模型上下文协议，一种让 AI 连通外部工具和数据的标准标准)**，运行性能追踪，并审核网页核心性能指标 (Core Web Vitals)。

如果任何一个步骤失败，请修复问题并从步骤 1 重新开始 —— 绝对不要把只验证了一半的工作交回给我。
</code>
```

## 目标导向循环 (Goal-based loop /goal)

触发方式：实时手动输入提示词。

停止条件：目标达成，或者达到了设定的最大尝试回合数。

最佳适用场景：具备可验证退出标准（能明确用客观数据判断对错）的任务。

如何控制消耗：设定非常具体的完成标准和明确的回合数上限，例如“尝试 5 次后停止”。

有时候，仅仅交互一个回合是不够的，特别是在处理复杂任务时。当 AI 智能体能够不断试错、迭代时，它们往往表现得更好。你可以通过 /goal 指令定义“到底什么样才算做完”，从而让 Claude 有更长的时间去持续迭代。

当你明确定义了成功标准后，Claude 就不需要自己去瞎猜什么是“足够好”并过早地结束工作。每次 Claude 试图停下来交差时，背后的评估模型都会检查你的条件，如果不达标，它会被打回去继续干活，直到目标达成，或者达到了你设定的尝试次数上限。

这就是为什么确定性的标准（比如通过了多少个测试用例，或者达到了某个具体的分数门槛）会如此有效的原因。

例如：

```
<code class="language-bash"># 将主页的 Lighthouse 网页性能跑分提高到 90 分或以上，尝试 5 次后停止。
/goal get the homepage Lighthouse score to 90 or above, stop after 5 tries.
</code>
```

## 基于时间的循环 (Time-based loop /loop 和 /schedule)

触发方式：设定的时间间隔。

停止条件：你手动取消它，或者工作彻底完成了（比如代码被合并了，任务队列清空了）。

最佳适用场景：周期性重复的工作，或者需要与外部环境、外部系统对接的任务。

如何控制消耗：设置更长的时间间隔，或者改为基于事件触发（而不是单纯按时间盲目运行）。

有些 AI 智能体工作是周期性的：任务本身一成不变，只是输入的数据变了。比如，每天早上汇总 Slack 聊天记录。另一些工作则依赖外部系统，与外部系统对接最简单的方式，就是每隔一段时间去检查一次，并根据变化做出反应。例如，监控一个可能会收到代码审查意见、或者未能通过 CI (Continuous Integration，持续集成，用于自动测试和构建代码) 的 PR (Pull Request，代码拉取请求，即代码合并申请)。

对于这些场景，你可以使用 /loop 指令来触发 Claude，它会按照设定的时间间隔重复执行某条提示词。例如：

```
<code class="language-bash"># 每 5 分钟检查一次我的 PR，处理最新的代码审查意见，并修复失败的持续集成测试。
/loop 5m check my PR, address review comments, and fix failing CI
</code>
```

需要注意的是，/loop 是在你本地电脑上运行的，所以一旦你关机或者退出，它就停止了。如果你想把循环搬到云端全天候运行，可以使用 /schedule 指令来创建一个云端的例行程序 (routine)。

## 主动式循环 (Proactive loops)

触发方式：事件触发或定时计划，全程无需人类实时参与。

停止条件：每个子任务在达成其具体目标时退出。但整个例行程序本身会一直运行，直到你主动将它关闭。

最佳适用场景：定义清晰、源源不断的重复性工作流：比如用户漏洞报告 (bug reports)、工单分诊处理 (issue triage)、数据迁移、代码依赖项升级等。

如何控制消耗：将常规的、简单的流程分配给更小、更快的模型，把能力最强的大模型留给需要做复杂判断的环节。

上面提到的那些基础指令，结合 Claude Code 的其他进阶功能（比如自动模式 auto mode 和动态工作流 dynamic workflows，目前为研究预览版），可以被组合成一个处理长期复杂任务的“超级循环”。

例如，为了处理不断涌入的用户反馈，你可以这样搭配组合：

使用 /schedule（研究预览版）运行一个例行程序，定时检查有没有新的反馈报告。

使用 /goal 定义任务完成的最终目标，并利用技能 (skills) 记录下应该如何验证结果。

利用动态工作流 (Dynamic workflows) 来统筹多个 AI 智能体，让它们分别负责给报告分类、修复问题，以及审查代码。

开启自动模式 (Auto mode)，这样整个流程就能全自动无缝运转，无需停下来等你点击确认。

把这些组合在一起，你的提示词可能会长这样：

```
<code class="language-bash"># 每小时执行一次：检查 project-feedback 频道中的 bug 报告。目标：直到本次运行发现的所有报告都已被分类、处理并回复，才停止运行。在修复 bug 时，使用工作流在平行的工作区中探索三种不同的解决方案，并让一个专门作为“裁判”的模型对它们进行对抗性的严格审查。
/schedule every hour: check the project-feedback channel 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.
</code>
```

## 保持代码质量 (Maintaining code quality)

一个循环产出成果的质量，很大程度上取决于围绕它建立的外围系统。在设计这个系统时，请遵循以下原则：

保持代码库本身的整洁：Claude 会不知不觉地模仿你代码库中已有的模式和规范。底子好，它写出来的代码就好。

给 Claude 提供自我验证的方法：通过 技能文档 (Skills) 功能，把你和团队眼中的“优秀代码标准”写成规则，让它自己去对照。

让文档触手可及：各种编程框架和代码库的官方文档里，都藏着最新、最好的实践经验。确保你的 AI 能够轻松访问这些资料。

使用第二个智能体来进行代码审查：找一个没有被历史对话污染、拥有全新上下文的智能体来做代码审查。它的偏见更少，也不会被主干智能体的思路“带偏”。你可以使用内置的 /code-review 技能，或者针对 Github 的专用审查工具 (代码审查文档)。

当某一次执行的结果没达到你的标准时，千万别仅仅停留在“把这个 bug 修好”就完事了。 试着把这次踩坑的教训提炼出来，固化到你的规则里，从而在未来的无数次迭代中改善整个系统。

## 控制 Token 消耗 (Managing token usage)

为了有效控制 Token 消耗 (Token 是大语言模型处理文本的基本计费单位，类似按字数算钱)，你的循环必须有清晰的边界：

选择合适的指令和模型：杀鸡焉用牛刀。小任务根本不需要动用多个智能体或复杂的循环。很多任务用更便宜、更快的模型就能完美解决。

定义明确的成功与停止标准：非常具体地描述出“完成”到底是个什么状态，这样 Claude 就能更快地找到答案（当然，也不能快到敷衍了事）。

在大规模运行前先“试水”：动态工作流可能会一下子衍生出几百个智能体。在大规模部署前，请先切出一小块工作，测试一下实际的消耗量，心里有个底。

用脚本处理确定性的工作：直接运行一段脚本，比让大模型一步步去逻辑推理要便宜得多。例如，处理 PDF 的技能可以直接内嵌一个填写表单的脚本，每次让 Claude 跑这个脚本就行，而不是每次都让它绞尽脑汁重新推导代码该怎么写。

别把例行程序跑得太频繁：你监控的事物多久变一次，你的检查间隔就应该设为多长。不要让 AI 傻傻地每秒钟去刷新一个一天才更新一次的网页。

定期查看消耗：输入 /usage 命令，它可以按技能、子智能体 (SubAgents) 和 MCP 详细拆解近期的消耗情况；直接输入不带参数的 /goal，可以查看目前跑了多少回合以及 Token 的消耗量；/workflows 会显示每个智能体的具体 Token 消耗，并且你可以在那里随时让某个智能体停下来。

## 开始你的探索之旅 (Getting started)

简单总结一下：

循环类型 (Loop)

你需要移交什么 (You hand off)

适用场景 (Use it when)

所需工具 (Reach for)

回合制 (Turn-based)

检查工作 (The check)

你正处于探索或决策阶段

自定义验证技能

目标导向 (Goal-based)

停止条件 (The stop condition)

你明确知道“完成”的标准是什么

/goal

基于时间 (Time-based)

触发器 (The trigger)

工作在你的项目之外按时间表发生

/loop

,

/schedule

主动式 (Proactive)

提示词 (The prompt)

循环往复且定义极其明确的工作

以上全部，外加动态工作流

想要开始尝试循环，不妨先审视一下你日常手头的工作。挑一个你总是成为效率“瓶颈”的任务，然后问问自己：我能把哪一部分交接给 AI？
我能写出自动验证的检查项吗？任务目标足够清晰吗？这项工作是不是定时发生的？

一旦你有了思路，就把循环跑起来！仔细观察结果，看看它在哪里卡壳了，或者在哪里用力过猛了，不要害怕去不断迭代和优化它。

欲了解更多进阶信息，请阅读 Claude Code 的官方文档：AI 智能体基础 ，以及 目标设定 (/goal)、例行程序 (/routines) 和 动态工作流 (workflows) 的相关专题页面。

本文由 @delba_oliveira 撰写。

See all posts

Built by 宝玉.  RSS . 本站原创内容，独家授权赛博禅心公众号发布。

Toggle theme