FreshBrew
收藏arXiv2025-10-06 更新2025-10-08 收录
下载链接:
https://github.com/mrcabbage972/freshbrew
下载链接
链接失效反馈官方服务:
资源简介:
FreshBrew是一个针对Java代码迁移的AI代理评估基准,旨在测量AI代理在项目级别的Java迁移能力。该数据集包含228个真实世界的Java项目,这些项目在JDK 8上可以成功构建,但在现代JDK上构建失败,并且具有至少50%的测试覆盖率。FreshBrew的评估协议通过三个连续的阶段来衡量成功:成功编译、通过所有原始测试以及保持测试覆盖率在基线的5%以内。这些阶段确保只有语义正确的迁移才能被计为成功,并有效地防止奖励黑客行为。通过发布FreshBrew,我们旨在促进严格、可重复的评估,并推动AI驱动的代码库现代化进程的进步。
FreshBrew is an AI Agent evaluation benchmark for Java code migration, intended to measure the project-level Java migration capabilities of AI agents. This dataset contains 228 real-world Java projects that can be built successfully on JDK 8 but fail to build on modern JDK versions, with a test coverage of at least 50%. The evaluation protocol of FreshBrew assesses success via three consecutive stages: successful compilation, passing all original tests, and maintaining test coverage within 5% of the baseline. These stages ensure that only semantically correct migrations are counted as successful, effectively preventing reward hacking. By releasing FreshBrew, we aim to facilitate rigorous, reproducible evaluations and advance the progress of AI-driven codebase modernization.
提供机构:
Google, Max Planck Institut für Intelligente Systeme (MPI-IS), ELLIS Institute, Tübingen, Salesforce, Gologic Inc
创建时间:
2025-10-06
原始信息汇总
FreshBrew 数据集概述
数据集简介
FreshBrew 是一个用于评估 AI 代理在 Java 代码迁移任务中表现的基准数据集。该数据集专注于 Java JDK 迁移场景,包含完整的评估框架和测试覆盖度验证机制。
核心功能
- 代码迁移评估:通过运行迁移脚本评估 AI 代理对 Java 代码库的迁移能力
- 测试覆盖度保护:通过覆盖率检查脚本验证迁移后代码的测试覆盖度变化
- 结果分析:生成详细的评估报告和指标统计
数据集位置
完整数据集文件路径:data/migration_datasets/full_dataset.yaml
- 包含用于开发和调试的子采样版本数据集
技术规格
运行环境要求
- 操作系统:Linux 或 MacOS
- Python 版本:3.12+
- 必需工具:Git 命令行工具
- Java 环境:需要安装 temurin-8-jdk、temurin-17-jdk、temurin-21-jdk 和 Maven
支持的 AI 模型
- 默认模型:
gemini-2.5-flash - 支持模型类型:Gemini(AI Studio 和 Vertex)、OpenAI
- 可扩展性:支持通过实现 Agent 接口集成新的 AI 代理
评估流程
迁移执行阶段
使用 run_migration.py 脚本:
- 输入:Java 代码库数据集
- 输出:代码补丁文件、构建日志、代理轨迹日志、结果摘要文件
- 生成聚合指标文件:
metrics.yaml
覆盖度验证阶段
使用 migration_cov_guard.py 脚本:
- 输入:实验输出路径、覆盖度数据 CSV 文件
- 输出:
cov_results.yaml文件,包含通过率、任务失败数和详细覆盖度结果
配置要求
- 必须设置目标 Java 版本环境变量:
TARGET_JAVA_VERSION - 需要配置相应的 AI 模型 API 密钥
- 支持并行处理和重试机制
扩展性
支持通过实现 java_migration/eval/agent.py 中定义的 Agent 接口来扩展新的 AI 代理,并在 java_migration/eval/worker.py 中注册使用。
搜集汇总
数据集介绍

