سروے کے نوٹ: جب AI ایجنٹز مزید سستے اور زیادہ آسانی سے فراہم ہونے لگیں، تو سافٹ ویئر ترقی ایک نئے مرحلے میں داخل ہو رہی ہے: سوال یہ نہیں رہا کہ کیا زیادہ ایجنٹس شروع کیے جا سکتے ہیں، بلکہ یہ ہے کہ انسانوں کے پاس ان کے پیداوار کو منظم، جانچنے اور ضم کرنے کے لیے کافی توجہ ہے یا نہیں۔
یہ مضمون ایک بہت ہی تحقیقی تصور پیش کرتا ہے — "آرگنائزیشن ٹیکس"۔ ایجنٹ شروع کرنے کا اخراج بہت کم ہوتا ہے، صرف ایک پرومپٹ یا ایک کلک کی ضرورت ہوتی ہے؛ لیکن اصل میں مہنگا حصہ بعد کے مراحل ہوتے ہیں: نتائج کی درستگی کی جانچ، اس کے سسٹم آرکیٹیکچر پر اثرات کو سمجھنا، مختلف ایجنٹس کے درمیان تنازعات کو حل کرنا، اور آخرکار یہ فیصلہ کرنا کہ کون سا کوڈ مین برانچ میں داخل ہوگا۔ یہ تمام کام آسانی سے متوازی نہیں بنائے جا سکتے، اور انہیں ایک منفرد سیریل وسائل پر واپس آنا پڑتا ہے: انسانی ججمنٹ۔
مصنف نے ڈیولپر کو AI ایجینٹ سسٹم کے اندر "GIL" کے طور پر تصور کیا ہے، جو ایک ایسا ایکلائنک لوک ہے جو کنکرنس سسٹم کی آخری ٹھیکنگ کو محدود کرتا ہے۔ متعدد ایجینٹس ایک ساتھ چل سکتے ہیں، لیکن جب تک کہ آرکیٹیکچر کا جائزہ لینا، کوڈ ریویو، اور تنازعات کا ادغام نہیں ہو جاتا، تو انہیں دوبارہ ڈیولپر کے دماغ سے گزرنا پڑتا ہے۔ اس طرح، ایجینٹس زیادہ ہونے سے ضروری طور پر پیداوار میں اضافہ نہیں ہوتا، بلکہ یہ صرف ریویو کے لیے منتظر ٹاسکس کی قطار کو لمبا کر سکتا ہے اور ڈیولپرز کو زیادہ بار بار کنٹیکسٹ سوئچنگ اور شناختی تھکاوٹ میں مبتلا کر سکتا ہے۔
یہ AI پروگرامنگ ٹولز کی موجودہ لہر میں اکثر نظر انداز کی جانے والی بات ہے: کارکردگی کا احساس اور حقیقی پیداواریت ہمیشہ ایک ہی چیز نہیں ہوتی۔ ایک اسکرین بھر میں چلنے والے ایجنٹ ڈیش بورڈ سے "زیادہ پیداوار" کا غلط اندازہ پیدا ہوتا ہے؛ لیکن اگر ڈویلپرز ان تبدیلیوں کو حقیقت میں سمجھتے، جانچتے اور ادغام نہ کریں، تو نظام کے آخر میں پیداواریت کے بجائے ٹیکنالوجی کا بوجھ اور جانچ کا بوجھ جمع ہو سکتا ہے۔
اس لیے، اس مضمون کا اصل موضوع "زیادہ ایجینٹس کیسے استعمال کریں" نہیں، بلکہ "انسانی توجہ کے ارد گرد کام کے عمل کو دوبارہ ڈیزائن کرنا" ہے۔ ایجینٹ کے دور میں، بنیادی صلاحیت صرف سوال پوچھنا یا کام تقسیم کرنا نہیں، بلکہ یہ جاننا ہے کہ کون سے کام مشین کو متوازی طور پر دیے جا سکتے ہیں اور کون سے کام انسانی ججمنٹ کے لیے محفوظ رکھے جانے چاہئیں؛ کب بڑھے ہوئے جائزے کی ضرورت ہوتی ہے اور کب ترتیب دینا بند کرکے ایک مرکزی مسئلے پر دوبارہ توجہ مرکوز کرنی چاہیے۔
AI سافٹ ویئر کی پیداوار کی متوازی صلاحیت کو بڑھا رہا ہے، لیکن انسانی توجہ اب بھی نظام کا سب سے کم، اور نقل نہیں کیا جا سکنے والا وسائل ہے۔ حقیقی طور پر بالغ ایجنٹ ورک فلو، تمام کاموں کو مشین کو سونپنا نہیں، بلکہ اپنی توجہ کی ساخت کو ایک پیداواری نظام کی طرح سوچ کر ڈیزائن کرنا ہے۔
درج ذیل اصل متن ہے:
اب، زیادہ AI ایجینٹس شروع کرنا آسان ہو گیا ہے۔ لیکن زیادہ ایجینٹس ایک ساتھ چلنا، آپ کے وجود کو زیادہ نہیں کرتا۔ آپ کی شناختی پٹی متوازی نہیں ہو سکتی۔ ان کے رہنمائی، نتائج کا جائزہ لینے اور اصلاحات کو ملا کر رکھنے کے لیے درکار تمام فیصلہ سازی، آخرکار ایک ہی ترتیبی پروسیسر — یعنی آپ — سے گزرنی چاہیے۔
"کمپائل ٹیکس" کا مطلب یہ ہے کہ جب آپ اس بات کو بھول جاتے ہیں تو آپ کو اس کا ادا کرنا پڑتا ہے۔ اور صرف ایک حقیقی حل یہ ہے کہ آپ اپنی توجہ کو کسی بھی کنکرینٹ سسٹم کی طرح ڈیزائن کرنا شروع کر دیں۔
میں نے گوگل I/O پر ایک گروپ بحث میں شرکت کی، جہاں رچرڈ سیروٹر، اجا ہیمرلی اور سیئرا جاسپن کے ساتھ معاصر سافٹ ویئر انجینئرنگ کی حالت اور اس کے مستقبل کے ممکنہ ترقی کے بارے میں بات چیت کی۔ بحث کے آخر میں، رچرڈ نے ہم سے پوچھا: ڈویلپرز کو اس بات کے بعد سب سے زیادہ کیا حاصل کرنا چاہیے اور کیا تبدیلی لانا چاہیے؟

