Meta团队揭秘:AI编程助手如何像老司机带新手一样,越做越聪明?
这项研究来自Meta超级智能实验室联合华盛顿大学、纽约大学、卡内基梅隆大学、普林斯顿大学及Google DeepMind的多位研究人员共同完成。论文以预印本形式于2026年4月16日发布在arXiv平台编号为arXiv:2604.16529v1分类为计算机软件工程领域cs.SE。有兴趣深入了解的读者可以通过该编号在arXiv官网查询完整论文。**当AI编程助手遇到老手带新手的问题**先从一个熟悉的场景说起。假设你是一家公司的技术主管手下有十个程序员同时在解决同一个复杂的系统漏洞。每个人忙活了几个小时之后你会怎么做你大概不会只随机挑一份交给老板而是会把所有人的工作记录翻出来看看谁的思路最清晰、谁踩了哪些坑、谁快要接近答案了然后综合这些信息要么选出最好的那份要么让他们互相借鉴、再来一轮。这个场景正是这篇论文试图解决的核心问题。只不过这里的程序员换成了AI而那个系统漏洞换成了GitHub上真实的代码问题。研究团队想搞清楚当一个AI编程助手能多次尝试解决同一个问题时怎样才能让后来的尝试真正比前面的更聪明而不只是换个方式重蹈覆辙**一、为什么这个问题比想象的难得多**过去几年AI领域有一个非常流行的做法叫作测试时扩展计算——简单理解就是在AI回答问题的时候不急着只给一个答案而是让它多想几次然后从中选最好的。这个方法在数学解题、写短文这类任务上效果很好因为答案比较短很容易比较哪个更好。但AI编程助手干的活可不是这种。当AI帮你修复一个真实的代码错误时它要做的事情远不止写几行代码。它需要先理解整个代码仓库的结构找到可能出问题的文件运行命令测试看到报错信息再调整就像一个真正的程序员坐在电脑前工作一样。这样的一次完整工作流程研究团队称之为一次轨迹rollout。一次轨迹可能包含几十步甚至七八十步的操作记录。你可以把它想象成一个程序员的完整工作日志里面有他查看了哪些文件、执行了哪些命令、看到了什么输出、又做了什么决定。这样的日志内容极其庞杂读起来费力而且充斥着大量重复的终端输出、死胡同探索这类低价值信息。正因如此针对短答案设计的那套多选一方法根本用不上来。你没办法把两个长达几千行的工作日志扔给AI说帮我比较一下哪个更好因为AI自己也会被那堆噪音淹没判断失准。更别说把一个程序员的工作记录喂给另一个程序员、让他从中学习下次该怎么改进——那得读多久这就是研究团队发现的核心障碍**对于AI编程助手来说测试时多次尝试的瓶颈不是尝试次数不够多而是怎么把之前的尝试变成真正有用的信息**。**二、解题思路给每次尝试写一份精华摘要**既然问题出在原始记录太乱、太长、难以比较和复用解决方案就呼之欲出了给每次尝试写一份结构化的精华摘要。研究团队让AI在每次完成一轮工作之后把那份冗长的工作日志浓缩提炼成一份简洁的结构化文档。这份文档会记录这次尝试的核心假设是什么、做了哪些关键决定、取得了哪些进展、又在哪里卡壳了、失败的原因可能是什么。所有乱七八糟的终端输出、重复的文件读取操作统统略去不计。这个做法听起来简单却是整个研究的基石。有了这份摘要两件原本很难的事情就变得可行了第一拿多份摘要互相比较判断哪次尝试的质量更高第二把高质量的摘要作为经验提供给下一轮尝试让AI在开始新一轮工作之前就能站在前人的肩膀上。这两件事正好对应着研究团队设计的两个核心方法一个叫递归锦标赛投票另一个叫并行蒸馏精炼。**三、从混战到决赛递归锦标赛投票的工作方式**以足球联赛做个类比。如果你要从32支球队里选出冠军不会让所有球队同时踢一场乱战而是先分组每组选出一个胜者再让胜者互相对抗一轮一轮淘汰下去最终决出冠军。这个过程叫锦标赛制。研究团队设计的递归锦标赛投票RTV就是这个思路。假设AI对同一个编程问题做了16次独立尝试那就先把16份摘要两两配对让AI作为裁判读这两份摘要判断哪次尝试更有可能是正确解法。每对摘要的比较不是只判断一次而是重复判断8次然后按少数服从多数的原则选出胜者这样可以减少单次判断的偶然误差。第一轮比较结束后16次尝试变成8次胜者然后再两两对比8变44变22变1最终选出整个群体里质量最高的那次尝试。为什么要用两两对比而不是直接把所有摘要一次性扔给AI说选最好的研究团队做了一个很有意思的实验专门比较不同组大小的效果。结果发现两两对比每组2份摘要的效果明显优于4选1、8选1、16选1。道理其实不难理解当你同时比较的候选项越多信息量越大裁判反而越容易因为信息过载而判断失准而两两对比任务简单明确判断质量自然更高。与此同时实验还发现投票次数越多最终结果越稳定——从只投一次票到投16次票效果持续提升但在8次投票之后提升幅度开始放缓因此最终方案选定每组比较投8次票。这个方法单独使用时效果已经相当可观对于SWE-Bench Verified这个测试平台里面都是GitHub上真实的代码问题Claude-4.5-Sonnet的平均解题率从67.4%提升到了73.6%对于另一个叫Terminal-Bench v2.0的测试平台专门测试在命令行环境中解决复杂任务的能力同一个模型的得分从40.6%跳升到了54.6%。仅靠选得更准这一件事提升就如此显著。**四、站在前人肩膀上并行蒸馏精炼的运作逻辑**光选得准还不够。研究团队更野心勃勃的想法是能不能让后来的AI不只是在前人的成果里挑一个而是真正从前人的经验中学到东西下一次做得比任何一次前人都要好这个过程研究团队借用了一个已有方法的框架并加以改造称之为并行蒸馏精炼PDR。具体来说第一轮先让AI做16次独立尝试每次尝试结束后都生成一份精华摘要。接下来用上一节介绍的锦标赛方法从中选出质量最高的4份摘要作为经验材料。然后开始第二轮尝试同样是16次但这次每次尝试在开始之前AI会先读那4份精华摘要了解前人发现了什么、踩了哪些坑、最有希望的方向是哪里然后在全新的、干净的环境中开始工作。有一个细节值得特别注意第二轮每次尝试都是在新环境里开始的不是在第一轮留下的半成品代码上继续。这就好像一个程序员读完了同事的工作笔记然后自己从头开始做而不是接着同事写了一半的代码继续写。为什么要这样做因为第一轮留下的半成品代码可能方向就错了或者已经把某些东西改坏了如果继续在上面修改可能越改越乱。从头开始反而更干净。为了搞清楚读几份前人摘要最合适研究团队专门比较了三种做法只读自己上一次的摘要随机选4份摘要来读以及用锦标赛方法选出最好的4份来读。结果非常清晰读多份摘要远比只读自己的那份要好。以Gemini-3.1-Pro为例只读自己一份时第二轮平均解题率从72.7%只提升到了73.8%提升微乎其微换成随机选4份来读提升到76.9%再用锦标赛筛选出最好的4份来读则达到了79.3%。这个结果揭示了一个很有意思的道理**精华摘要的质量直接决定了下一轮AI能学到多少东西**。研究团队进一步做了一个更细致的分析把所有任务按照提供的4份参考摘要里有几份是来自成功解题的尝试来分组然后看每组里第二轮的平均解题率。结果极为规律参考摘要里没有一份成功案例时第二轮解题率趋近于零有1份时约为33%有2份时约55%有3份时约85%全部4份都是成功案例时第二轮解题率高达99%以上。这说明成功的经验本身就是最好的老师。如果你读的全是失败记录哪怕写得再详细也很难做出突破但只要能看到一些成功的案例再复杂的问题都有希望被复现和超越。**五、把两个方法合而为一完整的工作流程**两个方法各有所长锦标赛投票擅长在一群候选方案里选得准蒸馏精炼擅长让AI做得更好。把它们结合起来就形成了研究团队的完整方案。整个流程分四步走。第一步对同一个编程问题做16次独立尝试并为每次尝试生成精华摘要。第二步用锦标赛投票从16份摘要里选出质量最高的4份作为精选经验库。第三步基于这4份精选摘要开展16次新的尝试——每次尝试都先读这4份摘要然后在新环境里从头工作。第四步对第二轮的16次尝试再做一次锦标赛投票从中选出最终答案。这个流程在开发与探索之间维持了一个微妙的平衡。一方面用锦标赛把4份最好的摘要选出来是在聚焦——把注意力集中在最有希望的方向上另一方面第二轮仍然做16次独立尝试而不是只做1次是在保持多样性——不同的尝试可能从4份摘要里汲取不同的灵感探索出风格各异的解题路径再通过最后一轮锦标赛选出最终答案。**六、实验结果数字背后的真实意义**研究团队在两个测试平台上用五个不同的顶尖AI模型进行了全面测试测试对象包括Claude-4.5-Opus、Gemini-3.1-Pro、Claude-4.5-Sonnet、Gemini-3-Flash和GPT-5-0825测试平台是SWE-Bench Verified500道真实GitHub代码问题和Terminal-Bench v2.088道复杂命令行任务。结果在所有模型上都呈现了一致的提升趋势。以Claude-4.5-Opus为例在SWE-Bench Verified上单次尝试的解题率是70.9%经过完整方法处理后达到77.6%提升了约6.7个百分点在Terminal-Bench v2.0上从47.0%提升到59.1%提升超过12个百分点。Gemini-3.1-Pro在两个平台上分别从72.3%提升到76.6%从52.5%提升到64.8%。不同模型在Terminal-Bench v2.0上的提升幅度普遍大于SWE-Bench Verified这与两个测试平台的任务特性有关Terminal-Bench v2.0的任务难度更大、解题路径差异也更大因此多轮尝试和经验积累带来的收益也更显著。有一个数据特别值得关注研究团队发现第二轮16次尝试平均所需的操作步数只有第一轮的大约一半。以Claude-4.5-Opus为例在SWE-Bench Verified上第一轮平均41步第二轮降到了14步在Terminal-Bench v2.0上从24步降到了12步。这说明AI在读完前人的精华摘要之后对整个代码库的结构、问题所在的位置、最有可能奏效的解法都有了更清晰的认识不需要再做那些摸黑探路式的操作而是能更直接地走向答案。效率几乎翻倍而成功率也同步提升这是一个双赢的结果。**七、那些原本无解的题也被做出来了**有一组特别有意思的发现研究团队称之为新解法发现。这指的是某个AI模型在第一轮16次独立尝试里所有尝试都失败了但在第二轮——也就是读完前人失败摘要之后的第二轮尝试里——成功解决了这个问题。在Terminal-Bench v2.0上这样的情况共出现了13个任务。以Claude-4.5-Opus为例它在第一轮完全解不了gpt2-codegolf这道题要求用不超过5000字节的C语言代码实现GPT-2语言模型的文字生成但在第二轮读完了前四次失败尝试的摘要之后成功写出了一个3467字节、能正确运行的C程序。更极端的是large-scale-text-editing这道题在研究测试的五个模型里第一轮没有任何一个模型能成功完成这个任务但Gemini-3.1-Pro在第二轮读了自己四次失败尝试的摘要之后成功解决了它。这意味着通过让AI从自身失败中提炼经验可以解锁原本超出其能力范围的任务。这背后的机制研究团队也做了定性分析。以sparql-university任务为例第一轮四次尝试都失败了但其中有一次发现了关键规律欧盟国家的条件和学生人数超过10人的条件不需要同时满足同一个系是两个独立条件。第二轮的AI读了这个摘要之后直接把这个关键发现写进了自己的解题策略里最终成功解决了问题。**八、精华摘要究竟好在哪里与原始记录的对比**研究团队不只是提出了这个方法还专门验证了一个核心假设到底是精华摘要更好还是直接用原始工作日志也差不多结论非常明确精华摘要在每一种场景下都优于原始日志。在锦标赛投票阶段用摘要做比较的最终解题率始终高于直接比较原始日志的方案而且这个优势在越到后期的比较轮次中越明显——因为越到最后剩下的候选方案差异越细微需要对细节更敏感的比较这时候原始日志里充斥的噪音就成了巨大的干扰而摘要则能精准呈现差异所在。这个发现支持了研究团队的核心论点**对AI编程助手来说测试时扩展计算的关键问题不是计算量而是信息表示**。同样的计算预算用什么形式来表示和传递经验决定了最终能得到多大的收益。**九、锦标赛裁判本身的准确性**研究团队还做了一件事衡量AI在担任裁判时的判断准确率。具体方法是从所有包含有成功尝试和有失败尝试的对比组里统计AI实际选中了成功那一方的比例。结果显示在Terminal-Bench v2.0上的判断准确率普遍高于SWE-Bench Verified。研究团队分析认为这是因为SWE-Bench的任务要求判断代码改动的细微差异和被隐藏的测试案例而Terminal-Bench的任务在命令行输出里有更直接可见的成功/失败证据裁判更容易判断。总体来说各模型的裁判准确率大约在60%到85%之间。这个数字说明AI裁判虽然有效但并非完美——仍然存在改进空间。研究团队也指出未来可以专门针对做好组间比较决策这件事对AI进行专项训练或者引入专门的裁判模型都可能进一步提升效果。值得一提的是Gemini-3.1-Pro在担任裁判时的准确率相对偏低这导致它在最后一轮锦标赛投票中的提升幅度比其他模型小第二轮平均解题率76.2%最终选出的答案解题率76.6%提升仅0.4个百分点。**十、这项研究打开了一扇新的大门**归根结底这篇论文想说的事情其实可以用一句话概括对于AI编程助手来说让它尝试更多次是有价值的但价值的大小完全取决于你怎么利用那些尝试留下的信息。原始的工作日志太乱、太长、太难复用但经过提炼的精华摘要则可以成为非常有效的经验传承载体——既能用来更准确地选出好方案又能用来帮助下一轮尝试站在更高的起点上。研究团队也直言这套方法目前还有明显的局限性。精华摘要里保存的是对之前尝试的文字描述而不是那些尝试中真正产生的代码产物、测试脚本或调试工具。研究团队提出了一个有趣的未来方向能不能让AI不只是在新环境里从头开始工作而是真正继承前一轮尝试中产生的那些有价值的中间产物比如写好了一半的补丁、创建的测试用例、编写的调试工具如果能做到这一点从前人的经验中学习就不只是读一读笔记而是真正接过前人手中的工具、站在前人挖好的坑边继续往下挖了。---QAQ1SWE-Bench Verified和Terminal-Bench v2.0是什么有什么区别A这是评测AI编程助手能力的两个测试平台。SWE-Bench Verified收录了GitHub上真实的代码缺陷修复任务共500道考察AI能否像真实程序员一样定位并修复代码库中的问题。Terminal-Bench v2.0则收录了88道复杂的命令行任务更侧重于考察AI在真实终端环境中处理系统级任务的能力任务难度普遍更高、解题路径变化也更大因此在这个平台上经过多轮改进带来的提升幅度也更显著。Q2递归锦标赛投票为什么要用两两对比直接一次全部比较不行吗A研究团队专门测试过每组比较几份摘要对效果的影响。结论是候选项越少比较质量越高。当所有摘要一次性扔进来比较时AI裁判面临的信息量过大容易判断失准而每次只比较两份任务简单明确裁判准确率更高。多轮两两淘汰的总体效果明显优于一次性大比较。此外每次比较还重复投票8次取多数进一步降低了单次判断的偶然误差让最终选出的结果更可靠。Q3并行蒸馏精炼为什么不让AI直接在第一轮的代码基础上继续改而要从头开始A因为第一轮留下的半成品代码本身可能就有问题——解题方向可能错了或者已经把某些部分改坏了。在错误的代码基础上继续修改很可能越改越乱。从头开始让AI在读完前人精华摘要之后把对问题的理解和最有希望的解法方向带入全新的工作环境反而能更干净、更高效地找到正确答案。实验结果也支持这个判断第二轮从头开始的尝试平均只需要第一轮一半左右的操作步数。