Sitio web • Documento • tablero de clasificación

Importante
Este repositorio aloja la implementación canónica de Webarena para reproducir los resultados reportados en el documento. AgentLab ha mejorado significativamente la infraestructura de navegación web, introduciendo varias características clave: (1) soporte para experimentos paralelos utilizando BrowsergyM, (2) integración de puntos de referencia de navegación web populares (por ejemplo, Visualwebarena) dentro de un marco unificado, (3) informes de tablas de clasificación unificadas y (4) manejo mejorado de las casas de borde del entorno. Recomendamos encarecidamente usar este marco para sus experimentos.
# Python 3.10+
conda create -n webarena python=3.10 ; conda activate webarena
pip install -r requirements.txt
playwright install
pip install -e .
# optional, dev only
pip install -e " .[dev] "
mypy --install-types --non-interactive browser_env agents evaluation_harness
pip install pre-commit
pre-commit installConsulte este script para obtener un tutorial rápido sobre cómo configurar el entorno del navegador e interactuar con él utilizando los sitios de demostración que alojamos. Este guión es solo para el propósito de la educación, para realizar experimentos reproducibles , consulte la siguiente sección. En la cáscara de nuez, usar Webarena es muy similar al uso de Operai Gym. El siguiente fragmento de código muestra cómo interactuar con el entorno.
from browser_env import ScriptBrowserEnv , create_id_based_action
# init the environment
env = ScriptBrowserEnv (
headless = False ,
observation_type = "accessibility_tree" ,
current_viewport_only = True ,
viewport_size = { "width" : 1280 , "height" : 720 },
)
# prepare the environment for a configuration defined in a json file
config_file = "config_files/0.json"
obs , info = env . reset ( options = { "config_file" : config_file })
# get the text observation (e.g., html, accessibility tree) through obs["text"]
# create a random action
id = random . randint ( 0 , 1000 )
action = create_id_based_action ( f"click [id]" )
# take the action
obs , _ , terminated , _ , info = env . step ( action )Importante
Para garantizar la evaluación correcta, configure sus propios sitios web de Webarena después del paso 1 y el paso 2. Los sitios de demostración son solo para navegar para ayudarlo a comprender mejor el contenido. Después de evaluar los 812 ejemplos, restablezca el entorno al estado inicial siguiendo las instrucciones aquí.
Configurar el entorno independiente. Consulte esta página para más detalles.
Configure las URL para cada sitio web.
export SHOPPING= " <your_shopping_site_domain>:7770 "
export SHOPPING_ADMIN= " <your_e_commerce_cms_domain>:7780/admin "
export REDDIT= " <your_reddit_domain>:9999 "
export GITLAB= " <your_gitlab_domain>:8023 "
export MAP= " <your_map_domain>:3000 "
export WIKIPEDIA= " <your_wikipedia_domain>:8888/wikipedia_en_all_maxi_2022-05/A/User:The_other_Kiwix_guy/Landing "
export HOMEPAGE= " <your_homepage_domain>:4399 " # this is a placeholderSe le recomienda actualizar las variables de entorno en el flujo de trabajo de GitHub para garantizar la corrección de las pruebas unitarias
python scripts/generate_test_data.py Verá *.json archivos generados en la carpeta config_files. Cada archivo contiene la configuración para un ejemplo de prueba.
mkdir -p ./.auth
python browser_env/auto_login.py
Exportar OPENAI_API_KEY=your_key , una tecla API de OpenAI válida comienza con sk-
Iniciar la evaluación
python run.py
--instruction_path agent/prompts/jsons/p_cot_id_actree_2s.json # this is the reasoning agent prompt we used in the paper
--test_start_idx 0
--test_end_idx 1
--model gpt-3.5-turbo
--result_dir < your_result_dir > Este script ejecutará el primer ejemplo con el agente de razonamiento GPT-3.5. La trayectoria se guardará en <your_result_dir>/0.html
prompt = {
"intro" : < The overall guideline which includes the task description , available action , hint and others > ,
"examples" : [
(
example_1_observation ,
example_1_response
),
(
example_2_observation ,
example_2_response
),
...
],
"template" : < How to organize different information such as observation , previous action , instruction , url > ,
"meta_data" : {
"observation" : < Which observation space the agent uses > ,
"action_type" : < Which action space the agent uses > ,
"keywords" : < The keywords used in the template , the program will later enumerate all keywords in the template to see if all of them are correctly replaced with the content > ,
"prompt_constructor" : < Which prompt construtor is in used , the prompt constructor will construct the input feed to an LLM and extract the action from the generation , more details below > ,
"action_splitter" : < Inside which splitter can we extract the action , used by the prompt constructor >
}
}construct : construir el alimento de entrada a un LLM_extract_action : dada la generación de un LLM, cómo extraer la frase que corresponde a la acción Si usa nuestro entorno o datos, cite nuestro documento:
@article{zhou2023webarena,
title={WebArena: A Realistic Web Environment for Building Autonomous Agents},
author={Zhou, Shuyan and Xu, Frank F and Zhu, Hao and Zhou, Xuhui and Lo, Robert and Sridhar, Abishek and Cheng, Xianyi and Bisk, Yonatan and Fried, Daniel and Alon, Uri and others},
journal={arXiv preprint arXiv:2307.13854},
year={2023}
}