میں نے ان کچھ ماہوں کے دوران بار بار سوچے گئے ایک نقطہ کو بیان کیا: محسوس کرنا کہ آپ بہت مشغول ہیں، اس کا مطلب یہ نہیں کہ آپ کو حقیقی پیداوار ہو رہی ہے۔ آپ ایک ساتھ 20 ایجینٹس چلا سکتے ہیں اور اس طرح محسوس کر سکتے ہیں کہ آپ بہت مشغول ہیں۔ لیکن اس کا مطلب یہ نہیں کہ آپ نے 20 ایجینٹس کے متعلقہ کام کی پیشکش کر دی ہے۔
اس بات کے شروع میں، رچرڈ نے اس سوال کا ایک نام دیا۔ اس نے کہا: "آپ جو کچھ ابھی کہا، وہ بالکل ٹیکس اور ڈیزائن ہے۔ آپ اپنے دماغ میں 20 ایجینٹس کو کامیابی سے مینج نہیں کر سکتے۔"
وہ بالکل درست کہہ رہا ہے۔ میں چاہتا ہوں کہ میں اس تصور کو مکمل طور پر الگ الگ کر کے سمجھاؤں، کیونکہ یہ ایک خود کنٹرول کا مسئلہ نہیں بلکہ ایک ڈھانچے کا مسئلہ ہے۔
اس گروہی بحث میں ایک جملہ تھا جسے میں نے تقریباً بے خیالی سے کہا تھا، جو میرے دماغ میں مستقل طور پر گونجتا رہا: متعدد ایجینٹس چلانا کا مطلب یہ نہیں کہ دنیا میں آپ کا ایک اور نسخہ شامل ہو گیا۔
لوگوں نے جو ایسمریٹری شامل نہیں کی
ایجنٹ ورک فلو میں ایک پوشیدہ نا مساوی ہے۔
ایجینٹ شروع کرنا بہت سستا ہے۔ آپ کو صرف کیبورڈ پر ایک بار ٹائپ کرنا ہے، یا ایک پرومپٹ لکھنا ہے۔ لیکن ایجینٹ کے سائیکل کو مکمل کرنا بہت مہنگا ہے۔ کسی نہ کسی کو اس کے واپسی کے نتائج کی تصدیق کرنی ہوگی اور دوسرے ایجینٹس کے ذریعہ تبدیل کیے گئے مواد کے ساتھ اسے دوبارہ ملانا ہوگا۔
یہی شخص آپ ہیں۔ اور آپ صرف ایک ہی ہیں۔
گزشتہ ماہ، میں نے اپنے مضمون "آپ کے پیرلل ایجینٹ کی حد" میں اس مسئلے کا ایک حصہ لکھا تھا، جس میں بنیادی طور پر اس ماحولیاتی فکر کی بحث کی گئی تھی: آپ نہیں جانتے کہ کون سا پیرلل تھریڈ خاموشی سے ناکام ہو رہا ہے۔ اس مضمون کا مقصد اس قیمت کے پیچھے کی ساخت پر بات کرنا ہے۔
جب آپ ایجنٹ ڈویلپمنٹ کو ایک کنکرنس سسٹم کے طور پر دیکھنا شروع کرتے ہیں، تو آپ سمجھ جاتے ہیں کہ انسان صرف اس سسٹم کا ایک کمپوننٹ ہیں۔ ایک بہت سستا سیریل کمپوننٹ۔
آپ وہ ایکل تھریڈ ریسورس ہیں
اگر آپ نے کبھی کانکرنسی کوڈ لکھا ہے، تو آپ کو اس مسئلے کو سمجھنے کی ایک براہ راست سمجھ ہے۔ صرف آپ نے اس سمجھ کو پہلے غلط جگہ استعمال کیا تھا۔
پائیتھن میں جنرل انٹرپریٹر لॉک یا GIL ہوتا ہے۔ آپ کوئی بھی متعدد تھریڈز بناسکتے ہیں، لیکن ایک ہی وقت میں صرف ایک تھریڈ ہی پائیتھن بائٹ کوڈ انجام دے سکتا ہے، کیونکہ انہیں سب کو پہلے اس لॉک حاصل کرنا ہوتا ہے۔
آپ اپنے AI ایجینٹ کے GIL ہیں۔
وہ سب ایک ساتھ چل سکتے ہیں۔ لیکن جب تک ان کا کام نظام کی ساخت کو سمجھنے یا مرج کنفلکٹس کو حل کرنے کی ضرورت نہیں ہوتا، تب تک آپ کو یہ تالا حاصل کرنا ہوگا۔ اور اس تالے کا صرف ایک ہی نسخہ ہے، جو آپ کے پاس ہے۔
آملڈ کا قانون اس بات کو بہت دقیق طور پر بیان کرتا ہے: پیرلیلائزیشن سے حاصل ہونے والا تیزی کا حد، اس کام کے اس حصے پر منحصر ہے جو اب بھی ترتیبی طور پر مکمل کیا جانا ضروری ہے۔ اگر آپ کے عمل میں ایک بڑا حصہ پیرلیلائز نہیں کیا جا سکتا، تو آپ جتنا بھی کور ڈالیں، آخرکار ایک سخت حد تک پہنچ جائیں گے۔
ایجینٹ ڈویلپمنٹ میں، یہ سیریل حصہ فیصلہ سازی کی صلاحیت ہے۔
8 ایجینٹس شروع کرنا آپ کے فیصلے کے وقت کو تیز نہیں کرے گا۔ یہ صرف آپ کے پرداخت کے لیے منتظر قطار کو لمبا کرے گا۔
یہ پرفارمنس انجینئرنگ کا ایک پرانا حقیقت ہے، لیکن بہت سے لوگ اب بھی اس سے حیران ہوتے ہیں: غیر بوتل ناک کے حصوں کو بہتر بنانا مجموعی ٹھیک کو بڑھانے میں مدد نہیں کرتا۔ آپ صرف بوتل ناک کے سامنے مزید ناتمام کام جمع کر رہے ہیں۔
ایجینٹ کے بہتر بنانے سے وہ حصہ بہتر ہوتا ہے جو اصل میں پابندی نہیں تھا۔ اصل پابندی ریویو مرحلہ ہے، اور پورے سسٹم کی ذخیرہ صلاحیت بالکل اس مرحلے کی ذخیرہ صلاحیت کے برابر ہے۔
ٹیکس ایک ساختی فاصلہ ہے جو ایجنٹ کی پیداواری صلاحیت اور آپ کے حقیقی طور پر ادغام کرنے کی صلاحیت کے درمیان ہوتا ہے۔ یہ تب پیدا ہوتا ہے جب آپ ایک منفرد تھریڈ وسائل کو ایک متوازی نظام کا انتظام دیتے ہیں۔
ساختی حد کو سختی سے برداشت کرنا حل نہیں ہے
اس گول میز کی بات چیت میں، میں نے کہا: میں نے کبھی اتنی زیادہ محسوس نہیں کیا کہ میرا ٹول اتنے کارآمد ہو، لیکن میں نے کبھی اتنی تھکن بھی محسوس نہیں کی۔
یہ دونوں جذبات بالکل سچے ہیں، اور وہ ایک ہی وجہ سے آتے ہیں۔
اس تھکاوٹ کا ایک بہت مخصوص ذریعہ ہے: یہ ایک سیریل پروسیسر کو 100% تک لگاتار دبایا جانا اور کوئی بھی ریزرو مہیا نہ کیا جانا ہے۔
جب بھی آپ ایک ایجنٹ کو دوبارہ دیکھتے ہیں جو آپ کی توجہ کے دائرے سے باہر چلا گیا ہو، آپ کو ایک کنٹیکس سوئچنگ لاگت ادا کرنی پڑتی ہے۔ آپ کو اپنا دماغ خالی کرنا ہوگا اور دوسرے کنٹیکس کو صفر سے دوبارہ لوڈ کرنا ہوگا۔
ایک سی پی یو اس کام کو مائیکرو سیکنڈ میں مکمل کر سکتا ہے، اور پھر بھی، آرکیٹیکٹس عام طور پر اس کو بار بار تبدیل کرنے سے بچتے ہیں۔ جبکہ آپ کو اسے مکمل کرنے میں منٹوں لگیں گے، اور آپ کبھی بھی کنٹیکسٹ کو مکمل طور پر واپس نہیں لے سکتے۔
5 ایجنٹس صرف 1 بار کام کو 5 بار دہرانے کے برابر نہیں ہیں۔ یہ 5 بار کول اسٹارٹ کے ساتھ کنٹیکسٹ کا دوبارہ لوڈ ہونا ہے، جس کے ساتھ ایک بیک گراؤنڈ میں جاری بڑا پروسیس بھی چل رہا ہے جو مستقل طور پر فکر کر رہا ہے کہ آپ اب کون سے ایجنٹ کی جانچ کر رہے ہیں۔
آپ ایک ساختی پابندی کو "زیادہ محنت" کرکے حل نہیں کر سکتے۔ یہ ٹیکس ہمیشہ ادا کیا جانا ہے۔
اگر آپ کوشش کریں کہ اسے جبری طور پر برداشت کریں، تو یہ آخرکار دوسرے شکل میں ظاہر ہوگا: یا تو کوڈ ریویو ہر بار زیادہ سطحی ہوتا جائے گا، یا آپ ایک "شناختی تسلیم" کی حالت میں چلے جائیں گے — کیونکہ اپنا جائزہ لینا بہت زیادہ توجہ کا مطالبہ کرتا ہے، اس لیے آپ بس ایجنٹ کے لکھے گئے کوڈ کو قبول کر لیتے ہیں۔
آپ یا تو اس ٹیکس کو خود ادا کریں، یا اسے اندھیرے میں اپنے سسٹم کے بارے میں آپ کی سمجھ کو آہستہ آہستہ تباہ کرنے دیں۔
اپنی توجہ کو ڈیزائن سسٹم کی طرح ڈیزائن کریں
تو، آپ کو اپنی توجہ کو ایک نایاب سیریل وسائل کے طور پر سمجھنا ہوگا۔
آپ جب ایک ڈسٹریبیوٹڈ سسٹم ڈیزائن کرتے ہیں تو بالکل بھی بانٹوں کو نظرانداز نہیں کرتے۔ اسی طرح، اپنے دماغ کو بھی اسی قدر احترام دیں۔
یہ کچھ وہ طریقے ہیں جو میرے لیے حقیقت میں کام کرتے ہیں:
ریویو کی صلاحیت کے مطابق ایجنٹ ٹیم کو وسعت دیں، UI کی صلاحیت کے مطابق نہیں۔
ایک اچھا کنکرنس سسٹم ریک ویپ میکنزم استعمال کرتا ہے تاکہ قطاریں بے حد نہ بڑھیں۔ پروڈیوسر کو صارفین کی پریسنگ صلاحیت کے مطابق رفتار کم کرنی چاہیے۔
آپ کے ایجینٹس کی تعداد ہی پیداکار ہیں، اور آپ کی ریویو کی صلاحیت ہی مصرف کنندہ ہے۔ درست متوازی ایجینٹس کی تعداد، وہ تعداد ہونی چاہیے جتنی آپ تفصیل سے کوڈ ریویو کر سکتے ہیں۔ زیادہ تر لوگوں کے لیے، یہ عام طور پر بہت کم اکیلی تعداد ہوتی ہے۔
AI ٹول ضرور آپ کو 20 ایجینٹس شروع کرنے کی اجازت دے گا، لیکن یہ صرف ایک UI فنکشن ہے اور یہ نہیں کہتا کہ آپ ان کا انتظام کرنے کی حقیقی صلاحیت رکھتے ہیں۔
ٹاسک کی قسمیں درج کریں۔
جب رچرڈ نے مجھ سے پوچھا کہ میں اس معاملے کو کیسے سنبھالوں، تو میں نے یہ طریقہ بتایا تھا۔ میں کام کو دو گروہوں میں تقسیم کر دوں گا۔
پہلا گروہ، نسبتاً الگ کام ہے، جسے میں کلاؤڈ بیک اینڈ پر چلنے والے ایجنٹ کو سونپنا چاہوں گا۔ ان کاموں کو ای سینکرونائز طریقے سے انجام دیا جا سکتا ہے، اور عام طور پر میری صرف آخری مرحلے میں ایک بار جانچ کی ضرورت ہوتی ہے۔
دوسرا ڈھیر، پیچیدہ کام ہے، اصل کام خود فیصلہ کرنا ہے۔ جیسے کہ ایک بہت عجیب بگ، یا کوئی آرکیٹیکچر ڈیزائن۔
سب سے بڑی غلطی یہ ہے کہ دوسری قسم کے کاموں کو بھی متوازی طور پر کرنے کی کوشش کرنا۔ متعدد پیچیدہ کاموں کو متوازی طور پر处理 کرنے سے آپ کی پیداوار بڑھتی نہیں، بلکہ وہ تالا بار بار لڑا جاتا ہے، اور آخرکار تمام نتائج برتر ہو جاتے ہیں۔
بیچ ریویو
ہر بار کنٹیکسٹ تبدیل کرنے سے آپ کو بہت زیادہ لاگت اٹھانی پڑتی ہے۔ ایک بار بیٹھ کر 4 ایجینٹس کے نتائج کا جائزہ لینا، ایک کو دیکھنا، کچھ اور کرنا، اور پھر دوسرے کو دیکھنے کے لیے دوبارہ شروع کرنے سے کہیں زیادہ سستا ہے۔
ایجینٹ کو لمبی چھوٹ دیں۔ کام کو تھوڑا جمع کریں، پھر انہیں ایک بیچ کے طور پر پروسیس کریں۔
اس چابی کو صرف جانچ کے لیے استعمال کریں۔
اپنے دماغ کو ایسی چیزوں پر مت ضائع کریں جو مشین خود چیک کر سکتی ہے۔ ایجنٹ کو ٹیسٹ لکھنے دیں جو کام کریں، یا اسکرین شاٹس جنریٹ کریں۔
ان 80 فیصد اکیلے، لیکن تصدیق شدہ حصوں کو خود اپنی طرف سے ثابت ہونے دیں۔ اس طرح، آپ کی محدود توجہ صرف اس 20 فیصد پر مرکوز ہوگی جس کے لیے انسانی ججمنٹ درکار ہے۔
اپنا سیریل ٹائم محفوظ رکھیں۔
بھٹکا کو آپ کے ایجینٹ چیکس کے درمیان کے ٹکڑوں کے وقت کی بجائے آپ کا بہترین وقت چاہیے۔
کبھی کبھی، سب سے زیادہ لیوریج کا اقدام مکمل طور پر اسکرپٹ بند کرنا ہوتا ہے: اُس کمپیوٹر کو بند کر دیں جس میں ایجینٹس بھرے ہوئے ہیں، صرف ایک سوال پر توجہ مرکوز کریں، اور پورے عمل کے دوران اس چابی کو مضبوطی سے تھامے رہیں۔
ترتیب دینا اصل کام نہیں ہے۔ یہ صرف کام کے باہر نکلنے والی اخراجات ہے۔
آجا نے اشارہ کیا کہ اب تعمیری صلاحیت سب سے زیادہ فوری مہارت بن گئی ہے: آپ کو یہ جاننا ہوگا کہ کون سا کام ایک ایجنٹ میں ڈالنا چاہیے اور کون سا اس کے لیے بہت بڑا ہے۔
میں ایک اور بات شامل کرنا چاہتا ہوں: آپ خود اس نظام کا ایک کمپوننٹ ہیں۔ آپ کی توجہ کا ایک معلوم، بہت کم سیریل ٹھروٹل ہے۔ یا تو نظام اس عدد کا احترام کرتا ہے، یا پھر اسے چپکے سے آپ کے معیار کو کم کر کے دور کر دیتا ہے۔
مشغولیت کا مطلب زیادہ پیداوار نہیں ہوتی
یہ بہت اہم بات ہے کیونکہ یہ ناکامی کا ڈھنگ آپ کے لیے تقریباً ناپید ہے۔
20 چل رہے ایجینٹس آپ کو ایک "پیداواری طاقت کا احساس" دیں گے۔ ڈیش بورڈ بھر پڑا ہے، سب کچھ حرکت میں ہے۔ لیکن یہ احساس اور اعلیٰ معیار کے کوڈ کو مین برانچ میں ضم کرنے کے درمیان، الگ ہو چکا ہے۔
آپ انتہائی مشغول ہو سکتے ہیں، لیکن تقریباً کوئی حقیقی پیداوار نہیں کر سکتے۔ اندر سے تجربہ کرنے پر، دونوں تقریباً ایک جیسے ہیں۔
سیرا نے مارگریٹ-آن سٹوری کے بارے میں قرض کے مطالعہ کا ذکر کیا۔ ہم نے ٹیکنیکل ڈیبٹ اور کگنیٹو ڈیبٹ دونوں کے بارے میں بات کی۔
بے نقاصت کی ترتیب سے، آپ دونوں قرضوں کو اکٹھا کر لیں گے۔
آپ نے وہ چیزیں ملائی ہیں جنہیں آپ نے اچھی طرح سے نہیں پڑھا۔ آپ کا کوڈ بیس کے بارے میں ذہنی ماڈل مکمل طور پر قدیم ہو چکا ہے۔ یہ مسائل آج ڈیش بورڈ پر نہیں دکھائی دیں گے۔ وہ پروڈکشن میں خرابی کے وقت ظاہر ہوں گے — جب آپ سسٹم کو دیکھتے ہیں اور اچانک احساس کرتے ہیں کہ آپ اب اس کا طریقہ کار نہیں جانتے۔
تو، اصل نتیجہ یہ ہے: ایجنٹ شروع کرنا صلاحیت نہیں ہے۔ کوئی بھی 20 چلا سکتا ہے۔
حقیقی صلاحیت، اس ایکلی سریل وسائل کے ارد گرد نظام ڈیزائن کرنا ہے جسے نقل نہیں کیا جا سکتا اور نہ ہی متوازی طور پر کیا جا سکتا۔
یہ وسائل، آپ کی توجہ ہے۔
اسے کسی بھی پیداواری ماحول میں انحصار کرنے والے اہم کمپوننٹ کی طرح ڈیزائن کریں۔
