微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 微软研究院揭示AI程序员的"运气通关"陷阱:光看结果,你可能被骗了

微软研究院揭示AI程序员的"运气通关"陷阱:光看结果,你可能被骗了

2026-05-20 09:16
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-05-20 09:16 科技行者

这项由美国伊利诺伊大学厄巴纳-香槟分校与微软雷德蒙德研究院联合开展的研究,于2026年5月发表在arXiv预印本平台,论文编号为arXiv:2605.12925v1,有兴趣深入了解的读者可通过该编号查询完整论文。

考一道思考题:两个学生同时参加期末考试,都拿到了满分一百分。第一个学生认真审题、逐步推导、检查答案,整个过程干净利落。第二个学生完全凭蒙、反复涂改、最后一刻才侥幸写对。你会认为这两个学生的表现"一样好"吗?

大多数人的直觉答案是否定的。然而在当前最先进的AI软件工程评测体系里,这两个学生确实被视作完全一样。这正是微软与伊利诺伊大学研究团队所发现的问题核心,他们为此设计了一套名为AGENTLENS的评估框架,并将研究成果整理成这篇论文。

一、当AI程序员学会了"运气通关"

软件工程领域近年来涌现出大量能自主解决真实编程问题的AI智能体,它们可以读取代码库、修改文件、运行测试套件,甚至独立解决来自GitHub的真实故障单。评估这些系统的主要基准测试叫做SWE-bench,其核心逻辑非常简单:AI提交一个代码补丁,如果这个补丁能通过所有测试用例,就算"解决",打一个钩;如果不能,就算"失败",打一个叉。这个二元信号非常直观,推动了整个领域快速进步。

但研究团队注意到一个被长期忽视的问题:这个"通过与否"的判定完全不区分AI是怎么通过的。用一个更贴近生活的比喻来理解——假设你要评估一个厨师的厨艺,你只尝最后一口菜,觉得味道不错就给满分。但你完全不知道这道菜是厨师精心设计配方后一气呵成做出来的,还是他把冰箱里所有食材随机乱炒、失败二十次、把厨房搞得一团糟之后,意外做出了一道能入口的东西。最终成品味道一样,但这两种"厨艺"显然不在一个水平线上。

研究团队对这一直觉做了系统性的验证。他们收集了8种不同AI模型在SWE-bench Verified测试集上运行的共2614条完整执行轨迹,覆盖60道编程任务。所谓"执行轨迹",就是AI解决问题时每一步的行动记录:它查看了哪些文件、搜索了什么关键词、修改了哪段代码、运行了哪些测试——完整的"做题过程"。

在这些轨迹中,研究团队聚焦在有足够数量通过记录的47道任务上,形成了1815条轨迹的评估子集,其中1136条是最终通过测试的"成功"轨迹。结果发现,这1136条成功轨迹里,有10.7%——也就是122条——实际上是通过研究团队称之为"幸运通关"(Lucky Pass)的方式侥幸通过的:AI的过程一塌糊涂,要么反复尝试相同操作、要么完全跳过验证环节、要么在找到解法前已经把探索顺序搞得乱七八糟,最终的正确结果更像是一次意外收获,而非能力的体现。

二、给AI的解题过程打分:AGENTLENS框架是如何工作的

为了系统衡量AI解题过程的质量,研究团队设计了AGENTLENS框架。整个框架的工作方式,可以用"参照优秀学生的解题步骤来批改试卷"这个比喻来理解。

框架的第一个核心组件是构建"参考答案树"。传统的评估方式是找一份标准答案来对照,但研究团队意识到这不够合理——就像数学题一样,同一道题可以有多条正确的解题路径。他们的解决方案是把同一道任务的多条成功轨迹合并成一棵"前缀树接受器"(Prefix Tree Acceptor,简称PTA)。

PTA的工作原理可以这样理解:把每条成功解题路径画成一条从起点到终点的路线,然后把所有路线叠加到一张地图上。相同的路段自然合并,不同的路段形成分叉。最终这张地图就代表了"所有已知的正确解法空间"——走哪条路都算对,但走到地图之外的未知区域就需要被审视。这样一来,AGENTLENS就既能接受"偏门但正确"的解法,又能识别出真正的绕路和浪费行为。

框架的第二个核心组件是"意图阶段标注"。研究团队为AI的每一步操作贴上一个标签,标注它此刻处于哪个认知阶段。具体分四类:探索阶段(Exploration),即AI在读文件、搜索代码、了解情况;实现阶段(Implementation),即AI在动手修改代码;验证阶段(Verification),即AI在运行测试、检查结果;以及编排阶段(Orchestration),即AI在做规划和整理思路。

