مرکزی نیویگیشن

براؤزر ریپرز سے محدود کمپیوٹر استعمال تک

زیادہ قابل ایجنٹس کو تجریدات سے بھرپور براؤزر خود کاری کم اور احتیاط سے محدود کیے گئے عمل درآمدی رن ٹائمز زیادہ درکار ہیں۔

انتظامی خلاصہ

  • کمپیوٹر کا استعمال کیا ہے اور یہ اہم کیوں ہے؟ کمپیوٹر کا استعمال ایک سادہ خیال ہے جس کے اثرات وسیع ہیں: ماڈلز سے سوالوں کے جواب طلب کرنے کے بجائے ہم انہیں خود مختار طور پر سافٹ ویئر چلانے، ویب سائٹس پر جانے، فارم بھرنے، مراحل سے گزرتے ہوئے کلک کرنے اور کام ابتدا سے انتہا تک مکمل کرنے کو کہتے ہیں۔

  • اس سے حقیقی دنیا کے ایسے بہت سے کام ممکن ہو جاتے ہیں جو فی الحال مختلف انٹرفیسز میں بکھرے ہوئے ہیں، مثلاً مکمل بکنگ، برقی تجارت میں خریداری مکمل کرنا، کئی مراحل پر مشتمل سفری منصوبہ بندی اور وہ دفتری پس منظر کے عمل جن کا کوئی موزوں API متبادل نہیں۔ یہ مسائل نئے نہیں ہیں۔ نئی بات یہ ہے کہ اب انہیں عمومی مقصد کے ماڈلز سے حل کرنا قابل عمل ہے۔

  • Anthropic اور OpenAI کے حالیہ نظاموں نے ایسے ایجنٹس پیش کیے ہیں جو محض عمل نہیں کرتے بلکہ حالت پر ریزننگ کرتے، خرابیوں سے بحال ہوتے اور موقع پر ہی کام کے مطابق حل تیار کرتے ہیں۔ اس سے براؤزر ایجنٹس کے لیے ایک عمومی عمل درآمدی ماحول بن جاتا ہے، مگر فوراً ایک ڈیزائن سوال اٹھتا ہے: اس ماحول کا کتنا حصہ ماڈل کے سامنے کھولا جائے؟

  • ابتدائی نظاموں نے براؤزر کو محفوظ اور پہلے سے طے شدہ اعمال کے ایک مقررہ مجموعے میں لپیٹ کر اس کا جواب دیا۔ جیسا کہ ہم اس تحریر میں واضح کریں گے، یہ طریقہ اپنی حدود تک پہنچ رہا ہے۔

انتظامی خلاصے کی وضاحت کرتا خاکہ۔

براؤزر ایجنٹس بناتے وقت ایک مانوس رجحان ہوتا ہے: ماڈل پر بہت زیادہ اعتماد نہ کریں۔

اسی لیے ہم براؤزر کو ریپر میں لپیٹ دیتے ہیں۔ ہم کلک، ٹائپ، اسکرول، انتخاب اور read_text جیسے پہلے سے طے شدہ ٹولز فراہم کرتے ہیں۔ ہم دستاویزی آبجیکٹ ماڈل (DOM) کو سادہ بناتے ہیں۔ ہم ممکنہ اعمال کا دائرہ گھٹاتے ہیں۔ ہم اپنی بنائی ہوئی تجریدات کے ذریعے رویے کو قابل فہم اور قابل کنٹرول بنانے کی کوشش کرتے ہیں۔

یہ ایک معقول نقطۂ آغاز ہے۔ لیکن یہ بتدریج طویل مدت کے لیے غلط طرز تعمیر بھی ثابت ہو رہا ہے۔

