软件工厂:无需人工代码审查的 AI 驱动开发
来源: Software Factory 作者 Simon Willison(2026年2月7日)
Simon Willison 报道了 StrongDM 的 AI 团队如何实现了 Dan Shapiro 所说的 "Dark Factory" 级别的 AI 采用——在这个层级中,没有人类编写甚至审查 coding agents 产出的代码。他们的完整报告:Software Factories and the Agentic Moment。
核心原则
StrongDM 的 AI 团队(2025年7月成立,仅3人)在激进的约束下运作:
- 代码不能由人类编写
- 代码不能由人类审查
- 如果你每天每位工程师在 tokens 上的花费还没达到 1,000 美元,你的软件工厂还有改进空间
催化剂:随着 Claude 3.5 Sonnet 修订版 2(2024年10月)的发布,长周期的 agentic coding 工作流开始累积正确性,而不是累积错误。2025年11月的拐点(Claude Opus 4.5、GPT 5.2)进一步提高了可靠性。
关键创新 #1:场景测试作为留出集
问题:如果 agents 同时编写实现代码和测试,它们可以作弊(assert true)。你怎么证明 agent 产出的软件确实能用?
解决方案:借鉴 ML 的思路——将测试场景视为模型训练中的留出集(holdout sets):
- 端到端的"用户故事"存储在代码库之外,对 coding agents 不可见
- 从布尔型的 pass/fail 转向概率性满意度:"在所有场景中观察到的所有轨迹中,有多少比例可能让用户满意?"
- 有效地复制了激进的外部 QA 测试——历史上成本高昂但非常有效
对开发者的意义:这将测试理念从"这段代码是否按我的要求执行"重新定义为"这个系统是否在真实场景中满足用户"。这是从单元测试正确性到行为验证的思维转变。
关键创新 #2:Digital Twin Universe (DTU)
问题:你不可能每小时对真实 SaaS API 运行成千上万次集成测试(rate limits、成本、滥用检测)。
解决方案:让 coding agents 构建第三方服务的行为克隆:
- 构建了 Okta、Jira、Slack、Google Docs、Google Drive、Google Sheets 的 twins
- 复制它们的 API、边界情况和可观察行为
- 将完整的公开 API 文档输入 agent harness,生成独立的 Go 二进制文件
- 在上层叠加简化的 UI 以实现完整模拟
突破点:创建高保真的 SaaS 应用克隆一直是可能的,但从未经济上可行。LLM agents 大幅降低了构建这些副本的成本。现在你可以:
- 以超过生产限制的规模进行验证
- 测试对线上服务来说过于危险的故障模式
- 每小时运行数千个场景,没有 rate limits 或 API 成本
对开发者的意义:即使你没有在构建完整的"软件工厂",DTU 的概念也可以直接应用。任何针对外部 API 进行集成测试的团队都可以从 agent 生成的服务 mock 中受益,这远远超越了手写的 stubs。
关键创新 #3:可复用的 Agent 技术
StrongDM 在他们的技术页面上发布了几个命名模式:
| 技术 | 描述 | 开发者应用 |
|---|---|---|
| Gene Transfusion | Agents 从现有系统中提取模式并在其他地方复用 | 自动在服务间迁移架构模式 |
| Semports | 从一种语言直接移植代码到另一种语言 | 跨语言迁移(例如 Python 服务到 Go) |
| Pyramid Summaries | 多层次摘要——agents 先列举简短摘要,根据需要深入细节 | 使用 agents 管理大型代码库;渐进式上下文加载 |
关键创新 #4:Spec 驱动的 Agent 软件 (Attractor)
StrongDM 发布了 Attractor——他们的非交互式 coding agent——作为一个零代码的仓库。只有三个 markdown 文件,以细致入微的方式描述 spec,并附有说明,将它们输入你选择的 coding agent。
这代表了一种转变:规格说明就是软件发行版。其假设是:任何称职的 coding agent 都可以根据足够好的 spec 来实现。
实用要点
-
将测试编写与代码编写分开:即使不搞完整的"dark factory",将场景定义保持在 agent 可见上下文之外也能防止作弊。
-
投资环境模拟:Agent 生成的服务 mock/twin 现在经济上可行,能大幅提高测试吞吐量。
-
概率性验证优于二元测试:考虑衡量跨场景轨迹的"满意率",而不是仅仅关注 pass/fail 测试套件。
-
渐进式上下文管理:Pyramid Summaries 帮助 agents 在大型代码库中导航,而不会溢出上下文窗口。
-
Spec 优先开发:编写良好的规格说明成为主要产物;实现变得可替换。
成本现实检验
每位工程师每天 1,000 美元(每月 20,000 美元)的目标引发了关于经济可行性的严肃问题。Willison 指出,在这个价位上,这种方法变得"远没有那么有趣"——它变成了一个商业模式练习,而非通用技术。此外,竞争对手可能只需几个小时的 agent 工作就能克隆功能,这对传统的软件护城河构成了挑战。
对于个人开发者和小团队来说,这些概念性模式(留出测试、DTU、Pyramid Summaries)即使在花费水平低得多的情况下(如每月 200 美元的 Claude Max 计划)也同样有价值。