论文精读 12|BrowserGym:浏览器 Agent 的统一实验底座

论文档案

项目内容
论文The BrowserGym Ecosystem for Web Agent Research
作者Thibault Le Sellier De Chezelles 等
发表TMLR 2025
原文OpenReview / arXiv
代码ServiceNow/BrowserGym / ServiceNow/AgentLab
本文定位用统一 observation/action/task API 和实验管理层打通碎片化网页基准

论文先解决基础设施碎片化

网页 Agent 研究有大量 benchmark,但每套代码的浏览器启动、登录、动作语法、观察格式、任务重置和评分方式不同。一个 Agent 从 WebArena 迁移到 WorkArena,往往要重写适配层;这让横向比较混入大量工程差异。

论文把生态拆成两层:

AgentLab:Agent 构建、批量运行、追踪、分析、复现
                         │
                         ▼
BrowserGym:统一 Gym 环境、观察、动作、任务、benchmark 适配
                         │
                         ▼
Chromium + Playwright + 各类网站/离线数据

BrowserGym 标准化“环境”,AgentLab 标准化“实验”。

BrowserGym 的交互模型

环境遵循 Gymnasium API:reset() 返回初始 observation,step(action) 返回 observation、reward、terminated、truncated 和 info。理论上它是 POMDP:Agent 只能看到当前页面与有限历史,不能直接访问网站完整内部状态。

用户和 Agent 还共享 chat。任务目标可以来自 goal_object 或 chat_messages,后者为未来真实用户在任务中途补充信息保留接口。

丰富而可选择的观察空间

DOM 与 accessibility tree

BrowserGym 通过 Chrome DevTools Protocol 取得原始 DOM 和 AXTree。环境尽量少改动,把过滤与格式化留给 Agent。它也提供基础文本转换,便于快速实现 text-only baseline。

BrowserGym ID

每个元素被注入唯一 bid,并在 DOM 与 AXTree 间对齐。Agent 可引用稳定 ID,而不是猜 CSS selector 或屏幕坐标。元素还带 bounding box、可见比例和 set-of-marks 标记。

Screenshot

截图保留 DOM/AXTree 缺失的视觉信息:图片、颜色、遮挡、字体和布局。Bounding box 与截图像素对齐,便于把文字结构和视觉定位组合起来。

Tab 与错误反馈

观察包含所有 tab/pop-up 的 URL、标题和当前 active page。上一动作的 Playwright 异常会进入 last_action_error,不会直接结束 episode,让 Agent 下一轮自我修正。

这些字段共同构成一个“浏览器状态视图”,而不是简单网页文本。

动作空间:从任意代码到受限原语

BrowserGym 底层允许 Agent 输出可执行 Python,通过 Playwright page 对象操作浏览器,并用 send_message_to_user、report_infeasible 结束任务。这很灵活,也有任意代码风险。

因此环境提供 action_mapping:把自定义动作转成可信 Python。默认 HighLevelActionSet 使用函数式原语,例如点击、输入、滚动、切 tab 和发送消息。

动作形式优点风险/限制
任意 Playwright/Python表达力最高,可快速研究新策略执行不可信代码,难做权限审计
高层函数原语稳定、可解析、易记录覆盖不到所有网页特例
坐标鼠标键盘接近通用 computer use对布局、分辨率和焦点脆弱

Harness 可按任务风险选择动作层,而不是固定一种格式。

新任务如何接入

一个任务主要实现:

  • setup(page):从空页面构造初始状态并返回目标;
  • validate(page, chat_messages):每步后检查是否完成,返回 reward、done 和可选用户消息。

Setup 可登录、创建数据并导航到起点;validate 可检查页面、数据库或 chat。这个接口把任务生命周期与 Agent 解耦,新的 benchmark 可以复用同一观察和动作协议。

统一了哪些基准

论文版本支持六个以上主流集合:

Benchmark规模/模板环境特征
MiniWoB++125 templates合成小型网页任务
WebArena812 tasks自托管电商、论坛、GitLab 等
VisualWebArena910 tasks需要图像理解的自托管任务
WorkArena L133 templatesServiceNow 单步企业任务
WorkArena L2/L3各 341 templates组合式企业工作流
WebLINX31,586 traces静态人类交互数据
AssistantBench214 tasks开放网页信息检索

统一接口的好处不是宣称任务相同,而是让同一个 Agent 实现跨 benchmark 运行,减少适配代码造成的噪声。

