BrowserGym
BrowserGym 是一个专为网页任务自动化研究设计的开源框架,旨在为开发者提供一个开放、易用且可扩展的实验环境。它解决了当前 AI 智能体在复杂网页操作中缺乏统一评估标准和测试平台的痛点,让研究人员能够轻松构建、测试并对比不同智能体在真实浏览器环境中的表现。
该工具主要面向 AI 研究人员、算法工程师以及对网页自动化感兴趣的开发者。通过兼容 Gym 接口,BrowserGym 将 MiniWoB、WebArena、WorkArena 等主流基准测试整合在一起,支持从简单的点击操作到多步骤复杂任务的各种场景。其独特的技术亮点在于高度的模块化设计:用户只需继承一个简单的抽象类即可快速创建新的网页基准测试,同时它还提供了丰富的预置实验工具和可视化演示,大幅降低了复现前沿研究的门槛。
需要注意的是,BrowserGym 定位为科研加速工具而非面向普通消费者的成品软件,因此更适合用于探索下一代网页交互智能体的技术边界。配合其生态项目 AgentLab,用户可以更流畅地完成从智能体实现到全方位评估的全流程工作。
使用场景
某电商公司的算法团队正在研发一款能自动处理售后退款、订单查询等复杂流程的智能客服 Agent,需要大量真实的网页交互数据进行训练和评估。
没有 BrowserGym 时
- 环境搭建繁琐:团队需手动为 MiniWoB、WebArena 等不同基准测试分别配置浏览器驱动和依赖,耗时数天且极易出现版本冲突。
- 评估标准不一:缺乏统一的接口规范,导致在不同数据集上测试 Agent 性能时,代码逻辑重复编写,难以横向对比模型效果。
- 任务扩展困难:想要模拟公司内部特有的 ERP 系统操作场景时,必须从零编写底层浏览器控制逻辑,开发门槛极高。
- 调试过程黑盒:Agent 在网页上的具体操作步骤难以可视化复现,排查错误时只能依靠枯燥的日志,效率低下。
使用 BrowserGym 后
- 一键集成基准:通过
pip install即可快速加载 WebArena、WorkArena 等主流评测集,统一了底层 Playwright 环境,将准备时间从几天缩短至几小时。 - 标准化评估框架:利用其标准的 Gym 接口,团队能用同一套代码无缝切换不同基准测试,轻松量化 Agent 在各类任务中的成功率与鲁棒性。
- 自定义任务便捷:只需继承
AbstractBrowserTask类,开发人员便能快速将公司内部系统的操作流程封装成新的训练任务,极大降低了定制成本。 - 可视化调试支持:结合 AgentLab 生态,可直接回放 Agent 的操作轨迹与截图,直观定位决策失误点,显著加快了迭代优化速度。
BrowserGym 通过提供统一、可扩展的网页自动化基准框架,让研发团队能从繁琐的基础设施建设中解脱出来,专注于提升智能体核心的决策与交互能力。
运行环境要求
- 未说明
非必需(仅在使用视觉模型如 VisualWebArena 或开启截图功能时可能需要)
未说明

