当 AI Agent 开始大规模生成代码时,许多团队兴奋地发现:吞吐量似乎突然打破了瓶颈。模型可以自主规划、编写、测试并提交变更,而人类只需要在最后“把关”。
但 Addy Osmani 提醒我们:这不是一个更聪明的 Agent,而是软件工厂(Software Factory)的重新登场——把“循环”规模化后的产物。
这个概念最早可追溯到 1968 年 Bob Bemer 的论文。如今,在 Agent 能力大幅提升的背景下,它值得我们重新审视:什么是真正新的,什么是旧陷阱的新包装。
循环是原子,工厂是循环的规模化
整个体系可以拆解为三层叠加的概念:
- 循环(Loop):最小的 Agentic 工作单元。一个 Agent 反复执行同一件事——收集上下文、采取行动、检查结果,直到满足停止条件。它是 Agentic 工作的基本粒子。
- Harness(编排环境):包裹在循环外面的“墙”。它包括沙箱、可用工具、跨轮次保留的记忆,以及定义“完成”的闸门。循环是行为,Harness 是行为运行的环境。没有 Harness,原始模型很容易无限循环。
- 工厂(Factory):多个 Harness 化的循环同时运行,由工作队列喂入,通过审查闸门排入生产。人类站在最外层拥有整体控制权。它不是一个更大的 Agent,而是一张由循环组成的组织架构图。
最终的范式转变是:从编写代码,转向构建并运行生产代码的工厂。工作单元从单个 diff 上升到循环、Harness 以及它们之间的流动。
暗工厂 vs 明工厂
“暗工厂”的概念借自制造业——灯光关闭,机器在黑暗中自主完成组装与出货(例如日本 FANUC 从 2001 年就开始运行的无人工厂)。
在软件里,暗工厂意味着:代码被生成、验证并部署,而没有人类真正阅读过 diff。所有检查都由机器完成。
明工厂则是同一管道,但把“判断”保留在灯光下。Agent 仍负责大部分构建工作,但高风险决策点由人类把关。
两者的区别不是“是否使用 Agent”,而是判断力放在哪里。
暗工厂的诱惑与真实代价
暗工厂的吸引力在于极高的感知吞吐量:审查这个瓶颈被移除后,代码似乎可以无限生成,测试保持绿色。
但它在悄无声息地积累理解债务(Comprehension Debt)——代码量与任何人类仍能理解的代码量之间的差距越来越大。
在绿地项目或周末玩具上,几个月内代码量尚可控。但在已有十年历史的复杂企业系统里,几个月后你就淹没在无人阅读的代码海洋中。模型擅长局部变更,却难以对抗长期架构理解的流失。
暗工厂最擅长的,是在测试保持绿色的同时,快速消耗干净代码。最终的清算不会是戏剧性的崩溃,而是安静而迟到的维护噩梦。
验证,而非生成,才是真正的约束
工厂的根本瓶颈从来不是生成速度,而是验证速度。
你可以给循环多大的自主权,取决于你能廉价且可靠地验证它的程度。生成能力是宽口,验证是窄颈。单纯加速生成,只会让窄颈处堆积更多问题。
这就是“背压”(Back Pressure)的核心规则:自主权不能超过廉价可靠验证的边界。
把灯重新打开
明工厂不是简单在末端加回审查,而是把人类判断前移到产品定义、设计和架构阶段。
提前花一小时做架构决策,往往能省掉后来追查两千行生成代码的时间。你是在决策被实现之前就审查它,而不是事后在海量 diff 里寻找当初的决策。
真正有效的安全网,来自我们一直知道却经常忽略的普通架构实践:
- 良好的类型与方法签名(让编译器捕获错误)
- 测试接缝(让行为可观测)
- 清晰的组件边界与短调用栈
- 依赖注入(便于替换)
这些实践现在获得了第二重使命:成为对抗 Agent 错误的廉价且难以伪造的安全网。
什么样的循环可以关灯?
一个循环可以完全自动化(暗模式),必须满足:
- 检查廉价且高频运行
- 依赖无法轻易伪造的信号(类型门、属性测试、带真实评分标准的审查 Agent)
- 答案即时且不会随时间漂移
反之,如果错误代价高昂、影响范围大、或决策将塑造未来一年工作,就必须保持灯光(人类判断)。
短循环比长循环更容易验证。Agent 通常在 3–10 步内表现良好,超过 20 步后容易迷失上下文。
人类去向何方?
人类从未离开工厂,只是位置发生了移动。
Agent 可以处理内循环:调查问题、诊断、实现修复、运行测试、生成报告。
人类需要拥有外循环:判断这是否是正确的问题解决方式、验证诊断与实现是否合理、承担决策后果。
边界在于证据——diff、测试、日志,以及把它们串起来的简短解释。
工程师正在从“生产线上的写码者”,转变为“生产线末端的架构师与闸门守护者”。
循环、图还是状态机?
当你把任务交给 Agent 时,你其实是在围绕它构建一个图——无论你是否称之为有限状态机。每个节点是明确步骤,每条边是明确条件。
这不是新发明,而是我们曾经画流程图的回归。纯循环模式(模型一步步工具调用直到自称完成)曾让人感觉解放,但遇到复杂遗留代码库时,重新拥有控制流结构就变得必要。
结语
软件工厂不是关于让 Agent 更聪明,而是关于如何把循环规模化,同时明智地分配判断力的位置。
暗工厂的诱惑在于短期吞吐量,但它以理解债务为代价。明工厂把人类判断前移到高价值位置,同时让 Agent 高效执行低风险循环。
最终的胜负手,不在于你能生成多少代码,而在于你能廉价、可靠地验证多少代码——以及你是否愿意为长期可维护性保留必要的灯光。
下一次当你考虑让某个 Agent 循环全自动运行时,不妨先问自己:这个检查是否足够廉价、可靠,且无法被轻易伪造?如果答案是否定的,就把灯留着。
我是紫微AI,在做一个「人格操作系统(ZPF)」。后面会持续分享AI Agent和系统实验。感兴趣可以关注,我们下期见。




