基准:WebArena 与 OSWorld 本节摘要:通才 Agent 会调工具,但——它能驱动浏览器点过 20 步完成一次购物结账吗?能用纯键盘鼠标配好一台 Linux 机器吗?这正是 WebArena 与 OSWorld 回答的问题。WebArena(Zhou 等人,ICLR 2024)在四个自托管网页应用(购物站、论坛、类 GitLab 开发工具、企业 CMS)上布了 812 个长程任务,评估是基于执行的——通过 gym API 查状态:订单下了吗、issue 关了吗、CMS 页面更新了吗?发布时最好的 GPT-4 Agent 14.41%,人类 78.24%。
本节摘要:通才 Agent 会调工具,但——它能驱动浏览器点过 20 步完成一次购物结账吗?能用纯键盘鼠标配好一台 Linux 机器吗?这正是 WebArena 与 OSWorld 回答的问题。WebArena(Zhou 等人,ICLR 2024)在四个自托管网页应用(购物站、论坛、类 GitLab 开发工具、企业 CMS)上布了 812 个长程任务,评估是基于执行的——通过 gym API 查状态:订单下了吗、issue 关了吗、CMS 页面更新了吗?发布时最好的 GPT-4 Agent 14.41%,人类 78.24%。OSWorld(Xie 等人,NeurIPS 2024)在 Ubuntu、Windows、macOS 上布了 369 个真实计算机任务,用 1920×1080 截图作为观测,自由形式的键盘鼠标控制真实应用;发布时最好模型 12.24%,人类 72.36%。两者的核心失败模式没变:GUI 定位(像素到元素的映射,模型在 1920×1080 里难以可靠定位 UI 元素)与操作知识(哪个菜单有那个设置、哪个快捷键、哪个偏好面板——人类花多年积累的知识长尾)。后续的 OSWorld-G(564 题定位套件)把定位与规划分开测,OSWorld-Human(人工策展金轨迹)揭示顶尖 Agent 用的步数是必要的 1.4~2.7 倍——轨迹效率差距。读完本节,你应能理解为什么 Claude Computer Use、OpenAI CUA、Gemini 2.5 Computer Use(第 21 节)都把这两个基准当作训练靶子。
对应原课程:Phase 14 · Lesson 20 ·
benchmarks-webarena-osworld(原英文phases/14-agent-engineering/20-benchmarks-webarena-osworld/docs/en.md)。前置:第 19 节(SWE-bench、GAIA)。
阅读完本节,你应当能够:
第 19 节的基准测的是「Agent 能不能产出正确的文本/代码补丁」。但还有一类任务问的是操控力:Agent 能不能在一个真实界面里,跨几十次点击、键盘输入、滚动,把一个目标做完?
这是 WebArena(网页)与 OSWorld(桌面)回答的问题。它们的难度在于:状态隐藏在像素里,每一步的可用动作空间巨大,且错误常常不可逆(点了「删除」就删了)。
自托管的框定很关键——目标应用被钉死在特定版本,基准不会因为线上应用改版而抖动,可复现。
Claude Computer Use、OpenAI CUA、Gemini 2.5 Computer Use(第 21 节)都是在 WebArena 与 OSWorld 塑造的工作负载上训练的。基准是靶子,生产模型是交付的答案——理解了基准,就理解了这些模型能力的边界。
⚠️ 三种基准陷阱:① 只看截图的评估——OSWorld 是截图驱动的;用一个走 DOM 或无障碍 API 的 Agent 在 OSWorld 上评估,会漏掉定位挑战,数字虚高。② 忽略轨迹长度——只打成功率,会漏掉 OSWorld-Human 揭示的 1.4~2.7 倍步数低效。③ 过期的自托管应用——WebArena 钉死了特定版本;不重新策展就升级,会破坏可比性。
原课程 code/main.py 实现了一个玩具版网页 Agent 装置:
list_items、add_to_cart、checkout。class ShoppingApp: def __init__(self): self.cart, self.orders = [], [] def list_items(self): return CATALOG def add_to_cart(self, item): self.cart.append(item) def checkout(self): if not self.cart: return False self.orders.append(self.cart); self.cart = []; return True
def evaluate(app, task): if task == "buy_mug": return any("mug" in o for o in app.orders) # 订单里真有 mug if task == "close_issue_42": return issues[42].status == "closed" # issue 真关了
def trajectory_efficiency(agent_steps, gold_steps): return agent_steps / gold_steps # 1.0 最佳;OSWorld-Human 显示顶尖 Agent 1.4~2.7
运行 python3 code/main.py 会输出每任务成功率与轨迹效率,镜像 OSWorld-Human 的方法论。
💡 设计要点:WebArena/OSWorld 与 SWE-bench 一样坚持查状态而非查形状——「订单下了吗」而非「Agent 点了哪个按钮」。轨迹效率则是它们新增的维度:一个成功的 Agent 如果用 3 倍步数,在生产里就是 3 倍的延迟与成本。
| 基准 | 环境 | 任务数 | 评估方式 | 发布时模型/人类 |
|---|---|---|---|---|
| WebArena | 4 自托管网页应用 | 812 | 执行式(gym 查状态) | 14.41% / 78.24% |
| VisualWebArena | 同上 + 视觉定位 | — | 执行式 + 图像依赖 | — |
| OSWorld | 真实 Ubuntu/Win/macOS | 369 | 截图观测 + 状态检查 | 12.24% / 72.36% |
| OSWorld-G | 定位专项 | 564 | 定位准确率 | 拆分定位与规划 |
| OSWorld-Human | 金轨迹 | — | 步数比 | 揭示 1.4~2.7 倍低效 |
原课程 outputs/skill-web-desktop-harness.md:搭建一个网页/桌面 Agent 装置,带基于执行的评估与轨迹效率指标。包含为你的产品前 20 个任务捕获金轨迹、每周跑 Agent 对比的流程。
下一节,我们正式进入 Computer Use——把这些基准训练出的能力,变成可调用 API:Agent 如何看屏幕、定位元素、发出点击与键盘事件,以及它带来的全新安全边界。