BrowserGym

GitHub
1.2k 167 中等 1 次阅读 昨天NOASSERTION开发框架语言模型图像Agent
AI 解读 由 AI 自动生成,仅供参考

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 通过提供统一、可扩展的网页自动化基准框架,让研发团队能从繁琐的基础设施建设中解脱出来,专注于提升智能体核心的决策与交互能力。

运行环境要求

操作系统
  • 未说明
GPU

非必需(仅在使用视觉模型如 VisualWebArena 或开启截图功能时可能需要)

内存

未说明

依赖
notes1. 核心依赖是 Playwright,安装后需运行 'playwright install chromium' 下载浏览器内核。 2. 该工具主要用于网页代理研究,默认不强制要求 GPU,除非运行涉及视觉任务(如 VisualWebArena)或启用截图功能。 3. 不同的基准测试(如 WebArena, WorkArena 等)有各自独立的额外环境配置要求,需参考对应的 README 文件。 4. 示例演示代理(Demo Agent)默认使用 OpenAI API,需设置 OPENAI_API_KEY 环境变量。
python未说明
gymnasium
playwright
browsergym-core
browsergym-experiments
openai
BrowserGym hero image

快速开始

BrowserGym -banner

🛠️ 设置 - 🏋 使用方法 - 💻 演示 - 🌐 生态系统 - 🚀 AgentLab - 🌟 贡献者 - 📄 论文 - 📝 引用

pypi PyPI - 许可证 PyPI - 下载量 GitHub 星标图 代码格式化 测试

pip install browsergym

[!警告] BrowserGym 的目的是提供一个开放、易用且可扩展的框架,以加速网络智能体研究领域的发展。 它并非面向消费者的成品,请谨慎使用!

[!提示] 🚀 快来查看 AgentLab✨ 吧! 这是一个无缝衔接的框架,可在 BrowserGym 的所有基准上实现、测试和评估您的网络智能体。

https://github.com/ServiceNow/BrowserGym/assets/26232819/e0bfc788-cc8e-44f1-b8c3-0d1114108b85

示例:GPT4-V 智能体执行开放式任务(顶行,聊天交互),以及 WebArena 和 WorkArena 任务(底行)。

BrowserGym 默认包含以下基准:

使用 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

最后,每个基准都有其特定的设置步骤,需要额外操作才能完成。

🏗️ 开发环境设置

若要在本地开发环境中安装 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 贡献者

📝 引用本工作

如果你希望引用 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/20
v0.14.3.dev42026/01/08
v0.14.22025/08/05
v0.14.12025/06/16
v0.13.32024/11/27
v0.13.22024/11/21
v0.13.12024/11/15
v0.13.02024/11/07
v0.12.02024/11/04
v0.11.32024/11/01
v0.11.22024/10/30
v0.11.12024/10/30
v0.11.02024/10/30
v0.10.22024/10/24
v0.10.12024/10/23
v0.10.02024/10/23
v0.9.02024/10/19
v0.8.12024/10/15
v0.8.02024/10/08
v0.7.12024/09/27

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

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 真正成长为懂上

160k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|2天前
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像