闭合循环
/ˈkloʊzɪŋ ðə luːp/
Also known as: 反馈循环, 验证循环, 自我验证
technical beginner
什么是”闭合循环”?
“闭合循环”是区分有效 AI 辅助编程和令人沮丧的”氛围编程”的基本原则。它意味着设计你的开发工作流程,使得 AI 代理能够通过自动化反馈来验证自己的工作——编译代码、运行测试、检查输出,并迭代直到结果正确。
这个概念由 Claudebot 创建者 Peter Steinberger 推广,他称其为高效代理工程的”大秘密”。
为什么闭合循环很重要
AI 擅长编程但常在创意写作中苦恼。区别在于?代码可以被验证:
- 编译:代码是否在没有错误的情况下构建?
- Linting:它是否遵循风格和最佳实践?
- 测试:单元和集成测试是否通过?
- 执行:它是否产生预期的输出?
当代理能够自己运行这些检查时,它们可以迭代朝向正确的解决方案,无需人工干预。在没有反馈循环的情况下,代理会产生”垃圾”——看起来可信但实际上不起作用的代码。
如何闭合循环
为 CLI 验证设计
构建你的系统,使代理能够通过命令行工具验证工作:
# 代理能够运行这些来验证自己的工作
npm run lint # 检查风格
npm run test # 运行测试
npm run build # 验证编译
创建专用测试工具
对于复杂的功能,构建专门用于代理验证的 CLI 工具:
“我通过告诉 Codex:‘构建一个用于调试的 CLI,它调用所有相同的代码路径’来调试一个 Mac 应用功能。它花了一个小时并自己修复了竞态条件。” — Peter Steinberger
避免基于浏览器的验证
基于 Web 的测试循环缓慢且脆弱。优先选择无头、基于 CLI 的验证:
“浏览器循环极其缓慢。你希望有快速循环的东西。” — Peter Steinberger
比较:循环闭合与开放
| 方面 | 循环闭合 | 循环开放 |
|---|---|---|
| 代理信心 | 高(已验证) | 低(猜测) |
| 人工干预 | 最小 | 持续 |
| 代码质量 | 已测试 | 未知 |
| 迭代速度 | 自主 | 手动 |
关键引语
“这就是为什么 AI 擅长编程但在写作中平庸——没有简单的方法来验证创意工作。但代码我可以编译、lint、执行、验证输出。”
“如果你以正确的方式设计它,你会有一个完美的循环。“
相关阅读
- AI 代理 - 从闭合循环中受益的系统
- RALPH 循环 - 一个取决于循环闭合的技术
- Peter Steinberger - 该概念的先驱