ScarfBench:评测 AI 智能体的企业级 Java 框架迁移能力
ScarfBench: Benchmarking AI Agents for Enterprise Java Framework Migration
ScarfBench 系统评测 AI 智能体在 Spring、Jakarta EE 和 Quarkus 之间迁移企业级 Java 应用的能力,要求项目成功构建、部署并通过行为验证。测试显示,构建成功率高于部署和行为验证成功率,Jakarta EE 尤其困难;Claude Code 声称 30 个完整应用中有 29 个构建成功,但独立验证仅确认 22 个。结果表明,配置、依赖、运行环境及工具问题是主要障碍,独立构建与测试不可或缺。
推荐理由
AI 评分 64
该基准把编译、部署和行为验证分层衡量,可用于识别仅凭构建成功评估迁移质量的偏差。
主题
正文
当前显示原文,中文全文译文尚未就绪。
Why Migration Is Hard
Framework migration is much more than replacing annotations.
A simple repository migration can require changes across dependency injection, persistence configuration, queries, and framework descriptors. Small mistakes in any of these pieces can prevent successful deployment.
Figure: Spring → Jakarta Migration Example
Framework migration requires translating framework semantics, not just source code.
Introducing ScarfBench
ScarfBench provides a systematic way to evaluate AI agents on enterprise Java framework migration tasks.
Applications are required to:
Build successfully.
Deploy correctly.
Pass behavioral validation.
This provides a much more realistic measure of modernization quality.
Benchmark at a Glance
ScarfBench includes both focused migration tasks and whole-application migrations.
Figure: ScarfBench Construction Pipeline
Starting from a JSR-based enterprise Java taxonomy, expert migrations create verified implementations across Spring, Jakarta EE, and Quarkus.
How Do Frontier Agents Perform?
We evaluated several state-of-the-art coding agents on ScarfBench.
Despite strong performance on traditional software engineering benchmarks, framework migration remains difficult. Success rates vary considerably across framework pairs and whole-application migrations remain particularly challenging.
Figure: Current Leaderboard
Figure: Compile → Deploy → Test Progression
Compile success consistently exceeds deploy success, which in turn exceeds behavioral success. Build success alone significantly overestimates migration quality.
Migration difficulty depends strongly on the target framework, with Jakarta EE proving particularly challenging.
Beyond measuring success rates, ScarfBench helps us understand how agents behave during modernization.
Can Agents Reliably Tell When a Migration Is Complete?
A migrated application is only useful if it actually builds and runs.
We therefore compared agent-reported outcomes against independent build verification.
Finding: Agents Are Overconfident
Claude Code reported successful builds for 29 out of 30 whole applications.
Only 22 of those applications actually built successfully.
Meanwhile, the single application classified as failed by the agent ultimately built correctly.
This suggests that agent self-assessment should not be treated as a reliable signal of migration completion.
Independent build and test validation remains essential.
How Do Agents Navigate Application Dependencies?
Framework migrations rarely affect a single file or layer.
Changes in configuration, services, databases, and web components often cascade across the application.
The most frequently visited layers were:
Common transitions included:
Configuration ↔ Web
Service ↔ Database
This suggests that migration is an iterative dependency-resolution process rather than a simple source-to-source transformation.
Where Do Agents Spend Most of Their Effort?
We used layer revisit frequency as a proxy for migration effort. Layers that required repeated visits typically involved debugging, dependency resolution, or framework adaptation.
Finding: Configuration Dominates Migration Effort
Rather than proceeding linearly, agents repeatedly returned to configuration-related artifacts while resolving framework differences and dependency issues.
What Challenges Are Not About Code Transformation?
Not every migration issue originates from source code.
Finding: Environment and Tooling Matter
Agents frequently struggled with environmental issues, including:
Docker cache inconsistencies
Port connectivity problems
Maven wrapper and build tooling issues
These operational concerns often delayed validation even when the source-code migration itself was largely complete.
Figure: Failure Mode Distribution
Modernization failures span build systems, deployment environments, dependency injection, databases, endpoints, assertions, and infrastructure.
Key Takeaway
The biggest challenge in framework modernization is not translating Java code.
It is managing the web of dependencies across configuration, infrastructure, and runtime environments.
While frontier agents can automate substantial portions of the migration process, reliable validation and architectural reasoning remain critical for achieving successful outcomes.
ScarfBench helps expose these challenges and provides a standardized way to measure progress toward truly autonomous application modernization.
Explore ScarfBench
ScarfBench is designed as an open resource for researchers and practitioners.
Researchers can compare agent architectures and techniques. Practitioners can use ScarfBench to evaluate modernization solutions before deploying them in production environments.
Framework migration remains one of the largest unsolved problems in AI-assisted software engineering. We hope ScarfBench helps the community measure progress and accelerate the next generation of AI-assisted application modernization.
We invite researchers, practitioners, and framework communities to evaluate their agents, contribute new migration scenarios and help advance the state of the art.
Datasets mentioned in this article 1
ibm-research/ScarfBench Updated May 22 • 116 • 19 Spaces mentioned in this article 1 Running 2 ScarfBench 🐠 2 Java framework migration
More from this author
Your Agent Aced the Task. Will It Do It Again?
118 September 15, 2026 IBM releases SOTA Granite Time Series PatchTST-FM-r2 model with commercial-friendly license 60 September 9, 2026 Community Edit Preview Upload images, audio, and videos by dragging in the text input, pasting, or clicking here . Tap or paste here to upload images Comment · Sign up or log in to comment
Upvote 27 +15 Datasets mentioned in this article 1 ibm-research/ScarfBench Updated May 22 • 116 • 19 Spaces mentioned in this article 1 Running 2 ScarfBench 🐠 2 Java framework migration