[Содержимое тестового теста] ♦ [Начало работы] ♦ [Живая демонстрация] ♦ [BrowserGym] ♦ [Ссылка на эту работу]
[ICML 2024] WorkArena: насколько веб-агенты способны решать общие рабочие задачи? [Бумага]
WorkArena++: К композиционному планированию и рабочим задачам с общими знаниями на основе рассуждений [документ]
WorkArena
— это набор браузерных задач, предназначенных для оценки эффективности веб-агентов при выполнении рутинных задач информационных работников. Используя вездесущую платформу ServiceNow, этот тест будет способствовать оценке широко распространенного состояния такой автоматизации в современных средах интеллектуального труда.
WorkArena включена в BrowserGym, среду разговорного тренажерного зала для оценки веб-агентов.
Чтобы настроить WorkArena, вам потребуется получить собственный экземпляр ServiceNow, установить наш пакет Python и загрузить в свой экземпляр некоторые данные. Чтобы добиться этого, выполните следующие действия.
Request an instance
и выберите версию Washington
(инициализация экземпляра займет несколько минут).SNOW_INSTANCE_URL
: URL-адрес вашего экземпляра разработчика ServiceNow.SNOW_INSTANCE_UNAME
: имя пользователя должно быть «admin».SNOW_INSTANCE_PWD
: пароль. Убедитесь, что вы поместили значение в кавычки «» и помните об экранировании специальных символов оболочки. Запуск echo $SNOW_INSTANCE_PWD
должен вывести правильный пароль.Предупреждение. Не стесняйтесь осматривать платформу, но убедитесь, что вы отменили любые изменения (например, изменения в представлениях списков, закрепление некоторых меню и т. д.), поскольку эти изменения будут постоянными и повлияют на процесс сравнительного анализа.
Запустите следующую команду, чтобы установить WorkArena в среде BrowswerGym:
pip install browsergym
Затем установите Драматург:
playwright install
Наконец, запустите эту команду в терминале, чтобы загрузить тестовые данные в ваш экземпляр ServiceNow:
workarena-install
Ваша установка завершена! ?
На данный момент WorkArena-L1 включает 19,912
уникальных экземпляров, взятых из 33
задач, охватывающих основные компоненты пользовательского интерфейса ServiceNow, иначе называемых «атомарными» задачами. WorkArena++ содержит 682 задачи, каждая из которых представляет собой выборку из тысяч потенциальных конфигураций. WorkArena++ использует атомарные компоненты, представленные в WorkArena, и объединяет их в реальные варианты использования, оценивающие способности агентов к планированию, рассуждению и запоминанию.
В следующих видеороликах показан агент, созданный на основе GPT-4-vision
взаимодействующий с каждым атомарным компонентом теста. Как подчеркивают наши результаты, этот тест не решен, и поэтому производительность агента не всегда находится на должном уровне.
Цель: Агент должен выполнить поиск конкретной информации в базе знаний компании.
Агент взаимодействует с пользователем через диалоговый интерфейс BrowserGym.
Цель: агент должен заполнить сложную форму с конкретными значениями для каждого поля.
Цель: агент должен заказать элементы определенной конфигурации из каталога услуг компании.
Цель: агент должен отфильтровать список по некоторым спецификациям.
В этом примере агент пытается манипулировать пользовательским интерфейсом и не может создать фильтр.
Цель: агент должен перейти к конкретному приложению с помощью главного меню.
Цель: агент должен ответить на вопрос, требующий чтения таблиц и (необязательно) выполнения простых рассуждений по ним.
Примечание. В демонстрационных целях курсором управляет человек, поскольку это задача чистого поиска.
Чтобы настроить WorkArena, вам потребуется получить собственный экземпляр ServiceNow, установить наш пакет Python и загрузить в свой экземпляр некоторые данные. Чтобы добиться этого, выполните следующие действия.
Request an instance
и выберите версию Washington
(инициализация экземпляра займет несколько минут).SNOW_INSTANCE_URL
: URL-адрес вашего экземпляра разработчика ServiceNow.SNOW_INSTANCE_UNAME
: имя пользователя должно быть «admin».SNOW_INSTANCE_PWD
: пароль. Обязательно заключите значение в одинарные кавычки и помните об экранировании специальных символов оболочки. Запуск echo $SNOW_INSTANCE_PWD
должен вывести правильный пароль.Предупреждение. Не стесняйтесь осматривать платформу, но убедитесь, что вы отменили любые изменения (например, изменения в представлениях списков, закрепление некоторых меню и т. д.), поскольку эти изменения будут постоянными и повлияют на процесс сравнительного анализа.
Запустите следующую команду, чтобы установить WorkArena в среде BrowswerGym:
pip install browsergym-workarena
Затем установите Драматург:
playwright install
Наконец, запустите эту команду в терминале, чтобы загрузить тестовые данные в ваш экземпляр ServiceNow:
workarena-install
Ваша установка завершена! ?
Запустите этот код, чтобы увидеть WorkArena в действии.
Примечание. В следующем примере выполняется функция оракула (чит) WorkArena для решения каждой задачи. Для оценки агента вместо этого необходимо использовать вызовы 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
чтобы просмотреть примеры задач 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 ()
Примечание. В следующем примере выполняется функция оракула (чит) WorkArena для решения каждой задачи. Для оценки агента вместо этого необходимо использовать вызовы env.step()
.
Пожалуйста, используйте следующий BibTeX для цитирования нашей работы:
@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},
}