جدید ترین ماڈلز کی بہتری کے ساتھ اب مسئلہ صرف یہ نہیں رہا کہ ماڈل کے پاس ٹولز کی کمی ہے۔ مسئلہ یہ ہے کہ ہم اسے ایسی تجریدات کے ذریعے کام کرنے پر مجبور کر رہے ہیں جو بنیادی نظام کی بہت زیادہ معلومات ہٹا دیتی ہیں۔ ہم ایک بے ترتیب اور متحرک ماحول کو اعمال کے مقررہ انٹرفیس میں سمیٹ دیتے ہیں، پھر ماڈل سے کہتے ہیں کہ معلومات کے اس نقصان کے باوجود اچھی کارکردگی دکھائے۔

یہ سمجھوتا اب کم پُرکشش ہوتا جا رہا ہے۔

جس تبدیلی کا ہم جائزہ لے رہے ہیں اسے بیان کرنا آسان ہے، مگر اس کے نتائج اہم ہیں۔ ایجنٹ کو پہلے سے طے شدہ اعمال کا انتخاب کنندہ سمجھنے کے بجائے ہم اسے محدود رن ٹائم میں کام کرنے والا پروگرام ساز سمجھتے ہیں۔

ماڈلز واقعی بہت بہتر ہو گئے ہیں اور اب انہیں آپ کی تجریدی حفاظتی رکاوٹیں نہیں چاہییں۔ انہیں کام کی منصوبہ بندی، عمل درآمد اور تکرار کے لیے اعمال کا مکمل دائرہ چاہیے، یہاں تک کہ وہ اپنا ہدف حاصل کر لیں۔

یہ تحریر اسی تبدیلی کے بارے میں ہے: تجریدات سے بھرپور براؤزر خود کاری سے محدود کمپیوٹر استعمال تک، اور یہ کہ نظام کو اس طرح ڈیزائن کرنے پر کیا بدلتا ہے۔

تجریدات کیوں ناکام ہونے لگتی ہیں

مسئلہ یہ نہیں کہ اعمال کے مقررہ انٹرفیس تصوراتی طور پر غلط ہیں۔ مسئلہ یہ ہے کہ ویب ان کے مطابق نہیں چلتا۔

تجریدات کی ناکامی کی وجوہ واضح کرتا خاکہ۔

جدید انٹرفیسز React، Vue اور Angular پر بنے ہیں، جن میں حالت کی غیر ہم وقت تازہ کاریاں، مصنوعی واقعات کے نظام اور بیرونی فریق کے ایسے ضم شدہ ویجٹس ہوتے ہیں جو مختلف اصل کے iframes میں اپنی الگ حیاتی مدت کے ساتھ کام کرتے ہیں۔ جو ریپر کہتا ہے، ”اس اندراج میں ٹائپ کریں“، وہ صرف تب درست ہے جب صفحہ ٹائپ کرنے کی آپ کی تعریف سے متفق ہو۔ بہت سے صفحات متفق نہیں ہوتے۔ قدر براہ راست مقرر کرنے سے اکثر فریم ورک کی تبدیلی شناخت کرنے کی صلاحیت مکمل طور پر نظرانداز ہو جاتی ہے۔ اندراج بھرا ہوا دکھائی دیتا ہے۔ توثیق کبھی شروع نہیں ہوتی۔ فارم بدستور ناکارہ رہتا ہے۔

آپ اسے عارضی اصلاح سے درست کر سکتے ہیں۔ آپ React کے اندراجات کے لیے خصوصی صورتیں شامل کر سکتے ہیں، توجہ مرکوز ہونے کے بعد دھندلاہٹ کے واقعات بھیج سکتے ہیں اور حالت پڑھنے سے پہلے نیٹ ورک کے غیر فعال ہونے کا انتظار کر سکتے ہیں۔ ہر عارضی اصلاح مقامی طور پر درست ہوتی ہے۔ مجموعی طور پر وہ ایسے نظام میں جمع ہو جاتی ہیں جس کی دیکھ بھال مسلسل مشکل ہوتی جاتی ہے اور جو پہلے دیکھی گئی ویب سائٹس کے لیے زیادہ مخصوص بنتا جاتا ہے۔

زیادہ بنیادی مسئلہ یہ ہے کہ آپ تجریدی پرت میں تعامل کے طریقے سے متعلق مفروضے کوڈ کر رہے ہیں، پھر معلوم ہوتا ہے کہ ویب کے مفروضے مختلف ہیں۔

