[Isi Tolok Ukur] ♦ [Memulai] ♦ [Demo Langsung] ♦ [BrowserGym] ♦ [Mengutip Karya Ini]
[ICML 2024] WorkArena: Seberapa Mampukah Agen Web dalam Menyelesaikan Tugas Pekerjaan Pengetahuan Umum? [Kertas]
WorkArena++: Menuju Perencanaan Komposisi dan Tugas Kerja Pengetahuan Umum Berbasis Penalaran [Makalah]
WorkArena
adalah rangkaian tugas berbasis browser yang disesuaikan untuk mengukur efektivitas agen web dalam mendukung tugas rutin bagi pekerja berpengetahuan. Dengan memanfaatkan platform ServiceNow yang ada di mana-mana, tolok ukur ini akan berperan penting dalam menilai meluasnya otomatisasi semacam itu di lingkungan kerja pengetahuan modern.
WorkArena disertakan dalam BrowserGym, lingkungan gym percakapan untuk evaluasi agen web.
Untuk menyiapkan WorkArena, Anda perlu mendapatkan instans ServiceNow Anda sendiri, menginstal paket Python kami, dan mengunggah beberapa data ke instans Anda. Ikuti langkah-langkah di bawah ini untuk mencapainya.
Request an instance
dan pilih rilis Washington
(menginisialisasi instance akan memakan waktu beberapa menit)SNOW_INSTANCE_URL
: URL instans pengembang ServiceNow AndaSNOW_INSTANCE_UNAME
: Nama pengguna harus "admin"SNOW_INSTANCE_PWD
: Kata sandinya, pastikan Anda menempatkan nilai dalam tanda kutip "" dan berhati-hatilah untuk keluar dari karakter shell khusus. Menjalankan echo $SNOW_INSTANCE_PWD
akan mencetak kata sandi yang benar.Peringatan: Jangan ragu untuk melihat-lihat platform, tapi pastikan Anda mengembalikan perubahan apa pun (misalnya, perubahan pada tampilan daftar, menyematkan beberapa menu, dll.) karena perubahan ini akan terus berlanjut dan memengaruhi proses pembandingan.
Jalankan perintah berikut untuk menginstal WorkArena di lingkungan BrowserGym:
pip install browsergym
Kemudian, instal Penulis Drama:
playwright install
Terakhir, jalankan perintah ini di terminal untuk mengunggah data benchmark ke instans ServiceNow Anda:
workarena-install
Instalasi Anda sekarang selesai! ?
Saat ini, WorkArena-L1 mencakup 19,912
instance unik yang diambil dari 33
tugas yang mencakup komponen utama antarmuka pengguna ServiceNow, atau disebut sebagai tugas "atomik". WorkArena++ berisi 682 tugas, masing-masing tugas mengambil sampel dari ribuan konfigurasi potensial. WorkArena++ menggunakan komponen atom yang disajikan di WorkArena, dan menyusunnya menjadi kasus penggunaan dunia nyata yang mengevaluasi kemampuan perencanaan, penalaran, dan menghafal agen.
Video berikut menunjukkan agen yang dibangun berdasarkan GPT-4-vision
berinteraksi dengan setiap komponen atom benchmark. Seperti yang ditekankan oleh hasil kami, tolok ukur ini tidak terselesaikan sehingga kinerja agen tidak selalu tepat sasaran.
Sasaran: Agen harus mencari informasi spesifik di basis pengetahuan perusahaan.
Agen berinteraksi dengan pengguna melalui antarmuka percakapan BrowserGym.
Sasaran: Agen harus mengisi formulir kompleks dengan nilai spesifik untuk setiap bidang.
Sasaran: Agen harus memesan item dengan konfigurasi tertentu dari katalog layanan perusahaan.
Sasaran: Agen harus memfilter daftar berdasarkan beberapa spesifikasi.
Dalam contoh ini, agen kesulitan memanipulasi UI dan gagal membuat filter.
Sasaran: Agen harus menavigasi ke aplikasi tertentu menggunakan menu utama.
Sasaran: Agen harus menjawab pertanyaan yang memerlukan pembacaan bagan dan (opsional) melakukan penalaran sederhana terhadap bagan tersebut.
Catatan: Untuk tujuan demonstrasi, manusia mengendalikan kursor karena ini adalah tugas pengambilan murni
Untuk menyiapkan WorkArena, Anda perlu mendapatkan instans ServiceNow Anda sendiri, menginstal paket Python kami, dan mengunggah beberapa data ke instans Anda. Ikuti langkah-langkah di bawah ini untuk mencapainya.
Request an instance
dan pilih rilis Washington
(menginisialisasi instance akan memakan waktu beberapa menit)SNOW_INSTANCE_URL
: URL instans pengembang ServiceNow AndaSNOW_INSTANCE_UNAME
: Nama pengguna harus "admin"SNOW_INSTANCE_PWD
: Kata sandinya, pastikan Anda menempatkan nilainya dalam tanda kutip tunggal '' dan berhati-hatilah untuk keluar dari karakter shell khusus. Menjalankan echo $SNOW_INSTANCE_PWD
akan mencetak kata sandi yang benar.Peringatan: Jangan ragu untuk melihat-lihat platform, tapi pastikan Anda mengembalikan perubahan apa pun (misalnya, perubahan pada tampilan daftar, menyematkan beberapa menu, dll.) karena perubahan ini akan terus berlanjut dan memengaruhi proses pembandingan.
Jalankan perintah berikut untuk menginstal WorkArena di lingkungan BrowserGym:
pip install browsergym-workarena
Kemudian, instal Penulis Drama:
playwright install
Terakhir, jalankan perintah ini di terminal untuk mengunggah data benchmark ke instans ServiceNow Anda:
workarena-install
Instalasi Anda sekarang selesai! ?
Jalankan kode ini untuk melihat WorkArena beraksi.
Catatan: contoh berikut menjalankan fungsi oracle (cheat) WorkArena untuk menyelesaikan setiap tugas. Untuk mengevaluasi agen, panggilan ke env.step()
harus digunakan.
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
untuk mengambil contoh tugas 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 ()
Catatan: contoh berikut menjalankan fungsi oracle (cheat) WorkArena untuk menyelesaikan setiap tugas. Untuk mengevaluasi agen, panggilan ke env.step()
harus digunakan.
Silakan gunakan BibTeX berikut untuk mengutip karya kami:
@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},
}