发布评估AI Agent在企业Java框架迁移中表现的基准测试,帮助衡量Agent自动化重构的有效性。
⭐ 在 GitHub 上为 ScarfBench 点 Star
编码 Agent 的最新进展,让人们对 AI 辅助的现代化改造充满期待。但一个重要问题仍然存在:
AI Agent 能否可靠地对现实世界中的企业应用进行现代化改造?
现有的软件工程 Benchmark 已经展现出在修复 Bug 和生成代码方面的显著进步,但框架迁移是一项本质上不同的挑战。要成功完成迁移,不仅需要转换代码,还需要保留原有行为、调整构建系统,并处理复杂的运行时依赖关系。
为填补这一空白,我们推出了 ScarfBench(Self-Contained Application Refactoring Benchmark,自包含应用重构 Benchmark)。这是一个开放 Benchmark,用于评估 AI Agent 执行 Enterprise Java 跨框架迁移任务的能力。
ScarfBench 聚焦于三个主要 Java 生态系统之间的迁移:
与通过参考实现来比较生成代码的传统 Benchmark 不同,ScarfBench 评估的是迁移后的应用能否真正完成构建、部署,并保留原有行为。
框架迁移远不只是替换注解。
即便是一个简单的代码仓库迁移,也可能需要修改依赖注入、持久化配置、查询以及框架描述文件。任何一个环节中的细小错误,都可能导致部署失败。
图:Spring → Jakarta 迁移示例
框架迁移需要转换的是框架语义,而不只是源代码。
ScarfBench 提供了一套系统化的方法,用于评估 AI Agent 执行 Enterprise Java 框架迁移任务的能力。
应用必须:
通过行为验证。
这为衡量现代化改造的质量提供了一种更贴近现实的方式。
ScarfBench 同时包含聚焦于局部的迁移任务和完整应用迁移任务。
图:ScarfBench 构建流程
ScarfBench 从基于 JSR 的 Enterprise Java 分类体系出发,由专家执行迁移,在 Spring、Jakarta EE 和 Quarkus 之间创建经过验证的实现。
我们使用 ScarfBench 评估了多个最先进的编码 Agent。
尽管这些 Agent 在传统软件工程 Benchmark 上表现出色,但框架迁移仍然十分困难。不同框架组合之间的成功率差异显著,而完整应用迁移尤其具有挑战性。
图:当前排行榜
图:编译 → 部署 → 测试进程
编译成功率始终高于部署成功率,而部署成功率又高于行为验证成功率。仅凭构建成功,会严重高估迁移质量。
图:按目标框架划分的迁移结果
迁移难度在很大程度上取决于目标框架,其中 Jakarta EE 尤其具有挑战性。
除了衡量成功率,ScarfBench 还能帮助我们理解 Agent 在现代化改造过程中的行为方式。
迁移后的应用只有真正能够构建和运行,才具有实际价值。
因此,我们将 Agent 报告的结果与独立构建验证进行了比较。
Claude Code 报告称,30 个完整应用中有 29 个构建成功。
但其中只有 22 个应用实际构建成功。
与此同时,唯一一个被 Agent 判定为失败的应用,最终却能够正确构建。
这表明,不应将 Agent 的自我评估视为判断迁移是否完成的可靠信号。
独立的构建与测试验证仍然必不可少。
框架迁移很少只影响单个文件或单一层级。
配置、服务、数据库和 Web 组件中的变更,往往会在整个应用中产生连锁反应。
Agent 最频繁访问的层级包括:
常见的层级转换包括:
这表明,迁移是一个迭代式的依赖解析过程,而不是简单的源代码到源代码转换。
我们使用层级重访频率作为衡量迁移工作量的替代指标。需要反复访问的层级,通常涉及调试、依赖解析或框架适配。
Agent 并不是线性推进迁移,而是在解决框架差异和依赖问题的过程中,反复返回与配置相关的产物。
并非所有迁移问题都源于源代码。
Agent 经常难以处理环境问题,包括:
即使源代码迁移本身已经基本完成,这些运维问题也经常拖慢验证进度。
图:失败模式分布
现代化改造的失败原因横跨构建系统、部署环境、依赖注入、数据库、端点、断言以及基础设施。
框架现代化改造中最大的挑战,并不是转换 Java 代码。
真正的挑战,是管理配置、基础设施和运行时环境之间相互交织的依赖关系。
尽管前沿 Agent 已经能够自动完成迁移流程中的很大一部分工作,但要成功完成迁移,可靠的验证和架构层面的推理仍然至关重要。
ScarfBench 揭示了这些挑战,并提供了一种标准化方法,用于衡量我们距离真正自主的应用现代化改造还有多远。
ScarfBench 被设计为一项面向研究人员和从业者的开放资源。
研究人员可以比较不同的 Agent 架构和技术。从业者可以在将现代化改造方案部署到生产环境之前,使用 ScarfBench 对其进行评估。
框架迁移仍然是 AI 辅助软件工程领域尚未解决的最大难题之一。我们希望 ScarfBench 能够帮助社区衡量进展,并加速下一代 AI 辅助应用现代化技术的发展。
我们邀请研究人员、从业者以及各个框架社区评估自己的 Agent,贡献新的迁移场景,并共同推动技术前沿的发展。
本文提及的数据集:1 个
本文提及的 Space:1 个
模型路由很简单,直到它不再简单。
使用 CUGA 构建真正的 Agentic 应用:基于轻量级 Harness 的二十多个可运行示例
· 注册或登录后发表评论
本文提及的数据集:1 个
本文提及的 Space:1 个