这个标注看起来简单,实际上有个关键难题:同一个操作在不同时机意义完全不同。比如"读取测试文件"这个动作,如果发生在AI还没写任何代码之前,那是在探索阶段摸底;如果发生在AI刚刚修改完代码之后,那是在验证自己的修改是否影响了测试。研究团队设计了一套上下文感知的规则体系,跟踪AI到目前为止做过什么,再来判断当前这一步的真实意图——而不是简单地把"运行pytest"永远标为验证、把"grep搜索"永远标为探索。这套标注规则经过了七位标注者的独立验证,整体一致性达到了Fleiss' κ = 0.933,这是一个相当高的标准,说明规则设计合理,不同人看同一个动作会得出基本一致的判断。

有了意图标注之后,AGENTLENS对每条被评估的轨迹计算四个互补的分数。

第一个分数叫结构对齐度,衡量AI的行动顺序是否与参考答案树中的路径大体吻合——不要求一模一样,但关键步骤的先后逻辑应该合理。第二个分数叫覆盖度,不管顺序,只看AI有没有触碰到参考答案树中的关键状态,也就是那些成功解法都经过的重要节点。这两个分数合起来回答的是"AI有没有走在正确的地方"。

第三个分数叫轨迹连贯性,总结AI的意图序列是否体现出有意义的进展——从探索到实现到验证是正向推进,这很好;但如果实现了一半突然跑回去探索,然后又实现,再跑回去探索,反复循环,这就是"回退"惩罚。第四个分数叫时序分布相似度,把轨迹分成早期、中期、晚期三段,检查AI在每个阶段做的事情是否符合正常的解题节奏——好的解法通常是"前期多探索、中期多实现、后期多验证",如果AI前期就在狂跑测试、后期还在乱翻文件,这个分数就会很低。这两个分数合起来回答的是"AI有没有按合理的节奏走"。

四个分数按照0.20、0.15、0.30、0.35的权重加权组合,得到一个0到100分的综合质量分。反映"过程质量"的行为性信号(连贯性和时序)共占65%的权重,因为研究团队发现纯靠结构匹配并不能把好的过程和坏的过程彻底分开。

最终,每条通过的轨迹会被分入三个等级:90分以上的"理想型"(Ideal),47到70分的"扎实型"(Solid),以及47分以下的"幸运型"(Lucky)。结果如何?在1136条通过轨迹中,理想型只有229条,占比20.2%;扎实但不完美的有785条,占69.1%;而被打上"幸运通关"标签的有122条,占10.7%。

三、122条"幸运通关"背后的五种失败模式

研究团队对这122条幸运通关轨迹做了深入解剖,归纳出五种具体的失败模式。理解这五种模式,就相当于看懂了AI在"蒙对答案"时究竟在干什么。

第一种模式被称为"最小化且未经验证",共19条,占15.6%。这类AI解法极短——通常不超过8步就提交了代码,过程中完全没有运行任何测试。好比学生做完数学题之后,连草稿都没验算一遍就直接交卷了。这类AI之所以能通过,纯粹是因为它的直觉判断刚好正确,但这种"过度自信不验证"的习惯极不可靠。

第二种模式叫"蛮力收敛",共42条,占34.4%,是数量最多的一类。这类AI会反复尝试各种相似操作,像是不断重试失败的编辑、陷入循环的搜索-修改-测试-失败-再修改的死循环,平均每条轨迹长达35.6步,其中平均浪费19.6步——将近一半的行动都是无效的。最终能通过,是因为它尝试了足够多次,某一次碰对了。这个模式消耗的计算资源极大,平均每条轨迹花费约85.6万个token,是最短模式的25倍。

第三种模式叫"不完整实现",共41条,占33.6%。这类AI实际上修复了问题的一个表面症状,但没有解决深层原因。它之所以能通过,是因为现有的测试用例覆盖不够全面,没能发现这个修复的漏洞。这类轨迹的参考路径覆盖率平均只有16.7%,意味着AI的解法和标准解法的重叠部分不足五分之一。这种模式的存在,其实在警示我们:测试套件本身的质量直接影响AI评测的可靠性。

