回合制循环

回合制循环示意图

  • 触发方式:用户发起的提示。
  • 停止条件:Claude 判断任务完成或需要更多上下文。
  • 适用场景:适合较短且非定期的任务。
  • 使用管理:通过编写具体提示和利用技能提升验证效率,减少交互次数。

每次你发送提示,都会启动一个手动循环,由你控制每一步。Claude 会收集上下文、执行操作、检查结果、必要时重复,最后给出回应,这就是所谓的代理循环。

例如,要求 Claude 创建一个点赞按钮。它会读取代码、进行修改、运行测试,并返回它认为可行的结果。你再手动检查并给出下一步提示。

你可以通过将手动验证步骤编码为 SKILL.md 文件,提升自动验证能力,实现端到端的自检。文件中应包含工具或连接器,让 Claude 能“看见”、“测量”或“交互”结果。验证越量化,Claude 自检越容易。

示例 SKILL.md 内容:


name: verify-frontend-change

description: 在确认完成前,端到端验证任何 UI 变更。


验证前端变更

不要仅凭编辑成功就报告 UI 变更完成。应像人工审核一样验证:

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

  2. 直接交互新控件(按钮、输入框、切换开关):点击,确认状态变化,截图前后对比。

  3. 检查浏览器控制台,确保无新错误或警告。

  4. 使用 Chrome Devtools MCP,运行性能追踪并审核核心网页指标。

若任一步骤失败,修复后从第一步重新开始,切勿交付部分验证的结果。

目标驱动循环 (/goal)

目标驱动循环示意图

  • 触发方式:实时手动提示。
  • 停止条件:达到目标或达到最大循环次数。
  • 适用场景:有明确可验证退出条件的任务。
  • 使用管理:设定具体完成标准和明确的循环次数上限,如“最多尝试5次后停止”。

复杂任务往往单次循环不足以完成,循环迭代能提升效果。通过 /goal 定义完成标准,Claude 不必自行判断“足够好”,每次尝试结束时由评估模型检查条件,未达标则继续,直到目标达成或达到次数限制。

因此,确定性标准(如测试通过数或分数阈值)非常有效。

示例:

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

时间驱动循环 (/loop 和 /schedule)

  • 触发方式:指定时间间隔。
  • 停止条件:手动取消或任务完成(如 PR 合并、队列清空)。
  • 适用场景:周期性任务或与外部系统交互。
  • 使用管理:设置较长间隔,或基于事件触发而非单纯时间。

部分任务是周期性重复的,任务内容不变但输入不同,例如每天早晨总结 Slack 消息。也有任务依赖外部系统,定时检查变化并响应是一种简单接口方式,如检查 PR 是否有代码评审或 CI 失败。

使用 /loop 命令可按间隔重复运行提示,例如:

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

/loop 在本地运行,关闭电脑即停止。可用 /schedule 将循环迁移到云端。

主动循环

主动循环示意图

  • 触发方式:事件或定时,无需实时人工干预。
  • 停止条件:每个任务完成即退出,整个例程持续运行直到手动关闭。
  • 适用场景:重复且明确的工作流,如错误报告、问题分类、迁移、依赖升级等。
  • 使用管理:将例程分配给更小更快的模型,关键判断由最强模型完成。

上述基本循环结合 Claude Code 的自动模式和动态工作流(研究预览)可构建长时间运行的循环。

例如处理反馈:

  1. 使用 /schedule(研究预览)定时检查新报告。
  2. /goal 定义完成标准,并用技能文档说明验证方法。
  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 自我验证:用 技能 编码团队认可的“好”的标准。
  • 方便访问文档:框架和库文档应包含最新最佳实践。
  • 使用第二个代理进行代码审查:新鲜视角减少偏见,可用内置 /code-review 技能或 Github 代码审查

单个结果不达标时,不仅修复问题,还应编码改进措施,提升未来迭代的整体质量。

管理 Token 使用

合理管理 Token 使用,循环应有明确边界:

  • 选择合适的原语和模型:小任务无需多代理或循环,部分任务可用更便宜更快的模型。
  • 定义清晰的成功和停止标准:明确完成标准,帮助 Claude 更快找到解决方案(但不要过早停止)。
  • 先小规模试点:动态工作流可能产生数百代理,先在小范围测试使用情况。
  • 用脚本处理确定性任务:运行脚本比推理更省资源,例如 PDF 技能可提供表单填写脚本,避免重复生成代码。
  • 避免过频运行例程:根据监控对象变化频率调整间隔。
  • 定期审查使用情况/usage 命令可查看技能、子代理和 MCP 的使用,/goal 无参数显示循环次数和 Token 使用,/workflows 显示各代理 Token 使用,可随时停止代理。

入门建议

总结:

从你已有的工作入手,找出瓶颈任务,思考哪些环节可以交给 Claude 处理:验证检查能否写清楚?目标是否明确?任务是否按计划到达?

有了想法后,运行循环,观察瓶颈和过度执行的地方,勇于迭代改进。

更多信息请查阅 Claude Code 文档,了解 并行运行代理循环例程目标动态工作流 等内容。

本文作者:Delba de Oliveira 和 Michael Segner