AgentLens: Revealing The Lucky Pass Problem in SWE-Agent Evaluation¶
会议: NeurIPS 2026
arXiv: 2605.12925
OpenReview: https://openreview.net/forum?id=uHjkDW1QfY
领域: LLM Agent
关键词: 软件工程智能体, 过程级评测, 侥幸通过, 前缀树接收器, 意图阶段标注
一句话总结¶
针对软件工程智能体仅凭最终补丁是否通过测试的“结果二元论”弊端,本文提出首个过程级评测框架 AgentLens 与基准数据集 AgentLens-Bench,利用前缀树接收器融合多正确解空间并结合上下文感知意图建模,揭示出高达 10.7% 的通过用例实为充斥盲目重试与缺失验证的“侥幸通过”。
研究背景与动机¶
软件工程(SWE)智能体近年来从自动化原型迅速演进为能够自主端到端解决真实 GitHub Issue 的复杂系统,如 SWE-agent、OpenHands、AutoCodeRover 等均能自主阅读代码库、编辑文件并执行测试。然而,现行主导评估基准(如 SWE-bench)几乎完全依赖二元结果信号判定:最终生成的补丁是否通过测试套件。这种“唯结果论”的评测体系隐式地将目标明确、推理严谨的高质量解决过程与充斥着混乱试错、循环退化的脆弱过程划上等号。当两个智能体面对同一缺陷时,一个智能体经过针对性探查、精确定位根因并验证修复,另一个智能体则反复打补丁、在错误中盲目循环并偶然撞对测试,两者在基准榜单上却获得完全相同的“Resolved”成功标签。
这种评测盲区在工程实践与学术研究中带来了严重隐患。一方面,当前开源的智能体轨迹数据集(如 SWE-Gym、R2E-Gym 等)普遍采用通过率过滤策略,将所有成功的轨迹等同视作高质量监督微调或强化学习演示,导致包含严重探索浪费和退化循环的劣质过程被当作黄金示范注入模型;另一方面,真实部署环境对智能体执行过程的可靠性、确定性及资源开销极为敏感,在代码库巨大或操作代价高昂的场景下,依赖暴力试错偶然通过的智能体潜藏巨大风险。更重要的是,随着各大前沿模型在二元通过率上趋向饱和收敛,评估维度的缺失直接掩盖了模型之间深层次的代码推理与行为规范差异。
针对这一根本矛盾,本文认为评估软件工程智能体不仅要看其“是否做对了”,更要解构其“怎么做对的”。核心 idea:通过上下文感知意图状态建模解析智能体轨迹,并将同一任务下的多条正确轨迹融合成前缀树接收器(PTA)策略参考空间,从结构对齐、状态覆盖、工作流连贯性与时序剖面四维量化过程质量,精准识别并解构“侥幸通过(Lucky Pass)”现象。
方法详解¶
整体框架¶
AgentLens 的核心评估流水线将非结构化的工具交互日志转换为标准化认知阶段序列,依托已知正确策略空间对轨迹进行过程级多维量化评分与低效行为归因。整个处理流程包含四个关键阶段:首先,工具调用解析器提取包含工具、目标文件、受影响行范围、哈希值及轨迹位置的状态,并通过上下文感知的启发式决策树将其映射为探索(E)、实现(I)、验证(V)与编排(O)四种认知阶段;其次,对于同一任务的 \(k\ge 2\) 条历史成功轨迹,利用状态等价性引擎判定语义对齐,融合构建出该任务的有向无环图前缀树接收器(PTA);随后,候选轨迹与任务 PTA 进行多维打分,计算结构对齐度、集合覆盖率、工作流连贯性以及分段时序剖面相似度;最后,输出综合质量评分(0–100),划分层级(Ideal、Solid、Lucky 或 Partial-fail、Off-track),并对五种行为浪费模式实施步级精准定位与归因。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["原始执行日志<br/>工具调用与环境响应序列"] --> B["上下文感知意图阶段标注<br/>解析为 E / I / V / O 状态序列"]
B --> C["前缀树接收器参考构建<br/>融合多条成功轨迹生成 DAG"]
C --> D["四维过程质量打分机制<br/>结构对齐 + 覆盖 + 连贯 + 时序"]
D --> E["过程层级划分与浪费归因<br/>输出 Ideal/Solid/Lucky 与诊断"]
关键设计¶
1. 上下文感知意图阶段标注:消除终端命令语义歧义
在将工具交互映射为认知阶段时,仅凭工具名称无法准确判定其真实意图。例如执行 cat test_api.py 或 read_file,若发生在写入补丁前属于探索定位(E),但在代码修改后重新读取则往往属于确认修改的验证行为(V);而终端执行 grep 即使发生在修改后,其本质仍是从代码库检索上下文的探索行为,不可与 pytest 等验证测试混为一谈。若简单将终端执行命令统一归类,会导致 70%–80% 的状态塌缩为单一类别,彻底破坏时序特征的辨别力。
为此,AgentLens 设计了包含七条优先级的确定性规则级联引擎。规则 1 至 4 根据工具类型分配固定阶段(检索工具标记为 E,验证测试工具标记为 V,源文件编辑标记为 I,思考与记账标记为 O);规则 5 至 7 引入上下文动态追踪,关键设计在于将 grep、cat、ls、git log 等文件检查命令恒定锚定在探索阶段(E),因为它们仅检索静态信息而不检验修改正确性,而对普通代码读取工具则结合是否已发生编辑、目标文件是否为测试文件及是否此前被修改过进行上下文重写。这一纯规则分类器在跨人类软件工程师与 LLM 的多轮标注一致性实验中取得了高达 \(\kappa=0.933\) 的极高信度。
2. 前缀树接收器参考构建:容忍多元正确解的参考空间建模
传统序列相似度通常基于单一参考样本对比,但在复杂的软件工程任务中,不同智能体完全可以通过不同且均合理的步骤序列正确解决同一缺陷。强行绑定单条参考线会错误惩罚合法的变体策略。AgentLens 引入前缀树接收器(Prefix Tree Acceptor, PTA)图结构,将同一任务下 \(k\) 条不同的成功轨迹合并为一个有向无环图(DAG),共享的前缀步骤融合成公共节点,而策略分支则形成独立分叉,使得根节点到任意终止节点的路径均代表一种已知合法的解决路径。
在节点融合过程中,智能体间表面文本差异(如使用 grep 与 rg、读取行号微小偏移等)通过分层等价性引擎平滑吸收:优先匹配精确内容 MD5 哈希(置信度 1.0);其次利用 Tree-sitter 进行 AST 作用域匹配(函数、类、模块级别,置信度 0.90);第三层检查目标文件行范围重叠度(\(\ge 30\%\) 重叠,置信度 0.80–0.95);最后对同功能终端命令实施 Jaccard 词元相似度匹配(阈值 0.5,置信度 0.70–0.85)。通过这种机制,PTA 构建了一个严谨但具备策略多样性包容度的标准参考集。
3. 四维过程质量打分机制:结构对齐与认知行为的多维融合
为了全面捕获轨迹的质量特征,AgentLens 提出了涵盖结构与行为的四维打分体系。设候选轨迹为 \(\tau_c\),任务参考 PTA 为 \(\mathcal{G}\): 1. 结构对齐度(\(\Phi_{\mathrm{struct}}\)):采用贪婪前向扫描计算保序召回率,结合最大二分图匹配计算无序精确率,取二者调和平均数得到结构 F1,度量智能体是否以合理的顺序命中了参考路径。 2. 集合覆盖率(\(\Phi_{\mathrm{cov}}\)):不计顺序,通过二分匹配计算候选轨迹覆盖的 PTA 状态占所有参考路径状态总集的比例。 3. 工作流连贯性(\(\Phi_{\mathrm{coh}}\)):将轨迹压缩为转移指纹,奖励正向跃迁(Pivots,如 \(E\to I\))和阶段确认(Confirms,转移至 \(O\)),严厉惩罚回溯倒退(Backtracks,如 \(V\to E\))与盲目重试(Blind Retries,状态 \(r\) 次重复),其定义为: $\(\Phi_{\mathrm{coh}}(\tau) = \frac{|\mathrm{pivots}| + |\mathrm{confirms}|}{|\mathrm{pivots}| + |\mathrm{confirms}| + |\mathrm{backtracks}| + \epsilon} \times \left(1 - \frac{r}{|T|}\right)\)$ 其中 \(|T|\) 为总转移步数,\(r\) 为盲目重试次数。 4. 时序剖面相似度(\(\Phi_{\mathrm{temp}}\)):将整条轨迹等分为前、中、后三个时间窗口,在每个窗口统计经拉普拉斯平滑(\(\alpha=0.01\))的认知阶段分布,计算与 PTA 参考分布的平均 Jensen-Shannon 散度(JSD): $\(\Phi_{\mathrm{temp}}(\tau_c, \mathcal{G}) = 1 - \frac{1}{3}\sum_{k=1}^3 \mathrm{JSD}\left(P_{\tau_c}^{(k)} \,\|\, P_{\mathcal{G}}^{(k)}\right)\)$
在独立校准集上通过网格搜索确定融合权重,综合质量得分 \(f(\tau_c, \mathcal{G})\) 定义为: $\(f(\tau_c, \mathcal{G}) = 0.20 \cdot \Phi_{\mathrm{struct}} + 0.15 \cdot \Phi_{\mathrm{cov}} + 0.30 \cdot (100 \cdot \Phi_{\mathrm{coh}}) + 0.35 \cdot (100 \cdot \Phi_{\mathrm{temp}})\)$ 行为维度(连贯性与时序剖面)占据 65% 的权重,有力防止了通过混乱试错获得高重合度但执行极差的轨迹被误判为优质轨迹。
4. 过程层级划分与浪费归因:五大低效模式的步级诊断
AgentLens 将成功轨迹映射为三个固定质量层级:得分 \(\ge 70\) 为理想型(Ideal),\(47 \le \text{得分} < 70\) 为稳健型(Solid),得分 \(< 47\) 为侥幸通过(Lucky);同时将失败轨迹划分为接近解空间的局部失败(Partial-fail,\(\ge 47\))和早期走偏的彻底偏离(Off-track,\(< 47\))。在此基础上,系统自动检测五种结构化行为浪费:回归循环(修改后引入新错误并反复打补丁)、盲目重试(重复相同或极微小修改尝试)、冗余步骤、无关探索(探查与参考空间无关的文件)以及循环模式。每个浪费片段均完成步级定位、关联工具责任归属并估计浪费的 Token 成本。
实验关键数据¶
主实验¶
主实验在 SWE-bench Verified 衍生出的 47 个具备 PTA 参考资格的任务上评估 8 种前沿模型后端的 1,815 条轨迹(包含 1,136 条通过用例与 679 条失败用例)。表 1 展示了基于二元通过率排名(PR Rank)与基于过程质量得分排名(QS Rank)的显著分歧,印证了二元通过率无法表征真实行为质量。
| 模型 | 通过率 (Pass%) | 通过率排名 (PR Rank) | 质量得分 (QS) | 质量排名 (QS Rank) | 侥幸率 (Lucky%) |
|---|---|---|---|---|---|
| Claude Sonnet 4.5 | 86.8% | 2 | 67.4 | 1 | 1.0% |
| Claude Opus 4.5 | 87.9% | 1 | 66.2 | 2 | 0.5% |
| GPT-4o | 34.9% | 8 | 63.4 | 3 | 4.1% |
| Gemini 2.5 Pro | 42.9% | 7 | 59.2 | 4 | 7.6% |
| GPT-5.3-Codex | 45.9% | 6 | 58.3 | 5 | 15.3% |
| Claude Opus 4.6 | 77.3% | 3 | 56.7 | 6 | 18.7% |
| GPT-5.2-Codex | 64.6% | 4 | 56.1 | 7 | 19.4% |
| GPT-4.1 | 59.9% | 5 | 54.7 | 8 | 23.2% |
此外,在对通过轨迹中 122 条 Lucky Passes 进行机制解构时,发现其分布呈现高度规律性并归纳为五大分类:
| 侥幸类别 (Lucky Category) | 样本量 (\(n\)) | 占比 (%) | 核心判别信号 | 主要归因机制 |
|---|---|---|---|---|
| C1: 极简且未验证 (Minimal & Unverified) | 19 | 15.6% | 步数极短 (\(\le 8\)) 且完全缺失 V 阶段 | 智能体盲目过度自信 |
| C2: 暴力试错收敛 (Brute-Force Convergence) | 42 | 34.4% | 高浪费步数,极低连贯性 | 缺乏任务规划,反复修改 |
| C3: 不完整实现 (Incomplete Implementation) | 41 | 33.6% | 针对局部症状修补,低参考覆盖 | 测试用例覆盖缺陷漏洞 |
| C4: 过度冗余探索 (Excessive Exploration) | 5 | 4.1% | 轨迹漫长且探索发散 | 缺乏终止判断机制 |
| C5: 偏离但有效 (Divergent-but-Valid) | 15 | 12.3% | 采用有效替代解法,结构对齐偏低 | 任务存在多元有效解决路径 |
消融实验¶
为了验证四维信号协同打分的必要性,在 278 条独立校准集上对各打分组件实施移除消融,并测试各单项信号区分成功与失败轨迹的能力(AUROC 与 Kolmogorov–Smirnov 检验 \(p\) 值):
| 配置 / 评估信号 | AUROC | 相对衰减 | 权重 | KS 检验 \(p\) 值 | 说明 |
|---|---|---|---|---|---|
| 完整融合评分 (Combined) | 0.766 | — | 1.00 | 0.0017 | 唯一达到显著区分能力 (\(p < 0.05\)) 的体系 |
| 移除时序剖面 (\(\Phi_{\mathrm{temp}}\)) | 0.729 | -0.037 | 0.35 | 0.3650 | 剥离时序后区分度下降最明显 |
| 移除工作流连贯性 (\(\Phi_{\mathrm{coh}}\)) | 0.735 | -0.031 | 0.30 | 0.6030 | 无法有效惩罚回溯与重试 |
| 移除集合覆盖率 (\(\Phi_{\mathrm{cov}}\)) | 0.742 | -0.024 | 0.15 | 0.6030 | 缺失全局状态探索广度判定 |
| 移除结构对齐度 (\(\Phi_{\mathrm{struct}}\)) | 0.750 | -0.016 | 0.20 | 0.1960 | 缺乏步级前向保序匹配能力 |
关键发现¶
- 侥幸通过的普遍性与模型异质性:在所有成功解决的轨迹中,高达 10.7% 实质上依赖劣质脆弱过程;且模型之间差异巨大(0.5% 至 23.2%)。卡方检验(\(\chi^2(28)=102.47, p<0.0001\))表明不同模型具有极鲜明的错误画像:Opus 4.6 占 C1 类的 89.5%(善于快速命中代码却系统性不做测试验证),GPT-4.1 主导 C2 试错类与全部 C4 漫游类,而 Codex 系列则大量陷入 C3 不完整修复。
- 榜单顺序的剧烈重洗:按过程质量评分重排后,全部 8 款模型的次序均发生改变。例如 GPT-4o 虽受限于较低的通过率(34.9%,排第 8),但只要其成功解决,其解题过程往往非常干净规范且验证完备,过程质量跃升至第 3;相反,Opus 4.6 凭借 77.3% 的通过率位列第 3,但因大量缺少验证步骤,过程质量滑落至第 6。
- 盲目重试的严重恶化特征:在 Ideal 轨迹中,偶发的重试平均仅浪费 2.7 步即可恢复;但在 Lucky 轨迹中,一旦陷入盲目重试,平均浪费步数暴增至 11.4 步(激增 4.2 倍),呈现典型的死循环暴力穷举特征。
亮点与洞察¶
- 透视黑盒评测的“X 光机”:首次系统化界定并量化了智能体评估中的“Lucky Pass”问题,颠覆了将所有通过轨迹一视同仁作为微调训练集的传统做法,为构建高质量 Agent 数据集提供了确定性的过程过滤器。
- PTA 拓扑融合解决多元解悖论:避免了将单条专家轨迹作为“唯一金标准”的教条对比,利用前缀树将同任务的多样化正确解融为一体,兼顾了规则严谨性与策略容错度。
- 上下文感知阶段切分的工程洞察:敏锐捕捉到终端命令行在代码修改前后的意图反转,将动态文件状态注入启发式规则,在无需消耗 LLM API 调用成本的前提下实现了极高的标注稳定性。
局限与展望¶
- 基准覆盖与轨迹格式绑定:实验依赖 OpenHands 平台生成的日志,尽管已提供 ATIF 适配路线,但面对非标准工具空间的其他智能体架构仍需定制适配层。
- 前缀树对高难度长尾任务的依赖:PTA 依赖至少 2 条独立的成功轨迹才能构建。在 SWE-bench 超高难度无任何模型可解或仅单模型命中的边缘任务上,AgentLens 暂时无法自动化生成参考图。
- 未来方向:作者团队计划将 AgentLens 的轻量判别打分算法扩展为在线过程奖励模型(PRM),在智能体推理解码或强化学习训练阶段提供实时的步级反馈与早停剪枝。
相关工作与启发¶
- vs SWE-bench / SWE-bench Verified: 传统基准通过 Docker 隔离环境运行单元测试,仅给出 0/1 的标量结果;AgentLens 则深挖中间执行过程,在保持最终测试结果的同时追加四维过程质量画像。
- vs Graphectory: Graphectory 虽然同样使用图谱形式表征轨迹,但缺乏针对任务已知正确解空间的对齐机制,且未提供针对 SWE 领域细粒度行为浪费的自动归因与定级方案。
- vs PRM / 过程奖励模型 (如 SWE-RM): 现有过程奖励模型普遍依赖昂贵的大模型推理(LLM-as-a-Judge)或神经网络打分,存在判别不可解释与推理开销巨大的问题;AgentLens 全流程基于确定性图算法与启发式规则,完全无需 LLM 调用即可完成毫秒级评估。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首次提出 SWE 智能体过程级评测与 Lucky Pass 理论模型,PTA 结构解法设计极其巧妙。
- 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 8 款前沿模型、2600+ 轨迹及 7 人标注一致性验证,统计检验严谨扎实。
- 写作质量: ⭐⭐⭐⭐⭐ 概念清晰,结构环环相扣,问题揭示深刻且案例剖析极具工程洞察力。
- 价值: ⭐⭐⭐⭐⭐ 对于智能体评测体系重塑、训练数据清洗及部署安全性分析具有重大指导意义。