[Contenidos de referencia] ♦ [Cómo comenzar] ♦ [Demostración en vivo] ♦ [BrowserGym] ♦ [Citando este trabajo]
[ICML 2024] WorkArena: ¿Qué tan capaces son los agentes web para resolver tareas de trabajo de conocimiento común? [Papel]
WorkArena++: Hacia la planificación de la composición y tareas de trabajo de conocimiento común basadas en el razonamiento [artículo]
WorkArena
es un conjunto de tareas basadas en navegador diseñadas para medir la eficacia de los agentes web a la hora de respaldar tareas rutinarias para trabajadores del conocimiento. Al aprovechar la omnipresente plataforma ServiceNow, este punto de referencia será fundamental para evaluar el estado generalizado de dichas automatizaciones en los entornos de trabajo del conocimiento modernos.
WorkArena está incluido en BrowserGym, un entorno de gimnasio conversacional para la evaluación de agentes web.
Para configurar WorkArena, necesitará obtener su propia instancia de ServiceNow, instalar nuestro paquete Python y cargar algunos datos en su instancia. Siga los pasos a continuación para lograrlo.
Request an instance
y seleccione la versión Washington
(la inicialización de la instancia tardará unos minutos).SNOW_INSTANCE_URL
: la URL de su instancia de desarrollador de ServiceNowSNOW_INSTANCE_UNAME
: El nombre de usuario debe ser "admin"SNOW_INSTANCE_PWD
: La contraseña, asegúrese de colocar el valor entre comillas "" y tenga en cuenta los caracteres especiales de escape del shell. Al ejecutar echo $SNOW_INSTANCE_PWD
se debería imprimir la contraseña correcta.Advertencia: No dude en explorar la plataforma, pero asegúrese de revertir cualquier cambio (por ejemplo, cambios en las vistas de lista, fijación de algunos menús, etc.), ya que estos cambios serán persistentes y afectarán el proceso de evaluación comparativa.
Ejecute el siguiente comando para instalar WorkArena en el entorno de BrowswerGym:
pip install browsergym
Luego, instala Dramaturgo:
playwright install
Finalmente, ejecute este comando en una terminal para cargar los datos de referencia a su instancia de ServiceNow:
workarena-install
¡Su instalación ya está completa! ?
Por el momento, WorkArena-L1 incluye 19,912
instancias únicas extraídas de 33
tareas que cubren los componentes principales de la interfaz de usuario de ServiceNow, también denominadas tareas "atómicas". WorkArena++ contiene 682 tareas, cada una de las cuales muestra entre miles de configuraciones potenciales. WorkArena++ utiliza los componentes atómicos presentados en WorkArena y los compone en casos de uso del mundo real que evalúan las habilidades de planificación, razonamiento y memorización de los agentes.
Los siguientes videos muestran un agente creado en GPT-4-vision
interactuando con cada componente atómico del punto de referencia. Como lo enfatizan nuestros resultados, este punto de referencia no se resuelve y, por lo tanto, el desempeño del agente no siempre es correcto.
Objetivo: El agente debe buscar información específica en la base de conocimiento de la empresa.
El agente interactúa con el usuario a través de la interfaz conversacional de BrowserGym.
Objetivo: el agente debe completar un formulario complejo con valores específicos para cada campo.
Objetivo: El agente debe solicitar artículos con configuraciones específicas del catálogo de servicios de la empresa.
Objetivo: El agente debe filtrar una lista según unas especificaciones.
En este ejemplo, el agente tiene dificultades para manipular la interfaz de usuario y no logra crear el filtro.
Objetivo: el agente debe navegar a una aplicación específica usando el menú principal.
Objetivo: el agente debe responder una pregunta que requiere leer gráficos y (opcionalmente) realizar un razonamiento simple sobre ellos.
Nota: Para fines de demostración, un humano controla el cursor ya que se trata de una tarea pura de recuperación.
Para configurar WorkArena, necesitará obtener su propia instancia de ServiceNow, instalar nuestro paquete Python y cargar algunos datos en su instancia. Siga los pasos a continuación para lograrlo.
Request an instance
y seleccione la versión Washington
(la inicialización de la instancia tardará unos minutos).SNOW_INSTANCE_URL
: la URL de su instancia de desarrollador de ServiceNowSNOW_INSTANCE_UNAME
: El nombre de usuario debe ser "admin"SNOW_INSTANCE_PWD
: La contraseña, asegúrese de colocar el valor entre comillas simples '' y tenga en cuenta los caracteres especiales de escape del shell. Al ejecutar echo $SNOW_INSTANCE_PWD
se debería imprimir la contraseña correcta.Advertencia: No dude en explorar la plataforma, pero asegúrese de revertir cualquier cambio (por ejemplo, cambios en las vistas de lista, fijación de algunos menús, etc.), ya que estos cambios serán persistentes y afectarán el proceso de evaluación comparativa.
Ejecute el siguiente comando para instalar WorkArena en el entorno de BrowswerGym:
pip install browsergym-workarena
Luego, instala Dramaturgo:
playwright install
Finalmente, ejecute este comando en una terminal para cargar los datos de referencia a su instancia de ServiceNow:
workarena-install
¡Su instalación ya está completa! ?
Ejecute este código para ver WorkArena en acción.
Nota: el siguiente ejemplo ejecuta la función Oracle (trampa) de WorkArena para resolver cada tarea. Para evaluar un agente, se deben utilizar llamadas a env.step()
.
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
para mostrar tareas L3. 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 ()
Nota: el siguiente ejemplo ejecuta la función Oracle (trampa) de WorkArena para resolver cada tarea. Para evaluar un agente, se deben utilizar llamadas a env.step()
.
Utilice el siguiente BibTeX para citar nuestro trabajo:
@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},
}