论文

代理生成 AST 转换规则以修复重大更新

Agentic Generation of AST Transformation Rules for Fixing Breaking Updates

摘要

现代软件项目依赖于不断发展的第三方库,引入了重大的 API 更改,从而阻止客户端代码在依赖项更新后进行编译。当同一个库更新破坏多个项目时,现有的修复方法会生成无法重复使用的特定于项目的补丁,从而需要独立修复每个受影响的项目。我们提出了 BigBag,一个生成修复转换的代理框架:结构化的可执行程序,在 API 级别对修复逻辑进行编码,并传输到因同一更新而损坏的任何客户端。我们在 BUMP 基准测试中对 BigBag 进行了 157 个编译失败破坏依赖项更新的评估,涉及 8 个配置,组合了四个 大语言模型 和两个 AST 转换引擎(Spoon 和 JavaParser)。最佳配置实现了94.3%的可编译转换率和78.6%的修复率。生成的转换跨项目传输,总体跨项目修复率达到 33.3%,对于所有客户端统一调用受影响的 API 元素的重大更新,修复率达到 80% 或更高。这些结果表明,可重用修复转换的代理生成是对破坏性更新进行可扩展修复的可行方法。