five

OmniCode

收藏
arXiv2026-02-03 更新2026-02-05 收录
下载链接:
https://github.com/seal-research/OmniCode
下载链接
链接失效反馈
官方服务:
资源简介:
OmniCode是由康奈尔大学等机构联合构建的综合性软件工程基准测试数据集,涵盖Python、Java和C++三种编程语言,包含1794项任务,分为错误修复、测试生成、代码审查修复和风格修正四大类别。该数据集通过人工验证确保问题定义清晰,并采用合成方法从有限真实数据中生成多样化任务,避免了数据泄露问题。其核心价值在于突破传统编码基准的局限性,为评估AI代理在完整软件开发周期中的表现提供标准化测试框架,尤其针对测试生成和多语言风格修复等当前系统的薄弱环节。

OmniCode is a comprehensive software engineering benchmark dataset jointly developed by Cornell University and other institutions. It covers three programming languages: Python, Java, and C++, and contains 1,794 tasks divided into four categories: bug fixing, test generation, code review repair, and style correction. This dataset ensures clear problem definitions through manual validation, and adopts synthetic methods to generate diverse tasks from limited real-world data, thereby avoiding data leakage issues. Its core value lies in breaking through the limitations of traditional coding benchmarks, providing a standardized testing framework for evaluating the performance of AI Agents throughout the entire software development lifecycle, and particularly targeting the current weak points of existing systems such as test generation and multi-language style correction.
提供机构:
康奈尔大学; 独立贡献者; 加州大学圣塔芭芭拉分校; 贾达普大学; 纽约大学
创建时间:
2026-02-03
原始信息汇总

OmniCode 数据集概述

数据集简介

OmniCode 是一个用于评估在各种软件开发活动中由大型语言模型(LLM)驱动的智能体的基准测试。它通过从基础数据集综合构建多个任务来全面评估软件工程智能体。

核心任务

OmniCode 包含四种不同类型的评估任务:

1. 缺陷修复评估 (--BugFixing)

  • 描述:智能体接收一个代码仓库和拉取请求(PR)描述,识别并应用最小的源代码变更(不包括测试)以满足指定要求。它通过复现问题、应用修复、重新运行相关测试并确保完整性来验证修复。
  • 评估:成功与否取决于修复是否通过所有相关测试且未引入非预期的变更。
  • 用例:适用于评估模型进行最小、正确且经过测试验证的代码变更的能力。

2. 测试生成评估 (--TestGeneration)

  • 描述:智能体接收一个代码仓库和一个问题描述,然后使用现有的测试框架(例如 pytest)在仓库的测试套件中编写一个新的测试来复现报告的问题。
  • 评估:成功与否取决于测试是否在错误的实现上失败,并在正确的实现上通过。
  • 用例:用于评估模型生成有意义、可区分的测试用例的能力。

3. 代码风格审查评估 (--StyleReview)

  • 描述:智能体在给定的实例上运行风格检查,对检测到的问题应用修复,并通过重新运行相关测试来验证功能不受影响。
  • 评估:成功与否取决于在不破坏功能的前提下,代码风格违规的减少程度。
  • 用例:适用于代码质量和遵守风格指南很重要的场景。

4. 审查回复评估 (--ReviewResponse)

  • 描述:智能体接收一个问题描述、一个失败的补丁以及解释失败原因的审查。它利用此上下文来避免重复错误,并实现一个改进的修复。评估方式与缺陷修复相同,即检查预测的补丁是否通过最终测试。
  • 评估:成功与否取决于改进后的补丁是否解决了问题,同时避免了审查中强调的陷阱。
  • 用例:特别适用于测试模型应用审查者反馈以改进实现的能力。