快速开始
[!警告] BrowserGym 的目的是提供一个开放、易用且可扩展的框架,以加速网络智能体研究领域的发展。 它并非面向消费者的成品,请谨慎使用!
[!提示] 🚀 快来查看 AgentLab✨ 吧! 这是一个无缝衔接的框架,可在 BrowserGym 的所有基准上实现、测试和评估您的网络智能体。
https://github.com/ServiceNow/BrowserGym/assets/26232819/e0bfc788-cc8e-44f1-b8c3-0d1114108b85
示例:GPT4-V 智能体执行开放式任务(顶行,聊天交互),以及 WebArena 和 WorkArena 任务(底行)。
BrowserGym 默认包含以下基准:
- MiniWoB
- WebArena
- WebArenaVerified
- VisualWebArena
- WorkArena
- AssistantBench
- WebLINX(静态基准)
- OpenApps
- TimeWarp
使用 BrowserGym 设计新的网络基准非常简单,只需继承 AbstractBrowserTask 类即可。
🛠️ 设置
要使用 browsergym,安装以下任一包:
pip install browsergym # (推荐)包含以下所有内容
pip install browsergym-experiments # 实验工具(智能体、循环、基准)+ 包含以下所有内容
pip install browsergym-core # 仅核心功能(无基准,只有开放式任务)
pip install browsergym-miniwob # 核心 + miniwob
pip install browsergym-webarena # 核心 + webarena
pip install browsergym-webarena-verified # 核心 + webarena_verified
pip install browsergym-visualwebarena # 核心 + visualwebarena
pip install browsergym-workarena # 核心 + workarena
pip install browsergym-assistantbench # 核心 + assistantbench
pip install weblinx-browsergym # 核心 + weblinx
pip install browsergym-timewarp # 核心 + timewarp
然后通过运行以下命令设置 Playwright:
playwright install chromium
最后,每个基准都有其特定的设置步骤,需要额外操作才能完成。
- 对于 MiniWoB++,请参阅 miniwob/README.md
- 对于 WebArena,请参阅 webarena/README.md
- 对于 WebArenaVerified,请参阅 webarena_verified/README.md
- 对于 VisualWebArena,请参阅 visualwebarena/README.md
- 对于 WorkArena,可参考 WorkArena
- 对于 AssistantBench,可参考 assistantbench/README.md
- 对于 OpenApps,可参考 OpenApps 文档
- 对于 TimeWarp,可参考 timewarp/README.md
🏗️ 开发环境设置
若要在本地开发环境中安装 browsergym,可使用以下命令:
git clone git@github.com:ServiceNow/BrowserGym.git
cd BrowserGym
make install
欢迎各位贡献!😊
🏋 使用方法
在交互式开放式任务上运行智能体的样板代码:
import gymnasium as gym
import browsergym.core # 将开放式任务注册为 Gym 环境
# 启动开放式环境
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 = ... # 在此处实现您的智能体
obs, reward, terminated, truncated, info = env.step(action)
if terminated 或 truncated:
break
# 关闭环境
env.close()
MiniWoB
import gymnasium as gym
import browsergym.miniwob # 将 MiniWoB 任务注册为 Gym 环境
# 启动 MiniWoB 任务
env = gym.make("browsergym/miniwob.choose-list")
...
# 列出所有可用的 MiniWoB 任务
env_ids = [id for id in gym.envs.registry.keys() if id.startswith("browsergym/miniwob")]
print("\n".join(env_ids))
WorkArena
import gymnasium as gym
import browsergym.workarena # 将 WorkArena 任务注册为 Gym 环境
# 启动 WorkArena 任务
env = gym.make("browsergym/workarena.servicenow.order-ipad-pro")
...
# 列出所有可用的 WorkArena 任务
env_ids = [id for id in gym.envs.registry.keys() if id.startswith("browsergym/workarena")]
print("\n".join(env_ids))
WebArena
import gymnasium as gym
import browsergym.webarena # 将 WebArena 任务注册为 Gym 环境
# 启动 WebArena 任务
env = gym.make("browsergym/webarena.310")
...
# 列出所有可用的 WebArena 任务
env_ids = [id for id in gym.envs.registry.keys() if id.startswith("browsergym/webarena")]
print("\n".join(env_ids))
VisualWebArena
import gymnasium as gym
import browsergym.webarena # 将 WebArena 任务注册为 Gym 环境
# 启动 VisualWebArena 任务
env = gym.make("browsergym/visualwebarena.721")
...
# 列出所有可用的 VisualWebArena 任务
env_ids = [id for id in gym.envs.registry.keys() if id.startswith("browsergym/visualwebarena")]
print("\n".join(env_ids))
AssistantBench
import gymnasium as gym
import browsergym.workarena # 将 AssistantBench 任务注册为 Gym 环境
# 启动 AssistantBench 任务
env = gym.make("browsergym/assistantbench.validation.3")
...
# 列出所有可用的 assistantbench 任务
env_ids = [id for id in gym.envs.registry.keys() if id.startswith("browsergym/workarena")]
print("\n".join(env_ids))
OpenApps
from open_apps.apps.start_page.main import app # 需要导入应用才能提供服务
from open_apps.launcher import OpenAppsLauncher
config = ... # 配置包含任务、智能体、环境和服务器配置的命名空间
launcher = OpenAppsLauncher(config)
launcher.launch()
TimeWarp
import gymnasium as gym
import browsergym.timewarp # 注册 TimeWarp 任务为 Gym 环境
# 启动一个 TimeWarp 任务
env = gym.make("browsergym/timewarp.1")
...
# 列出所有可用的 TimeWarp 任务
env_ids = [id for id in gym.envs.registry.keys() if id.startswith("browsergym/timewarp")]
print("\n".join(env_ids))
💻 演示
如果你想在 BrowserGym 中体验演示智能体,请按照以下步骤操作:
# 使用 Conda 设置
conda env create -f demo_agent/environment.yml
conda activate demo_agent
# 或者使用 pip 设置
pip install -r demo_agent/requirements.txt
# 然后下载 Playwright 的浏览器
playwright install chromium
我们的演示智能体使用 openai 作为后端,请确保设置好你的 OPENAI_API_KEY。
按如下方式启动演示智能体:
# 开放式(交互式聊天模式)
python demo_agent/run_demo.py --task_name openended --start_url https://www.google.com
# miniwob
python demo_agent/run_demo.py --task_name miniwob.click-test
# workarena
python demo_agent/run_demo.py --task_name workarena.servicenow.order-standard-laptop
# webarena
python demo_agent/run_demo.py --task_name webarena.4
# visualwebarena
python demo_agent/run_demo.py --task_name visualwebarena.398
你可以通过更改 model_name 来选择你喜欢的语言模型(默认使用 gpt-4o-mini),或者通过添加 use_screenshot 参数来为视觉语言模型生成截图,还有更多自定义选项!
python demo_agent/run_demo.py --help
🌐 生态系统
- AgentLab:无缝运行智能体进行基准测试,并收集与分析轨迹数据。
- WorkArena(++):针对 ServiceNow 平台上的 Web 智能体的基准测试平台。
- WebArena:基于自托管域名的真实 Web 任务基准测试平台。
- VisualWebArena:基于自托管域名的真实视觉 Web 任务基准测试平台。
- MiniWoB(++):包含超过 100 个在合成网页上执行的 Web 任务集合。
- WebLINX:真实世界 Web 交互轨迹数据集。
- AssistantBench:针对开放网络中真实且耗时任务的基准测试平台。
- DoomArena:用于 AI 智能体安全测试的框架,支持从 Browsergym 环境中向网页注入攻击。
🌟 贡献者
📝 引用本工作
如果你希望引用 BrowserGym,请使用以下两个 BibTeX 条目:
@article{
chezelles2025browsergym,
title={The BrowserGym Ecosystem for Web Agent Research},
author={Thibault Le Sellier de Chezelles and Maxime Gasse and Alexandre Lacoste and Massimo Caccia and Alexandre Drouin and L{\'e}o Boisvert and Megh Thakkar and Tom Marty and Rim Assouel and Sahar Omidi Shayegan and Lawrence Keunho Jang and Xing Han L{\`u} and Ori Yoran and Dehan Kong and Frank F. Xu and Siva Reddy and Graham Neubig and Quentin Cappart and Russ Salakhutdinov and Nicolas Chapados},
journal={Transactions on Machine Learning Research},
issn={2835-8856},
year={2025},
url={https://openreview.net/forum?id=5298fKGmv3},
note={Expert Certification}
}
@inproceedings{workarena2024,
title = {{W}ork{A}rena: How Capable are Web Agents at Solving Common Knowledge Work Tasks?},
author = {Drouin, Alexandre and Gasse, Maxime and Caccia, Massimo and Laradji, Issam H. and Del Verme, Manuel and Marty, Tom and Vazquez, David and Chapados, Nicolas and Lacoste, Alexandre},
booktitle = {Proceedings of the 41st International Conference on Machine Learning},
pages = {11642--11662},
year = {2024},
editor = {Salakhutdinov, Ruslan and Kolter, Zico and Heller, Katherine and Weller, Adrian and Oliver, Nuria and Scarlett, Jonathan and Berkenkamp, Felix},
volume = {235},
series = {Proceedings of Machine Learning Research},
month = {21--27 Jul},
publisher = {PMLR},
url = {https://proceedings.mlr.press/v235/drouin24a.html},
}
以下是它们的使用示例:
我们在实验中使用了 BrowserGym 框架 \cite{workarena2024,chezelles2025browsergym}。
轨迹数据
《BrowserGym 生态系统用于 Web 智能体研究》论文中的轨迹数据可在 Huggingface 上获取。
版本历史
v0.14.32026/01/20v0.14.3.dev42026/01/08v0.14.22025/08/05v0.14.12025/06/16v0.13.32024/11/27v0.13.22024/11/21v0.13.12024/11/15v0.13.02024/11/07v0.12.02024/11/04v0.11.32024/11/01v0.11.22024/10/30v0.11.12024/10/30v0.11.02024/10/30v0.10.22024/10/24v0.10.12024/10/23v0.10.02024/10/23v0.9.02024/10/19v0.8.12024/10/15v0.8.02024/10/08v0.7.12024/09/27常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
opencode
OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
