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

پیرالل ایجنٹ ڈیموز تب تک اچھے لگتے ہیں جب تک دو ٹاسک ایک ہی ماؤس کے لیے لڑنا شروع نہ کر دیں۔

ایک ٹاسک کسی ویب سائٹ پر لاگ ان کرتا ہے۔ دوسرا ٹاسک براؤزر کھولتا ہے۔ تیسرا ٹاسک ایک سادہ سوال کا جواب دینے کی کوشش کرتا ہے۔ اچانک، سسٹم غلط جگہ کلک کر دیتا ہے یا غلط رن (run) کو کینسل کر دیتا ہے۔ یہ پرامپٹ (prompt) کا مسئلہ نہیں ہے۔ یہ وسائل (resource) کا مسئلہ ہے۔

میں نے یہ CliGate بناتے وقت سیکھا۔ مجھے احساس ہوا کہ اگرچہ کوڈ کے ٹاسک پیرالل (parallel) چل سکتے ہیں، لیکن ڈیسک ٹاپ مختلف ہے۔ آپ کے پاس صرف ایک کی بورڈ، ایک ماؤس اور ایک اسکرین ہوتی ہے۔ اگر دو ایجنٹس اس سطح پر قبضہ کرنے کی کوشش کریں گے، تو وہ ایک دوسرے کے کام میں رکاوٹ ڈالیں گے۔

میرا پہلا خیال یہ تھا کہ جب نیا ٹاسک آئے تو پرانے ٹاسک کو کینسل کر دیا جائے۔ یہ ایک غلطی تھی۔ اسٹیٹس اپ ڈیٹ (status update) مانگنے والے صارف کو لاگ ان کے عمل کو ختم نہیں کرنا چاہیے۔

مجھے قواعد تبدیل کرنے پڑے۔

ایجنٹ کی بھروسہ مندی کے لیے نئے قواعد:

  • آزاد ٹاسک پیرالل چلتے ہیں۔
  • ڈیسک ٹاپ کی ضرورت والے ٹاسک کو قطار (queue) میں ہونا چاہیے۔
  • کینسل صرف تب ہوتا ہے جب صارف کہے۔

CliGate میں، ڈیسک ٹاپ ان پٹ ایک لیز (lease) کی طرح کام کرتا ہے۔ ایک ٹاسک ڈیسک ٹاپ پر قبضہ رکھتا ہے۔ دوسرے ٹاسک اپنی باری کا انتظار کرتے ہیں۔

نیا لاجک (logic) اس طرح کام کرتا ہے:

  • ایک نیا ٹاسک آتا ہے۔
  • کیا اسے ڈیسک ٹاپ کی ضرورت ہے؟
  • اگر نہیں، تو اسے پیرالل چلائیں۔
  • اگر ہاں اور ڈیسک ٹاپ خالی ہے، تو اسے لے لیں۔
  • اگر ہاں اور ڈیسک ٹاپ مصروف ہے، تو قطار (queue) میں شامل ہو جائیں۔
  • صرف تب رکیں جب صارف کہے۔

بار بار کوشش کرنا (retries) چیزوں کو مزید خراب کر سکتا ہے۔ اگر ایک ٹاسک ماؤس حاصل کرنے کی کوشش کرتا رہے جبکہ دوسرا ٹاسک ٹائپ کر رہا ہو، تو یہ مداخلت پیدا کرتا ہے۔ اس کا حل زیادہ شدت سے دوبارہ کوشش کرنا نہیں ہے۔ اس کا حل ایماندار ہونا ہے۔ اسسٹنٹ کو کہنا چاہیے: "ڈیسک ٹاپ مصروف ہے۔ میں قطار میں ہوں۔ جب یہ خالی ہو جائے گا تو میں شروع کر دوں گا۔"

یہ ناکامی کو ایک قابلِ پیش گوئی رویے میں بدل دیتا ہے۔

میں نے ایک سخت اصول بھی شامل کیا: ایک ایجنٹ خود کو کینسل نہیں کر سکتا۔ یہ ایجنٹ کو گھبراہٹ میں اپنا آف سوئچ کلک کرنے سے روکتا ہے۔

AI ٹولز بنانا اکثر چالاک ہونے کے بجائے سادہ ہونے کے بارے میں ہوتا ہے۔

  • اگر ٹاسک آپس میں ٹکرا نہیں رہے، تو انہیں چلنے دیں۔
  • اگر وہ کسی جسمانی وسیلے (physical resource) پر ٹکراتے ہیں، تو انہیں قطار میں ڈال دیں۔
  • اگر صارف اسٹیٹس پوچھے، تو اسٹیٹس دیں۔
  • اگر صارف کہے رک جاؤ، تو رک جائیں۔

یہ اسسٹنٹ کو زیادہ انسانی احساس دیتا ہے۔ یہ کنٹرول کے لیے لڑنا بند کر دیتا ہے اور ایک ایسے آپریٹر کی طرح کام کرنا شروع کر دیتا ہے جو سوال اور حکم کے درمیان فرق سمجھتا ہو۔

اگر آپ کا AI ڈیسک ٹاپ کو چھوتا ہے، تو یہ یاد رکھیں: پیرالل ٹاسک ٹھیک ہیں، لیکن جسمانی وسائل کو ملکیت (ownership) کی ضرورت ہوتی ہے۔

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

Optional learning community: https://t.me/GyaanSetuAi