SWE Context Bench: A Benchmark for Context Learning in Coding
本文提出了 SWE-ContextBench 基准,旨在通过构建包含 1,100 个基础任务及 376 个相关任务的跨仓库数据集,评估编程智能体在复用上下文时的预测准确性、时间与成本效率,并发现经过筛选的摘要式上下文能显著提升任务解决率并降低开销。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这篇论文介绍了一个名为 SWE-ContextBench 的新工具,它的核心目的是测试编程 AI 助手(Agent)是否真的懂得“吃一堑,长一智”,以及它能不能利用过去的经验来更快地解决新问题。
为了让你轻松理解,我们可以把这篇论文的内容想象成在评估一位**“超级修理工”**。
1. 以前的测试有什么毛病?(背景)
想象一下,以前我们测试修理工(AI 模型)时,是给他看一道道完全独立的数学题。
- 场景:今天修好一个水龙头,明天修好一个马桶,后天修好一个电路。
- 问题:这些题目之间毫无关系。修理工每次都是“从零开始”思考,哪怕他昨天刚修过一模一样的水龙头,今天遇到同样的问题,他可能还是得重新查书、重新思考。
- 现状:现在的 AI 在解决这种“孤立题目”上已经很强了,但这不像真实的修理工。在现实工作中,修理工会记住:“哦,上次那个漏水是因为螺丝松了,这次肯定也是。”
2. 这个新工具是做什么的?(SWE-ContextBench)
作者们造了一个新的“考场”,叫 SWE-ContextBench。
- 核心设计:这个考场里的题目不再是孤立的,而是成串的。
- 第一道题:修好一个复杂的代码库里的 Bug(比如修好了水龙头)。
- 第二道题:紧接着,这个代码库里又出现了另一个相关的 Bug(比如水龙头修好后,发现旁边的水管接口也松了)。
- 目的:我们要看这位修理工,在解决第二道题时,能不能调用他解决第一道题时的经验(比如:“上次我用了扳手,这次可能也需要”),而不是每次都像第一次见面一样重新摸索。
这个考场包含了 1476 个任务,来自 51 个真实的代码仓库,涵盖了 9 种编程语言。它把“基础任务”(修理工做过的)和“相关任务”(需要利用经验的新任务)配对在了一起。
3. 他们怎么给修理工打分?(三个维度)
以前只问:“修好了吗?”(准确率)。
现在,SWE-ContextBench 问了三个更全面的问题:
- 修得好不好?(准确率):
- 这是基础。如果修理工把水管修爆了,那肯定不行。
- 修得快不快?(时间效率):
- 如果修理工能直接说:“上次那个情况我遇到过,直接换这个零件就行”,那他就比“翻遍工具箱找半天”要快得多。
- 比喻:就像你找东西,如果记得上次放在哪,直接伸手去拿(快);如果忘了,得把整个柜子翻一遍(慢)。
- 修得省不省钱?(成本效率):
- AI 思考是需要消耗“算力”和“钱”的(Token 消耗)。
- 如果修理工能复用经验,他就不用说那么多废话,消耗的“脑力”就少,老板付的钱也就少。
4. 实验发现了什么?(关键结论)
作者们让 AI 尝试了不同的“回忆方式”,结果非常有趣:
完全失忆(Baseline):
- 修理工完全不看以前的记录,每次从零开始。
- 结果:表现中规中矩,但效率低,因为他在重复造轮子。
把整本日记都给他(Free Experience Reuse):
- 把修理工过去几千字的详细工作日记(包括他怎么翻箱倒柜、怎么试错的全过程)全部塞给他,让他自己找重点。
- 结果:效果不好! 就像给修理工一本 500 页的日记让他自己找“上次怎么修水龙头”,他反而被海量信息淹没了,修得慢,还容易修错。
给他看“精华摘要”(Oracle Summary Reuse):
- 有人帮他把日记提炼成一句话:“上次水龙头漏水,是因为螺丝松,用扳手拧紧即可。”
- 结果:效果最好! 修理工看到这句话,瞬间明白,修得快、修得准,还省了钱。
- 结论:“少即是多”。如果能把过去的经验浓缩成精华,AI 就能突飞猛进;如果给一堆杂乱无章的原始记录,反而帮倒忙。
如果给错了经验(Unfiltered/Incorrect Context):
- 如果修理工记混了,把“修马桶”的经验用在“修电路”上,那不仅没帮上忙,反而会把事情搞砸。
5. 总结:这对我们意味着什么?
这篇论文告诉我们,未来的 AI 编程助手,不能只靠“记性好”(存下所有数据),更要靠**“会总结”和“会检索”**。
- 好的 AI:像一个经验丰富的老工匠,遇到新问题,能迅速从脑海里调出最相关、最精简的过往案例,直接上手解决。
- 坏的 AI:像一个刚入行的学徒,或者一个只会死记硬背的书呆子,每次遇到新问题都要从头翻书,既慢又容易出错。
SWE-ContextBench 就是用来筛选出那些真正懂得“举一反三”、能利用经验提升效率的 AI 助手的“试金石”。它提醒开发者:在构建 AI 时,不仅要关注它能不能解题,更要关注它能不能聪明地利用过去的经验来解题。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。