جب تجرید کا سامنا حقیقی عمل سے ہوتا ہے تو کیا ہوتا ہے

مختلف اصل کے iframe میں Stripe یا Adyen کے ذریعے ضم کیے گئے ادائیگی فارم پر غور کریں۔ آپ کا ریپر براہ راست اس تک نہیں پہنچ سکتا کیونکہ وہ ایک الگ اصل میں موجود ہے۔ آپ کا read_text ٹول اس کی اندرونی حالت نہیں دیکھ سکتا۔ آپ کا ٹائپ ٹول اس کے اندراجات تک رسائی حاصل نہیں کر سکتا۔ ریپر پر مبنی ایجنٹ یہاں آ کر رک جاتا ہے۔ تجرید مرکزی دستاویز کے لیے بنائی گئی تھی۔ اصل کام ایسی جگہ موجود ہے جسے تجرید دیکھ نہیں سکتی۔

ایسی ہی عدم مطابقت کم واضح اعمال میں بھی دکھائی دیتی ہے۔ فریم ورک کے زیر کنٹرول ڈراپ ڈاؤن براہ راست کلک پر بالکل ردعمل نہیں دے سکتا کیونکہ نظر آنے والا عنصر اصل کنٹرول نہیں ہوتا۔ بنیادی حالت کی منتقلی شروع کرنے کے لیے کی بورڈ واقعات کی ترتیب درکار ہو سکتی ہے۔ باہر سے صارف انٹرفیس قابل کلک دکھائی دیتا ہے۔ تجرید کہتی ہے، ”کلک کریں“۔ کچھ نہیں ہوتا۔

یا کئی مراحل پر مشتمل ایسے عارضی دریچے کے عمل پر غور کریں جہاں نظر آنے والے DOM کی تازہ کاریاں اندرونی حالت کی تبدیلیوں سے پیچھے رہتی ہیں۔ درست اگلا عمل حالت کی ایسی منتقلی پر منحصر ہے جو ابھی ان عناصر میں ظاہر نہیں ہوئی جنہیں آپ کا ریپر دیکھ سکتا ہے۔ ریپر پر مبنی ایجنٹ بالآخر وقت سے پہلے عمل کرتا یا پرانی حالت پڑھتا ہے، کیونکہ وہ نظام کے نامکمل منظر پر کام کر رہا ہوتا ہے۔

ہر صورت میں تجرید وہ اشارے چھپا دیتی ہے جن کی ایجنٹ کو حقیقتاً ضرورت ہوتی ہے۔

نچلی سطح پر کام کرنے والا ماڈل زندہ DOM کا معائنہ کر کے، فریم کی سرحدوں پر ریزننگ کر کے اور مخصوص سطح کے لیے تعامل کی ترتیب بنا کر ان حالات سے نمٹ سکتا ہے۔ ایسا نہیں کہ ماڈل فطری طور پر زیادہ ذہین ہے۔ بلکہ اسے ان معلومات تک رسائی حاصل ہے جو پہلے ہٹا دی گئی تھیں۔

طرز تعمیر میں تبدیلی

ہم جس تبدیلی کی جانب بڑھ رہے ہیں اسے بیان کرنا آسان ہے: ماڈل سے پہلے سے طے شدہ اعمال منتخب کرانے کے بجائے ہم اسے نچلی سطح کی عمل درآمدی سطح دیتے ہیں اور تجریدی ڈیزائن کے بجائے رن ٹائم پالیسی کے ذریعے اسے محدود کرتے ہیں۔

یہ ڈیزائن صنعت کی ایک وسیع تر تبدیلی سے نکلا ہے جو نچلی سطح کے بنیادی ٹولز کو ترجیح دینے لگی ہے۔ یہ ٹولز رن ٹائم پر اصلاح اور اعلیٰ معیار کا کوڈ بنانے کی ایجنٹ کی فطری صلاحیت سے فائدہ اٹھاتے ہیں، جبکہ سخت کوڈ شدہ مخصوص ٹولز مضبوط تو ہوتے ہیں مگر مختلف ماحول کے مطابق ڈھلنے کی ماڈل کی صلاحیت چھین لیتے ہیں۔

