Modell / Datensatz
ServiceNow/BrowserGym avatar
ServiceNow/BrowserGym

BrowserGym: eine Gym-Umgebung für Web-Task-Automatisierung

🌎💪 BrowserGym, a Gym environment for web task automation

1.364 Sterne195 ForksPythonNOASSERTION
GitHub

Auf einen Blick

Was ist das?
BrowserGym bündelt mehrere Web-Agenten-Benchmarks hinter einer einzigen Gymnasium-Schnittstelle. Der Nutzen liegt in der Vereinheitlichung, der Preis in einer aufwendigen Setup-Kette pro Benchmark.
Für wen ist es gedacht?
BrowserGym ist für Forschungsteams gedacht, die mehrere Web-Benchmarks mit derselben Agentenschleife vergleichen wollen. Wer eine stabile Consumer-Anwendung oder eine reine Playwright-Steuerung sucht, ist hier falsch.
Darf ich es kommerziell nutzen?
Erst prüfen. Die Lizenz dieses Repositorys ordnen wir nicht automatisch ein; lesen Sie vor jeder kommerziellen Nutzung die LICENSE-Datei.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 60 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Python, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Welches Problem BrowserGym adressiert

Web-Agenten werden gegen sehr unterschiedliche Aufgaben evaluiert: MiniWoB++ mit kleinen synthetischen Seiten, WebArena mit gehosteten Webanwendungen, WorkArena mit ServiceNow-Instanzen, AssistantBench mit offenen Rechercheaufgaben. Jeder dieser Benchmarks brachte historisch eigene Startskripte, eigene Aktionsformate und eigene Beobachtungsräume mit. Ein Agent, der auf einem Benchmark lief, ließ sich nicht ohne Anpassung auf einen anderen übertragen. Genau diese Vereinheitlichung ist der Zweck von BrowserGym. Die Umgebung registriert Benchmarks als Gymnasium-Environments, sodass derselbe Agentencode über `env.reset()` und `env.step(action)` mit verschiedenen Aufgabenfamilien spricht. Adressaten sind laut Repository Forschungsgruppen, nicht Endnutzer. Das README enthält dazu eine ausdrückliche Warnung: BrowserGym sei als offenes, erweiterbares Framework zur Beschleunigung der Web-Agenten-Forschung gedacht und nicht als Consumer-Produkt.

Registrierung als Gymnasium-Umgebung und der openended-Task

Der Mechanismus ist eine Registrierung im Gymnasium-Registry. Ein Import wie `import browsergym.miniwob` oder `import browsergym.workarena` trägt die Aufgaben unter IDs wie `browsergym/miniwob.choose-list` oder `browsergym/workarena.servicenow.order-ipad-pro` ein. Der Agent erzeugt die Umgebung mit `gym.make`, ruft `env.reset()` auf und erhält eine Beobachtung sowie ein Info-Dictionary. Danach folgt die übliche Schleife mit `env.step(action)`, die ein Tupel aus Beobachtung, Reward, `terminated`, `truncated` und Info zurückgibt, bis eine der beiden Abbruchbedingungen greift. Für freie Aufgaben existiert `browsergym/openended` mit `task_kwargs={"start_url": ...}` und dem Schalter `wait_for_user_message=True`, der nach jeder Agentennachricht auf eine Nutzereingabe wartet. Das ist ein Chat-Modus, kein autonomer Lauf. Die verfügbaren Aufgaben einer Familie lassen sich über `gym.envs.registry.keys()` auflisten und nach Präfix filtern. Neue Benchmarks entstehen laut README durch Vererbung von `AbstractBrowserTask`; die Klasse liegt im Paket `browsergym-core` unter `browsergym/core/src/browsergym/core/task.py`.

Installation in Stufen: von core bis browsergym

Die Paketstruktur ist geschichtet. `pip install browsergym-core` liefert nur die Kernfunktionalität und den openended-Task, ohne Benchmark. Darauf bauen Einzelpakete wie `browsergym-miniwob`, `browsergym-webarena`, `browsergym-webarena-verified`, `browsergym-visualwebarena`, `browsergym-workarena`, `browsergym-assistantbench` und `browsergym-timewarp` auf. Für WebLINX heißt das Paket abweichend `weblinx-browsergym`. Wer alles auf einmal will, installiert `browsergym` oder für Versuchswerkzeuge `browsergym-experiments`. Nach der Installation folgt zwingend `playwright install chromium`, da die Umgebung auf einem Chromium-Browser aufsetzt. Dieser Schritt ist nicht optional, sondern Voraussetzung dafür, dass überhaupt eine Seite geladen wird. Für die lokale Entwicklung sieht das README den Klon des Repositories, den Wechsel in das Verzeichnis und `make install` vor.

Die Setup-Kosten liegen außerhalb des Pakets

Der eigentliche Aufwand beginnt nach dem pip-Aufruf. Jeder Benchmark bringt eigene Voraussetzungen mit, die in separaten README-Dateien beschrieben sind: `browsergym/miniwob/README.md`, `browsergym/webarena/README.md`, `browsergym/webarena_verified/README.md`, `browsergym/visualwebarena/README.md` und `browsergym/assistantbench/README.md`. WorkArena verweist auf das separate Repository ServiceNow/WorkArena, OpenApps auf eine eigene Dokumentationsseite, TimeWarp auf ein externes Repository. Das bedeutet konkret: WebArena und VisualWebArena benötigen gehostete Instanzen, WorkArena eine ServiceNow-Umgebung, AssistantBench je nach Aufgabe Netzzugriff. Ein Team, das nur MiniWoB++ ausprobieren will, kommt mit einem Bruchteil der Schritte aus. Wer dagegen einen Vergleich über fünf Benchmarks plant, muss fünf unterschiedliche Infrastrukturen betreiben und aktuell halten. Diese Betriebslast ist der dominierende Kostenfaktor, nicht die Bibliothek selbst.