AgentLab 补上实验管理

AgentLab 提供:

  • 复用的 GenericAgent 组件;
  • 多种 LLM/VLM API 适配;
  • 并行批量任务执行;
  • 配置、结果与追踪保存;
  • AgentXRay 单轨迹可视化分析;
  • leaderboard 与可复现实验配置。

BrowserGym 解决单 episode 协议,AgentLab 解决实验矩阵。这两个层次都属于 Harness,但职责不同。

大规模实验给出的证据

论文用同一 GenericAgent 比较 6 个模型、6 个网页 benchmark。Claude 3.5 Sonnet 在多数任务领先,在 WorkArena L2 达到 39.1%,而 GPT-4o 为 8.5%。新版本 GPT-4o 相对此前相似 Agent 的旧 checkpoint,在 WebArena 从约 23.5% 提升到 31.4%,WorkArena L2 从 3.8% 提升到 8.5%。

作者谨慎指出,这可能来自模型改进,也可能受公开 benchmark 数据进入训练流程影响。统一 harness 降低了接口差异,但不能消除模型污染和 checkpoint 漂移。

GenericAgent 在 AssistantBench 最好只有约 6.9%,远低于当时专用系统约 27%。通用接口让实验可比,不意味着通用 Agent 自动优于 specialist。

常见错误类型

论文归纳网页 Agent 的典型问题:

  • Navigation Error:搜索或页面路径错误;
  • Form Handling Error:字段格式错、未发现提交失败;
  • Task Understanding Error:误解用户目标;
  • Stuck Behavior:重复同一个失败动作;
  • Information Extraction Failure:到达正确页面却提取错误;
  • Grounding/Interaction Error:元素 ID、可见性或点击问题。

因为 BrowserGym 统一了 trace schema,这些类别可以跨 benchmark 比较,而不必每套环境重新解析日志。

复现性仍不是绝对的

论文明确列出外部波动:时区、默认语言、地理位置、操作系统、浏览器渲染、动态广告和 live website 内容都会改变 Agent 所见。自托管网站更稳定,但部署版本、数据库 seed 和认证仍需记录。

一份可复现实验清单至少包括:

browsergym_commit: ...
benchmark_version: ...
browser_version: ...
viewport: [width, height]
locale: ...
timezone: ...
site_snapshot: ...
model_checkpoint: ...
agent_config: ...
action_set: ...
observation_flags: ...
seed: ...

安全含义

网页既是操作界面,也是来自第三方的不可信输入。任意 Python 动作还会扩大本地执行风险。部署时应:

  • 用受限 action_mapping 代替任意代码;
  • 隔离浏览器 profile、cookies 和下载目录;
  • 默认阻止未授权域名和文件协议;
  • 对提交、购买、发帖、上传等副作用单独审批;
  • 将页面文本标记为数据,防御间接提示注入;
  • 运行后销毁会话或回滚状态。

论文主要目标是研究基础设施,不能把 benchmark sandbox 直接视为生产安全方案。

推荐复现实验

  1. 从 MiniWoB++ 选 20 题验证协议,再选 WebArena/WorkArena 各 20 题;
  2. 固定 Agent,分别使用 AXTree、截图、组合观察;
  3. 固定观察,比较 high-level actions 与 Playwright code;
  4. 每题运行至少 3 次,报告成功率、标准误和基础设施错误;
  5. 记录每步 DOM/AXTree hash、截图、动作、异常与 tab 状态;
  6. 做跨 benchmark 失败分类,不只看平均分;
  7. 对 live web 单独标记内容漂移,不能与自托管结果混算。

局限

  • 统一 API 不能抹平各 benchmark 的任务定义和评分差异;
  • live web 仍有显著非确定性;
  • 浏览器和 Playwright 版本变化会影响动作;
  • bid 是研究便利设施,真实产品页面未必提供稳定元素 ID;
  • 开放 Python 动作存在明显安全风险;
  • 模型比较可能受公开数据污染;
  • 大规模跨基准实验昂贵,部分配置使用已有结果而非全部重跑。

BrowserGym 的核心价值是给网页 Agent 研究一个“实验操作系统”:统一环境边界、保留多模态观察、允许动作空间消融,并把批量执行与轨迹分析交给 AgentLab。它让研究者更容易判断性能变化来自模型、Agent 还是接口。

延伸阅读