بہت سے ڈویلپرز کے ٹول مجموعے میں Claude Code کی بنیادی پسند کے طور پر کامیابی اور صنعت میں ٹرمینل پر مبنی ایجنٹس کی طرف وسیع پیش رفت پر غور کریں۔ Claude Code کا سب سے بڑا فائدہ خود ماڈل نہیں بلکہ نچلی سطح کا ہارنیس ہے۔ ماڈل کو کم، زیادہ ماڈیولر اور نچلی سطح کے ٹولز دینا، یعنی۔ ٹرمینل، ٹول استعمال کرنے کی بہتر کارکردگی دیتا ہے، بنیادی طور پر اس لیے کہ ایجنٹ سیاق ونڈو کو بھر دینے والے عمومی ٹولز استعمال کرنے کے بجائے موجودہ کام پر ریزننگ اور اس کے لیے حسب ضرورت اسکرپٹس بنا سکتا ہے۔

براؤزر خود کاری میں عملی طور پر اس کا مطلب ہے کہ ماڈل ہر چیز کو پہلے سے بنے اعمال کے مقررہ مجموعے سے جوڑنے کے بجائے صفحے کی زندہ حالت کا براہ راست معائنہ، فریمز میں آمدورفت اور موجودہ انٹرفیس کے مطابق مخصوص تعاملی کوڈ تیار کر سکتا ہے۔

ماڈل انتخاب کنندہ کی طرح کم اور رن ٹائم مصنف کی طرح زیادہ برتاؤ کرتا ہے۔ یہ موجودہ حالت کا معائنہ کرتا، انٹرفیس پر ریزننگ کرتا اور مخصوص صورت حال کے لیے تعامل کی منطق تیار کرتا ہے۔ یہ کئی مراحل کی ترتیب بنا سکتا، غیر معمولی اعمال کے مطابق ڈھل سکتا اور آگے بڑھنے سے پہلے نتائج کی توثیق کر سکتا ہے۔ کوئی عمل ناکام ہونے پر ماڈل بنیادی خرابی دیکھتا اور خود اصلاح کرتا ہے۔ یہ زیادہ طاقتور اور زیادہ پُرخطر ہے، مگر اصل مسئلے کی نوعیت سے کہیں زیادہ قریب ہے۔

اہم بات یہ ہے کہ تجریدی پرت ہٹانے سے نظام کا نظم و ضبط کم نہیں ہوتا۔ صرف نظم و ضبط کی جگہ بدل جاتی ہے۔

جو کام پہلے ریپر کے ڈیزائن اور غیر معمولی صورتوں کو سنبھالنے میں ہوتا تھا وہ اب تین جگہوں پر منتقل ہو جاتا ہے: پرومپٹ، جو عملی تربیت کی ایک شکل بن جاتا ہے؛ رن ٹائم، جو نقل و حرکت کے دائرے، حساس اعمال اور دوبارہ کوشش کے رویے جیسی حدود نافذ کرتا ہے؛ اور جانچ کی پرت، جو صرف یہ نہیں دیکھتی کہ کام کامیاب ہوا یا نہیں بلکہ یہ بھی پرکھتی ہے کہ درمیانی مراحل درست تھے یا نہیں۔ نازک تجریدات کم۔ گرد و پیش کے نظام زیادہ مضبوط۔

حیرت انگیز نتیجہ: زیادہ سادہ پروڈکٹ کوڈ، زیادہ وسیع عمومیت

