BrowserGym
将真实浏览器封装为 Gymnasium 标准的 Web Agent 训练与评测环境,支持 9 大 Benchmark 一站式对比
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
将真实浏览器封装为 Gymnasium 标准的 Web Agent 训练与评测环境,支持 9 大 Benchmark 一站式对比
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你让一个大语言模型帮你在某企业内部系统里提交一个工单、查一份报表、或者在电商网站比价采购——这些对人类来说再普通不过的操作,对 AI 来说却是一个极其复杂的挑战。网页结构千变万化,JavaScript 动态渲染、弹窗、iframe 嵌套、验证码拦截……每一种都是"路障"。
BrowserGym 正是为解决这个根本问题而生的。它由企业级 SaaS 巨头 ServiceNow 的研究团队开发维护,定位是一个专门用于训练和评估"网页操作型 AI 智能体"(Web Agent)的标准化测试框架。简单说:BrowserGym 把真实浏览器变成 AI 的"训练场",让 AI 在受控环境下学会像人一样浏览、点击、填表、导航。
BrowserGym 的诞生源于一个行业共识——"纯文本推理"已触天花板,下一个突破点在多模态交互和工具使用"。2023-2024 年,随着 GPT-4V、Claude Vision 等多模态模型的崛起,研究者开始意识到:让 AI 真正发挥作用,不能只让它读书本知识,还要让它能够操作真实世界中的应用界面。
ServiceNow 作为企业自动化领域的领头羊,早在 2022-2023 年就开始投入 Web Agent 研究。他们的核心场景是:让 AI 代替员工操作企业内部系统(Jira、ServiceNow ITSM、CRM 等),从而实现流程自动化降本。在这个背景下,BrowserGym 从内部研究工具逐步演化为一个开源的标准化评测框架。
2024 年 12 月,ServiceNow 团队在 arXiv 发表论文《BrowserGym: A Gym Environment for Web Task Automation》(arXiv:2412.05467),系统阐述了这套框架的设计理念和技术架构,引发学术界广泛关注。截至 2026 年初,该项目已积累超过 1200 Star,成为 Web Agent 研究领域的基础设施级项目。
BrowserGym 预置了 9 个业界权威的 Web 任务基准,这本身就是它最大的价值之一:
| Benchmark | 特点 | 任务数量 |
|---|---|---|
| MiniWoB++ | 迷你网页操作任务,聚焦单一动作 | 100+ |
| WebArena | 真实互联网复刻网站(Reddit、GitHub 等) | 800+ |
| WebArenaVerified | WebArena 的修复验证版 | 800+ |
| VisualWebArena | WebArena 的多模态视觉版本 | 700+ |
| WorkArena | ServiceNow 企业 IT 场景 | 100+ |
| AssistantBench | 助手类任务(查天气、订餐等) | 170+ |
| WebLINX | 真实网站导航(静态评测) | 2000+ |
| OpenApps | Facebook/Meta 开源应用集 | 30+ |
| TimeWarp | 时间操控类任务 | 100+ |
这意味着:研究者不需要自己搭建环境,只需要写几行 Python 代码,就能让 Agent 在这些 benchmark 上跑分,横向对比不同模型的 Web 操作能力。
BrowserGym 基于强化学习领域最通用的 Gymnasium(前身是 OpenAI Gym)标准接口设计。如果你不熟悉 RL,没关系——你只需要知道这是一个标准化的"环境-智能体"交互协议:
import gymnasium as gym
import browsergym.core
# 启动一个开放任务环境(从指定 URL 开始)
env = gym.make(
"browsergym/openended",
task_kwargs={"start_url": "https://www.google.com/"},
wait_for_user_message=True
)
obs, info = env.reset()
while True:
action = your_agent.get_action(obs)
obs, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
break
env.close()
这套接口的优雅之处在于:Agent 和 Environment 完全解耦。你可以用 OpenAI API 写一个简单 Agent,也可以用 LangChain、AutoGPT、Camel 等复杂框架写一个 Agent,只要遵循 Gymnasium 规范,就能无缝接入 BrowserGym 的所有 Benchmark。
BrowserGym 提供了两种不同的动作空间,满足不同复杂度的需求:
HighLevelActionSet(推荐):高层动作集,AI 直接发出自然语言指令,如 click 3、go to google.com、scroll down 等。解析器将这些指令转化为浏览器操作。这种方式降低了 AI 的动作空间复杂度,更接近人类的操作直觉。
PythonActionSet:AI 可以直接执行 Python 代码操作浏览器,功能最强大但复杂度最高,适合高级用户。
AI 操控浏览器需要"看"到页面内容。BrowserGym 提供三种观察方式:
Demo Agent 默认使用 AXTree + pruned_html 的组合,在大多数任务上效果良好且速度快。
BrowserGym 的架构设计很好地解决了"如何把真实浏览器包装成 Gymnasium 环境"这个核心工程难题。
核心组件:
BrowserEnv(env.py):继承自 gym.Env,是整个框架的主入口。负责初始化 Playwright 浏览器实例、管理页面生命周期、向 Agent 提供观察、向环境发送动作、调用任务验证器。
AbstractBrowserTask(task.py):所有 Benchmark 任务的抽象基类。每个具体任务只需实现两个方法:setup(page) 初始化任务、validate(page, chat) 检查完成状态并返回 reward。
Playwright Integration:BrowserGym 选择 Playwright 而非 Selenium 作为底层浏览器驱动,原因是 Playwright 的 CDP 支持更稳定、等待机制更完善,对现代 Web 应用的动态渲染支持更好。
Chat 系统(chat.py):支持多轮对话式任务执行,Agent 可以向用户发送消息、请求确认,适用于需要人工介入的教学场景。
Action Execution(action/):动作执行层负责把 Agent 的指令(高层字符串或 Python 代码)转化为 Playwright 的浏览器操作,包含完整的错误处理。
BrowserGym 的安装非常简洁:
pip install browsergym
playwright install chromium
然后运行 Demo Agent:
git clone git@github.com:ServiceNow/BrowserGym.git
cd BrowserGym/demo_agent
pip install -r requirements.txt
python run_demo.py --task_name openended --start_url https://www.google.com --use_axtree
Demo Agent 会启动一个 Chrome 浏览器窗口,打开目标网页,等待你输入指令。你可以告诉它具体任务,它会理解、规划、执行一系列浏览器操作来完成任务。
注意:完整的 Benchmark 评测需要额外配置。WebArena 需要搭建模拟网站服务器,WorkArena 需要 ServiceNow 实例凭证,配置复杂度因 Benchmark 而异,是 BrowserGym 使用体验中最主要的门槛。
架构类型:典型的 Environment Wrapper Pattern——用适配器模式将 Playwright 浏览器封装成 Gymnasium 标准的 RL 环境。架构清晰,扩展性良好,新增 Benchmark 只需继承 AbstractBrowserTask 即可。
AI 框架整合:BrowserGym 本身不包含 LLM,是与模型无关的评测框架。Demo Agent 使用 OpenAI API,但任何能接收 Gymnasium observation、输出 action 的 Agent 都可以接入,包括 Claude、Llama、本地模型等。
数据隐私:纯本地评测框架,所有任务执行都在本地浏览器完成,用户需自备 LLM API Key。
1. Benchmark 配置复杂:核心框架安装简单,但各 Benchmark 专属配置(尤其是 WebArena 的多服务部署)仍是较高门槛,很多用户"卡"在 setup 阶段。
2. 速度瓶颈:真实浏览器操作比纯文本交互慢几个数量级,一个 100 步任务可能需要 30-60 分钟。对于需要快速迭代的研究场景,这是显著痛点。
3. 验证函数脆弱性:每个 Benchmark 的 validate() 函数与目标页面 HTML 结构高度耦合,页面更新后验证器可能失效,需要人工持续维护。
4. 非生产级产品:项目 README 明确声明"not meant to be a consumer product",在易用性、稳定性、生产级支持方面无法与商业 Web 自动化产品相比。
BrowserGym 的出现标志着 Web Agent 研究进入基础设施竞争阶段。2024 年以前,Web Agent 评测高度碎片化——每个团队用自己的网站、自己定义成功标准、自己写评测脚本,结果无法横向比较。BrowserGym 试图建立行业基准,就像 ImageNet 在计算机视觉领域的角色一样。
从技术趋势看:
BrowserGym 是:
BrowserGym 不是:
如果你在做 Web Agent 研究,BrowserGym 几乎是必选项——它帮你省去自己搭建环境和评测基准的巨大工作量。如果你只是想找一个能自动操作网页的 AI 工具,BrowserGym 不是答案,你需要的是 Browserbase、Steel AI 或者更上层的 Agent 产品。
项目基本信息:
| 指标 | 值 |
|---|---|
| Stars | 1249+ |
| 语言 | Python |
| 主要 Topics | ai, llm, webagent |
| 维护方 | ServiceNow |
| License | Apache 2.0 |
| 核心依赖 | Playwright, Gymnasium, OpenAI (demo) |
| 集成 Benchmark | 9 个(MiniWoB++, WebArena, WorkArena 等) |