SWE-Bench Pro Verified:运行时泄题、题目有效性与配对口径
SWE-Bench Pro Verified:运行时泄题、题目有效性与配对口径
知识点轴:benchmark-evaluation / harness-runtime / sandbox-security。 可靠评测要同时控制agent能看到什么、题目是否合理、patch在哪个环境判分。本文的方法值得迁移,但论文部分配对数字未对账,不能据此背书模型排行。
为什么对内部 coding-agent benchmark 重要
私有任务也可能在运行时泄露答案:Git对象中残留GOLD、镜像含隐藏测试、任务ID包含目标SHA、联网下载上游修复。这和训练集污染不同;更换新题不自动关闭这些入口。另一个独立问题是“题目错”:规格漏了字符串/顺序约束,隐藏测试却只接受某种实现。修好隔离仍不能让坏题成为有效能力测量。^[raw/articles/swe-bench-pro-verified-leakage-and-task-validity-2026-09-18.md]
Agent-Benchmarks、repoagentbench-private-pr-coding-agent-benchmark 与 issuebenchkit-private-repo-coding-agent-benchmark 的BASE/RED/GOLD流程因此需要两条独立验收:解题输入封闭性与需求—判分一致性。
机制一:关闭执行时答案通路
| 通路 | 论文/固定runner的控制 | 仍需验证的边界 |
| Git残留对象 | 删除顶层/嵌套.git,重建fresh single-commit | 删branch/tag不等于删objects;重建后还要保持BASE可构建 |
| 隐藏测试/fixture | 删除指定隐藏路径,清理其目录内ignored材料,禁hooks | 必须区分公开回归测试与隐藏grader;路径清理可能漏镜像其他目录 |
| 元数据 | allowlist、匿名instance ID与workspace路径 | controller保存的repo/base_commit是否进模型视图取决于harness,不可仅凭allowlist宣称全匿名 |
| 外网答案 | code-hosting域名blacklist,保留依赖服务 | 镜像/代理/直连IP可能绕过;指令禁止不是网络强制 |
| 评测环境 | fresh evaluation environment恢复BASE后只应用patch | 不信任推理workspace和agent自行写的测试结果 |
固定 AgentCompass@938bcbaa9b44958cf64ac4004a175fc21ca6b90e 的 _isolate_agent_repository()、source_network_policy() 和用户文档提供具体实现/约束;公共元数据仍包含 repo / base_commit,应继续核对实际序列化视图。源码/文档核查不等于本机Docker端到端复现。^[raw/articles/swe-bench-pro-verified-leakage-and-task-validity-2026-09-18.md]
文档明确该benchmark目前依赖provider支持blacklist;其Docker支持与Daytona/Modal仅支持allowlist或全禁的差异会影响可运行性。不能把同一配置复制到另一backend后仍声称相同隔离。生产或高风险评测可考虑受控依赖镜像/allowlist,但要以构建成功率和泄漏负例验收,这是本wiki建议而非原作者默认。^[raw/articles/swe-bench-pro-verified-leakage-and-task-validity-2026-09-18.md]
机制二:修题与反作弊分别做对照
作者保留731任务,所有任务应用anti-hacking;从119候选问题中最终修订102项:22误导描述、75过窄测试、3过宽测试、2其他问题。LLM辅助筛选/草拟,专家最小修改,优先补requirements/interface等规格,必要时改测试;102不表示其余任务已被穷尽证明无缺陷。^[raw/articles/swe-bench-pro-verified-leakage-and-task-validity-2026-09-18.md]
评测分 Baseline、Anti-hacking、Verified 三种:前两者尽量固定题目比较暴露面,后两者固定隔离比较修题;patch仅在所有F2P和P2P通过时算resolved。status=completed 是流程结束,不是解题成功。这与 harbor-index-parity-task-validity-and-snapshot-boundaries 的坏题/合法替代实现审计、sre-bench-hidden-grader-and-coverage 的分母边界直接相连。
数字对账:保留 contested,不替论文“修数”
论文表3及§4.3文字给GLM-5.2的Baseline/Anti-hacking/Verified为78.80%/57.32%/59.51%,并描述21.48个百分点下降。但表4配对计数为:PASS→PASS 404、PASS→FAIL 186、FAIL→PASS 15、FAIL→FAIL 126,总数731。^[raw/articles/swe-bench-pro-verified-leakage-and-task-validity-2026-09-18.md]
本机从原HTML表格取数复算:表4的Baseline是 590/731=80.71%,Anti-hacking是 419/731=57.32%,配对下降 23.39个百分点。后者与表3对齐、前者不齐。论文提及单独paired run,但相关文字仍复用78.80%;未拿到逐run/cohort映射,无法确定是不同运行、汇总口径还是文本错误。保留两份原始说法,不把一张表静默改成另一张。^[raw/notes/ai-radar-evidence-checks-2026-09-18.md]
作者轨迹审计称已确认的本地/网络答案文件访问降到0,不等于所有攻击尝试消失或所有未知渠道被封闭。PASS→FAIL原因由LLM annotator分类,未发现“正常执行受损”也不是独立因果证明。上述限制不抹消控制方法的工程价值,但限制效果数字的可泛化程度。
对用户实践的最小可用流程
- 冻结任务合同:每题保存BASE/RED/GOLD、需求版本、hidden grader hash、依赖镜像digest;model、harness、adapter、网络策略、预算/重复次数都记录。
- 生成agent视图:单提交BASE、明确可见测试集合、中性ID、最小schema;GOLD/hidden grader留在controller/evaluator,不与agent共享可读目录。
- 负例检查隔离:以合成答案标记测试残留Git对象、ignored fixture、hooks恢复、镜像其他路径和联网镜像;记录实际读取/拒绝,而不只扫描命令关键词。
- 新环境独立判分:只复制patch,验证F2P/P2P集合非空且覆盖需求,增加合法替代解和伪解负例;退出码与resolved分开。
- 先对账再排名:同一任务/cohort的配对四格表应还原总体成功数;保留所有结束原因与费用。改变题目、网络、harness或预算必须另立版本,不把提升归因给单一模型。
以上是建议的内部runner试点,没有在用户私有库或线上环境执行。Harness-Engineering 把边界落实为代码,LLM-Wiki-Optimization-Log 负责把发现收敛成可持续验收规则。
阅读、运行与未知范围
已读论文主文/附录文本、原表及固定runner/network policy/文档;原HTML与固定仓库包归档。未运行731任务、模型API、Docker网络黑名单、hidden grader或独立轨迹因果审计;当前main与论文实际实验commit未证明一致。图像内部内容未逐图视觉核验。论文自述的漏清理、未知代码镜像和未修完坏题都保留,不声称解决全部污染。
来源
- 论文 v1;固定AgentCompass源码。仓库公告2026-09-08,本轮GitHub API快照134 stars,不按star判断价值。
- 数据集入口仅作导航,本轮未下载完整数据集,不能声称逐题验证。
写入记录
- 2026-09-30 09:04 CST:补unearned-passes-benchmark-channel-closure反链:隔离后还须审计新成功轨迹与替代信息路径;不更改原论文数字与contested边界。
- 2026-09-18 09:12 CST:新增运行时泄题/修题/独立判分深析;核原HTML表3/4配对差异并标contested,固定源码与未知运行范围,连接内部benchmark主题。