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.
- for miniwob, see miniwob/README.md
- for webarena, see webarena/README.md
- for workarena, see the WorkArena repo
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for browsergym-0.1.0rc2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 805600cdfa5b9e28c87cf488e285b60a4ecb5a548c23e4a18c4656c544a7c38c |
|
MD5 | 7ddbca5a06d544ee68366ae33bc4c0dc |
|
BLAKE2b-256 | 16546fde4bf4be2b915fa8365d481544ad9a68148a10114cc0908ebdfc437874 |