انٹرنیٹ نے یہ فیصلہ کر لیا ہے کہ یہ ایجنٹ کا سال ہے۔ LangGraph، CrewAI، اور AutoGen ہر انجینئرنگ روڈ میپ پر موجود نام ہیں۔ ٹیمیں آرکیسٹریشن لیئرز کی سخت جانچ کر رہی ہیں، اسٹیٹ مشینز بمقابلہ رول پلے پر بحث کر رہی ہیں، اور یہ سوچ رہی ہیں کہ کون سی لائبریری آخر کار لارج لینگویج ماڈلز کو خود مختار بنا دے گی۔
یہاں ایک تلخ حقیقت ہے: ان میں سے زیادہ تر موازنہ قبل از وقت ہیں۔ فریم ورکس مشکل حصہ نہیں ہیں۔ مشکل حصہ یہ ہے کہ ہم نے اپنی اصطلاحات کی تعریف کرنا چھوڑ دی ہے۔ لوگ اب ہر چیز کو ایجنٹ کہہ رہے ہیں۔ ایک tool call ایجنٹ نہیں ہے۔ ایک chatbot ایجنٹ نہیں ہے۔ یہ غیر واضح تعریف براہ راست بری انجینئرنگ، ضرورت سے زیادہ پیچیدہ سسٹمز، اور پروڈکشن آؤٹجیز کی طرف لے جاتی ہے جنہیں ایک سادہ اسکرپٹ سے روکا جا سکتا تھا۔
کسی فریم ورک کا انتخاب کرنے سے پہلے، اس چیز کی تعریف کریں جو آپ اصل میں بنا رہے ہیں۔
ایجنٹ اصل میں کیا ہے
ایجنٹ کا تعین اس ماڈل سے نہیں ہوتا جس پر وہ چلتا ہے یا اس کی API کالز کی تعداد سے۔ ایجنٹ کا تعین اس کے عمل (behavior) سے ہوتا ہے۔ اس کا ایک واضح مقصد ہونا چاہیے۔ اسے یہ فیصلہ کرنا چاہیے کہ اگلا قدم کیا ہوگا، بغیر اس کے کہ کوئی انسان پہلے سے راستہ طے کر دے۔ جب وہ قدم ناکام ہو جائے تو اسے ناکامی کو سنبھالنا چاہیے۔ اور اسے معلوم ہونا چاہیے کہ کب رکنا ہے۔
ایک ایسے سپورٹ سسٹم کے بارے میں سوچیں جو آنے والی ای میل کو پڑھتا ہے، اسے ریفنڈ کی درخواست کے طور پر درجہ بندی کرتا ہے، آرڈر نمبر نکالتا ہے، شپنگ ڈیٹا بیس سے معلومات حاصل کرتا ہے، ریٹرن پالیسی کی مدت چیک کرتا ہے، جواب کا مسودہ تیار کرتا ہے، اور ٹکٹ کو حل شدہ قرار دے دیتا ہے۔ اگر ڈیٹا بیس کا وقت ختم ہو جائے (timeout)، تو یہ انتظار کرتا ہے اور دوبارہ کوشش کرتا ہے۔ اگر پالیسی کی مدت غیر واضح ہو، تو یہ کسی انسان کو مطلع کرتا ہے۔ جب جواب بھیج دیا جاتا ہے، تو یہ رک جاتا ہے۔ یہ ایک ایجنٹ ہے۔ ایک سنگل LLM کال کے گرد لپٹا ہوا ریپر جو JSON واپس کرتا ہے، وہ ایجنٹ نہیں ہے، چاہے مارکیٹنگ ٹیم اس پر کتنے ہی "agent" کے اسٹیکرز کیوں نہ لگا دے۔
یہ فرق اس لیے اہم ہے کیونکہ پیچیدگی کی ایک قیمت ہوتی ہے۔ ایک ایسا سسٹم جسے خود مختاری کی ضرورت نہیں ہے، اسے اس کی قیمت نہیں چکانی چاہیے۔
پروڈکشن AI کی اصل شکل
اس وقت پروڈکشن میں چلنے والے زیادہ تر AI سسٹمز محدود (narrow) ہیں۔ وہ ایک کام اچھی طرح کرتے ہیں۔ وہ سپورٹ ٹکٹس کو قطاروں (queues) میں تقسیم کرتے ہیں۔ وہ اسکین شدہ دستاویزات سے میعاد ختم ہونے کی تاریخیں نکالتے ہیں۔ وہ صارفین کے سوالات کو موجودہ نالج بیس کے مضامین سے ملاتے ہیں۔ وہ عام استدلال انجن (general reasoning engines) نہیں ہیں، اور یہ ظاہر کرنا کہ وہ ہیں، اوور انجینئرنگ کی بدترین قسم کی طرف لے جاتا ہے۔
یہ ماڈل ریلیز کے ساتھ ایک تباہ کن جنون کا باعث بھی بنتا ہے۔ ٹیمیں نئے ترین فاؤنڈیشن ماڈل کے پیچھے اس طرح بھاگتی ہیں جیسے وہ ناقص آرکیٹیکچر کی تلافی کر دے گا۔ ایسا نہیں ہوگا۔ ایک زیادہ قابل ماڈل جو ایرر ہینڈلنگ کے بغیر ایک کمزور لوپ کے اندر چل رہا ہو، وہ محض زیادہ اعتماد اور زیادہ تخلیقی ہالوسینیشنز (hallucinations) کے ساتھ ناکام ہو جائے گا۔ بینچ مارکس کے پیچھے بھاگنا بند کریں۔ ساخت (structure) کے پیچھے بھاگنا شروع کریں۔
فریم ورک پروڈکٹ نہیں ہے
LangGraph آپ کو واضح اسٹیٹ مشینز اور سائیکلز فراہم کرتا ہے۔ CrewAI رول پر مبنی آرکیسٹریشن پر توجہ دیتا ہے جہاں ایجنٹس کردار (personas) اپناتے ہیں۔ AutoGen گفتگو کرنے والے ایجنٹس پر مرکوز ہے جو مسائل حل کرنے کے لیے ایک دوسرے سے بات کرتے ہیں۔ یہ سب قابل ٹولز ہیں۔ یہ کنٹرول فلو کے بنیادی طور پر مختلف طریقے بھی ہیں۔
لیکن آپ جو فریم ورک منتخب کرتے ہیں اس سے زیادہ اہمیت ان پیٹرنز کی ہے جنہیں آپ اس کے اندر نافذ کرتے ہیں۔ میں نے ٹیموں کو صرف Python اور Redis کا استعمال کرتے ہوئے انتہائی مضبوط آٹومیشن فراہم کرتے دیکھا ہے کیونکہ انہوں نے حدود کا احترام کیا تھا۔ میں نے دوسری ٹیموں کو فینسی آرکیسٹریشن کے بوجھ تلے بکھرتے دیکھا ہے کیونکہ انہوں نے فریم ورک کو ڈیزائن کے متبادل کے طور پر استعمال کیا۔
اگر آپ کے ہینڈ آف (handoffs) غیر واضح ہیں، آپ کے ٹولز کمزور ہیں، اور آپ کا ری ٹرائی لاجک (retry logic) موجود نہیں ہے، تو آپ کی requirements.txt پر موجود لوگو آپ کو نہیں بچا سکے گا۔
تین چیزیں جو واقعی آپ کے وقت کی مستحق ہیں
اگر آپ ایجنٹک سسٹمز بنا رہے ہیں، تو اپنی کوشش ان تین شعبوں میں لگائیں۔
ٹول ڈیزائن۔ ہر فنکشن جسے آپ کا ایجنٹ کال کر سکتا ہے، وہ ایک انٹرفیس میں لپٹی ہوئی ایک ذمہ داری (liability) ہے۔ انہیں مضبوطی سے ڈیزائن کریں۔ ان پٹس کی سختی سے تصدیق کریں۔ ایسے ایررز واپس کریں جو واقعی قابل فہم ہوں، نہ کہ 500 ڈمپس۔ ایک اچھا ٹول وہ ہے جس کے بارے میں ایجنٹ غلط ہونے کی صورت میں استدلال کر سکے۔
ناکامی کو سنبھالنا (Failure handling)۔ فرض کریں کہ ہر LLM
