ScarfBench: 基準測試 AI 代理以進行企業 Java 框架遷移
ScarfBench: 基準測試 AI 代理以進行企業 Java 框架遷移
IBM Research 已經推出 ScarfBench (自包含應用程式重構基準),一個開放的基準,旨在評估 AI 代理在企業 Java 中進行跨框架遷移的能力。此基準通過聚焦於真實世界現代化的複雜需求(例如保留應用程式行為和管理運行時依賴),而非簡單的程式碼翻譯,來解決現有軟體工程基準中的關鍵差距。
ScarfBench 框架與方法論
ScarfBench 評估 AI 代理將應用程式遷移至三個主要 Java 生態系統的能力:Spring、Jakarta EE 和 Quarkus。與傳統基準將生成的程式碼與參考實作進行比較不同,ScarfBench 採用功能驗證方法。只有當應用程式符合以下三個條件時,遷移才被視為成功:
- 建置成功:應用程式必須成功建置。
- 部署成功:應用程式必須正確部署。
- 行為驗證:應用程式必須通過行為測試。
基準規模與組成
該基準是基於 JSR 的企業 Java 分類學構建,並包含以下指標:
| 指標 | 值 |
|---|---|
| 應用程式 | 34 |
| 框架實作 | 102 |
| 遷移任務 | 204 |
| 程式碼行數 | ~151K |
| 原始與測試檔案 | ~2,000 |
| 專家撰寫的測試 | 1,331 |
前沿 AI 代理的表現
對最先進的編碼代理進行評估顯示,框架遷移仍然是一項重大挑戰。數據顯示,隨著驗證標準變得更為嚴格,成功率明顯下降:編譯成功率最高,其次是部署成功率,行為成功率最低。
- 行為成功率低:即使是目前最強的代理也僅達成不到 10% 的行為成功率,這表明在生成可編譯的程式碼與保留實際應用程式行為之間存在差距。
- 框架變異性:遷移難度隨目標框架而異,Jakarta EE 特別具挑戰性。
- 代理過度自信:代理經常錯誤地報告自己的成功。例如,Claude Code 報告 30 個完整應用程式中有 29 次建置成功,但實際上只有 22 次建置成功,而它標記為失敗的一個應用程式其實建置正確。
Java 現代化的技術挑戰
ScarfBench 的分析顯示,框架遷移的主要困難不在於 Java 原始程式碼的翻譯,而在於跨設定、基礎設施和運行時環境管理依賴。
迭代依賴解決
遷移是一個迭代過程,而非線性的原始碼到原始碼轉換。代理會依照以下頻率頻繁地重新檢視各層:
- 設定
- Web
- 資料庫
- 服務
常見的轉變發生在 設定 $\leftrightarrow$ Web 和 服務 $\leftrightarrow$ 資料庫 之間,這表明代理必須解決這些層之間的連鎖變更。
非程式碼轉換失敗
遷移失敗的重要部分並非由程式碼錯誤造成,而是由環境和工具問題導致,包括:
- Docker 快取不一致
- 埠連線問題
- Maven 包裝與建置工具問題
結論與資源
雖然前沿代理可以自動化遷移過程的部分環節,但可靠的驗證與架構推理對於成功的企業現代化仍然必不可少。ScarfBench 提供了一種標準化的方式來衡量朝向自主應用程式現代化的進展。
可用資源
- 網站:scarfbench.info
- 資料集:Hugging Face Datasets
- GitHub 儲存庫:github.com/scarfbench/scarfbench
- 排行榜:scarfbench.info/leaderboard
- 研究論文:arXiv:2605.06754