本文翻译自 StrongDM Software Factory,原载于 Hacker News。
什么是软件工厂
我们构建了一个软件工厂(Software Factory):一种非交互式的开发模式,通过规范(specs)和场景(scenarios)驱动智能体(agents)自动编写代码、运行测试,并在无需人工审查的情况下不断收敛至正确实现。
如果你更喜欢从第一性原理出发,我可以提供一些约束和指导方针,这些原则的迭代应用将加速任何团队形成相同的直觉,最终建立自己的软件工厂。
以禅宗或箴言的形式:
- 我为什么要做这个?(隐含意思:模型应该来做这件事)
以规则的形式:
- 代码不得由人类编写
- 代码不得由人类审查
以实践的形式:
- 如果你今天每位工程师在 tokens 上的花费还不到 1000 美元,你的软件工厂还有改进空间
StrongDM 的 AI 故事
2025 年 7 月 14 日,Jay Taylor、Navan Chauhan 和我(Justin McCarthy,联合创始人兼 CTO)共同创立了 StrongDM AI 团队。
催化剂源于 2024 年底观察到的一个转变:随着 Claude 3.5 第二版(2024 年 10 月)的发布,长期视界的智能体编码工作流开始累积正确性而非累积错误。
正确性的累积 vs 错误的累积
在此之前,LLM 在编码任务上的迭代应用会累积各种可想象的错误(误解、幻觉、语法错误、违反 DRY 原则、库不兼容等)。应用或产品会逐渐退化并最终”崩溃”——千疮百孔而死。
到了 2024 年 12 月,通过 Cursor 的 YOLO 模式,模型的长期编码性能已经无可辩驳。与更新后的模型一起,YOLO 模式为我们首次展现了非交互式开发或生长式软件的曙光。
找到旋钮,拧到最大
在我们 AI 团队第一天的第一个小时,我们制定了一份章程,这引领我们走向一系列发现(我们称之为”解锁”)。回想起来,章程文档中最重要的那行是:
别碰代码!
最初这只是一个直觉,一个实验。如果不手写任何代码,我们能走多远?
并不远!至少:在没有添加测试之前并不远。然而,专注于眼前任务的智能体很快开始走捷径:return true 是通过狭隘测试的好方法,但可能无法泛化到你想要的软件。
仅仅测试是不够的。集成测试呢?回归测试?端到端测试?行为测试?
从测试到场景与满意度
智能体时代的一个反复出现的主题:我们需要新的语言。例如,”测试”这个词已经被证明是不够且模糊的。存储在代码库中的测试可以被懒惰地重写以匹配代码,代码也可以被重写以通过测试。
我们重新定义了场景(scenario)这个词来表示端到端的”用户故事”,通常存储在代码库之外(类似于模型训练中的”保留集”),可以被 LLM 直观地理解并灵活验证。
由于我们生长的软件本身具有智能体组件,我们从布尔定义的成功(”测试套件全绿”)转变为概率性和实证性的定义。我们使用满意度(satisfaction)这个词来量化这种验证:在所有场景的所有观察轨迹中,有多少可能满足用户需求?
在数字孪生宇宙中验证场景
在之前的模式下,团队可能依赖集成测试、回归测试、UI 自动化来回答”它能工作吗?”
我们注意到之前可靠技术的两个局限:
- 测试太僵化——我们用智能体编码,但也用 LLM 和智能体循环作为设计原语;评估成功通常需要 LLM 作为裁判
- 测试可以被欺骗——我们需要不容易被模型作弊的验证
数字孪生宇宙(Digital Twin Universe) 是我们的答案:我们软件依赖的第三方服务的行为克隆。我们构建了 Okta、Jira、Slack、Google Docs、Google Drive 和 Google Sheets 的孪生,复制它们的 API、边缘情况和可观察行为。
有了 DTU,我们可以以远远超过生产限制的量和速率进行验证。我们可以测试对实时服务危险或不可能的失败模式。我们可以在不触及速率限制、不触发滥用检测、不累积 API 成本的情况下,每小时运行数千个场景。
非传统的经济学
我们在 DTU 上的成功说明了智能体时代深刻改变软件经济学的众多方式之一。创建重要 SaaS 应用程序的高保真克隆一直是可能的,但从未在经济上可行。几代工程师可能都想要一个完整的内存中副本来测试他们的 CRM,但自我审查了构建它的提案。他们甚至没有把它带给经理,因为他们知道答案会是不。
那些构建软件工厂的人必须实践故意的天真(deliberate naivete):找到并消除 Software 1.0 的习惯、惯例和约束。DTU 证明了六个月前不可想象的事情现在是常规。
核心原则总结
StrongDM 的软件工厂实践给我们带来了几个重要启示:
- 非交互式开发成为可能:随着 Claude 3.5 等模型的进步,长期任务可以累积正确性而非错误
- 场景优于测试:端到端的用户故事比传统的单元测试更适合智能体开发
- 数字孪生验证:构建依赖服务的克隆可以安全、高效地进行大规模验证
- 重新思考经济学:AI 改变了软件开发的成本结构,以前不可行的方法现在变得常规
个人思考
这篇文章最让我触动的是”故意的天真”这个概念。在 AI 时代,我们需要主动质疑和抛弃那些在 Software 1.0 时代形成的”常识”。
比如,以前我们会说”写测试太贵了”,但在 AI 时代,让 AI 写测试、写场景、甚至构建数字孪生,成本微乎其微。我们自我审查的那些”疯狂想法”,可能正是下一个突破口。
另一个重要洞察是从布尔验证到概率验证的转变。当软件由 AI 生成时,”测试通过”不再是一个二元判断,而是需要考虑”在所有可能的情况下,有多少概率是正确的”。这种思维方式的转变,可能比任何工具都更重要。
进一步阅读
感谢阅读。祝你们在构建自己的软件工厂时好运。
本文翻译自 StrongDM AI 团队的技术博客,介绍了他们如何利用 Claude 等大模型实现完全自动化的软件开发流程。对于探索 AI 辅助开发的团队来说,这篇实践总结提供了宝贵的经验和思考。