循环工程正成为热门话题。浏览任何技术论坛,你都会发现有人在争论,认为我们不应该再把 AI 智能体当作需要用巧妙提示词来引导的聊天机器人。相反,他们认为我们应该设计“循环”:一种让智能体在我们在睡觉时也能自主进行规划、执行、检查工作并不断迭代的自主循环。这个愿景极具诱惑力。如果循环构建得当,智能体就能在无需人类持续监督的情况下保持正轨,在夜间将原始意图转化为最终产出。
这个承诺在理论上非常完美。在实践中,大多数智能体已经在进行循环了。它们生成代码,检查编译器错误或测试失败,修复代码,然后再次运行测试套件。这种基础的反馈循环并不新鲜。现在支持者们所呼吁的是更具雄心的东西:一个管理整个任务(而不仅仅是语法错误)的外层循环。构建这种外层循环才是难点所在,因为软件工程很少是一个规则固定的封闭系统。
循环设计问题
产品目标往往是混乱的。你很少能从一开始就拥有完美的“完成定义”(definition of done)。更多时候,你是在埋头构建的过程中才发现真正的目标。在白板上听起来很直接的需求,最后可能会发现存在各种边缘情况,从而彻底改变解决方案的形态。当你将智能体封装在一个僵化的循环中时,这种僵化就会变成一种负担。循环会不断冲击一个可能错误的目标。更糟的是,一个灵活的循环有时会通过悄悄改变目标以匹配它所能产生的任何输出,从而解决僵局。这两种结果都毫无用处:一种浪费计算资源;另一种则是自信地交付垃圾。
更深层的问题是规范成本(specification cost)。如果你想让循环在无人监督的情况下运行,你必须编写一份几乎能预见所有情况的规范。智能体究竟应该改变什么?哪些现有行为是神圣不可侵犯且必须保留的?在什么精确条件下智能体应该停止迭代?哪些风险是可以接受的,哪些副作用应该触发立即停止?编写这份文档的时间可能比直接坐在智能体旁边实时引导它完成任务还要长。你正在支付高昂的前期成本,以换取一种自动化手段,而这种手段只有在验证成本远低于执行成本时才具有回报。
循环何时真正发挥作用
这并不意味着循环工程是无用的。这意味着它是一种专业工具,而非通用策略。当验证成本呈复合增长且成功标准明确时,循环的优势就会显现出来。以下三个场景通常符合这一特征。
常规机械化工作。 想想那些让资深工程师想退休的任务:按特定顺序启动应用程序、点击部署 UI 以确认每个阶段、在发布后使用 grep 查找已知错误字符串的日志,或者验证配置文件是否已写入所有正确的节点。这些步骤对人类来说很乏味,但验证起来却微不足道。循环可以监视这个过程,在每次重启后检查健康端点,并在出现任何异常迹象时立即回滚。人类仍然定义发布计划,循环只是在凌晨两点以机器人的耐心去执行它。
可衡量的优化目标。 当成功可以用数字衡量时,循环的效果是惊人的。将 p99 延迟降低到 150 毫秒以下;将内存占用减少 20%;将一段热路径从 Python 迁移到 Rust 并确保所有现有的单元测试仍然通过。循环可以生成变更,进行基准测试,保留能产生效果的版本,并丢弃其余部分。由于验证是自动化的,且搜索空间巨大,如果没有循环,手动审查的复合成本将使这项工作变得不切实际。目标是固定的,路径是未知的。这正是循环的最佳应用场景。
运维手册。 事件响应和支持工单通常遵循人类已经摸索出的模式。某一类生产错误总是需要轮换凭据并清理缓存。当满足三个特定条件时,某一类支持请求可以通过退款来解决。循环可以监控这些触发条件并执行手册,仅在模式发生变化时才进行升级处理。它并不决定手册是否正确,它只是以值班工程师无法比拟的规模和速度来强制执行一致性。
监管者,而非参考设定者
当前的大多数讨论中都缺失了一个至关重要的区别。循环(Loops)是调节器。它们使系统保持与预定目标一致,就像恒温器将房间维持在 72 度一样。但恒温器并不会选择 72 度。必须先有人决定那是合适的温度。
应用于软件领域,这意味着循环中的智能体(agent)可以整天修复 Bug、重构函数或调优参数。然而,它无法决定哪个功能真正对客户有帮助,也无法决定某个 Bug 是否值得在下次发布前修复。这些选择需要对业务背景、用户痛点和战略优先级做出判断。智能体负责执行,人类负责决策。混淆这两者,会导致团队最终拥有优化得非常完美的系统,却在解决错误的问题。
循环工程(Loop engineering)很有用,但它的范畴很窄。它能帮助你以纪律和速度运行机器。它无法决定要建造什么样的机器、为谁建造,或者从人类的角度来看成功是什么样子的。关于哪个功能重要、哪些风险是可以接受的,以及何时需要改变目标本身,这些判断都由你来承担。为那些你已经足够了解、能够自动验证的工作构建循环。除此之外的一切,请保持由你掌控。
本文借鉴了 Isaac Hagoel 在 “Loop Engineering Minus The Hype.” 中最初讨论的想法。欲了解更多工程讨论,请加入我们在 Telegram 上的学习社区。