𝗠𝘆 𝗧𝘄𝗼 𝗔𝗜 𝗧𝗮𝘀𝗸𝘀 𝗞𝗲𝗽𝘁 𝗙𝗶𝗴𝗵𝘁𝗶𝗻𝗴 𝗳𝗼𝗿 𝘁𝗵𝗲 𝗦𝗮𝗺𝗲 𝗠𝗼𝘂𝘀𝗲

समांतर (Parallel) एजंट डेमो तेव्हापर्यंत उत्तम दिसतात जोपर्यंत दोन टास्क एकाच माऊसचा वापर करण्याचा प्रयत्न करत नाहीत.

एक टास्क एखाद्या साइटवर लॉग इन करतो. दुसरा ब्राउझर उघडतो. तिसरा टास्क एका साध्या प्रश्नाचे उत्तर देण्याचा प्रयत्न करतो. अचानक, सिस्टम चुकीच्या ठिकाणी क्लिक करते किंवा त्रुटी (failure) दर्शवते. ही बुद्धिमत्तेची समस्या नाही. ही संसाधनांची (resource) समस्या आहे.

CliGate तयार करताना, मला डेस्कटॉप ऑटोमेशनबद्दल एक कठीण धडा मिळाला.

कोड टास्क समांतरपणे चालू शकतात. रनटाइम सेशन सुरू असताना तुम्ही हवामान तपासू शकता. बॅकग्राउंड सारांश (summaries) कोणत्याही गोष्टीला अडथळा आणण्याची गरज नसते.

डेस्कटॉप वेगळा आहे. तुमच्याकडे एक कीबोर्ड, एक माऊस आणि एक स्क्रीन असते. जर दोन एजंट्सना वाटले की त्या पृष्ठभागावर (surface) त्यांचा अधिकार आहे, तर ते एकमेकांचे काम बिघडवतात.

जेव्हा नवीन टास्क येतो, तेव्हा जुना टास्क रद्द करणे ही माझी पहिली प्रतिक्रिया होती. पण हे चुकीचे होते.

"काम किती झाले?" असे विचारणाऱ्या वापरकर्त्यामुळे लॉग इन प्रक्रिया थांबवता कामा नये. हवामानाबद्दल विचारणाऱ्या वापरकर्त्यामुळे डेस्कटॉप टास्क थांबवता कामा नये. सर्वात मोठी त्रुटी (bug) तेव्हा येते जेव्हा एखादा एजंट दुसरा सक्रिय रन पाहतो आणि चुकून स्वतःलाच रद्द करतो.

मला concurrency ला प्रॉम्प्टची समस्या मानणे थांबवावे लागले. मला ती संसाधनांची (resource) समस्या म्हणून हाताळावी लागली.

मी तीन नवीन नियम ठरवले:

  • स्वतंत्र टास्क समांतरपणे चालतात.
  • ज्या टास्कना डेस्कटॉपची आवश्यकता आहे, त्यांना रांगेत (queue) राहावे लागेल.
  • वापरकर्त्याने विचारल्याशिवाय रद्द (cancellation) केले जाणार नाही.

CliGate मध्ये, डेस्कटॉप इनपुट 'लीज' (lease) प्रमाणे काम करते. जर एखादा टास्क माऊस वापरत असेल, तर तो लीज धारण करतो. इतर टास्कना प्रतीक्षा करावी लागेल.

नवीन लॉजिक या प्रवाहाचे अनुसरण करते:

  • नवीन टास्क येतो.
  • त्याला डेस्कटॉपची गरज आहे का?
  • नसेल तर, तो समांतरपणे चालवा.
  • असेल आणि डेस्कटॉप मोकळा असेल, तर तो वापरा.
  • असेल आणि डेस्कटॉप व्यस्त असेल, तर त्याला रांगेत (queue) टाका.
  • वापरकर्त्याने 'थांब' म्हटल्यावरच रद्द करा.

या बदलामुळे गोंधळात टाकणाऱ्या त्रुटींचे रूपांतर अंदाजित वर्तनात झाले. क्लिक पुन्हा करण्याचा प्रयत्न करून अधिक अडथळा निर्माण करण्याऐवजी, असिस्टंट आता सत्य सांगतो: "डेस्कटॉप व्यस्त आहे. मी रांगेत आहे आणि तो मोकळा झाल्यावर मी सुरू होईल."

मी स्वतःला रद्द करण्यापासून (self-cancellation) रोखण्यासाठी एक नियम देखील जोडला. एजंटने स्वतःचा सक्रिय रन कधीही रद्द करण्याच्या लक्ष्यामध्ये (target) समाविष्ट करू नये.

AI टूल्स तयार करताना तुम्ही खूप हुशार बनण्याचा प्रयत्न केला तर ते अनेकदा अपयशी ठरते. वापरकर्त्यांना जादू नको असते. त्यांना साधे लॉजिक हवे असते:

  • जर टास्कमध्ये संघर्ष नसेल, तर त्यांना चालू द्या.
  • जर भौतिक संसाधनांसाठी (physical resource) संघर्ष होत असेल, तर त्यांना रांगेत ठेवा.
  • जर वापरकर्त्याने स्टेटस विचारला, तर तो द्या.
  • जर वापरकर्त्याने थांबायला सांगितले, तर थांबवा.

जर तुमचे AI डेस्कटॉपला स्पर्श करत असेल, तर हे लक्षात ठेवा: समांतर टास्क ठीक आहेत, परंतु भौतिक संसाधनांना मालकी हक्क (ownership) आवश्यक असतो.

Source: https://dev.to/codekingai/my-two-ai-tasks-kept-fighting-for-the-same-mouse-1hij