SWE Context Bench: A Benchmark for Context Learning in Coding
作者: Jared Zhu, Minhao Hu, Junde Wu
分类: cs.SE, cs.AI
发布日期: 2026-02-09
💡 一句话要点
SWE-ContextBench:用于评估代码生成中上下文学习能力的新基准
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码生成 上下文学习 经验重用 软件工程 基准测试
📋 核心要点
- 现有代码生成基准忽略了任务间的关联性,无法有效评估模型在软件工程中经验复用的能力。
- SWE-ContextBench通过构建包含共享上下文的任务序列,显式评估模型在编程任务中的经验重用能力。
- 实验表明,有效选择和总结的经验能够显著提升代码生成准确率,并降低时间和成本开销。
📝 摘要(中文)
大型语言模型越来越多地被用作软件工程任务中的编程代理。虽然最近的基准测试评估了在真实代码库中的正确性,但它们大多将任务视为独立的,并且不评估代理是否可以重用相关问题中的经验。因此,代理积累、检索和应用先前经验的能力,以及由此类重用带来的效率提升,仍然难以衡量。我们引入了SWE-ContextBench,这是一个旨在明确评估编程代理中经验重用的基准。SWE-ContextBench建立在SWE-Bench Lite之上,通过来自GitHub问题和pull请求之间真实依赖和引用关系的99个相关任务来扩充300个基本任务,形成具有共享上下文的任务序列。该基准从三个互补的维度评估代理:预测准确性、时间效率和成本效率。使用SWE-ContextBench,我们研究了多种经验重用设置,包括oracle引导和自主检索,以及完整的执行轨迹和紧凑的摘要。我们的结果表明,正确选择的摘要经验提高了解决准确性,并显着降低了运行时间和token成本,尤其是在较难的任务上。相比之下,未经过滤或错误选择的经验提供的益处有限或负面。这些发现突出了经验表示和检索质量的重要性,并将SWE-ContextBench定位为研究编程代理中经验重用的原则性基准。
🔬 方法详解
问题定义:现有的大型语言模型在软件工程任务中,通常被视为独立的编程代理,缺乏对任务间上下文关系的利用。现有的代码生成基准测试主要关注代码的正确性,而忽略了模型在不同任务之间复用经验的能力。因此,如何评估和提升模型在软件工程任务中积累、检索和应用经验的能力,成为了一个重要的研究问题。
核心思路:本文的核心思路是构建一个能够显式评估模型经验复用能力的基准测试集。通过构建具有共享上下文的任务序列,来模拟软件工程中常见的任务依赖关系。模型可以通过学习和利用这些上下文信息,来提高代码生成的效率和准确性。这种方法旨在鼓励模型不仅仅是独立地解决每个任务,而是能够从之前的经验中学习,并将这些经验应用到新的任务中。
技术框架:SWE-ContextBench构建在SWE-Bench Lite之上,包含300个基本任务,并使用来自GitHub问题和pull请求之间真实依赖和引用关系的99个相关任务来扩充这些基本任务。这些相关任务与基本任务共享上下文,形成任务序列。该基准测试从三个维度评估代理:预测准确性、时间效率和成本效率。评估过程中,研究了多种经验重用设置,包括oracle引导和自主检索,以及完整的执行轨迹和紧凑的摘要。
关键创新:SWE-ContextBench的关键创新在于其显式地评估了模型在编程任务中的经验重用能力。与以往的基准测试不同,SWE-ContextBench通过构建具有共享上下文的任务序列,来模拟软件工程中常见的任务依赖关系。这种设计使得研究人员可以更加深入地了解模型如何利用之前的经验来提高代码生成的效率和准确性。
关键设计:SWE-ContextBench的关键设计包括:1) 基于真实GitHub问题和pull请求构建相关任务,保证了任务的真实性和实用性;2) 提供多种经验重用设置,包括oracle引导和自主检索,以及完整的执行轨迹和紧凑的摘要,使得研究人员可以灵活地评估不同经验重用策略的效果;3) 从预测准确性、时间效率和成本效率三个维度评估代理,全面地评估了模型在经验重用方面的性能。
🖼️ 关键图片
📊 实验亮点
实验结果表明,正确选择的摘要经验能够显著提高代码生成的准确性,并降低运行时间和token成本,尤其是在较难的任务上。相比之下,未经过滤或错误选择的经验提供的益处有限或负面。例如,在某些任务上,使用正确选择的摘要经验可以将准确率提高10%以上,同时将运行时间和token成本降低20%以上。
🎯 应用场景
SWE-ContextBench可用于评估和提升大型语言模型在软件开发领域的应用能力,例如代码自动补全、缺陷修复、代码重构等。通过利用任务间的上下文信息,可以提高代码生成的效率和质量,降低开发成本。该基准测试还可以促进对经验重用策略的研究,推动软件工程自动化技术的发展。
📄 摘要(原文)
Large language models are increasingly used as programming agents for repository level software engineering tasks. While recent benchmarks evaluate correctness in realistic codebases, they largely treat tasks as independent and do not assess whether agents can reuse experience across related problems. As a result, the ability of agents to accumulate, retrieve, and apply prior experience, as well as the efficiency gains from such reuse, remains difficult to measure. We introduce SWE-ContextBench, a benchmark designed to explicitly evaluate experience reuse in programming agents. Built on SWE-Bench Lite, SWE-ContextBench augments 300 base tasks with 99 related tasks derived from real dependency and reference relationships among GitHub issues and pull requests, forming task sequences with shared context. The benchmark evaluates agents along three complementary dimensions: prediction accuracy, time efficiency, and cost efficiency. Using SWE-ContextBench, we study multiple experience reuse settings, including oracle guided and autonomous retrieval, as well as full execution trajectories and compact summaries. Our results show that correctly selected summarized experience improves resolution accuracy and substantially reduces runtime and token cost, particularly on harder tasks. In contrast, unfiltered or incorrectly selected experience provides limited or negative benefits. These findings highlight the importance of experience representation and retrieval quality, and position SWE-ContextBench as a principled benchmark for studying experience reuse in programming agents.