构建软件工厂:编码代理的规则与护具
编码不再是缓慢的步骤。下一步有用的行动是停止把代理当作健谈的一次性编码员,开始构建一个软件工厂:协调的、可重复的代理循环,带有清晰的触发器、脚手架、确定性检查,以及人类对架构和判断的所有权。
这是来自 Beyond Coding 最新讲座和 David Ondrej 的实用模式。它与纯粹的瓶颈分析有不同的重点。瓶颈已经转移到审查、信任和验证;现在的问题是如何构建工厂,让代理在生产系统上保持有用,同时不降低代码库质量。
软件工厂究竟是什么
David Ondrej 将其框定为代理循环的集合,而不是更多的手动提示。每个循环有:
- 一个触发器(计划、webhook、产品事件、错误、客户反馈),
- 一个有界任务,配备正确的模型、技能、上下文和工具,
- 某种形式的检查或跟进。
工厂是跨越产品工作、安全、数据库健康、计费或支持的许多此类循环。人类仍然负责优先级、品味、战略和高风险审批。操作员不再是手动启动每个会话的瓶颈。
参见:Stop coding, build Software Factories instead(以及从手动提示转向循环的相关讨论)。
来自资深实践者的具体规则
先搭脚手架;让主代理远离文件
Carlos Kelkboom(首席架构师,Beyond Coding)很明确:代理不擅长迭代更改,擅长一次性执行。他的做法是在任何实现代理运行之前手动创建目录、关键文件、函数或类型签名、注释和文件夹边界。他的主要对话代理保持在“开放”模式——它讨论、教学并建立相互理解——但从不触碰文件。只有当信心高时,它才启动一个封闭的工作者来完成狭窄或大型的一次性任务。
他使用图形风格的护具(Markdown 节点、通过链接的渐进式披露、提交哈希、简短摘要),以便按需检索上下文,而不是把所有东西倾倒进每个提示。并行实验在 git worktrees 中运行;最佳实现被合并,其余被丢弃。
最重要的规则:如果你不理解代码就扔掉它,即使它通过了测试。理解是让你以后能维护、调试和扩展它的关键。
完整集:Lead Architect Reveals His Rules for Coding Agents。
把代理变成花哨、确定性的 CI/CD
Kerim Satirli(HashiCorp / IBM)在生产基础设施上做了同样的转变。“不要犯错误”只是礼貌的请求;它不是硬线。他远离纯粹的非确定性,把代理更多地当作增强的 CI/CD 流水线:运行质量工具、评估计划、浮现意外差异(例如持续显示更改的 Terraform 提供商)、通过搜索交叉检查已知问题,并建议暂缓。
大多数 Terraform apply 可以自动运行,这样人类就不是永久的阻塞者;有风险的更改保留逃生舱。规格(GitHub Spec Kit 风格)、BLUF(结论先行)摘要以减少文档噪音,以及个性化的工厂约束取代了希望。他认识的几乎每个工程师都已经在构建或重度定制自己的工厂。
完整集:How Senior Engineers Use Coding Agents On Prod Infrastructure。
周一该做什么
- 选择一个重复的、边界清晰的循环(提供商更新、自己仓库的安全扫描、反馈分类),给它一个真正的触发器加上独立检查。
- 自己搭建结构和完成定义。在任务清晰之前,让协调代理保持只读。
- 优先一次性或大型有界任务,而不是无尽的迭代修补。在 worktrees 中隔离工作。
- 把安全和反垃圾编码为硬门(拒绝编辑的钩子、质量工具、短期凭证、计划评估器),而不是提示愿望。
- 分享工厂接口——规格、技能、评估、上下文图——让整个团队可以使用相同的循环。
保持快速的团队不是那些夜间运行最多无人值守代理的团队。他们是注意到瓶颈已转移,然后构建了护具、脚手架和验证循环的团队,让代理继续产出而不使代码库变差。
来源:上面链接的两个近期 Beyond Coding 集,以及 David Ondrej 的软件工厂框架。Hacker News 上的相关讨论继续强调在更高代理量下的审查负载和 CI 压力,强化了为什么工厂需要确定性检查而不是更多生成。