five

tool-output-extraction-swebench

收藏
Hugging Face2026-03-10 更新2026-03-11 收录
下载链接:
https://huggingface.co/datasets/KRLabsOrg/tool-output-extraction-swebench
下载链接
链接失效反馈
官方服务:
资源简介:
Tool Output Extraction Dataset 是一个用于训练生成模型的数据集,旨在过滤冗长的编码代理工具输出,仅保留与任务相关的行。该数据集包含来自真实执行工具输出的 SWE-bench 数据、跨多生态系统的合成数据以及 SWE 风格的合成数据,总计 9,050 个样本。数据集覆盖了 30 种工具类型,包括 Python、Git、JavaScript/TypeScript、Rust、Go、Java、C/C++、基础设施和 HTTP 等生态系统。每个样本包含三个字段:prompt(系统提示、任务描述和编号的工具输出)、response(包含相关行的 XML 标签)和 metadata(实例 ID、工具类型、数据来源、行数和压缩比)。数据集分为训练集、开发集和测试集,分别包含 8,241、252 和 557 个样本。该数据集适用于文本生成任务,特别是编码代理工具输出的上下文压缩任务。
创建时间:
2026-03-08
原始信息汇总

Tool Output Extraction Dataset 数据集概述

数据集简介

本数据集用于训练 squeez 模型,该模型是一个小型生成模型,旨在将冗长的编码智能体工具输出过滤为仅相关的行。其动机在于解决LLM编码智能体在工具输出上浪费80-95%上下文令牌的问题。

数据集统计

数据集划分 样本数量
训练集 (Train) 8,241
开发集 (Dev) 252
测试集 (Test) 557
总计 (Total) 9,050

数据来源构成

来源 样本数量 描述
SWE-bench 真实数据 5,936 在克隆的Python仓库上执行的真实工具输出
合成多生态系统数据 2,039 由LLM生成的针对JS、Rust、Go、Docker等生态的工具输出
合成SWE风格数据 1,075 由LLM生成的Python工具类型的变体

覆盖的工具类型

数据集涵盖多个生态系统下的30种工具类型:

生态系统 工具类型
Python read_file, grep, python, test_output, pip_install, type_check, coverage, lint_output, build_output
Git git_log, git_diff, git_blame, ls
JavaScript/TypeScript npm_install, npm_build, tsc, eslint
Rust cargo_build
Go go_build
Java mvn_gradle
C/C++ make_cmake
基础设施 docker_build, docker_logs, terraform, kubectl
HTTP curl
Python (合成) grep_output, git_log_output, git_diff_output, python_output, mypy_pyright

数据格式

每个样本包含三个字段:

  • prompt: 系统提示 + 任务描述 + 带行号的工具输出,使用Qwen ChatML令牌格式化。
  • response: 包裹在 <relevant_lines> XML标签中的相关行。对于没有相关行的样本(硬负例),标签为空。
  • metadata: 包含实例ID、工具类型、数据来源(swe, synthetic, synthetic_negative)、总行数、相关行数和压缩比。

数据集划分策略

  • SWE-bench 数据:按仓库划分(零实例重叠)。
    • 测试集pydata/xarray, pallets/flask 仓库。
    • 开发集psf/requests 仓库。
    • 训练集:所有其他仓库(django, sympy, scikit-learn, sphinx, matplotlib, pytest, astropy, pylint, seaborn)。
  • 合成数据:按工具类型划分,10%为测试集,5%为开发集,85%为训练集。硬负例在测试集中每个工具类型上限约为10%,以保持指标稳定。

测试集构建

测试集经过两轮手动审查和筛选:

  1. 排除了教师模型选择了100行以上相关行的SWE样本(例如,read_file保留整个文件,git_blame跨越整个模块)。
  2. 检查并排除了剩余样本中相关行比例异常高的样本。 通过 raw/manual_test_exclusions.json 排除了61个SWE测试样本。

数据生成方法

SWE-bench 真实数据生成

  • 核心:基于真实工具输出,非生成文本。
  • 来源:使用来自SWE-bench测试集的2,294个实例(真实的GitHub问题及修复)。
  • 流程:为每个问题模拟编码智能体的行为(读取文件、grep搜索、运行测试等),生成3-7个工具调用,并在真实仓库上执行。
  • 标注:由教师LLM根据(任务,工具输出)对选择相关行范围。
  • 质量控制:对高噪声样本进行下采样,并在测试集中手动排除标注过于宽泛的样本。

合成数据生成

  • 目的:补充SWE-bench仅覆盖Python生态的不足,使模型能处理多生态系统工具输出。
  • 多生态系统合成数据:采用两阶段生成法。第一阶段由LLM生成任务描述和工具输出;第二阶段由另一个LLM调用选择相关行号。
  • 硬负例:通过故意错配任务和工具输出来创建,占20%。
  • SWE风格合成数据:为SWE-bench中某些质量较差的Python工具类型生成更干净的合成版本。

原始数据文件

raw/ 目录包含以下预组装源文件:

  • distilled_swe.jsonl
  • synthetic_multi_ecosystem.jsonl
  • synthetic_swe_style.jsonl
  • manual_test_exclusions.json

