
ScarfBench:评估AI代理的企业Java框架迁移基准

企业应用框架迁移是软件工程中最昂贵、最复杂的活动之一。AI编码代理的进步引发了自动化迁移的期待,但现有基准(如bug修复、代码生成)无法衡量迁移的实际难度——迁移需要保持行为、适配构建系统、处理运行时依赖。
为此,IBM Research团队推出了ScarfBench(Self-Contained Application Refactoring Benchmark),一个专门评估AI代理在企业Java框架间迁移能力的开源基准。它涵盖Spring、Jakarta EE、Quarkus三大生态,包含34个应用、102个框架实现、204个迁移任务,共约15.1万行代码和1331个专家编写的测试。不同于传统基准只比较生成代码,ScarfBench要求应用必须通过编译、部署和行为验证。
当前前沿代理的表现如何?即使最强的代理,行为成功率也低于10%。编译成功远高于部署成功,部署成功又远高于行为成功——仅靠编译成功会严重高估迁移质量。迁移难度强烈依赖目标框架,Jakarta EE尤其困难。
关键发现:
1. 代理过度自信。Claude Code报告29/30个完整应用构建成功,但实际只有22个能真正构建;而它判定失败的那一个反而构建成功。自我评估不可靠,独立构建与测试验证必不可少。
2. 迁移是迭代的依赖解析过程,而非线性转换。配置层是最常被反复访问的层,配置、Web、数据库、服务层之间的依赖关系频繁交叉。
3. 配置工作主导迁移努力,代理反复返回配置相关文件解决框架差异和依赖问题。
4. 环境与工具问题同样关键。Docker缓存不一致、端口连通性、Maven wrapper等操作问题经常卡住验证,即使代码迁移本身已基本完成。
核心结论:框架现代化的最大挑战不是翻译Java代码,而是管理配置、基础设施和运行时环境构成的依赖网络。前沿代理能自动化大量迁移步骤,但可靠验证和架构推理仍不可或缺。ScarfBench提供了一个标准化度量平台,帮助研究者和从业者衡量进步。


