游乐游手机版
首页/AI教程/文章详情

循环入门指南:基础概念、语法规则与代码示例

时间:2026-07-03 15:49
循环是智能体重复工作直到满足停止条件的周期,分为四种类型:回合制(用户提示触发)、基于目标(用 goal设定完成条件)、基于时间( loop或 schedule定时触发)和主动式(事件驱动、无人参与)。需根据任务选择合适循环,并通过技能验证和清晰停止条件维护代码质量、管理token用量。

循环(loops)入门指南

了解 Claude Code 团队如何定义智能体循环(agentic loops),并获得从回合制循环到基于目标的、基于时间的以及主动式循环的实用指南——以及每种循环的适用时机。

当下,关于“设计循环(loops)”而非单纯为编码智能体编写提示词(prompt)的讨论日益增多。如果你在 X 平台上花些时间想弄清楚循环究竟是什么,会看到多种不同的说法。

在 Claude Code 团队,我们将循环定义为智能体重复执行工作周期,直到满足某个停止条件。我们根据以下几点把循环划分成几种不同类型:

  • 它们如何被触发
  • 它们如何被停止
  • 使用哪种 Claude Code 原语(primitive)
  • 每种循环最适合哪类任务

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

回合制循环(Turn-based loops)

  • 触发方式:用户提示词。
  • 停止条件:Claude 判定它已完成任务或需要额外上下文。
  • 最适合用于:不属于常规流程或时间安排的较短任务。
  • 用量管理方式:编写具体的提示词,并使用技能(skills)改进验证,以减少回合数。

你发送的每一条提示词都会启动一个手动循环,由你指挥每一个回合。Claude 收集上下文、采取行动、检查自身工作、必要时重复,并给出回复。我们将其称为智能体循环(agentic loop)。

例如,让 Claude 创建一个点赞按钮。它会读取你的代码、做出修改、运行测试,并交回某个它相信可用的结果。然后你手动检查这项工作,并写下下一条提示词。

你可以通过把手动步骤编码为一份 SKILL.md 来改进验证环节,让 Claude 端到端地检查更多自身工作。这应当包括让 Claude 能够看见测量交互该结果的工具或连接器。检查越具量化性,Claude 就越容易自我验证。

例如,在你的 SKILL.md 文件中可以指定:

---
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.

基于目标的循环(Goal-based loop,/goal)

  • 触发方式:实时手动提示词。
  • 停止条件:达成目标,或达到最大回合数。
  • 最适合用于:具有可验证退出条件的任务。
  • 用量管理方式:设定具体的完成条件与显式回合上限,例如“5 次尝试后停止”。

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

当你定义了成功条件,Claude 就不必自行判断什么是“足够好”而过早结束循环。每次 Claude 尝试停止时,一个评估模型(evaluator model)会检查你的条件,并把它送回去继续工作,直到目标达成或达到你设定的回合数。

这就是确定性条件(例如通过的测试数量,或达到某个分数阈值)如此有效的原因。

例如:

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

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

  • 触发方式:指定的时间间隔。
  • 停止条件:你取消它,或工作完成(PR 合并、队列清空)。
  • 最适合用于:周期性工作,或与外部环境/系统交互。
  • 用量管理方式:设定更长的间隔,或基于事件而非时间做出反应。

某些智能体工作是周期性的:任务不变,只有输入变化。例如,每天早上汇总 Slack 消息。另一些工作依赖外部系统,而与这类系统交互的一种简单方式是按间隔检查它并对变化做出反应。例如,一个 PR 可能收到代码审查或 CI 失败。

对于这些场景,你可以用 /loop 触发 Claude 何时运行,它会在一个间隔上重复执行一条提示词。例如:

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

/loop 运行在你的电脑上,所以如果你关机,它就会停止。你可以通过用 /schedule 创建一个例程(routine)把循环迁移到云端。

主动式循环(Proactive loops)

  • 触发方式:事件或时间安排,实时无人参与。
  • 停止条件:每个任务在达成其目标时退出。例程本身会一直运行,直到你关闭它。
  • 最适合用于:定义良好的周期性工作流:bug 报告、issue 分诊、迁移、依赖升级等。
  • 用量管理方式:把例程路由到更小、更快的模型,并把最有能力的模型用于需要判断的决策。

上述原语,连同其他 Claude Code 特性如 自动模式(auto mode) 和 动态工作流(dynamic workflows)(研究预览),可以组合成一个用于长期运行的循环。

例如,要处理传入的反馈,你可以使用:

  1. /schedule(研究预览)运行一个检查新报告的例程
  2. /goal 定义“完成”的样子,并用 技能(skills) 文档化如何验证它
  3. 动态工作流 编排智能体对每条报告进行分诊、修复并审查该修复
  4. 自动模式 让例程无需停下来请求许可即可运行

把它们组合起来,一条提示词可以长这样:

