ScarfBench: 面向企业级Java框架迁移的AI智能体基准测试

Hugging Face Blog 论文

摘要

IBM Research 推出 ScarfBench,这是一个用于评估AI智能体在跨框架Java迁移任务中表现的开放基准测试,重点关注 Spring、Jakarta EE 和 Quarkus。与传统的代码生成基准不同,该基准主要评估迁移后的应用程序是否能够构建、部署并保持原有行为。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/30 23:28

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

来源:https://huggingface.co/blog/ibm-research/scarfbench 返回文章列表 (https://huggingface.co/blog)

在GitHub上为ScarfBench加星 (https://github.com/scarfbench/benchmark)

企业应用现代化是组织面临的最大、最昂贵的软件工程活动之一。团队在框架间迁移应用,以提高可维护性、云就绪性、开发者生产力,并获取现代能力。

近期编码Agent的进展引发了人们对AI辅助现代化的热情。但一个重要问题依然存在:

AI Agent能否可靠地现代化真实世界中的企业应用?

现有的软件工程基准在Bug修复和代码生成方面展示了令人印象深刻的进步,但框架迁移提出了根本不同的挑战。成功不仅需要翻译代码,还需要保持行为、适配构建系统、处理运行时依赖。

为了弥补这一空白,我们推出了ScarfBench(自包含应用重构基准),一个用于评估AI Agent在跨框架迁移任务(企业Java环境)中的开放基准。

ScarfBench聚焦于三大Java生态的迁移:

  • Spring
  • Jakarta EE
  • Quarkus

与传统基准(将生成代码与参考实现对比)不同,ScarfBench评估迁移后的应用是否真正能够构建、部署并保持行为。

为什么迁移困难

框架迁移远不止替换注解。

一个简单的仓库迁移可能需要改动依赖注入、持久化配置、查询和框架描述符。这些环节中的任何小错误都可能阻碍成功部署。

scarf-intro-anatomy (https://cdn-uploads.huggingface.co/production/uploads/649c1276a83f996b4191a8f1/3LDxVMx4nf_WEqEN2AQ7W.png)

图:Spring → Jakarta 迁移示例

框架迁移需要转换框架语义,而不仅仅是源代码。

ScarfBench介绍

ScarfBench (https://huggingface.co/spaces/ibm-research/ScarfBench) 提供了一种系统性的方法来评估AI Agent在企业Java框架迁移任务上的表现。

应用必须满足以下要求:

  1. 成功构建。
  2. 正确部署。
  3. 通过行为验证。

这提供了对现代化质量更加现实的衡量。

基准概览

指标数值
应用34
框架实现102
迁移任务204
代码行数~151K
源文件和测试文件~2,000
专家编写的测试1,331

ScarfBench既包含聚焦的迁移任务,也包含完整应用的迁移。

scarf-intro-fig (https://cdn-uploads.huggingface.co/production/uploads/649c1276a83f996b4191a8f1/5njqb4qTj7sfutgRJ7QrF.png)

图:ScarfBench构建流程

从基于JSR的企业Java分类开始,专家迁移创建了跨Spring、Jakarta EE和Quarkus的已验证实现。

前沿Agent表现如何?

我们在ScarfBench上评估了几种最先进的编码Agent。

尽管在传统软件工程基准上表现强劲,但框架迁移仍然困难。成功率在不同框架对之间差异显著,完整应用迁移尤其具有挑战性。

leaderboard (https://cdn-uploads.huggingface.co/production/uploads/649c1276a83f996b4191a8f1/MrcQ5trSi8oKtfD2UEhm9.png)

图:当前排行榜

即使最强的Agent也仅有不到10%的行为成功率,这显示了生成可编译代码与保持应用行为之间的差距。

scarf_aggregate_progression (https://cdn-uploads.huggingface.co/production/uploads/649c1276a83f996b4191a8f1/j7rihRrFe-Eo9oSxNFQS1.png)

图:编译→部署→测试递进

编译成功率始终高于部署成功率,部署成功率又高于行为成功率。仅凭构建成功会显著高估迁移质量。

sankey (https://cdn-uploads.huggingface.co/production/uploads/649c1276a83f996b4191a8f1/mQhC1EtAb5dx2Q8d5nqmL.png)

图:按目标框架的迁移结果

迁移难度与目标框架高度相关,Jakarta EE尤其具有挑战性。

我们关于AI Agent用于Java现代化的发现

除了衡量成功率,ScarfBench还帮助我们理解Agent在现代化过程中的行为。

Agent能否可靠判断迁移是否完成?

迁移后的应用只有真正能够构建并运行才有用。

因此,我们将Agent报告的结果与独立的构建验证进行了比较。

发现:Agent过于自信

Claude Code报告了30个完整应用中的29个成功构建。

但实际上只有22个应用成功构建。

与此同时,Agent判定为失败的唯一个应用最终却构建正确。

这表明不应将Agent的自我评估视为迁移完成的可靠信号。

独立的构建和测试验证仍然至关重要。

Agent如何处理应用依赖?

框架迁移很少只影响单个文件或层。

配置、服务、数据库和Web组件的更改经常会级联影响整个应用。

发现:迁移是迭代而非线性的

最常被访问的层级是:

  • 配置
  • Web
  • 数据库
  • 服务

常见的转换包括:

  • 配置 ↔ Web
  • 服务 ↔ 数据库

这表明迁移是一个迭代的依赖解析过程,而非简单的源代码到源代码转换。

Agent主要精力花在哪里?

我们将层级重新访问频率作为迁移工作量的代理指标。需要反复访问的层级通常涉及调试、依赖解析或框架适配。

发现:配置主导迁移工作量

Agent并没有线性推进,而是在解决框架差异和依赖问题时反复回到与配置相关的工件。

哪些挑战并非代码转换问题?

并非每个迁移问题都源于源代码。

发现:环境和工具很重要

Agent经常在处理环境问题时遇到困难,包括:

  • Docker缓存不一致
  • 端口连接问题
  • Maven包装器和构建工具问题

这些运维问题常常在源代码迁移本身基本完成时仍会延迟验证。

failure-distribution (https://cdn-uploads.huggingface.co/production/uploads/649c1276a83f996b4191a8f1/BtWLPGsif0O4VoQfVppIC.png)

图:失败模式分布

现代化失败涉及构建系统、部署环境、依赖注入、数据库、端点、断言和基础设施等多个方面。

关键要点

框架现代化最大的挑战并非翻译Java代码。

而是管理跨配置、基础设施和运行时环境的依赖网络。

虽然前沿Agent能够自动化迁移过程的大部分,但可靠的验证和架构推理仍然是实现成功结果的关键。

ScarfBench帮助揭示这些挑战,并提供了一种标准化的方法来衡量迈向真正自主应用现代化的进展。

探索ScarfBench

ScarfBench被设计为面向研究人员和实践者的开放资源。

资源包括:

  • 基准数据集
  • 评估基础设施
  • 公开排行榜
  • 文档
  • 开源代码

研究人员可以比较Agent架构和技术。实践者可以在生产环境中部署现代化解决方案之前,使用ScarfBench进行评估。

网站

https://scarfbench.info/

数据集

https://huggingface.co/datasets/ibm-research/ScarfBench

空间

https://huggingface.co/spaces/ibm-research/ScarfBench

GitHub仓库

https://github.com/scarfbench/scarfbench

排行榜

https://scarfbench.info/leaderboard

论文

https://arxiv.org/abs/2605.06754

框架迁移仍然是AI辅助软件工程中最大的未解决问题之一。我们希望ScarfBench能帮助社区衡量进展,并加速下一代AI辅助应用现代化的到来。

我们邀请研究人员、实践者和框架社区评估他们的Agent,贡献新的迁移场景,并共同推动技术前沿。

相似文章

ProgramBench(5分钟阅读)

TLDR AI

ProgramBench 是一项全新的基准测试,用于评估 AI 智能体在无法获取源代码或反编译工具的情况下,仅凭编译后的二进制文件和文档重建完整软件项目的能力。