来源笔记

Don't Fear the Dark Factory

Agentic CodingSoftware AutomationCode ValidationMulti Agent WorkflowsHuman AI Interaction

文章认为,dark factory 在代理处于验证循环中时,可以自动化边界明确的软件任务。核心主张很务实:把代理用在有明确检查的工作上,不要盲目信任。

  • 当人不去读代理写的代码时,这种代码会让团队感到不安全,尤其是那些重视内部设计质量的团队。
  • 很多软件杂务,比如依赖升级、安全修复、架构漂移检查和 mutation test 分流,即使结果可以检查,仍然需要人力投入。
  • 风险来自规格不清的代理工作;文章说,缺少的是一个定义可接受输出的验证机制。
  • 文中把 dark factory 描述为一个循环:代理会话接收种子输入,进行修改,并持续运行,直到验证通过。
  • 验证机制包含测试、启发式规则、架构记录或其他用来判断输出是否足够好的检查。
  • 在 yaks 的例子里,一个代理把代码和 ADR 对照并生成建议;另一个代理落实优先级最高的建议;测试和未解决的建议会让循环继续。
  • 作者建议先从小型维护任务开始,再把特性工作交给代理。
  • 摘录没有给出基准、准确率、吞吐量、数据集结果或对照比较。
  • 一个具体说法是,yaks 的架构评审循环可以持续 1 小时或更久,而人类几乎不需要介入。
  • 文中声称的结果是,循环在解决所有建议并通过自动化测试后,代码的完整性会按 ADR 的设计启发式标准提升。
  • 文章给出了 4 种适合 dark factory 的任务类型:安全漏洞修复、依赖升级、mutation test 分流,以及生产特性实现。
  • 作者还说,他们做了一个日常使用的工具,使用的是自己以前从未读过也从未写过的语言,而且没有去读生成出来的代码。