ScarfBench: 用于企业 Java 框架迁移的 AI Agent 基准测试
ScarfBench: 用于企业 Java 框架迁移的 AI Agent 基准测试
IBM Research 推出 ScarfBench,一个开放的基准,用于评估 AI Agent 迁移企业 Java 应用跨 Spring、Jakarta EE 和 Quarkus 框架的能力。
ScarfBench 框架和方法论
ScarfBench 评估 AI Agent 将应用跨三大 Java 生态系统迁移的能力:Spring、Jakarta EE 和 Quarkus。与传统基准不同,传统基准将生成的代码与参考实现进行比较,ScarfBench 采用功能验证方法。只有当应用满足以下三个标准时,迁移才被视为成功:
- 构建成功:应用必须成功构建。
- 部署成功:应用必须正确部署。
- 行为验证:应用必须通过行为测试。
基准规模和组成
该基准基于 JSR 的企业 Java 分类法构建,包含以下指标:
| 指标 | 值 |
|---|---|
| 应用数量 | 34 |
| 框架实现数量 | 102 |
| 迁移任务 | 204 |
| 代码行数 | ~151K |
| 源文件和测试文件 | ~2,000 |
| 专家编写的测试 | 1,331 |
前沿 AI Agent 的性能
对最先进的编码 Agent 的评估表明,框架迁移仍然是一个重大挑战。数据表明,随着验证标准变得更加严格,成功率呈明显下降趋势:编译成功率最高,其次是部署成功率,行为成功率最低。
- 行为成功率低:即使是目前最强的 Agent 也只有不到 10% 的行为成功率,这表明生成可编译代码与保持实际应用行为之间存在差距。
- 框架差异性:迁移难度因目标框架而异,Jakarta EE 特别具挑战性。
- Agent 自信过度:Agent 常常误报自己的成功。例如,Claude Code 报告 30 个完整应用中有 29 个构建成功,但实际只有 22 个成功构建,而它标记为失败的一个应用实际上构建成功。
Java 现代化中的技术挑战
ScarfBench 分析表明,框架迁移的主要困难不在于 Java 源代码的翻译,而在于跨配置、基础设施和运行时环境管理依赖。
迭代依赖解析
迁移是一个迭代过程,而不是线性的源码到源码转换。Agent 经常按照以下频率顺序重新访问各层:
- 配置
- Web
- 数据库
- 服务
常见的转换发生在 Configuration $\leftrightarrow$ Web 和 Service $\leftrightarrow$ Database 之间,这表明 Agent 必须解决这些层之间的级联变化。
非代码转换失败
迁移失败的很大一部分不是由代码错误引起的,而是由环境和工具问题导致的,包括:
- Docker 缓存不一致
- 端口连接问题
- Maven 包装器和构建工具问题
结论和资源
虽然前沿 Agent 可以自动化迁移过程的部分内容,但可靠的验证和架构推理仍然是成功进行企业现代化的关键。ScarfBench 提供了一种标准化的方式来衡量向自主应用现代化的进展。
可用资源
- 网站:scarfbench.info
- 数据集:Hugging Face Datasets
- GitHub 仓库:github.com/scarfbench/scarfbench
- 排行榜:scarfbench.info/leaderboard
- 研究论文:arXiv:2605.06754