[เนื้อหามาตรฐาน] ♦ [เริ่มต้นใช้งาน] ♦ [สาธิตสด] ♦ [BrowserGym] ♦ [อ้างอิงงานนี้]
[ICML 2024] WorkArena: Web Agents สามารถแก้ไขงานความรู้ทั่วไปได้อย่างไร [กระดาษ]
WorkArena++: สู่การวางแผนองค์ประกอบและงานความรู้ทั่วไปที่ใช้เหตุผลเป็นหลัก [กระดาษ]
WorkArena
คือชุดงานบนเบราว์เซอร์ที่ปรับแต่งมาเพื่อวัดประสิทธิภาพของตัวแทนเว็บในการสนับสนุนงานประจำสำหรับผู้ปฏิบัติงานที่มีความรู้ ด้วยการควบคุมแพลตฟอร์ม ServiceNow ที่แพร่หลาย มาตรฐานนี้จะเป็นเครื่องมือในการประเมินสถานะที่แพร่หลายของระบบอัตโนมัติดังกล่าวในสภาพแวดล้อมการทำงานที่มีความรู้สมัยใหม่
WorkArena รวมอยู่ใน BrowserGym ซึ่งเป็นสภาพแวดล้อมยิมสนทนาสำหรับการประเมินตัวแทนเว็บ
ในการตั้งค่า WorkArena คุณจะต้องมีอินสแตนซ์ ServiceNow ของคุณเอง ติดตั้งแพ็คเกจ Python ของเรา และอัปโหลดข้อมูลบางส่วนไปยังอินสแตนซ์ของคุณ ทำตามขั้นตอนด้านล่างเพื่อให้บรรลุเป้าหมายนี้
Request an instance
และเลือกรุ่น Washington
(การเริ่มต้นอินสแตนซ์จะใช้เวลาสักครู่)SNOW_INSTANCE_URL
: URL ของอินสแตนซ์นักพัฒนา ServiceNow ของคุณSNOW_INSTANCE_UNAME
: ชื่อผู้ใช้ควรเป็น "ผู้ดูแลระบบ"SNOW_INSTANCE_PWD
: รหัสผ่าน ตรวจสอบให้แน่ใจว่าคุณใส่ค่าในเครื่องหมายคำพูด "" และระวังการหลีกอักขระเชลล์พิเศษ การรัน echo $SNOW_INSTANCE_PWD
ควรพิมพ์รหัสผ่านที่ถูกต้องคำเตือน: อย่าลังเลที่จะมองไปรอบๆ แพลตฟอร์ม แต่โปรดตรวจสอบให้แน่ใจว่าคุณได้คืนค่าการเปลี่ยนแปลงใดๆ (เช่น การเปลี่ยนแปลงมุมมองรายการ การปักหมุดบางเมนู ฯลฯ) เนื่องจากการเปลี่ยนแปลงเหล่านี้จะคงอยู่และส่งผลต่อกระบวนการเปรียบเทียบ
เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง WorkArena ในสภาพแวดล้อม BrowswerGym:
pip install browsergym
จากนั้นติดตั้ง Playwright:
playwright install
สุดท้าย ให้รันคำสั่งนี้ในเทอร์มินัลเพื่ออัปโหลดข้อมูลการวัดประสิทธิภาพไปยังอินสแตนซ์ ServiceNow ของคุณ:
workarena-install
การติดตั้งของคุณเสร็จสมบูรณ์แล้ว! -
ในขณะนี้ WorkArena-L1 มีอินสแตนซ์ที่ไม่ซ้ำกัน 19,912
อินสแตนซ์ที่ดึงมาจาก 33
งาน ซึ่งครอบคลุมองค์ประกอบหลักของอินเทอร์เฟซผู้ใช้ ServiceNow หรือที่เรียกว่างาน "อะตอมมิก" WorkArena++ มี 682 งาน โดยแต่ละงานสุ่มตัวอย่างจากการกำหนดค่าที่เป็นไปได้หลายพันรายการ WorkArena++ ใช้ส่วนประกอบอะตอมมิกที่นำเสนอใน WorkArena และเรียบเรียงเป็นกรณีการใช้งานจริงเพื่อประเมินการวางแผน การใช้เหตุผล และการจดจำความสามารถของเจ้าหน้าที่
วิดีโอต่อไปนี้แสดงเอเจนต์ที่สร้างขึ้นบน GPT-4-vision
ที่โต้ตอบกับองค์ประกอบอะตอมมิกทุกตัวของการวัดประสิทธิภาพ ตามที่เน้นย้ำในผลลัพธ์ของเรา มาตรฐานนี้ไม่ได้รับการแก้ไข ดังนั้นประสิทธิภาพของตัวแทนจึงไม่ได้ตรงประเด็นเสมอไป
เป้าหมาย: ตัวแทนจะต้องค้นหาข้อมูลเฉพาะในฐานความรู้ของบริษัท
ตัวแทนโต้ตอบกับผู้ใช้ผ่านอินเทอร์เฟซการสนทนาของ BrowserGym
เป้าหมาย: ตัวแทนจะต้องกรอกแบบฟอร์มที่ซับซ้อนด้วยค่าเฉพาะสำหรับแต่ละฟิลด์
เป้าหมาย: ตัวแทนต้องสั่งซื้อสินค้าที่มีการกำหนดค่าเฉพาะจากแค็ตตาล็อกบริการของบริษัท
เป้าหมาย: ตัวแทนต้องกรองรายการตามข้อกำหนดบางอย่าง
ในตัวอย่างนี้ เอเจนต์ประสบปัญหาในการจัดการ UI และไม่สามารถสร้างตัวกรองได้
เป้าหมาย: ตัวแทนต้องนำทางไปยังแอปพลิเคชันเฉพาะโดยใช้เมนูหลัก
เป้าหมาย: ตัวแทนจะต้องตอบคำถามที่ต้องอ่านแผนภูมิและ (เป็นทางเลือก) ดำเนินการให้เหตุผลง่ายๆ
หมายเหตุ: เพื่อวัตถุประสงค์ในการสาธิต มนุษย์กำลังควบคุมเคอร์เซอร์เนื่องจากนี่เป็นงานดึงข้อมูลเพียงอย่างเดียว
ในการตั้งค่า WorkArena คุณจะต้องมีอินสแตนซ์ ServiceNow ของคุณเอง ติดตั้งแพ็คเกจ Python ของเรา และอัปโหลดข้อมูลบางส่วนไปยังอินสแตนซ์ของคุณ ทำตามขั้นตอนด้านล่างเพื่อให้บรรลุเป้าหมายนี้
Request an instance
และเลือกรุ่น Washington
(การเริ่มต้นอินสแตนซ์จะใช้เวลาสักครู่)SNOW_INSTANCE_URL
: URL ของอินสแตนซ์นักพัฒนา ServiceNow ของคุณSNOW_INSTANCE_UNAME
: ชื่อผู้ใช้ควรเป็น "ผู้ดูแลระบบ"SNOW_INSTANCE_PWD
: รหัสผ่าน ตรวจสอบให้แน่ใจว่าคุณใส่ค่าไว้ในเครื่องหมายคำพูดเดี่ยว '' และระวังการหลีกอักขระเชลล์พิเศษ การรัน echo $SNOW_INSTANCE_PWD
ควรพิมพ์รหัสผ่านที่ถูกต้องคำเตือน: อย่าลังเลที่จะมองไปรอบๆ แพลตฟอร์ม แต่โปรดตรวจสอบให้แน่ใจว่าคุณได้คืนค่าการเปลี่ยนแปลงใดๆ (เช่น การเปลี่ยนแปลงมุมมองรายการ การปักหมุดบางเมนู ฯลฯ) เนื่องจากการเปลี่ยนแปลงเหล่านี้จะคงอยู่และส่งผลต่อกระบวนการเปรียบเทียบ
เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง WorkArena ในสภาพแวดล้อม BrowswerGym:
pip install browsergym-workarena
จากนั้นติดตั้ง Playwright:
playwright install
สุดท้าย ให้รันคำสั่งนี้ในเทอร์มินัลเพื่ออัปโหลดข้อมูลการวัดประสิทธิภาพไปยังอินสแตนซ์ ServiceNow ของคุณ:
workarena-install
การติดตั้งของคุณเสร็จสมบูรณ์แล้ว! -
เรียกใช้โค้ดนี้เพื่อดูการทำงานของ WorkArena
หมายเหตุ: ตัวอย่างต่อไปนี้เรียกใช้ฟังก์ชัน oracle (cheat) ของ 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 ()
หมายเหตุ: ตัวอย่างต่อไปนี้เรียกใช้ฟังก์ชัน oracle (cheat) ของ 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},
}