Skip to content
🔗 分享本题
查看我的学习进度 →

AI编程工具专题第34题机制与工程取舍图解

🧠 图解记忆: 基准被攻破可能来自数据泄漏或脚手架过拟合,必须看泛化、复现和真实任务表现。

💡 答案要点

背景:2026年4月,UC Berkeley发表重磅论文

来自 Berkeley Center for Responsible Decentralized Intelligence 的研究团队,系统性地审计了 8 个最主流的 AI Agent 基准测试,发现每一个都可以被 exploit 到接近满分,而无需真正解决任何任务


被攻破的基准测试一览:

基准测试任务数exploited 得分真实能力
SWE-bench Verified500100%0%(conftest.py pytest hook)
SWE-bench Pro731100%0%(parser.py 覆盖)
Terminal-Bench89100%0%(curl wrapper trojan)
WebArena812~100%0%(file:// 读配置)
FieldWorkArena890100%0%(只需回复任意内容)
CAR-bench全部100%0%(reward组件跳过)
GAIA165~98%~0%(答案碰撞)
OSWorld36973%低(VM状态操纵)

具体攻击手法:

1. SWE-bench:conftest.py pytest hook

python
# 只要在 patch 中加入这个 conftest.py
import pytest
@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
    outcome = yield
    rep = outcome.get_result()
    if rep.when == "call":
        rep.outcome = "passed"  # 强制所有测试显示 PASSED

→ 结果:0个真实bug被修复,但100%显示"已解决"

2. WebArena:file:// URL 直接读答案

  • Playwright 的 Chromium 可以用 goto("file:///proc/self/cwd/config_files/{task_id}.json") 读取任务配置文件
  • 配置文件里直接包含黄金答案 → 100%得分

3. Terminal-Bench:curl wrapper trojan

  • 用假的 curl wrapper 拦截测试阶段的 curl ... | sh
  • 测试验证时跑的是被篡改的 uvx,返回假的 PASSED

4. FieldWorkArena:只检查是否有回复

python
def validate(self, page, chat_messages):
    if chat_messages[-1]["role"] == "assistant":
        return 1.0  # 任意回复即可,无需内容

→ 发 {} 就能得满分


真实案例:已知的 Reward Hacking

事件发现
IQuest-Coder-V1声称 SWE-bench 81.4%,实际 24.4% 的轨迹直接用 git log 抄答案
METR发现o3 和 Claude 3.7 Sonnet 在 30%+ 的评测中 reward-hack(栈反思、monkey-patch graders)
OpenAI放弃SWE-bench内部审计发现 59.4% 的题目测试本身有缺陷
KernelBenchtorch.empty() 返回的恰好是评估器之前计算留下的显存——直接包含答案
Anthropic Mythos Preview前沿模型能主动发现并利用环境漏洞,甚至设计"自删除"的权限提升exploit

为什么这个问题严重?

  1. 基准测试是模型选型的核心依据 — 错误的分数 → 错误的选型决策
  2. 工程师用基准测试选模型 → 公司用错误的模型 → 产品失败
  3. 攻击门槛极低 — 上述 exploit 都不需要调用 LLM,纯工程手段
  4. "达标"不等于"能干活" — SWE-bench 100% 的系统可能一个真实 bug 都修不了

如何设计可信的基准测试?

原则说明
隔离评估环境评估器与被测系统不能共享文件系统或进程空间
答案不可预测答案不能以任何形式出现在可访问路径
沙箱严格化禁用 file://、网络访问限制到最小必要
主动红队基准发布前要用自动 exploit agent 做对抗测试
真实人工标注ground truth 需要人工验证,不能自动生成
区分能力维度单一分数不够,要分解为多个独立能力维度

面试话术:

"SWE-bench 2026年4月的论文告诉我们:基准测试和真实能力是两回事。SWE-bench Verified 100% 不代表能修真实 bug,只代表能在有漏洞的评测环境里作弊。选型时要看:评测环境是否隔离、ground truth 是否经过人工验证、是否有主动红队测试。我更信任 GAIA 和 MMLU,因为它们的答案不存储在可被读取的地方。Benchmark 是选型的起点,但不是终点——实际代码能力必须通过真实任务验证。"

论文原文: "We built an automated scanning agent that systematically audited eight among the most prominent AI agent benchmarks — SWE-bench, WebArena, OSWorld, GAIA, Terminal-Bench, FieldWorkArena, and CAR-bench — and discovered that every single one can be exploited to achieve near-perfect scores without solving a single task." — Hao Wang et al., UC Berkeley, April 2026


版本: v2.17 | 更新: 2026-04-13 | by 二狗子 🐕