数据集构成与获取

  • 数据位置:数据集托管在 HuggingFace 上,地址为 https://huggingface.co/datasets/seal-research/OmniCode/tree/main。
  • 数据文件:数据集包含针对不同编程语言的实例文件,下载后位于 ./data 目录下,结构如下:
    • omnicode_instances_python.json
    • omnicode_instances_java.json
    • omnicode_instances_cpp.json
    • omnicode_style_instances_python.json
    • omnicode_style_instances_java.json
    • omnicode_style_instances_cpp.json
  • 获取命令: bash pip install -U hf hf download seal-research/OmniCode --repo-type dataset --local-dir data

实例统计概览

任务类型 Python (实例数) Java (实例数) C++ (实例数)
基础实例 273 109 112
测试生成 164 44 79
审查回复 164 44 79
风格审查 144 124 147

环境与依赖

  • Python 版本:需要 Python 3.13。
  • 主要依赖:可通过 pip install -r requirements.txt 安装。
  • 子模块:依赖于特定版本的 SWE-bench 和 multi-swe-bench,需要单独安装。
  • 容器支持:支持 Docker 和 Apptainer(适用于无 root 权限的环境)。

评估运行

  • 核心脚本omnicode.py
  • 任务标志:通过 --BugFixing--TestGeneration--StyleReview--ReviewResponse 等标志指定要运行的任务。
  • Java 支持:通过 --MSWEBugFixing--MSWETestGeneration 标志支持 Java 仓库的缺陷修复和测试生成评估(实验性功能)。
  • LLM API 密钥:运行涉及 LLM 的评估任务需要 Gemini LLM 的 API 密钥(可从 https://ai.google.dev/gemini-api/docs/api-key 获取)。

基线智能体集成

  • SWE-Agent:已配置基本的 SWE-agent 实现,可用于在 OmniCode 仓库上进行测试。
  • 支持模式:支持多种模式,包括 bugfixingtestgenstylereviewreviewfix 及其针对 Java 和 C++ 的变体。

数据增强

支持通过两种主要方式为数据集生成“错误补丁”和相应的审查:

  1. 无智能体生成:使用 synthetic_datagen/Agentless 中的脚本。
  2. LLM 辅助生成:使用 synthetic_datagen/badpatchllm/ 目录下的 generate_bad.pygenerate_review.py 脚本。
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,评估大语言模型驱动的编码代理需要全面且多样化的基准测试。OmniCode的构建过程始于从开源GitHub仓库中收集真实世界数据,并整合了现有基准如SWE-Bench和Multi-SWE-Bench的实例。通过筛选满足特定条件的合并拉取请求,例如解决具体问题并引入至少一项测试,确保了数据质量。随后,利用大语言模型和工具进行增强,生成了四种任务类型:错误修复、测试生成、代码审查响应和风格修复。这一过程涉及生成错误补丁以支持测试生成,以及利用大语言模型创建代码审查反馈。最终,数据集涵盖了Python、Java和C++三种编程语言,共1794项任务,均经过手动验证以避免定义不清的问题,并通过合成方法减少了数据泄露风险。
特点
OmniCode作为软件工程基准测试的显著特点在于其任务的多样性和评估的严谨性。该数据集不仅涵盖了传统的错误修复任务,还扩展至测试生成、代码审查响应和风格修复等关键软件开发生命周期环节。其任务设计强调真实性,例如测试生成任务要求生成的测试不仅能在正确补丁上通过,还必须在多个错误补丁上失败,从而更准确地评估模型的判别能力。此外,数据集通过手动验证确保了问题的明确性,并采用合成方法生成任务,有效避免了数据泄露问题。这些特点使得OmniCode能够全面评估编码代理在不同软件工程任务上的表现,尤其是在多语言环境下的能力差异。
使用方法
使用OmniCode进行评估时,研究者需将编码代理部署在容器化环境中,该环境模拟了拉取请求时的仓库状态及依赖关系。针对不同任务类型,需提供相应的任务描述和上下文提示。例如,在错误修复任务中,代理接收问题描述和测试集,并生成补丁;在测试生成任务中,代理需基于问题描述生成测试用例,这些测试需在正确补丁上通过并在所有错误补丁上失败。评估过程通过运行测试套件和风格检查工具来验证补丁的正确性和风格合规性。OmniCode支持对多种代理框架(如SWE-Agent和Aider)和不同大语言模型的性能进行系统比较,从而揭示其在各任务和语言上的优势与不足。
背景与挑战
背景概述
随着大语言模型驱动的编码智能体在真实软件开发中日益普及,对其能力的系统性评估需求愈发迫切。OmniCode基准由康奈尔大学等机构的研究团队于2026年提出,旨在填补现有编码基准(如HumanEval、SWE-Bench)仅聚焦于狭窄任务范畴的不足。该基准覆盖了Python、Java和C++三种编程语言,囊括了错误修复、测试生成、代码审查响应和风格修正四大关键软件工程活动,共计1794项任务。其核心研究问题在于如何全面评估智能体在多样化、贴近实际的软件开发场景中的综合能力,从而推动更通用、更可靠的自动化软件开发工具的发展。OmniCode通过人工验证与合成数据生成相结合的方式构建,确保了任务定义的清晰性并避免了数据泄露问题,为相关领域提供了更为严谨和全面的评估框架。
当前挑战
OmniCode基准旨在解决的领域挑战在于全面评估编码智能体应对真实世界软件开发全生命周期复杂任务的能力,而非仅限于代码生成或补丁修复等单一活动。其构建过程面临多重具体挑战:首先,在任务设计上,需确保测试生成、代码审查响应等新型任务的评估标准既严谨又具有判别力,例如要求生成的测试不仅能通过正确补丁,还必须能有效甄别多个似是而非的错误补丁。其次,在数据构建中,如何从有限的真实世界数据(如GitHub拉取请求)出发,通过大语言模型和工具增强,合成出多样、高质量且避免泄露的任务实例,是一项复杂工程。此外,跨语言(Python、Java、C++)任务的一致性与难度平衡,以及为每个实例构建可执行、依赖完备的容器化环境,均对基准的可靠性与可复现性提出了极高要求。
常用场景
经典使用场景
在软件工程智能体评估领域,OmniCode数据集被广泛用于全面衡量基于大语言模型的编码代理在真实软件开发场景中的综合能力。该数据集通过构建涵盖Python、Java和C++三种编程语言的1794项任务,系统覆盖了错误修复、测试生成、代码审查响应和代码风格修正四大核心软件工程活动。研究者通常利用OmniCode对如SWE-Agent等主流智能体框架进行基准测试,通过其在多语言、多任务维度上的表现差异,深入揭示当前智能体系统的能力边界与薄弱环节。
解决学术问题
OmniCode有效解决了现有编码基准测试任务范畴狭窄、评估维度单一的学术研究问题。传统基准如HumanEval和SWE-Bench主要聚焦于竞赛编程或补丁生成等孤立任务,难以反映真实软件开发中所需的多样化技能。OmniCode通过引入测试生成与代码审查响应等新颖任务类别,并采用包含错误补丁的鲁棒性评估机制,为学术界提供了首个能够系统评估智能体在软件开发生命周期中多环节协同工作能力的基准平台,推动了软件工程智能体评估从单一功能向综合素养的范式转变。
衍生相关工作
OmniCode的发布催生了一系列围绕多任务软件工程评估的衍生研究。其构建方法启发了后续工作如SWE-Smith和BugPilot在合成数据生成方面的探索,而任务设计理念则影响了更广泛的智能体评估基准向多语言、多模态方向发展。该数据集采用的错误补丁增强评估机制被后续测试生成基准所借鉴,提升了测试用例质量评估的严谨性。同时,OmniCode揭示的智能体在风格修复与测试生成任务上的表现差距,直接推动了针对代码语义理解与长期推理能力的新一代智能体架构研究。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作