ScarfBench: 用于企业 Java 框架迁移的 AI Agent 基准测试

ScarfBench: 用于企业 Java 框架迁移的 AI Agent 基准测试

IBM Research 推出 ScarfBench,一个开放的基准,用于评估 AI Agent 迁移企业 Java 应用跨 Spring、Jakarta EE 和 Quarkus 框架的能力。

ScarfBench 框架和方法论

ScarfBench 评估 AI Agent 将应用跨三大 Java 生态系统迁移的能力:SpringJakarta EEQuarkus。与传统基准不同,传统基准将生成的代码与参考实现进行比较,ScarfBench 采用功能验证方法。只有当应用满足以下三个标准时,迁移才被视为成功:

  1. 构建成功:应用必须成功构建。
  2. 部署成功:应用必须正确部署。
  3. 行为验证:应用必须通过行为测试。

基准规模和组成

该基准基于 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 提供了一种标准化的方式来衡量向自主应用现代化的进展。

可用资源

Sources