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

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

وہ چکر جو ایجنسی (Agency) تخلیق کرتا ہے

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

  • سوچنا (Think): ماڈل مقصد کے بارے میں غور و فکر کرتا ہے اور فیصلہ کرتا ہے کہ اسے کیا ضرورت ہے۔ ایک صارف پوچھتا ہے، "کیا مجھے کل پورٹ لینڈ (Portland) جانا چاہیے؟" ماڈل پہچان لیتا ہے کہ اسے موسم کی پیش گوئی اور ایک مقام کی ضرورت ہے۔
  • عمل کرنا (Act): ماڈل ایک ٹول کو استعمال کرتا ہے۔ یہ "Portland" کو حل کرنے کے لیے ایک geocoding API کو کال کر سکتا ہے، پھر کوآرڈینیٹس کے ساتھ ایک weather endpoint پر ڈیٹا بھیج سکتا ہے۔
  • مشاہدہ کرنا (Observe): ماڈل ٹول کا آؤٹ پٹ پڑھتا ہے۔ کیا API نے JSON پیش گوئی واپس کی، 403 ایرر دیا، یا HTML مینٹیننس پیج؟
  • اپ ڈیٹ کرنا (Update): جو کچھ وہ دیکھتا ہے اس کی بنیاد پر، ماڈل اپنے منصوبے پر نظر ثانی کرتا ہے۔ اگر geocoder نے Portland, Oregon کے بجائے Portland, Maine واپس کیا ہے، تو ماڈل کو فرق واضح کرنے کی ضرورت ہے۔ اگر API ڈاؤن ہے، تو یہ کسی بیک اپ ذریعے پر منتقل ہو سکتا ہے یا صارف سے پوچھ سکتا ہے۔
  • دوبارہ سوچنا (Think Again): نئے سیاق و سباق (context) کے ساتھ چکر دوبارہ شروع ہوتا ہے۔

یہ پانچ الگ الگ فنکشنز نہیں ہیں جنہیں آپ ایک بار لکھ کر بھول جائیں۔ یہ ایک مسلسل انجن ہے جو اس وقت تک چلتا رہتا ہے جب تک مقصد حاصل نہ ہو جائے یا کوئی سخت رکاوٹ (hard stop) نہ آ جائے۔ ماڈل کسی اسکرپٹ کی طرح کوڈ کو ایگزیکیوٹ نہیں کر رہا ہوتا۔ بلکہ وہ دنیا کی حالت کے بارے میں سوچ رہا ہوتا ہے، ایکشن کا انتخاب کرتا ہے، اس کے نتیجے کو پڑھتا ہے، اور فیصلہ کرتا ہے کہ آگے کیا کرنا ہے۔ یہی ایک شاندار 'آٹو کمپلیٹ' اور اس ایجنٹ کے درمیان فرق ہے جو کام مکمل کرتا ہے۔

فریم ورکس ایک جیسے کیوں نظر آتے ہیں

اگر آپ نے LangGraph، CrewAI، یا AutoGen کے ساتھ وقت گزارا ہے، تو آپ نے شاید محسوس کیا ہوگا کہ یہ سب ایک جیسے لگنے لگتے ہیں۔ LangGraph بہاؤ (flow) کو نوڈز اور ایجز کے ایک مستقل گراف کے طور پر ماڈل کرتا ہے۔ CrewAI ایجنٹس کو کرداروں (roles) اور کریو (crews) میں تقسیم کرتا ہے۔ AutoGen ملٹی ایجنٹ گفتگو کو منظم کرتا ہے۔ پیکجنگ مختلف ہے، لیکن ڈھانچہ (skeleton) ایک ہی ہے۔

وہ اس لیے ملتے جلتے نظر آتے ہیں کیونکہ وہ سب اسی لوپنگ کے اصول پر بنائے گئے ہیں۔ LangGraph واضح طور پر اس چکر کو ٹول کالز اور ماڈل کے نتائج کے درمیان اسٹیٹ ٹرانزیشنز (state transitions) کے طور پر ترتیب دیتا ہے۔ CrewAI اس لوپ کو کردار پر مبنی ایجنٹس کے اندر لپیٹ دیتا ہے، لیکن ہر ٹیم ممبر (crew member) اب بھی منصوبہ بندی، عمل اور مشاہدے کے چکر سے گزرتا ہے۔ AutoGen اداکاروں (actors) کے درمیان پیغامات کا تبادلہ کرتا ہے، پھر بھی ہر مرحلہ جنریٹ، ایگزیکیوٹ، ریفلیکٹ اور روٹ کا ہی ایک ورژن ہوتا ہے۔

یہ فریم ورکس لوپ پر توجہ مرکوز کرتے ہیں کیونکہ ایجنسی وہیں ہوتی ہے۔ بنیادی ماڈل GPT-4، Claude، یا کوئی فائن ٹیون شدہ اوپن ویٹ ماڈل ہو سکتا ہے۔ لوپ کے بغیر، آپ کے پاس صرف ایک بہت مہنگا جملہ مکمل کرنے والا ٹول ہے۔ لوپ کے ساتھ، آپ کے پاس ایک ایسا سسٹم ہے جو متعدد کوششوں کے ذریعے ایک مقصد کی طرف بڑھ سکتا ہے۔

جب اصل کام شروع ہوتا ہے