第四种模式叫"过度探索",仅5条,占4.1%。这类AI探索时间极长、毫无焦点,典型案例中AI在已经找到并验证了正确修复之后,仍然继续探索了57个额外步骤,把同样的目录反复遍历。平均每条轨迹耗费137.7万个token,是最贵的一类。值得注意的是,这5条全部来自同一个模型GPT-4.1——这说明该模型存在一个特定的缺陷:不知道何时该停下来。

第五种模式叫"发散但有效",共15条,占12.3%。这类AI采用了一条与参考路径完全不同的解决思路,但这条思路本身是合理且完整的——它创建了复现脚本、验证了问题、实现了修复、确认了结果。之所以得分低,是因为它的做法跟参考答案树里的所有路径都不重叠,而不是因为它的做法本身有问题。这是五类中最"无辜"的一类,研究团队也明确指出这反映了参考系统在多参考路径覆盖方面的局限性。

将这五类模式与八个模型交叉分析,研究团队发现了统计意义显著的关联(χ?(28) = 102.47,p < 0.0001):每个模型倾向于产生不同类型的幸运通关。Opus 4.6贡献了全部C1轨迹的89.5%——它能快速找到修复方法,但系统性地跳过验证,像是一个聪明但骄傲的学生;GPT-4.1几乎垄断了所有C2和C4案例,靠着无休止的尝试来补偿较低的初始准确率;GPT-5.2-Codex和GPT-5.3-Codex则集中在C3,倾向于做出表面上能通过测试的不完整修复。

四、换个维度排名,八大模型座次大洗牌

研究团队对这八个模型同时进行了"通过率排名"和"质量分排名",结果两个排名对所有八个模型都产生了分歧,部分模型甚至前后移动了五个名次。

按通过率,Claude Opus 4.5以87.9%位居第一,Claude Sonnet 4.5以86.8%位居第二;GPT-4o以34.9%垫底第八。但换成质量分排名,Sonnet 4.5以67.4分升至第一,Opus 4.5以66.2分降为第二,GPT-4o以63.4分跃升至第三——从倒数第一跳到了前三。

这个现象背后的逻辑是:GPT-4o解决的任务比较少,但它解决任务时的过程质量相当高,幸运通关率只有4.1%。它的"选择性"反而体现出了某种严谨——遇到真正能高质量解决的任务才出手,成功时的过程堪称教科书式。相比之下,Opus 4.6虽然通过率高达77.3%,在通过率排行榜上排第三,但其幸运通关率高达18.7%,质量分排名跌至第六。也就是说,Opus 4.6的高通过率背后,有相当比例是靠"侥幸"实现的。

整体来看,八个模型中幸运通关率的分布范围从Opus 4.5的0.5%到GPT-4.1的23.2%,跨越了整整46倍。这个差异完全无法从通过率数字中看出来,但在实际部署中意义重大——一个靠反复试错通关的AI,在处理真实代码库时代价极高,因为每一次无效尝试都在消耗计算资源、延长等待时间,甚至在某些情况下可能触发不可逆的操作。

五、质量分真的有意义吗?验证实验说话

有读者可能会问:这套打分体系本身可靠吗?它计算出的质量分数是否真的能区分好轨迹和坏轨迹?研究团队专门做了验证实验来回答这个问题。

在47个任务的完整评估集上,综合质量分数在区分"通过轨迹"和"失败轨迹"这个任务上,AUROC达到了0.766,分类准确率72.0%,F1分数0.723,Kolmogorov-Smirnov检验的p值为0.0017。AUROC是衡量分类器性能的标准指标,0.766意味着随机取一条通过轨迹和一条失败轨迹,质量分能有76.6%的概率正确判断哪个更好。p值0.0017则说明通过轨迹和失败轨迹的分数分布差异在统计上高度显著,不是随机波动。

研究团队特别强调,这个验证实验是一个理智检验,而非研究的核心目标。质量分数的真正价值不在于用它来判断"通过还是失败"——毕竟测试系统本身已经能做到这件事了——而在于识别那些处于中间地带的轨迹:通过了测试但过程很差的幸运通关案例,以及失败了但过程非常接近正确解法的"可挽救失败"案例。在679条失败轨迹中,有54.9%被归类为"部分失败"——它们没能产生正确补丁,但过程质量分数超过了失败层的门槛,说明AI走在了正确的路上,只是最后一步出了问题,理论上可以通过针对性的改进来修复。