构建方式
在Java生态系统持续演进的背景下,FreshBrew数据集通过多阶段筛选流程构建而成。研究团队从GitHub选取了30,000个最受欢迎的Maven项目作为初始池,经过自动化验证后保留6,554个能在JDK 8环境成功编译并通过测试的仓库。通过交叉比对JDK 17的编译失败情况,筛选出1,746个存在实际迁移需求的仓库。最终基于测试覆盖率指标(要求不低于50%)与开源许可证合规性审查,形成包含228个高质量项目的标准化数据集。
使用方法
针对AI智能体的评估需遵循三阶段验证协议。首先要求迁移后的项目在目标JDK环境成功编译,其次需通过全部原始测试用例,最后通过JaCoCo工具验证代码行覆盖率下降不超过5个百分点。评估过程支持智能体调用文件操作、构建命令及网络搜索等工具,通过最多100步的交互序列完成迁移任务,最终根据三阶段通过率综合衡量智能体的实际效能。
背景与挑战
背景概述
随着人工智能编程助手在软件工程领域的深度融合,代码库现代化迁移成为关键挑战。2025年由Google、马克斯·普朗克智能系统研究所等机构联合发布的FreshBrew基准测试,聚焦于评估AI智能体在Java项目级代码迁移中的语义保持能力。该数据集从GitHub精选228个高测试覆盖率的Maven项目,构建了从JDK 8至现代JDK版本的迁移任务,通过多阶段验证流程确保评估的严谨性,为自动化代码迁移研究提供了标准化评估范本。
当前挑战
该数据集面临双重挑战:在领域问题层面,需解决Java版本升级过程中由二进制兼容性破坏、依赖库变更及API演进引发的语义保持难题;在构建过程中,需克服高测试覆盖率项目筛选的复杂性,通过自动化流水线从数万仓库中识别具备编译失败特征且覆盖率达50%以上的样本,同时设计覆盖度保持阈值以防范智能体通过删除测试代码等奖励黑客行为规避核心问题。
常用场景
经典使用场景
在软件现代化研究领域,FreshBrew数据集作为评估人工智能代理在Java代码迁移任务中的核心工具,其经典使用场景聚焦于系统性测试模型对项目级代码库的语义保持能力。该数据集通过构建从JDK 8到JDK 17/21的迁移任务链,要求代理在维持高测试覆盖率的约束下完成依赖项更新、API适配及构建配置调整,为衡量模型在真实开发环境中的综合表现提供了标准化实验场。
解决学术问题
该数据集有效解决了自动化代码迁移中奖励黑客行为的检测难题,通过引入测试覆盖率保持机制,阻断了模型通过删除测试代码或功能模块等取巧手段虚报成功率的行为。其多阶段评估协议(编译通过、测试全绿、覆盖率偏差≤5%)为语义一致性验证提供了可靠框架,推动了可信代码迁移系统的评估方法论发展,填补了传统基准在代理行为完整性评估方面的空白。
实际应用
在企业级软件维护实践中,FreshBrew支撑着开发团队对AI编码助手进行能力校准,帮助识别模型在复杂依赖解析、构建脚本适配等场景的薄弱环节。科技企业可依据其评估结果优化内部代码迁移流程,将表现优异的代理模型集成至持续集成管道,显著降低Java版本升级过程中的人工干预成本,加速Spring Boot等企业级框架的生态适配进程。
数据集最近研究
最新研究方向
在软件工程智能化转型背景下,FreshBrew作为首个专注于Java代码迁移的AI智能体评估基准,正推动软件现代化研究的前沿探索。其通过构建高测试覆盖率的真实项目数据集与防奖励欺诈的多维度评估协议,揭示了当前大语言模型在处理依赖管理、API语义兼容性等复杂任务时的局限性。该研究热点与软件供应链安全、企业级代码库可持续演化等现实挑战紧密关联,为构建可信赖的自动化代码迁移系统提供了关键方法论支撑,标志着软件维护范式从规则驱动向认知智能驱动的深刻转变。
相关研究论文
- 1FreshBrew: A Benchmark for Evaluating AI Agents on Java Code MigrationGoogle, Max Planck Institut für Intelligente Systeme (MPI-IS), ELLIS Institute, Tübingen, Salesforce, Gologic Inc · 2025年
以上内容由遇见数据集搜集并总结生成



