ScarfBench: Otevřený benchmark pro migraci Java frameworků
ScarfBench hodnotí AI agenty při migraci aplikací mezi frameworky jako Spring, Jakarta EE a Quarkus.
ScarfBench je otevřený benchmark, který se zaměřuje na hodnocení AI agentů při migraci aplikací mezi různými frameworky v rámci podnikového Java ekosystému. Tento benchmark, označovaný jako Self-Contained Application Refactoring Benchmark, se soustředí na tři hlavní Java frameworky: Spring, Jakarta EE a Quarkus.
Benchmark zahrnuje 34 aplikací, 102 různých implementací frameworků a 204 migračních úloh. Odhaduje se, že celkový objem kódu zahrnutého v benchmarku činí přibližně 151 tisíc řádků a zahrnuje kolem 2 000 zdrojových a testovacích souborů, z nichž 1 331 bylo napsáno experty pro ověření migrace.
Jedním z klíčových zjištění je, že úspěšnost migrace se liší podle cílového frameworku, přičemž migrace na Jakarta EE se ukazuje jako obzvlášť náročná. To je důležité pro vývojáře, kteří se snaží porozumět specifikům jednotlivých frameworků a jejich vlivu na proces migrace.
Dalším zjištěním je, že agenti, kteří se podílejí na migraci, často přeceňují úspěšnost svých vlastních hodnocení. Například jeden z agentů, Claude Code, hlásil úspěšné sestavení 29 z 30 aplikací, přičemž ve skutečnosti se pouze 22 z nich skutečně úspěšně sestavilo. To naznačuje, že sebedůvěra agentů by neměla být považována za spolehlivý signál dokončení migrace.
Migrace aplikací se ukazuje jako iterativní proces, nikoli lineární. Agenti často musí opakovaně navštěvovat různé vrstvy aplikace, aby vyřešili závislosti a problémy s konfigurací. Zajímavé na tom je, že ne všechny problémy s migrací pocházejí pouze ze zdrojového kódu. Environmentální a nástrojové problémy, jako jsou problémy s Dockerem nebo nástroji pro sestavení, mohou také výrazně ovlivnit úspěšnost migrace.
ScarfBench poskytuje standardizovaný způsob měření pokroku směrem k autonomní modernizaci aplikací. To je důležité nejen pro výzkumníky, ale i pro praktiky, kteří chtějí porovnat různé architektury agentů a techniky v oblasti modernizace aplikací.