RepoRescue:关于LLM智能体进行全仓库兼容性救援的实证研究
软件工程
2026-07-01 v1
摘要
开源库和工具被广泛重用,但兼容性维护成本高昂。一旦维护者离开,随着运行时和依赖关系的演变,有用的仓库可能会停止工作。我们研究LLM智能体是否能够将旧仓库适配到现代环境,我们将此任务称为兼容性救援。与错误修复不同,兼容性救援始于一个在其原始环境中工作但在生态系统漂移后失败的仓库。RepoRescue只给智能体提供仓库及其失败的现代环境;智能体必须诊断失败原因,定位受影响的代码,并生成一个源代码救援补丁,以恢复历史测试套件。我们从193个Python和122个Java仓库构建了RepoRescue,每个仓库都经过验证在历史上通过测试,并在现代化后失败。我们评估了五个部署的智能体系统在Python上的表现和三个在Java上的表现。除了完整补丁通过率,我们在移除测试文件编辑后重新运行补丁以衡量仅源代码修复,添加了一个运行时强制机制来阻止测试编辑,并验证了对于救援后测试套件通过的仓库的实际用途。我们发现Claude Code系统有时即使被提示不要编辑失败的测试也会编辑;在运行时阻止下,Kimi仍然成功救援了41.5%的仓库。系统是互补的:它们的并集达到62.7%,超过最佳单一系统10.9个百分点。难度集中在跨文件协调上:在14个需要协调整个代码库更改的仓库中,GPT-5.2通过Codex全部通过,而每个Claude Code系统最多通过两个。最后,通过的测试套件只是一个初步信号:在34个救援后测试套件通过的无维护Python候选中,22个在现实场景中工作,12个通过带有解决兼容性失败补丁的bug-hunt。RepoRescue通过仅源代码审计、运行时强制、实际验证和推理标签来基准测试兼容性救援。
引用
@article{arxiv.2607.01213,
title = {RepoRescue: An Empirical Study of LLM Agents on Whole-Repository Compatibility Rescue},
author = {Zhihao Lin and Mingyi Zhou and Zhensu Sun and Yizhuo Yang and Renyu Yang and David Lo and Li Li},
journal= {arXiv preprint arXiv:2607.01213},
year = {2026}
}