Claude Code 中的循环工程
在过去的几年里,每个人都在谈论提示工程,原因很明显:如果你想从 AI 获得更好的结果,你需要编写更好的提示。当 AI 主要是需要人类输入的聊天界面时,这很有效。但自主 AI 代理的兴起改变了这一点。
像 Claude Code 这样的工具允许你构建几乎完全自主的 AI 代理,它们不需要在工作流程的每个步骤都进行人类输入。这就是为什么新方法不再只是编写更好的提示;新方法是为 AI 代理设计一个适当的循环。
1、什么是循环工程?
循环工程是设计自动提示、指导、检查和重定向 AI 代理的系统的实践。
有趣的是,循环工程并不是一种全新的方法。在简单的基于提示的工作流程中,人类在循环中并驱动交互,帮助 AI 完成任务。
当涉及到 AI 代理时,唯一不同的是谁驱动交互:
你不再手动输入每个下一个指令,而是定义一个循环,让代理持续朝着目标前进。
换句话说,你告诉 AI 做什么,然后检查结果。
循环工程将部分责任转移到系统中。
2、为什么循环工程现在变得流行
循环工程正在成为一种趋势,因为 AI 工具正在变得更加自主。
Claude Code 就是一个很好的例子。它可以读取文件、编辑代码、运行命令、使用工具、检查输出,并根据所学继续工作。这使得它与只提供建议的传统聊天机器人非常不同。
3、代理循环的基本结构
一个好的循环有 6 个部分。
3.1 触发器
循环需要一个触发器
某些东西必须启动循环。这可能是用户请求、计划、GitHub 事件、构建失败、新问题、设计审查请求或 Claude Code 内的命令。
3.2 目标
目标告诉代理它试图完成什么。弱目标产生弱循环。
弱目标:"改进这个页面"
强目标:"更新此仪表板,直到它与设计参考匹配,通过可访问性检查,并且在 375px、768px 和 1440px 时没有布局问题"
3.3 上下文
代理需要访问正确的文件、设计系统规则、产品需求、研究笔记、示例和约束。没有上下文,循环将继续移动,但它可能会朝错误的方向移动。
3.4 工具
当 AI 可以采取行动时,代理循环变得有用。它可能读取文件、编辑代码、运行测试、截取屏幕截图、查询文档、检查设计系统、创建分支或调用外部服务。
3.5 验证
这是最重要的部分。
没有验证的循环只是盲目的自动化。
有验证的循环可以自我改进。
例如,在产品设计项目中,检查可以是测试套件、构建命令、代码检查器、屏幕截图比较、可访问性扫描、设计清单或第二个代理审查结果。
3.6 停止条件
循环需要一个清晰的"完成"定义。没有停止条件,代理可能会过早停止或工作太长时间。
4、Claude Code 版本的循环工程
Claude Code 已经通过代理循环工作:收集上下文、采取行动、验证结果,然后重复。
但最近的 Claude Code 功能使这个循环更加明确。
最重要的是 /goal。
通过 /goal,你定义一个完成条件,Claude 将持续工作,直到满足该条件。每轮之后,评估器检查目标是否已满足。如果没有,Claude 继续。
通过这个命令,你不仅仅是在要求 Claude 做某事。你正在定义决定工作是否实际完成的循环。
5、4 种主要的循环类型
围绕 Claude Code 正在出现 4 种循环类型:
5.1 目标循环
目标循环持续工作,直到满足条件。
这最适合具有清晰结束状态的任务:
所有测试通过。
构建成功。
迁移完成。
问题队列为空。
设计与屏幕截图匹配。
可访问性报告没有严重问题。
当条件可验证时,目标循环效果最佳。
一个不好的目标循环:
让它变得更好。
一个更好的目标循环:
改进入门流程,直到表单没有验证错误,
所有必需的状态都已实现,并且该流程在浏览器中
从帐户创建到确认都能正常工作。
终点线越具体,循环越好。
5.2 计划循环
计划循环按间隔运行。
这对于重复检查事物很有用:
每 10 分钟检查一次部署是否已完成。
每天早上,审查超过 48 小时的未解决 PR。
每周五,总结新的设计系统更改。
每天,检查是否引入了可访问性回归。
在 Claude Code 中,/loop 和计划任务使这种模式更加明确。
计划循环之所以强大,是因为它们消除了你需要记住检查某事的需要(即,你不需要手动检查部署状态,你可以为此创建一个循环):
但如果它们运行太频繁或做太多,它们也可能变得昂贵。
5.3 钩子循环
钩子在代理生命周期的特定点自动运行。
例如,钩子可以在 Claude 编辑文件后、使用工具前或轮次即将结束时运行。
钩子循环是确定性循环工程的一个很好的例子。
例如,PostToolsUse 钩子可以说:
在结束轮次之前,验证构建。
如果验证失败,阻止停止并要求 Claude 继续。
5.4 多代理循环
多代理循环并行使用多个代理。
当工作可以分成独立部分时,这很有用。
例如:
一个代理调查前端影响。
一个代理调查后端影响。
一个代理审查测试。
一个代理检查可访问性。
一个代理总结实施计划。
这可能很强大,但这也是成本和复杂性迅速增加的地方。
多代理循环并非自动更好;当代理可以独立运行并返回紧凑的发现时,它们效果最佳。
6、产品设计师的实用循环框架
以下是我创建循环时使用的框架:
1. 触发器
什么启动了循环?
2. 目标
代理应该实现什么?
3. 上下文
它应该使用哪些文件、文档、规则、示例和约束?
4. 工具
代理可以读取、编辑、运行、检查或调用什么?
5. 工作者
谁做这项工作?
6. 验证者
谁或什么检查工作?
7. 状态
循环在哪里记住进度?
8. 防护栏
什么是禁区?
9. 停止条件
循环如何知道它已完成?
10. 升级
它什么时候应该询问人类?
这个框架防止了最常见的循环失败:给代理自由而没有结构。
原文链接: Loop Engineering in Claude Code
汇智网翻译整理,转载请标明出处