Grenzen und Fälle, in denen BrowserGym das falsche Werkzeug ist

Die wichtigste Einschränkung steht im Repository selbst: keine Consumer-Anwendung, Nutzung mit Vorsicht. Das ist nicht bloß eine Haftungsformel. Eine Gymnasium-Umgebung setzt einen episodischen Ablauf mit Reset und terminierten Schritten voraus. Für einen Produktionsbot, der dauerhaft auf einer Unternehmensseite arbeitet, passt dieses Modell schlecht. Auch die Beobachtungs- und Aktionsräume sind auf Benchmark-Auswertung zugeschnitten, nicht auf Latenz oder Ausfallsicherheit im Dauerbetrieb. Ein zweiter Punkt betrifft die Reproduzierbarkeit: Weil mehrere Benchmarks externe Dienste voraussetzen, hängt ein Lauf von der Erreichbarkeit dieser Dienste ab. Ein fehlgeschlagener Vergleich kann daher an der Infrastruktur liegen und nicht am Agenten. Wer lediglich eine einzelne Website mit Playwright automatisieren will, braucht die Abstraktionsebene nicht und zahlt nur für zusätzliche Abhängigkeiten. Schließlich ist die Lizenzlage unklar: Das Repository trägt die Kennung NOASSERTION, während das README auf ein Apache-2.0-Badge verweist. Diese Diskrepanz sollte vor einer Weitergabe oder kommerziellen Nutzung geklärt werden; eine rechtliche Bewertung kann hier nicht erfolgen.

Abgrenzung zu AgentLab und zu direktem Playwright-Einsatz

ServiceNow pflegt mit AgentLab ein zweites Projekt, das im README als Rahmenwerk zum Implementieren, Testen und Evaluieren von Web-Agenten über alle BrowserGym-Benchmarks hinweg beschrieben wird. Die Aufgabenteilung ist damit klar: BrowserGym liefert die Umgebungen und die Aufgaben, AgentLab die Agentenschleife und die Auswertung. Wer nur BrowserGym installiert, implementiert die Schleife aus dem Boilerplate selbst, inklusive der Stelle, an der `action = ...` steht. Der Unterschied zu direktem Playwright-Einsatz ist grundsätzlicher Natur. Playwright gibt ein Imperativ-API für Browsersteuerung, ohne Aufgabenbegriff, ohne Reward und ohne Reset-Semantik. BrowserGym verpackt dieselbe Art von Browsersteuerung in einen Episodenrahmen mit Beobachtung, Belohnung und Abbruchbedingungen. Für Benchmark-Vergleiche ist das der entscheidende Vorteil, für freie Automatisierung ein zusätzlicher Zwang.

Wartung, Versionen und was vor dem Einsatz zu prüfen ist

Die Veröffentlichungshistorie zeigt eine aktive, aber unregelmäßige Kadenz: v0.14.2 im August 2025, danach v0.14.3.dev4 im Januar 2026 und v0.14.3 ebenfalls im Januar 2026. Der letzte Push liegt datiert nach der jüngsten Veröffentlichung, das Projekt ist nicht archiviert. Entwicklungsversionen mit Suffix wie `.dev4` signalisieren, dass zwischen stabilen Releases Vorabversionen auftauchen; wer auf Reproduzierbarkeit angewiesen ist, sollte Versionen festnageln statt ungepinnt zu installieren. Die Paketaufteilung nach Benchmarks hilft dabei, weil ein Upgrade von `browsergym-core` unabhängig von `browsergym-workarena` erfolgen kann. Andererseits bedeutet sie, dass Versionskonflikte zwischen Kern und Benchmark-Paketen möglich sind und bei jedem Upgrade geprüft werden müssen. Zur Lizenz: Solange die Repository-Kennung NOASSERTION lautet, ist die tatsächlich geltende Lizenz nicht allein aus den Metadaten ableitbar. Das README verlinkt ein Apache-2.0-Badge, was ein Hinweis ist, aber keine Bestätigung. Vor einer Weitergabe sollte die LICENSE-Datei im Repository geprüft werden.

Für wen sich der Einstieg lohnt

Der sinnvolle Einstieg ist schrittweise. Zuerst `pip install browsergym-core` und `playwright install chromium`, dann der openended-Task mit einer eigenen Start-URL, um die Schleife zu verstehen. Erst danach ein einzelner Benchmark wie MiniWoB++, dessen Setup laut README am wenigsten externe Infrastruktur verlangt. Wer diesen Pfad durchläuft, merkt früh, ob die Episodensemantik zum eigenen Agenten passt. Wer dagegen sofort `pip install browsergym` ausführt und alle Benchmarks gleichzeitig konfigurieren will, verbringt die erste Woche mit Infrastruktur statt mit Agentenlogik. Das ist keine Frage des Könnens, sondern der Reihenfolge.

Redaktionelles Fazit

BrowserGym ist für Forschungsteams gedacht, die mehrere Web-Benchmarks mit derselben Agentenschleife vergleichen wollen. Wer eine stabile Consumer-Anwendung oder eine reine Playwright-Steuerung sucht, ist hier falsch. Vor der Adoption sollte man prüfen, welche Benchmark-Pakete installiert werden müssen, ob die jeweiligen Zusatzschritte aus den README-Dateien in der eigenen Umgebung reproduzierbar sind und welche Lizenzbedingungen für die einzelnen Benchmark-Pakete gelten, da das Repository selbst keine standardisierte Lizenzkennung trägt.

Offizielle Quellen

  1. Issues
  2. README
  3. Releases
  4. ServiceNow/BrowserGym on GitHub
Community-Notizen

Community-Notizen