如何破解顶级AI Agent Benchmark

★★★★★ UC Berkeley RDI | 2026-04-11 | HN 171 points

Benchmark的幻象

每周都有新的AI模型爬上benchmark排行榜。公司在新闻稿中引用这些数字。投资者用它们来证明估值。工程师用它们来选择部署哪个模型。隐含的承诺很简单:更高的分数意味着更强的能力。

这个承诺已经破产。

我们构建了一个自动化扫描agent,系统审计了8个最突出的AI agent benchmark——SWE-bench、WebArena、OSWorld、GAIA、Terminal-Bench、FieldWorkArena和CAR-bench——发现每一个都可以被exploit,达到接近满分的分数,而不需要解决一个任务。没有推理。没有能力。仅仅是利用分数计算方式的漏洞。

这已经在发生

我们Exploit Agent的计分卡

零任务解决。零LLM调用(大多数情况下)。接近满分。

Benchmark分数方法
Terminal-Bench (89任务)100%Binary wrapper trojans
SWE-bench Verified (500任务)100%Pytest hooks强制所有测试通过
SWE-bench Pro (731任务)100%In-container parser overwrite
WebArena (812任务)~100%Config leakage + DOM injection + prompt injection
FieldWorkArena (890任务)100%Validation never checks answer correctness
CAR-bench (all hallucination)100%Reward components skipped entirely
GAIA (165任务)~98%Public answers + normalization collisions
OSWorld (369任务)73%VM state manipulation + public gold files

如何做到

Terminal-Bench: 特洛伊木马化测试基础设施

Terminal-Bench在89个复杂终端任务上评估agent。容器有完全互联网访问——Harbor的allow_internet配置默认为True。

讽刺的是:82/89任务在验证时通过curl从互联网下载uv。我们的exploit在agent阶段将/usr/bin/curl替换为一个wrapper。当验证器 later 运行curl ... | sh安装uv时,我们的wrapper拦截请求,安装真正的uv,然后特洛伊木马化uvx二进制。

结果:89/89任务,100%分数,没有写一行解决方案代码。

SWE-bench: 100%解决率而不修复任何bug

SWE-bench是 最具影响力的AI编码benchmark。agent的patch应用在运行测试的同一个Docker容器内。patch引入的任何东西——conftest.py、monkey-patch、Go init()函数——在测试期间以完整特权执行。

SWE-bench Verified exploit:我们的agent创建一个conftest.py,pytest hook强制每个测试报告为通过:

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"
        rep.longrepr = None

这意味着什么

我们依赖来衡量AI能力的benchmark本身容易受到它们声称要测量的能力的攻击。这些不是孤立的事件。它们是一个系统性问题的症状:我们用来衡量AI能力的基准本身是有漏洞的。

该领域需要什么:


来源: rdi.berkeley.edu