Skip to main content

BrowserGym: a gym environment for web task automation in the Chromium browser

Project description

BrowserGym

This package provides browsergym, a gym environment for web task automation in the Chromium browser.

Setup

To install browsergym, you can either install one of the browsergym-miniwob, browsergym-webarena and browsergym-workarena packages, or you can simply install browsergym which includes all of these by default.

pip install browsergym

Then, a required step is to setup playwright by running

playwright install

Finally, each benchmark comes with its its own specific setup that requires to follow additional steps.

Usage

Open-ended task example

Boilerplate code to run an agent on an interactive, openended task:

import gymnasium as gym
import browsergym.core  # register the openended task as a gym environment

env = gym.make(
    "browsergym/openended", start_url="https://www.google.com/", wait_for_user_message=True
)
obs, info = env.reset()
done = False
while not done:
    action = ...  # implement your agent here
    obs, reward, terminated, truncated, info = env.step(action)

MiniWoB++ task example

Boilerplate code to run an agent on a miniwob task:

import gymnasium as gym
import browsergym.miniwob  # register miniwob tasks as gym environments

env = gym.make("browsergym/miniwob.choose-list")
obs, info = env.reset()
done = False
while not done:
    action = ...  # implement your agent here
    obs, reward, terminated, truncated, info = env.step(action)

List of all the available MiniWoB++ environments

env_ids = [id for id in gym.envs.registry.keys() if id.startswith("browsergym/miniwob")]
print("\n".join(env_ids))

WebArena task example

Boilerplate code to run an agent on a webarena task:

import gymnasium as gym
import browsergym.webarena  # register webarena tasks as gym environments

env = gym.make("browsergym/webarena.310")
obs, info = env.reset()
done = False
while not done:
    action = ...  # implement your agent here
    obs, reward, terminated, truncated, info = env.step(action)

List of all the available WebArena environments

env_ids = [id for id in gym.envs.registry.keys() if id.startswith("browsergym/webarena")]
print("\n".join(env_ids))

WorkArena task example

Boilerplate code to run an agent on a workarena task:

import gymnasium as gym
import browsergym.workarena  # register workarena tasks as gym environments

env = gym.make("browsergym/workarena.servicenow.order-ipad-pro")
obs, info = env.reset()
done = False
while not done:
    action = ...  # implement your agent here
    obs, reward, terminated, truncated, info = env.step(action)

List of all the available WorkArena environments

env_ids = [id for id in gym.envs.registry.keys() if id.startswith("browsergym/workarena")]
print("\n".join(env_ids))

Demo

If you want to experiment with an agent in BrowserGym, follow these steps:

cd ui_assist
conda env create -f environment.yml; conda activate ui-assist
# or simply use `pip install -r requirements.txt`
playwright install

Optional: Set your OPENAI_API_KEY if you want to use a GPT agent.

Launch the demo on the open web:

python run_demo.py --task_name openended --start_url www.google.com

You can customize your experience by changing the model_name to your preferred LLM, toggling Chain-of-thought with use_thinking, adding screenshots for your VLMs with use_screenshot, and much more!

multiple agent demos on the open web, WorkArena and WebArena

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

browsergym-0.1.0rc2.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

browsergym-0.1.0rc2-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file browsergym-0.1.0rc2.tar.gz.

File metadata

  • Download URL: browsergym-0.1.0rc2.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for browsergym-0.1.0rc2.tar.gz
Algorithm Hash digest
SHA256 14e1671569c06997eda81aeea31be3a458414be286689f6a489cdcd4a3797de4
MD5 911325e01b17876d94de77d02d0570b3
BLAKE2b-256 c221262594b03c38c0de502682d72d6f9977277514602de1b8e1f901d788fdc7

See more details on using hashes here.

File details

Details for the file browsergym-0.1.0rc2-py3-none-any.whl.

File metadata

File hashes

Hashes for browsergym-0.1.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 805600cdfa5b9e28c87cf488e285b60a4ecb5a548c23e4a18c4656c544a7c38c
MD5 7ddbca5a06d544ee68366ae33bc4c0dc
BLAKE2b-256 16546fde4bf4be2b915fa8365d481544ad9a68148a10114cc0908ebdfc437874

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page