لوکل ڈیمو جادوئی محسوس ہوتے ہیں۔ پروڈکشن وہ جگہ ہے جہاں جادو کا سامنا حقیقت کی الجھنوں سے ہوتا ہے۔ ایک بار جب آپ پروٹو ٹائپنگ سے آگے بڑھتے ہیں، تو آپ AI کے مسائل حل کرنا چھوڑ دیتے ہیں اور سسٹم انجینئرنگ کے مسائل حل کرنا شروع کر دیتے ہیں۔

ٹول کی ناکامی ناگزیر ہے۔ APIs ٹائم آؤٹ ہو جاتے ہیں۔ وہ غلط فارمیٹ شدہ JSON واپس کرتے ہیں۔ وہ HTML میں لپٹے ہوئے 500 ایررز دیتے ہیں۔ اگر آپ کا لوپ ہر ٹول کے آؤٹ پٹ پر اندھا دھند بھروسہ کرتا ہے، تو آپ کا ایجنٹ کامیابی کا وہم کرے گا یا الجھن کے چکر میں پھنس جائے گا۔ آپ کو ہر ریٹرن پے لوڈ پر ری ٹرائی لاجک (retry logic)، سرکٹ بریکرز، اور اسکیمہ ویلیڈیشن کی ضرورت ہوتی ہے۔

میموری پرانی ہو جاتی ہے۔ آپ کا ایجنٹ یاد رکھتا ہے کہ صارف کا پسندیدہ ڈیٹا بیس PostgreSQL ہے، لیکن انفراسٹرکچر ٹیم نے کل رات ایک نئے کلسٹر پر منتقلی کر لی ہے۔ سیاق و سباق (context) کو تازہ کرنے یا ختم کرنے کے طریقہ کار کے بغیر، ایجنٹ پر اعتماد کے ساتھ مردہ اینڈ پوائنٹس پر کمانڈز جاری کرے گا۔ میموری کو ٹائم اسٹیمپ، کنفیڈنس اسکورز، اور خود کو غیر مؤثر (invalidate) کرنے کی صلاحیت کی ضرورت ہوتی ہے۔

انفینٹ لوپس خاموش قاتل ہیں۔ ایک ایجنٹ ویب پر تلاش کرتا ہے، کچھ مفید نہیں ملتا، کوئری کو تھوڑا بہتر بناتا ہے، دوبارہ تلاش کرتا ہے، کچھ نہیں ملتا، اور یہی عمل دہراتا رہتا ہے۔ زیادہ سے زیادہ تکرار کی حد (maximum iteration ceiling) یا سیمنٹک ڈپلیکیٹ ڈیٹیکشن کے بغیر، یہ صارف کے انتظار کے دوران ٹوکنز اور پیسہ برباد کرتا رہے گا۔ آپ کو گارڈ ریلز (guardrails) بنانی ہوں گی: ری ٹرائیز پر سخت حد، ڈائیورجنس چیک، اور انسانی مداخلت کے راستے۔

غیر متعلقہ ڈیٹا استدلال کو غرق کر دیتا ہے۔ Retrieval-Augmented Generation پائپ لائنز اکثر مبہم طور پر متعلقہ دستاویزات کے پچاس پیراگراف کونٹیکسٹ ونڈو میں ڈال دیتی ہیں۔ ایجنٹ شور (noise) کی وجہ سے الجھ جاتا ہے اور غلط ٹول کا انتخاب کرتا ہے یا کسی پیرامیٹر کے بارے میں غلط معلومات (hallucinate) فراہم کرتا ہے۔ ماڈل کے ریٹریوڈ ٹیکسٹ دیکھنے سے پہلے آپ کو فلٹرنگ، رینکنگ اور جامع خلاصہ نگاری کی ضرورت ہوتی ہے۔

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

کام کو مکمل کرنا

ایجنٹس میں حقیقی ذہانت پہلا جواب درست دینے کا نام نہیں ہے۔ یہ ارادے اور نتیجے کے درمیان موجود فرق کو اس وقت عبور کرنے کا نام ہے جب کچھ بھی منصوبے کے مطابق نہ ہو رہا ہو۔ پہلی کوشش آسان ہوتی ہے۔ کوئی بھی 'ہیپی پاتھ' (happy path) کا اسکرپٹ لکھ سکتا ہے۔ مشکل حصہ چوتھی تکرار (iteration) ہے، جب بنیادی API ڈاؤن ہو، کونٹیکسٹ ونڈو سکڑ رہی ہو، صارف بے صبر ہو رہا ہو، اور ایجنٹ کو پھر بھی کچھ مفید فراہم کرنا ہو۔

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

تو کیا مستقبل بڑے ماڈلز کا ہے یا بہتر ایگزیکیوشن لوپس کا؟ اسکیل (Scale) یقیناً مدد کرتا ہے۔ ایک زیادہ قابل ماڈل ہر سائیکل کے اندر بہتر استدلال کرتا ہے۔ لیکن ایک چھوٹا ماڈل جو ایک سخت، قابل مشاہدہ اور لچکدار لوپ کے اندر چل رہا ہو، وہ تقریباً ہمیشہ ایک ایسے دیو قامت ماڈل سے بہتر کارکردگی دکھائے گا جس سے ایک ہی بار میں سب کچھ حل کرنے کا کہا گیا ہو۔ لوپ ہی وہ چیز ہے جو پیش گوئی کو عمل میں بدلتی ہے۔ وہیں سرمایہ کاری کریں۔

ماخذ: The Looping Principle: A Simple Mental Model for Understanding AI Agents

اس طرح کی مزید گفتگو کے لیے، Telegram پر GyaanSetu لرننگ کمیونٹی میں شامل ہوں۔