A Few Pages of Markdown: Committed AI Configuration and Lower Quality Cost after Coding-Agent Adoption
本文介绍了 RAMP,一种用于仓库级 AI 配置的累积成熟度模型,并证明了尽管编程智能体在所有成熟度水平上都能持续加速开发,但缺乏投入使用的 AI 配置人工制品的团队会经历显著更高的技术债和质量退化。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在过去的几年里,一种新型的软件助手来到了专业开发者的办公桌前。它们不仅仅是完成句子或建议变量名的工具;它们是能够编写整个代码段、修复漏洞并以极少的人类干预向项目提交变更的自主智能体。对于许多团队来说,这一转变是一次启示,它承诺将曾经需要数天才能完成的工作缩短至数小时。然而,这种体验并不均衡。虽然一些团队报告了平滑且持久的改进,但另一些团队则描述了一场混乱、易错代码的洪流,这给人类评审员带来的工作量甚至超过了它所节省的工作量。研究人员面临的核心谜题在于,理解为什么同样的强大工具会产生如此不同的结果。是技术本身存在缺陷,还是结果取决于团队如何选择使用它?
为了回答这个问题,来自斯坦福大学和卡内基梅隆大学的研究小组将目光从代码本身转向了团队留下的指令。在软件开发中,团队通常会将规则、标准和配置编写在与他们构建的代码一起保存的文件中。这些文件充当项目的共享记忆,告诉软件它应该如何表现。研究人员想知道,这些书面指令的存在与质量是否是解释为什么有些团队在使用 AI 智能体时取得成功而有些团队却陷入挣扎的缺失环节。他们着手测量团队如何组织这些指令,以及这种组织方式是否会改变最终产品的质量。
研究人员开发了一种衡量团队 AI 设置“成熟度”的新方法,称之为“成熟度剖面”。他们观察了数千个软件项目,并根据团队在版本控制系统中提交的指令文件类型,将它们分为四个等级。在最低等级,团队完全没有为 AI 编写任何书面指令;智能体每次任务都从空白状态开始,靠猜测来了解项目的运作方式。在下一等级,团队编写了基础规则,例如编码标准或行为准则,从而赋予 AI 对项目上下文的共同理解。第三个等级涉及更高级的设置,团队可以为不同的 AI 智能体定义特定角色,或为复杂任务创建可重用的命令。最高等级(非常罕见)涉及协调多个智能体在单一、有组织的流程中协同工作。
该研究通过分析 441 个私有企业代码库来建立并测试这一测量系统。他们发现,从没有任何指令到拥有复杂工作流的演进遵循一条清晰的、累积性的路径。团队很少跳过步骤;他们往往从基础规则开始,如果向前推进,则会在该基础上进行构建。一个引人注目的发现是,一旦团队提交了这些指令,他们几乎从不修改它们。大约 74% 的配置文件是写好后便不再变动的,这表明初始设置是一个“设置后即忘”的决策,决定了项目的未来。然而,大多数团队从未跨越到添加基础规则的第一步,极少数人达到了协调多个智能体的水平。
为了观察这些等级是否真的对软件质量有影响,研究人员将他们的测量系统应用于另一组最近开始使用自主编码智能体的开源项目。他们比较了拥有书面指令的团队与没有任何书面指令的团队在开发速度和代码质量方面的差异。结果显示出明显的分歧。在速度方面,两组都有显著提升;拥有指令的团队和没有指令的团队在采用智能体后都增加了提交次数并编写了更多代码。然而,代码质量却出现了剧烈分化。
没有书面配置的团队看到的代码复杂度增加幅度更大,且静态分析警告(即指出潜在错误或不良实践的自动化标记)的数量也显著更高。具体而言,没有指令的团队其复杂度增加幅度大约是拥有基础规则的团队的两倍。此外,对于缺乏准备的团队,警告数量的增长率比有结构化实践的团队高出 1.7 倍。这表明,虽然 AI 智能体足以让所有人提高工作速度,但如果没有清晰的书面约束进行引导,它们也容易引入微妙的错误和混乱的结构。那些花时间编写了几页规则和标准的团队有效地充当了护栏,使 AI 的输出保持在可接受的范围内。
研究人员谨慎地指出,这一发现是一种关联性,而非证明了因果关系。有可能拥有书面规则的团队本身就更具纪律性,或者拥有更好的工程实践,而这些特质(而非文件本身)导致了更好的结果。也有可能拥有规则的团队使用的是更先进的 AI 模型。然而,数据有力地表明,存在提交的配置文件是更好结果的一个可靠信号。这项研究暗示,成功的 AI 应用与混乱的应用之间的区别,往往取决于一个简单且低成本的步骤:在释放智能体之前,先写下几页规则。
最终,这项工作重新定义了关于软件开发中 AI 的讨论。它将焦点从技术本身转移到了围绕技术的各种人类实践上。研究人员发现,结果之间最显著的差距不在于使用 AI 与否,而在于是在没有计划的情况下使用 AI,还是花时间定义它应该如何运作。对于想要采用这些工具的团队来说,其信息是务实且接地气的:在编写清晰、提交的指令方面的投入很小,但在代码质量方面的回报却是巨大的。随着自主智能体变得越来越普遍,一个团队如何配置它们,可能会成为决定其软件项目成功的最重要因素之一。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。