引用信息

如果使用本数据集,请引用:

@misc{squeez2025, title={squeez: Context Compression for Coding Agent Tool Output}, author={KR Labs}, year={2025}, url={https://github.com/KRLabsOrg/squeez} }

搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程智能化领域,工具输出的信息冗余问题长期制约着编码代理的效率。本数据集采用多源融合的构建策略,核心部分源自SWE-bench的真实代码库场景,通过模拟编码代理行为,在2,294个实际GitHub问题对应的基础提交上执行真实工具调用,生成包含文件读取、代码搜索、测试运行等操作的原始输出。随后利用教师模型进行标注,严格限定标注内容必须与原始输出行完全一致,确保了数据的真实性与可验证性。为弥补单一生态的局限,进一步引入跨生态合成数据,通过两阶段生成流程创建了涵盖JavaScript、Rust、Go及基础设施等多元场景的样本,并精心设置了约20%的硬负例以训练模型识别无关输出。
特点
该数据集呈现出显著的生态多样性与任务真实性特征,覆盖Python、Git、JavaScript/TypeScript、Rust、Go等八大生态系统共计30种工具类型,实现了对现代软件开发全栈工作流的广泛映射。其样本结构设计精良,每个样本均包含格式化的提示词、封装在XML标签内的相关行响应以及详尽的元数据,其中元数据记录了实例来源、工具类型、行数统计及压缩比率等关键信息。数据划分遵循严格的零实例重叠原则,测试集与开发集分别隔离了特定代码仓库,并经过人工双重审查以排除标注过于宽泛或覆盖率异常的样本,从而保障了评估基准的严谨性与可靠性。
使用方法
研究人员可通过Hugging Face的`datasets`库便捷加载该数据集,直接获取训练、开发与测试三个标准划分。数据集适用于训练如squeez之类的生成式模型,学习从冗长的工具输出中精准提取与当前编程任务相关的代码行。在使用过程中,模型接收包含系统指令、任务描述及带行号工具输出的完整提示,并生成以`<relevant_lines>`标签包裹的相关行序列。对于硬负例样本,模型需学会输出空标签以表明无相关信息。该数据集支持对模型跨生态泛化能力及上下文压缩性能的系统评估,为推进编码代理的长上下文处理效率提供了关键训练资源与评测基准。
背景与挑战
背景概述
在大型语言模型驱动的编码代理领域,工具调用产生的冗长输出严重制约了上下文窗口的有效利用,导致高达80-95%的令牌被无关信息占据。为应对这一瓶颈,KR Labs于2025年发布了tool-output-extraction-swebench数据集,旨在训练生成式模型精准过滤工具输出中的关键行。该数据集以SWE-bench真实代码库为基础,结合多生态系统合成数据,覆盖Python、Git、JavaScript等30种工具类型,其核心研究聚焦于提升编码代理在长序列任务中的上下文压缩能力,为自动化软件工程中的信息提取任务提供了重要的基准资源。
当前挑战
该数据集致力于解决编码代理工具输出信息过载的挑战,即从混杂着环境噪声、依赖树及通过测试等大量无关行的输出中,精确识别并提取与当前任务直接相关的代码行。构建过程中的挑战主要体现在数据标注的严谨性与泛化性平衡:一方面,基于真实代码库执行工具调用虽能确保输出真实性,但许多工具类型产生高比例无关输出,导致标注样本稀疏且噪声显著;另一方面,为扩展至Python外生态系统而引入的合成数据,需通过两阶段生成与验证流程来保证任务描述、工具输出及关联行标注的逼真度与逻辑一致性,同时还需刻意构建负样本以训练模型识别无相关内容的场景。
常用场景
经典使用场景
在大型语言模型驱动的代码智能体领域,工具调用常产生冗长输出,其中大量无关内容挤占了宝贵的上下文窗口。该数据集专为训练工具输出提取模型而设计,通过标注真实和合成的多生态系统工具输出中的关键行,使模型能够精准过滤噪声,保留与任务解决直接相关的代码片段或错误信息。这一过程显著提升了智能体在处理复杂代码库时的上下文利用效率,为长序列任务提供了可行路径。
实际应用
在实际的软件开发与运维流程中,该数据集训练的模型可集成至各类自动化编程助手或DevOps流水线。例如,在持续集成环节,模型能快速从冗长的构建日志或测试报告中提取失败原因;在代码审查时,可智能过滤`git diff`输出,仅呈现核心变更。这种能力直接提升了开发者的信息处理效率,减少了人工筛查低价值信息的时间成本,使智能体能够在真实、复杂的多语言和多工具环境中稳定工作。
衍生相关工作
围绕该数据集,已催生出如`squeez`模型等专注于工具输出压缩的开源工作。这些工作验证了通过专门化模型进行上下文蒸馏的有效性,并启发了后续研究探索更细粒度的输出结构化、跨工具类型的泛化能力提升,以及将压缩技术整合到更广泛的智能体架构中。此外,其构建方法——结合真实执行输出与可控合成数据——也为其他领域创建高质量的指令微调数据集提供了可借鉴的范式。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作