在与三种基线方法的比较中,AGENTLENS的PTA方式在AUROC上超过了TF-IDF文本匹配(0.672)和稠密嵌入向量对比(0.701)两种简单方法。"单轨迹最优匹配"方法的AUROC(0.805)略高于AGENTLENS(0.766),但这个方法需要把测试轨迹与所有训练轨迹逐一对比,只返回一个相似度数字,完全无法告诉你"在哪一步偏离了正确路径"、"哪些操作是浪费",也不能给出可行的改进建议。PTA方法的价值恰恰在于其解释性:它能精确定位偏差发生在轨迹的第几步、哪个文件的操作节点出现了分叉、废弃的探索对应哪些具体工具调用。

研究团队还进行了系统性的消融实验,测试四个分数中哪个最重要。结论是缺一不可:删除时序分布相似度分数导致AUROC下降0.037,删除轨迹连贯性下降0.031,删除覆盖度下降0.024,删除结构对齐下降0.016。所有删除操作都让整体表现变差,印证了四个维度各自捕捉了不同侧面的行为信号。

六、这套方法对你我意味着什么

表面上看,这项研究是在说"给AI评分的方法有问题",但它的实际影响远不止于此。

在AI模型训练层面,当前很多团队在构建AI智能体的训练数据时,会从历史执行记录中筛选"成功案例"来作为示范学习。这个筛选逻辑的前提假设是"成功的就是好的示范"——但AGENTLENS的发现直接击穿了这个假设。如果10.7%的成功案例实际上是靠蛮力或侥幸通过的,把这些轨迹一起喂给AI学习,等于在告诉它"反复重试也是一种可接受的解题策略",这会系统性地污染训练数据的质量。研究团队明确指出,SWE-Gym、R2E-Gym、SWE-smith等主流AI智能体训练数据集都存在这个潜在问题。

在模型选型层面,如果你是一个企业或开发者,正在决定为自己的代码系统部署哪个AI助手,仅看通过率会给出一个误导性的排名。一个通过率高但幸运通关率也高的模型,在实际工作中可能会消耗大量资源、产生不可预测的行为——特别是当代码库很大、测试运行很昂贵,或者某些操作一旦执行就无法撤销时,这种代价会被大幅放大。以C4类轨迹为例,GPT-4.1用270万token解决了一个一行代码的修复任务,而同样能够完成这个修复的最简解法只需3万token,两者相差90倍。如果你在生产环境中运行成千上万个这样的任务,这个成本差异将直接体现在账单上。

在人机协作层面,当AI助手需要帮助程序员修改真实的、有版本历史的代码库时,一个通过反复试错才成功的AI,留下的代码历史会非常混乱,很难被后来的维护者理解。相比之下,一个有清晰探索-实现-验证逻辑的AI,即使过程被记录下来,也像是一份清晰的调试日志,对团队协作大有裨益。

归根结底,这项研究揭示了一个关于评测设计的普遍性洞察:当我们只盯着结果来评判一个系统时,就为各种"歪门邪道"的成功策略留下了空间,而这些策略在实际部署中往往代价高昂、不可持续。把"怎么做到的"纳入评估体系,才能真正推动AI向着更可靠、更高效的方向进化。

AGENTLENS框架已经作为开源工具完整发布,包括1815条带标注的轨迹数据集、每个任务对应的参考答案树、配套的SDK工具包和可视化分析界面。整个评分流程完全在本地CPU上运行,不依赖任何云端API调用,这意味着任何研究者或工程师都可以在自己的机器上,对自己关心的AI系统进行同样的过程质量分析,而无需支付额外的接口费用。

---

Q&A

Q1:AGENTLENS是什么?

A:AGENTLENS是微软与伊利诺伊大学联合开发的AI软件工程智能体评估框架,它不依赖"代码补丁最终是否通过测试"这一单一结果信号,而是分析AI解题过程的质量——包括探索、实现、验证步骤是否合理有序,以及是否存在无效的重复操作。

Q2:幸运通关的AI在实际使用中有什么危害?

A:靠蛮力重试或不完整修复通过测试的AI,在实际部署中会消耗大量计算资源,极端案例中解决一行代码的修复耗费了270万个token。此外,如果用这类轨迹训练后续AI模型,等于教会了AI"反复试错是可接受策略",会系统性污染训练数据。

Q3:八个AI模型按过程质量排名和按通过率排名结果差异有多大?

A:差异相当显著。GPT-4o按通过率排最后第八,但按过程质量分排到第三;Claude Opus 4.6按通过率排第三,但质量排名跌到第六。所有八个模型的两种排名都存在不一致,部分模型前后移动了五个名次,幸运通关率最低的模型是Opus 4.5(0.5%),最高的是GPT-4.1(23.2%),相差46倍。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-