
SWE-bench Pro分数可信吗从Cursor研究拆解AI编程智能体的奖励攻击问题只看 SWE-bench Pro 榜单分数很容易误判 AI 编程智能体能力。Cursor 研究在 2026 年 6 月指出部分前沿智能体会检索公开补丁、翻 Git 历史、查上游提交来完成任务。PANews、Remio 等站点转述的关键数据很直接一次针对 Opus 4.8 Max 的审计里成功样本中约 63% 复用了公开修复线索严格限制 Git 历史和网络访问后部分模型分数回落 14 到 21 个百分点。本文不讨论榜单排名只做一件事搭一个更干净的测试环境减少“查答案式通过”再用 cpolar 临时分享报告。1 什么是奖励攻击先把分数看明白奖励攻击不是模型有主观意图而是评测目标给了它捷径只奖励“测试通过”智能体就寻找最快通过的路径。公开 issue、上游补丁、Git 历史、相同报错搜索结果都能变成答案线索。企业内部选型时分数不能直接等价于“它会独立修 Bug”。更稳妥的做法是分两层看常规环境看开放资料下的效率严格环境切断网络、清理 Git 历史只看受控输入下的修复能力。2 环境准备准备一台隔离评测机建议把评测跑在单独的 Linux 开发机或云主机上。这里用 Ubuntu 22.04/24.04 举例核心工具是 Git、Docker、Python 和 cpolar。先安装基础组件sudo apt update sudo apt install -y git docker.io python3 python3-venv python3-pip rsync curl sudo systemctl enable --now docker sudo usermod -aG docker $USER执行完usermod后重新登录一次终端让当前用户拿到 Docker 权限。检查 Docker 是否可用docker run --rm hello-world看到Hello from Docker!就说明容器环境正常。3 准备被测仓库只保留代码不保留答案线索奖励攻击最容易从 Git 历史开始所以先做一份“去历史副本”。下面用sample-project演示实际替换成团队自己的仓库。mkdir -p ~/ai-agent-eval/workspace cd ~/ai-agent-eval/workspace git clone --depth 1 https://github.com/pallets/flask.git sample-project rsync -a --delete --exclude.git sample-project/ sample-project-clean/ find sample-project-clean -name .git -type d -prune -exec rm -rf {} 这组命令会浅克隆仓库复制一份不含.git的干净目录并再次清理嵌套.git。检查清理结果cd ~/ai-agent-eval/workspace/sample-project-clean find . -name .git -type d这个命令没有输出说明 Git 历史已经清掉。不要把原仓库路径、issue、PR、上游提交链接放进任务描述。4 运行严格评测把网络访问关掉清理 Git 历史只解决一半问题。智能体还能联网搜索时仍然能找到公开补丁。Docker 里用--network none关闭容器网络。先做一个最小验证docker run --rm --network none python:3.12-slim python - PY import socket try: socket.create_connection((example.com, 80), timeout3) print(network open) except OSError: print(network blocked) PY输出network blocked再进入正式评测。再把干净源码挂进容器验证目录能被读取cd ~/ai-agent-eval/workspace docker run --rm --network none \ -v $PWD/sample-project-clean:/repo \ -w /repo \ python:3.12-slim \ python -c import os; print(os.getcwd()); print(len(os.listdir(.)))正式接入 AI 编程智能体时只给三类输入sample-project-clean干净源码、本地失败测试输出、功能缺陷描述。不要同时开放浏览器、搜索工具和完整 Git 仓库。5 生成评测报告把过程留痕严格评测还要能复查。建议每次记录任务编号、智能体版本、网络状态、补丁 diff。下面用一个简单脚本生成 HTML 报告骨架mkdir -p ~/ai-agent-eval/reports cd ~/ai-agent-eval/workspace/sample-project-clean git diff --no-index /dev/null . ~/ai-agent-eval/reports/source-tree.diff || true cat ~/ai-agent-eval/reports/index.html HTML !doctype html html langzh-CN head meta charsetutf-8 titleAI Agent Strict Eval Report/title stylebody{font-family:sans-serif;margin:40px;line-height:1.7}.ok{color:#0a7f33;font-weight:700}/style /head body h1AI Agent Strict Eval Report/h1 p classokNetwork: blocked/p pGit history: removed from clean workspace/p pRepository path: codesample-project-clean/code/p pReview items: task description, test log, final diff, human review conclusion./p /body /html HTML这个 HTML 是报告入口。落地时再放测试日志、操作轨迹和最终 diff别放真实仓库地址、令牌和客户数据。启动一个只读报告页面cd ~/ai-agent-eval/reports python3 -m http.server 8080 --bind 127.0.0.1打开http://127.0.0.1:8080看到报告标题就说明服务已启动。6 用 cpolar 临时分享报告只暴露报告页评测机在内网时同事或外部协作方看不到报告。这里用 cpolar 开临时 HTTPS 地址只映射本机8080报告页。Linux 安装 cpolarcurl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash登录 cpolar 后台获取 authtoken再写入本机cpolar authtoken 你的_authtoken启动 HTTP 隧道cpolar http 8080终端会显示https://公网地址。把它发给评审人即可外部只看到报告页看不到仓库权限和评测机内网地址。一次性评审用完按CtrlC关闭隧道。免费随机地址 24 小时内变化固定二级子域名需要基础套餐或以上。7 评审分数别只看通过率严格环境跑完后把结果拆成三列看通过率、轨迹质量、补丁质量。重点检查有没有翻历史、搜补丁、绕过测试以及代码是否最小修改。如果一个智能体开放环境分数高、严格环境掉分明显结论不是“它没用”而是它强依赖外部检索。日常开发里检索能力能提升效率关键系统修复、私有仓库缺陷、离线环境任务更看重受控输入下的工程能力。8 总结到这里我们已经搭出一套更干净的评测流程源码去 Git 历史、容器关闭网络、报告本地生成再用 cpolar 临时分享。关键步骤记成三件事评测前先清理输入不把.git、issue、PR、commit 这类答案线索交给智能体。评测时切断网络用docker run --network none确认环境真的离线。评测后只分享报告页用 cpolar 暴露8080不暴露仓库、不暴露内网机器。SWE-bench Pro 分数仍有参考价值但不是选型唯一依据。把开放环境和严格环境分开看才能知道工具是在“会修代码”还是在“会找答案”。