اس تبدیلی کا ایک نتیجہ یہ ہے کہ مجموعی نظام زیادہ قابل ہونے کے باوجود پروڈکٹ کوڈ اکثر زیادہ سادہ ہو جاتا ہے۔ تعامل کے طریقوں کو دوبارہ قابل استعمال ریپرز میں کوڈ کرنے کے بجائے، ایجنٹ رن ٹائم پر رویہ تشکیل دیتا ہے۔ خصوصی ٹولز اور غیر معمولی صورتوں کے لیے منطق کا دائرہ بڑھانے کے بجائے، آپ چند طاقتور بنیادی اجزا اور ایک محدود عمل درآمدی ماحول برقرار رکھتے ہیں۔

اس سے نظام کی عمومیت کا طریقہ بھی بدل جاتا ہے۔ ریپر پر مبنی ایجنٹ ان کاموں پر اچھی عمومیت دکھاتا ہے جو پہلے سے بنائے گئے ریپرز سے ملتے جلتے ہوں۔ محدود رن ٹائم والا ایجنٹ ان کاموں پر بھی عمومیت دکھاتا ہے جن کی عمل درآمدی بنیاد مشترک ہو، چاہے ظاہری انٹرفیس مختلف ہو۔

مثلاً تلاش کے فارم، بکنگ کے عمل یا ترتیبات کے صفحے سے تعامل صارف انٹرفیس کی سطح پر بالکل مختلف دکھائی دے سکتا ہے۔ لیکن اندرونی سطح پر ان کے طریقے مشترک ہیں: حالت پڑھنا، واقعات شروع کرنا، نتائج کی توثیق کرنا اور غیر ہم وقت تازہ کاریوں کو سنبھالنا۔ اس سطح پر کام کرنے والا نظام مختلف کاموں میں زیادہ فطری طور پر منتقل ہو جاتا ہے۔

دوبارہ قابل استعمال جز عمل کی فہرست نہیں، بلکہ حالت کا معائنہ کرنے، محفوظ طریقے سے کام کرنے اور نتائج کی تصدیق کرنے کی ماڈل کی صلاحیت ہے۔

حدود مقرر کریں، حد سے زیادہ مدد نہ کریں

حدود مقرر کرنے اور حد سے زیادہ مدد نہ کرنے کی وضاحت کرتا خاکہ۔

اس کام سے ملنے والا واضح ترین سبق یہ ہے کہ ماڈل کو مزید معاون افعال دینے سے قابل اعتماد ہونا یقینی نہیں بنتا۔ یہ اکثر کم مگر زیادہ طاقتور بنیادی اجزا دینے اور انہیں درست طریقوں سے محدود کرنے سے حاصل ہوتا ہے۔ حد سے زیادہ مدد اس بارے میں مفروضوں کو مستقل طور پر کوڈ میں باندھ دیتی ہے کہ کام کیسے کیا جانا چاہیے۔ حدود محفوظ عمل کی سرحدیں متعین کرتی ہیں اور ماڈل کو مقامی طور پر بہتر حل تلاش کرنے دیتی ہیں۔

زیادہ طاقتور عمل درآمدی سطح کے لیے زیادہ سخت حفاظتی ماڈل بھی درکار ہے۔ جب ایجنٹ پہلے سے طے شدہ چند اعمال تک محدود نہیں رہتا تو وہ مؤثر طور پر حقیقی سافٹ ویئر پر براہ راست کام کرتا ہے۔ اس سے خطرات کی نوعیت فوراً بدل جاتی ہے۔

ڈیزائن میں چار امور کا خیال رکھنا ضروری ہے:

ڈیٹا کا افشا ہونا۔ اگر ایجنٹ حقیقی انٹرفیسز سے تعامل کر رہا ہو تو اسے اکثر حساس معلومات ملیں گی۔ اس کے لیے معلومات چھپانے اور رسائی کے نظم و ضبط پر مبنی طریقہ درکار ہے۔ ڈیٹا صرف عمل درآمد کے لیے ضروری ہونے پر ظاہر کیا جائے، جبکہ نوشتہ جات اور سراغ احتیاط سے سنبھالے جائیں تاکہ مشاہدہ پذیری نظام کا سب سے حساس حصہ نہ بن جائے۔