/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.

维护代码质量

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

  • 保持代码库本身整洁:Claude 会遵循你代码库中已有的模式与约定。
  • 给 Claude 一种验证自身工作的方式:用技能(skills)为你和你的团队定义“好”的标准。
  • 让文档触手可及:框架和库的文档包含最新的最佳实践。
  • 使用第二个智能体做代码审查:拥有全新上下文的审查者偏见更少,且不会受主智能体推理的影响。你可以使用内置的 /code-review 技能或 GitHub 的代码审查(Code Review)。

当某个结果未达到标准时,不要止步于修复这一个别问题,而应尝试将其编码下来,以改进系统在所有未来迭代中的表现。

管理 token 用量

为管理 token 用量,循环应当有清晰的边界:

  • 为任务选择正确的原语和模型:较小的任务不需要多个智能体或循环。某些任务可以使用更便宜、更快的模型。
  • 定义清晰的成功与停止条件:具体说明“完成”的样子,以便 Claude 更快到达解决方案(但不要太快)。
  • 在大规模运行前先试点:动态工作流可能产生数百个智能体。先在工作的一个较小切片上衡量用量。
  • 用脚本处理确定性工作:运行脚本比推理各个步骤更便宜。例如,一个 PDF 技能可以附带一个填表脚本,让 Claude 每次直接运行,而不是重新推导代码。
  • 不要比需要的更频繁地运行例程:让间隔与你所观察对象的变化频率相匹配。
  • 审查用量:/usage 命令按技能、子智能体和 MCP 拆分近期用量;不带参数的 /goal 显示到目前为止的回合数与 token 用量;/workflows 显示每个智能体的 token 用量,你可以随时停止某个智能体。

入门

总结一下:

循环类型 你交出去的 适用时机 可选用
回合制(Turn-based) 检查环节 你在探索或做决策时 自定义验证技能
基于目标(Goal-based) 停止条件 你知道“完成”长什么样时 /goal
基于时间(Time-based) 触发条件 工作在项目之外按时间安排发生时 /loop/schedule
主动式(Proactive) 提示词 工作是周期性且定义良好时 上述全部,加上动态工作流

要开始使用循环,看看你已经在做的工作。挑出一个你是瓶颈的任务,并问自己能交出去哪一部分:你能把验证检查写下来吗?目标是否足够清晰?工作是否按时间安排到达?

一旦有了想法,就运行循环,观察结果——比如它在哪里停滞或过度扩展——并不要害怕对它进行迭代。

如需更多信息,请阅读 Claude Code 文档中关于并行运行智能体的部分,以及 loop、schedule、goal 和 动态工作流(dynamic workflows) 页面。

来源:https://juejin.cn/post/7657475917389774874
上一篇分析Agent推荐:四大场景实战指南与主流产品横评 下一篇企业级Agent方案:真实案例与避坑指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
批处理BAT入门教程第一篇
AI教程 · 2026-07-03

批处理BAT入门教程第一篇

提供13个批处理实战技巧,覆盖全盘查找并删除文件夹或文件、拷贝移动文件、创建畸形文件夹及设置隐藏属性等场景,可一键完成系统维护与文件管理工作,极大提升自动化操作效率和便捷性。

从零开始批处理命令For循环详解与实战案例
AI教程 · 2026-07-03

从零开始批处理命令For循环详解与实战案例

批处理For命令支持 d、 l、 r、 f四个参数。 d仅列出当前目录下的目录名; r递归搜索指定路径及其子目录中的文件; l生成数值序列; f可解析文件、字符串或命令输出,通过delims、tokens、skip、eol等选项灵活处理内容。

批评你的人是你生命中的贵人
AI教程 · 2026-07-03

批评你的人是你生命中的贵人

批评你的人往往最值得珍惜,因为他们关注你、助你成长。面对批评应包容反思,用行动改进而非辩解。接受批评是自我完善的过程,能让人少走弯路,避免重复犯错。这样的人正是生命中的贵人,值得感恩与珍惜。

测试人员角色定位与职责详解
AI教程 · 2026-07-03

测试人员角色定位与职责详解

测试人员角色经历了从找问题、保证质量到分析风险的转变,最终核心职责是提供关键信息,协助团队创造优秀产品。这包括识别问题、评估风险及帮助团队了解项目状态,而非单纯把关或追求完美。

经营成功测试生涯的实用方法与策略
AI教程 · 2026-07-03

经营成功测试生涯的实用方法与策略

一、测试生涯的起点 1989年,我在田纳西大学攻读研究生时,意外地从软件开发人员转行成为一名软件测试工程师。这并非我主动选择,说起来还有些戏剧性——某个早晨,教授质问我为何缺席那么多开发会议,我解释说这些会议总是安排在周末早上,对我这个第一次离家、刚入学的学生来说实在不便。结果呢?等待我的不是解聘通