[محتويات المعيار] ♦ [البدء] ♦ [العرض التجريبي المباشر] ♦ [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 في بيئة BrowserGym:
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 في بيئة BrowserGym:
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},
}