𝗠𝘆 𝗧𝘄𝗼 𝗔𝗜 𝗧𝗮𝘀𝗸𝘀 𝗞𝗲𝗽𝘁 𝗙𝗶𝗴𝗵𝘁𝗶𝗻𝗴 𝗳𝗼𝗿 𝘁𝗵𝗲 𝗦𝗮𝗺𝗲 𝗠𝗼𝘂𝘀𝗲
पॅरलल एजंट डेमो पाहण्यास उत्तम वाटतात. पण जेव्हा दोन टास्क एकाच माऊसचा वापर करण्याचा प्रयत्न करतात, तेव्हा ते अपयशी ठरतात.
एक टास्क एखाद्या साइटवर लॉग इन करतो. दुसरा ब्राउझर उघडतो. तिसरा टास्क स्टेटस अपडेट विचारतो. अचानक, सिस्टम चुकीच्या ठिकाणी क्लिक करते किंवा चुकीची रन रद्द करते. ही लॉजिकची चूक नाही. हा रिसोर्स कॉन्टेंशनचा (resource contention) प्रश्न आहे.
डेस्कटॉप ऑटोमेशनसाठी माझे स्थानिक कंट्रोल प्लेन CliGate तयार करताना मला हे समजले.
कोडसाठी पॅरललिझम (Parallelism) काम करतो. रनटाइम सेशन सुरू असताना तुम्ही हवामानाची माहिती शोधू शकता. बॅकग्राउंड समरीसाठी काहीही ब्लॉक करण्याची गरज नसते.
डेस्कटॉप वेगळे आहे. तुमच्याकडे एक फिजिकल कीबोर्ड, एक माऊस आणि एक स्क्रीन असते. जर दोन एजंट्सनी त्या सरफेसवर ताबा मिळवण्याचा प्रयत्न केला, तर ते एकमेकांचे नुकसान करतात.
जेव्हा नवीन टास्क येतो, तेव्हा जुना टास्क रद्द करणे ही माझी पहिली प्रतिक्रिया होती. पण हे चुकीचे होते. "काम किती झाले?" असे विचारणाऱ्या युजरमुळे लॉग इन फ्लो थांबवला जाऊ नये.
मी कॉन्करन्सीला (concurrency) प्रॉम्प्टची समस्या मानणे थांबवले. ही रिसोर्सची समस्या आहे.
मी तीन साधे नियम लागू केले:
- स्वतंत्र टास्क पॅरललमध्ये चालतात.
- ज्या टास्कना डेस्कटॉपची गरज आहे, त्यांना रांगेत (queue) राहावे लागेल.
- युजरने विचारल्याशिवाय कॅन्सलेशन होत नाही.
CliGate मध्ये, डेस्कटॉप इनपुट एका लीजप्रमाणे (lease) काम करते. जो टास्क माऊस वापरतो, तो डेस्कटॉपचा धारक (holder) बनतो. इतर टास्कना प्रतीक्षा करावी लागते.
नवीन लॉजिक या प्रवाहाचे अनुसरण करते:
- नवीन टास्क येतो.
- त्याला डेस्कटॉपची गरज आहे का?
- नसेल तर, तो पॅरललमध्ये चालवा.
- असेल आणि डेस्कटॉप मोकळा असेल, तर तो घ्या.
- असेल आणि डेस्कटॉप व्यस्त असेल, तर त्याला रांगेत (queue) टाका.
- युजरने थांबायला सांगितले तरच रद्द करा.
रिट्राय (Retries) मुळे अनेकदा डेस्कटॉप ऑटोमेशन अधिक बिघडते. जर दुसरा टास्क वारंवार माऊस पकडण्याचा प्रयत्न करत असेल, तर हस्तक्षेप वाढतो. अधिक प्रयत्न करण्याऐवजी, असिस्टंटने असे म्हणावे: "डेस्कटॉप व्यस्त आहे. मी रांगेत आहे. तो मोकळा झाल्यावर मी सुरू करेन."
यामुळे अपयशाचे रूपांतर एका अंदाजित (predictable) वर्तनात होते.
मी एक कडक नियम देखील जोडला: एजंट स्वतःची सक्रिय रन (active run) रद्द करू शकत नाही. यामुळे एजंट घाबरून स्वतःचे 'ऑफ स्विच' क्लिक करण्यापासून वाचतो.
एआयचे (AI) वाईट वर्तन अनेकदा खूप हुशार बनण्याच्या प्रयत्नातून येते. युजर्सना त्यापेक्षा खूप साध्या गोष्टींची गरज असते:
- जे टास्क एकमेकांशी संघर्ष करत नाहीत, ते चालवा.
- जे टास्क फिजिकल रिसोर्सेससाठी संघर्ष करतात, त्यांना रांगेत ठेवा.
- स्टेटस लॉग्समधून स्टेटस संबंधी प्रश्नांची उत्तरे द्या.
- युजरने थांबायला सांगितले की थांबवा.
जर तुम्ही डेस्कटॉपला स्पर्श करणारी AI टूल्स बनवत असाल, तर हे लक्षात ठेवा: पॅरलल टास्क ठीक आहेत, पण फिजिकल रिसोर्सेससाठी स्पष्ट मालकी हक्क (ownership) आवश्यक आहे.
Source: https://dev.to/codekingai/my-two-ai-tasks-kept-fighting-for-the-same-mouse-1hij