RepoRescue: Эмпирическое исследование LLM-агентов по восстановлению совместимости всего репозитория
RepoRescue: An Empirical Study of LLM Agents on Whole-Repository Compatibility Rescue
July 1, 2026
Авторы: Zhihao Lin, Mingyi Zhou, Zhensu Sun, Yizhuo Yang, Renyu Yang, David Lo, Li Li
cs.AI
Аннотация
Широко используются библиотеки и инструменты с открытым исходным кодом, однако поддержание совместимости обходится дорого. Когда мейнтейнеры уходят, полезные репозитории могут перестать работать по мере эволюции сред выполнения и зависимостей. Мы изучаем, могут ли агенты на основе LLM адаптировать старые репозитории к современным средам — задачу, которую мы называем спасением совместимости. В отличие от исправления ошибок, спасение совместимости начинается с репозитория, который работал в своей исходной среде, но перестаёт работать после дрейфа экосистемы. RepoRescue предоставляет агентам только репозиторий и его неработающую современную среду; агент должен диагностировать сбой, локализовать затронутый код и создать исправление исходного кода, которое восстанавливает исторический набор тестов. Мы построили RepoRescue на основе 193 репозиториев Python и 122 репозиториев Java, каждый из которых, как проверено, проходил тесты исторически и перестаёт проходить после модернизации. Мы оцениваем пять развёрнутых агентных систем на Python и три на Java. Помимо уровня прохождения полных патчей, мы запускаем патчи повторно после удаления правок тестовых файлов для измерения исправления только исходного кода, добавляем режим с принудительным контролем времени выполнения, блокирующий правки тестов, и проверяем практическую применимость для репозиториев, наборы тестов которых проходят после спасения. Мы обнаружили, что системы Claude Code иногда редактируют неработающие тесты, даже если им дана инструкция этого не делать; при блокировке во время выполнения Kimi всё ещё спасает 41,5% репозиториев. Системы дополняют друг друга: их объединение достигает 62,7%, что на 10,9 процентных пункта превышает лучшую отдельную систему. Трудность сосредоточена в координации между файлами: на 14 репозиториях, требующих согласованных изменений во всей кодовой базе, GPT-5.2 через Codex проходит все 14, тогда как каждая система Claude Code проходит не более двух. Наконец, прохождение набора тестов — лишь начальный сигнал: среди 34 неподдерживаемых кандидатов Python, наборы тестов которых проходят после спасения, 22 работают в реалистичных сценариях, а 12 проходят поиск ошибок с патчами, устраняющими сбой совместимости. RepoRescue оценивает спасение совместимости с аудитом только исходного кода, принудительным контролем времени выполнения, практической проверкой и метками рассуждений.
English
Open-source libraries and tools are widely reused, but compatibility maintenance is expensive. Once maintainers leave, useful repositories can stop working as runtimes and dependencies evolve. We study whether LLM agents can adapt old repositories to modern environments, a task we call compatibility rescue. Unlike bug repair, compatibility rescue starts from a repository that worked in its original environment but fails after ecosystem drift. RepoRescue gives agents only the repository and its failing modern environment; the agent must diagnose the failure, locate affected code, and produce a source-code rescue that restores the historical test suite. We build RepoRescue from 193 Python and 122 Java repositories, each verified to pass historically and fail after modernization. We evaluate five deployed agent systems on Python and three on Java. Beyond full-patch pass rate, we rerun patches after removing test-file edits to measure source-only repair, add a runtime-enforced regime that blocks test edits, and validate practical use for repositories whose suites pass after rescue. We find that Claude Code systems sometimes edit failing tests even when prompted not to; with runtime blocking, Kimi still rescues 41.5% of repositories. Systems are complementary: their union reaches 62.7%, exceeding the best single system by 10.9 points. Difficulty concentrates in cross-file coordination: on 14 repositories requiring coordinated whole-codebase changes, GPT-5.2 through Codex passes all 14, while every Claude Code system passes at most two. Finally, a passing suite is only an initial signal: among 34 unmaintained Python candidates whose suites pass after rescue, 22 work in realistic scenarios and 12 pass bug-hunt with patches that address the compatibility failure. RepoRescue benchmarks compatibility rescue with source-only auditing, runtime enforcement, practical validation, and reasoning labels.