عمل درآمد کا دائرہ۔ طاقتور ایجنٹ کو من مانے طور پر کام کرنے کے قابل نہیں ہونا چاہیے۔ عملی طور پر اس کا مطلب یہ محدود کرنا ہے کہ وہ کہاں جا سکتا ہے، کن ڈومینز تک رسائی حاصل کر سکتا ہے اور کن نظاموں سے تعامل کر سکتا ہے۔ یہ حدود پرومپٹ میں محض روایتی ہدایات کے طور پر چھوڑنے کے بجائے رن ٹائم کی سطح پر نافذ ہونی چاہییں۔

ماحول پر اعتماد۔ جدید انٹرفیسز میں ایسی ہدایات، مواد یا عمل شامل ہو سکتے ہیں جو گمراہ کن یا عمداً مخالفانہ ہوں۔ صفحے کے مواد کے ذریعے پرومپٹ انجیکشن حملے کا ایک حقیقی راستہ ہے۔ ایجنٹ کو غیر مطلوب رہنمائی پر عمل کرنے سے روکنے کے لیے نظام کو ہدایات کی واضح درجہ بندی، توثیقی جانچ اور اختتام کی شرائط درکار ہیں۔

خود مختاری کا طیف۔ تمام اعمال مکمل طور پر خود مختار نہیں ہونے چاہییں۔ بہت سے پیداواری ماحول میں خود مختاری کو ایک طیف سمجھنا اہم ہے۔ نظام تلاش اور عمل درآمد میں انتہائی ایجنٹانہ ہو سکتا ہے، مگر پھر بھی بعض اقسام کے اعمال کے لیے منظوری درکار ہو سکتی ہے۔

بنیادی اصول سادہ ہے: ماڈل کو زیادہ طاقت دینے کے لیے اس کے گرد موجود نظام کو بھی زیادہ مضبوط بنانا ضروری ہے۔ پالیسی کے بغیر خود مختاری پیداواری استعمال کے لیے تیار نہیں۔

نیا زاویہ جس نے ہماری سوچ بدل دی

ہم نے یہ پوچھنا چھوڑ دیا: براؤزر کے کون سے درست اعمال فراہم کیے جائیں؟

ہم نے یہ پوچھنا شروع کیا: ماڈل کو اعمال کا مکمل دائرہ کیسے فراہم کریں، اور اس کے گرد ایسی رن ٹائم پالیسیاں کیسے بنائیں جو اسے محفوظ بھی رکھیں؟

یہ نیا زاویہ آپ کی ترجیحات بدل دیتا ہے۔ اعمال کی درجہ بندیاں اور ریپر کا مکمل ہونا کم اہم ہو جاتے ہیں۔ رن ٹائم پالیسی، مشاہدہ پذیری اور ہر مرحلے کی جانچ زیادہ اہم ہو جاتی ہے۔ ماڈل کی صلاحیت اور نظام کا ڈیزائن ایک دوسرے کا متبادل نہیں ہیں۔ ماڈلز بہتر ہونے کے ساتھ نظام کا کام کم نہیں بلکہ زیادہ اہم ہو جاتا ہے۔

نمائش میں کام کرنے والے براؤزر ایجنٹس اکثر اس لیے کامیاب ہوتے ہیں کہ کام محدود اور ماحول معاون ہوتا ہے۔ پیداواری نظاموں کو کچھ مختلف درکار ہے: محدود عمل درآمد، آلات سے زیر نگرانی رویہ اور ایسی جانچ جو درست نتیجے اور اتفاقی کامیابی میں فرق کر سکے۔

اختتامی خیال

ریپر کا ڈیزائن کم۔ نظامی انجینئرنگ زیادہ۔

اگرچہ ہماری توجہ براؤزر ایجنٹس پر تھی، مگر یہ کمپیوٹر کے استعمال کو ایک نظامی شعبے کے طور پر دیکھنے کے زیادہ وسیع انداز کی طرف اشارہ کرتا ہے۔

مصنف

Yuxi Huan، Yuliyan Stefanov Savchev، Sheah Wen Liaw