[Benchmark-Inhalte] ♦ [Erste Schritte] ♦ [Live-Demo] ♦ [BrowserGym] ♦ [Diese Arbeit zitieren]
[ICML 2024] WorkArena: Wie leistungsfähig sind Webagenten bei der Lösung allgemeiner Wissensarbeitsaufgaben? [Papier]
WorkArena++: Auf dem Weg zu kompositorischer Planung und schlussfolgerungsbasierten allgemeinen Wissensarbeitsaufgaben [Aufsatz]
WorkArena
ist eine Reihe browserbasierter Aufgaben, die darauf zugeschnitten sind, die Effektivität von Webagenten bei der Unterstützung von Routineaufgaben für Wissensarbeiter zu messen. Durch die Nutzung der allgegenwärtigen ServiceNow-Plattform wird dieser Benchmark maßgeblich dazu beitragen, den weitverbreiteten Zustand solcher Automatisierungen in modernen Wissensarbeitsumgebungen zu bewerten.
WorkArena ist in BrowserGym enthalten, einer interaktiven Fitnessstudio-Umgebung zur Bewertung von Web-Agenten.
Um WorkArena einzurichten, müssen Sie Ihre eigene ServiceNow-Instanz erhalten, unser Python-Paket installieren und einige Daten auf Ihre Instanz hochladen. Befolgen Sie die folgenden Schritte, um dies zu erreichen.
Request an instance
und wählen Sie die Version Washington
aus (die Initialisierung der Instanz dauert einige Minuten).SNOW_INSTANCE_URL
: Die URL Ihrer ServiceNow-EntwicklerinstanzSNOW_INSTANCE_UNAME
: Der Benutzername sollte „admin“ sein.SNOW_INSTANCE_PWD
: Das Passwort. Stellen Sie sicher, dass Sie den Wert in Anführungszeichen „“ setzen und achten Sie auf Escapezeichen in der Shell. Wenn Sie echo $SNOW_INSTANCE_PWD
ausführen, sollte das richtige Passwort ausgegeben werden.Warnung: Schauen Sie sich gerne auf der Plattform um, aber stellen Sie bitte sicher, dass Sie alle Änderungen (z. B. Änderungen an Listenansichten, das Anheften einiger Menüs usw.) rückgängig machen, da diese Änderungen dauerhaft sind und sich auf den Benchmarking-Prozess auswirken.
Führen Sie den folgenden Befehl aus, um WorkArena in der BrowswerGym-Umgebung zu installieren:
pip install browsergym
Installieren Sie dann Playwright:
playwright install
Führen Sie abschließend diesen Befehl in einem Terminal aus, um die Benchmark-Daten auf Ihre ServiceNow-Instanz hochzuladen:
workarena-install
Ihre Installation ist nun abgeschlossen! ?
Derzeit umfasst WorkArena-L1 19,912
eindeutige Instanzen aus 33
Aufgaben, die die Hauptkomponenten der ServiceNow-Benutzeroberfläche abdecken, auch als „atomare“ Aufgaben bezeichnet. WorkArena++ enthält 682 Aufgaben, von denen jede aus Tausenden potenzieller Konfigurationen besteht. WorkArena++ verwendet die in WorkArena dargestellten atomaren Komponenten und setzt sie zu realen Anwendungsfällen zusammen, um die Planungs-, Argumentations- und Merkfähigkeiten von Agenten zu bewerten.
Die folgenden Videos zeigen einen auf GPT-4-vision
basierenden Agenten, der mit jeder atomaren Komponente des Benchmarks interagiert. Wie unsere Ergebnisse zeigen, ist dieser Benchmark nicht gelöst und daher ist die Leistung des Agenten nicht immer auf dem neuesten Stand.
Ziel: Der Agent muss in der Wissensdatenbank des Unternehmens nach bestimmten Informationen suchen.
Der Agent interagiert mit dem Benutzer über die Konversationsschnittstelle von BrowserGym.
Ziel: Der Agent muss ein komplexes Formular mit spezifischen Werten für jedes Feld ausfüllen.
Ziel: Der Agent muss Artikel mit bestimmten Konfigurationen aus dem Servicekatalog des Unternehmens bestellen.
Ziel: Der Agent muss eine Liste nach einigen Vorgaben filtern.
In diesem Beispiel hat der Agent Schwierigkeiten, die Benutzeroberfläche zu manipulieren, und schafft es nicht, den Filter zu erstellen.
Ziel: Der Agent muss über das Hauptmenü zu einer bestimmten Anwendung navigieren.
Ziel: Der Agent muss eine Frage beantworten, die das Lesen von Diagrammen und (optional) einfache Überlegungen dazu erfordert.
Hinweis: Zu Demonstrationszwecken steuert ein Mensch den Cursor, da es sich hierbei um eine reine Suchaufgabe handelt
Um WorkArena einzurichten, müssen Sie Ihre eigene ServiceNow-Instanz erhalten, unser Python-Paket installieren und einige Daten auf Ihre Instanz hochladen. Befolgen Sie die folgenden Schritte, um dies zu erreichen.
Request an instance
und wählen Sie die Version Washington
aus (die Initialisierung der Instanz dauert einige Minuten).SNOW_INSTANCE_URL
: Die URL Ihrer ServiceNow-EntwicklerinstanzSNOW_INSTANCE_UNAME
: Der Benutzername sollte „admin“ sein.SNOW_INSTANCE_PWD
: Das Passwort. Stellen Sie sicher, dass Sie den Wert in einfache Anführungszeichen setzen '' und achten Sie auf Escape-Sonderzeichen in der Shell. Wenn Sie echo $SNOW_INSTANCE_PWD
ausführen, sollte das richtige Passwort ausgegeben werden.Warnung: Schauen Sie sich gerne auf der Plattform um, aber stellen Sie bitte sicher, dass Sie alle Änderungen (z. B. Änderungen an Listenansichten, das Anheften einiger Menüs usw.) rückgängig machen, da diese Änderungen dauerhaft sind und sich auf den Benchmarking-Prozess auswirken.
Führen Sie den folgenden Befehl aus, um WorkArena in der BrowswerGym-Umgebung zu installieren:
pip install browsergym-workarena
Installieren Sie dann Playwright:
playwright install
Führen Sie abschließend diesen Befehl in einem Terminal aus, um die Benchmark-Daten auf Ihre ServiceNow-Instanz hochzuladen:
workarena-install
Ihre Installation ist nun abgeschlossen! ?
Führen Sie diesen Code aus, um WorkArena in Aktion zu sehen.
Hinweis: Im folgenden Beispiel wird die Oracle-Funktion (Cheat) von WorkArena ausgeführt, um jede Aufgabe zu lösen. Um einen Agenten auszuwerten, müssen stattdessen Aufrufe von env.step()
verwendet werden.
import random
from browsergym . core . env import BrowserEnv
from browsergym . workarena import ALL_WORKARENA_TASKS
from time import sleep
random . shuffle ( ALL_WORKARENA_TASKS )
for task in ALL_WORKARENA_TASKS :
print ( "Task:" , task )
# Instantiate a new environment
env = BrowserEnv ( task_entrypoint = task ,
headless = False )
env . reset ()
# Cheat functions use Playwright to automatically solve the task
env . chat . add_message ( role = "assistant" , msg = "On it. Please wait..." )
cheat_messages = []
env . task . cheat ( env . page , cheat_messages )
# Send cheat messages to chat
for cheat_msg in cheat_messages :
env . chat . add_message ( role = cheat_msg [ "role" ], msg = cheat_msg [ "message" ])
# Post solution to chat
env . chat . add_message ( role = "assistant" , msg = "I'm done!" )
# Validate the solution
reward , stop , message , info = env . task . validate ( env . page , cheat_messages )
if reward == 1 :
env . chat . add_message ( role = "user" , msg = "Yes, that works. Thanks!" )
else :
env . chat . add_message ( role = "user" , msg = f"No, that doesn't work. { info . get ( 'message' , '' ) } " )
sleep ( 3 )
env . close ()
l3
um L3-Aufgaben abzutasten. import random
from browsergym . core . env import BrowserEnv
from browsergym . workarena import get_all_tasks_agents
AGENT_L2_SAMPLED_SET = get_all_tasks_agents ( filter = "l2" )
AGENT_L2_SAMPLED_TASKS , AGENT_L2_SEEDS = [ sampled_set [ 0 ] for sampled_set in AGENT_L2_SAMPLED_SET ], [
sampled_set [ 1 ] for sampled_set in AGENT_L2_SAMPLED_SET
]
from time import sleep
for ( task , seed ) in zip ( AGENT_L2_SAMPLED_TASKS , AGENT_L2_SEEDS ):
print ( "Task:" , task )
# Instantiate a new environment
env = BrowserEnv ( task_entrypoint = task ,
headless = False )
env . reset ()
# Cheat functions use Playwright to automatically solve the task
env . chat . add_message ( role = "assistant" , msg = "On it. Please wait..." )
for i in range ( len ( env . task )):
sleep ( 1 )
env . task . cheat ( page = env . page , chat_messages = env . chat . messages , subtask_idx = i )
sleep ( 1 )
reward , done , message , info = env . task . validate ( page = env . page , chat_messages = env . chat . messages )
if reward == 1 :
env . chat . add_message ( role = "user" , msg = "Yes, that works. Thanks!" )
else :
env . chat . add_message ( role = "user" , msg = f"No, that doesn't work. { info . get ( 'message' , '' ) } " )
sleep ( 3 )
env . close ()
Hinweis: Im folgenden Beispiel wird die Oracle-Funktion (Cheat) von WorkArena ausgeführt, um jede Aufgabe zu lösen. Um einen Agenten auszuwerten, müssen stattdessen Aufrufe von env.step()
verwendet werden.
Bitte verwenden Sie das folgende BibTeX, um unsere Arbeit zu zitieren:
@misc{workarena2024,
title={WorkArena: How Capable Are Web Agents at Solving Common Knowledge Work Tasks?},
author={Alexandre Drouin and Maxime Gasse and Massimo Caccia and Issam H. Laradji and Manuel Del Verme and Tom Marty and Léo Boisvert and Megh Thakkar and Quentin Cappart and David Vazquez and Nicolas Chapados and Alexandre Lacoste},
year={2024},
eprint={2403.07718},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
@misc{boisvert2024workarenacompositionalplanningreasoningbased,
title={WorkArena++: Towards Compositional Planning and Reasoning-based Common Knowledge Work Tasks},
author={Léo Boisvert and Megh Thakkar and Maxime Gasse and Massimo Caccia and Thibault Le Sellier De Chezelles and Quentin Cappart and Nicolas Chapados and Alexandre Lacoste and Alexandre Drouin},
year={2024},
eprint={2407.05291},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2407.05291},
}