让AI自动重复执行任务直到完成
Claude Code团队引入了一个新概念——循环,即代理重复工作周期直到满足某个停止条件。循环根据触发方式、停止方式、使用的原语和最适合的任务类型被分为不同种类。
基于回合的循环
基于回合的循环由用户提示触发,Claude自行判断任务完成或需要额外上下文时停止。它最适合较短的、非定期或计划的任务。每个提示都启动一个手动循环——用户指导每个回合:Claude收集上下文、执行操作、检查结果,如有需要再重复。团队称这个过程为代理循环。
你可以通过编写具体提示和使用技能来改进验证,减少回合数。具体做法是将手动验证步骤编码为SKILL.md文件,让Claude能端到端自动检查自己的输出。这是降低手动负担的一种方法。
基于目标的循环
基于目标的循环通过/goal命令实时触发,在目标达成或达到最大回合数时停止。它最适合具有可验证退出标准的任务。当你用/goal定义成功标准后,Claude不会自行判断“足够好”并提前结束。每次Claude试图停止时,一个评估模型会检查你的条件,如果未满足则让Claude继续工作,直到目标达成或达到你设定的回合上限。
确定性标准在这里非常有效,例如通过的测试数量或达到的分数阈值。你可以通过设置具体的完成标准和明确的回合上限(如“尝试5次后停止”)来管理使用。
基于时间的循环
基于时间的循环通过/loop和/schedule命令由指定的时间间隔触发,在用户取消或工作完成时停止。它最适合重复性工作或与外部环境、系统的交互。/loop在本地计算机上运行,关机则停止。你可以通过/schedule创建例程,将循环移至云端持续运行。管理方面,可以设置更长的间隔,或基于事件而非固定时间来触发响应。
主动循环
主动循环由事件或计划触发,无需人类实时参与。每个任务在目标达成时退出,整个例程持续运行直到用户关闭。它最适合重复性的明确定义的工作流,如错误报告、问题分类、代码迁移、依赖升级等。你可以将例程路由到更小更快的模型,而把判断性任务留给最强大的模型——这样可以平衡成本与能力。
组合与维护
上述原语可以组合成用于长期运行工作的循环,包括/schedule、/goal、自动模式和动态工作流(研究预览)。为了保持代码质量,团队建议:保持代码库整洁;让Claude能验证自己的工作;使文档易于访问;使用第二个代理进行代码审查。当单个结果不达标时,不要只修复这一个问题,而是尝试将其编码到系统中,以改进所有未来迭代。
管理token使用有几点原则。为任务选择合适的原语和模型;定义明确的成功和停止标准;在大规模运行前先小规模试点;对确定性工作使用脚本;不要过于频繁运行例程;定期审查实际使用情况。
/usage命令能按技能、子代理和MCP分解近期使用量。不加参数的/goal显示回合数和至今的token使用量。/workflows展示每个代理的token使用量,并允许随时停止某个代理。
要开始使用循环,可以审视现有的工作流程,选择一个你成为瓶颈的任务,确定可以移交的部分,运行循环并不断迭代。