میں نے 20 سالہ سپورٹ ٹکٹس کے سامنے ایک AI ایجنٹ لگا دیا

ہمارے پاس دس لاکھ ٹکٹس پر مشتمل ایک ہیلپ ڈیسک سسٹم ہے۔ ہمارے پاس 2,400 مینوئلز اور دو بڑے کوڈ بیسز (codebases) ہیں۔

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

میں نے اس تمام ڈیٹا کے سامنے کام کرنے کے لیے ایک AI ایجنٹ بنایا ہے۔ اب یہ پروڈکشن میں ہے۔ یہاں وہ سب کچھ ہے جو حقیقت میں ہوا۔

ڈیٹا مشکل حصہ نہیں تھا۔ مشکل یہ تھا کہ جاننا کہ کہاں دیکھنا ہے۔ ایجنٹ کو خود سے باتیں بنانے (hallucinations) سے روکنا اس سے بھی زیادہ مشکل تھا۔

یہ کیسے کام کرتا ہے:

  • قدرتی زبان (natural language) کے ان پٹ کے ساتھ ایک ایجنٹ۔
  • یہ ہیلپ ڈیسک ڈیٹا بیس، پروجیکٹ ٹولز، GitLab، اور SVN کو پڑھتا ہے۔
  • یہ مینوئلز اور پرانے ٹکٹس پر ویکٹر سرچ (vector searches) کرتا ہے۔
  • یہ .xlsx یا .docx جیسی فائلیں تیار کر سکتا ہے۔
  • یہ خود اپنے ٹولز کا انتخاب کرتا ہے اور انہیں متوازی (parallel) طور پر چلاتا ہے۔

اس کا آرکیٹیکچر سادہ ہے۔ یہ مین ایپ سے الگ ایک Node کنٹینر میں چلتا ہے۔ میں نے یہ فیلئور آئسولیشن (failure isolation) کے لیے کیا۔ اگر AI ناکام ہو جائے، تب بھی ہیلپ ڈیسک چلتا رہتا ہے۔

سب سے بڑا سبق پرامپٹ (prompt) کے بارے میں تھا۔ میں نے متن کی ایک بہت بڑی دیوار سے آغاز کیا تھا۔ یہ 40,000 ٹوکنز پر مشتمل تھا۔ اسے برقرار رکھنا مشکل تھا اور ایجنٹ اپنی توجہ کھو دیتا تھا۔

میں نے اپنا طریقہ کار بدل دیا۔ میں نے پرامپٹ کو چھوٹی مہارتوں والی فائلوں (skill files) میں تقسیم کر دیا۔

  • ٹکٹ سرچ ایک فائل ہے۔
  • کوڈ ہسٹری دوسری ہے۔
  • پروجیکٹ مینجمنٹ تیسری ہے۔

مین پرامپٹ ایک روٹر (router) کے طور پر کام کرتا ہے۔ یہ کسی مہارت کو صرف تب لوڈ کرتا ہے جب اسے ضرورت ہو۔ اس سے فی درخواست ہمارے ٹوکنز 40,000 سے کم ہو کر 8,000 رہ گئے۔ ایجنٹ اپنے کام پر توجہ مرکوز رکھتا ہے اور کوڈ کو اپ ڈیٹ کرنا آسان ہے۔

میں نے یوزر پروفائلز بھی شامل کیے۔ ایک ڈویلپر کو کوڈ پاتھ ملتے ہیں، جبکہ ایک پروجیکٹ مینیجر کو اسٹیٹس کے خلاصے۔ ایجنٹ بتائے بغیر جان لیتا ہے کہ کون پوچھ رہا ہے۔

یہ مکمل طور پر درست نہیں ہے۔ ہمیں حقیقی ناکامیوں کا سامنا کرنا پڑا:

  • Hallucinations: ایجنٹ نے فرضی URLs بنا دیے۔ حل: درست پیٹرنز کو پن کریں یا تلاش (lookup) کے لیے مجبور کریں۔
  • Memory loss: ایجنٹ طویل بات چیت میں قواعد بھول جاتا تھا۔ حل: ہر مرحلے پر ایک منظم ٹو-ڈو لسٹ شامل کریں۔
  • Infinite loops: ایجنٹ نے بہت زیادہ ٹول کالز کیں۔ حل: فی درخواست کے لیے ایک سخت بجٹ مقرر کریں۔
  • Safety: صارفین نے اسے دھوکہ دینے کی کوشش کی۔ حل: حفاظت کے لیے صرف پرامپٹس پر بھروسہ نہ کریں۔ اپنے انفراسٹرکچر میں ریڈ-اونلی (read-only) ڈیٹا بیس کریڈنشلز استعمال کریں۔

اصل کام ایک ہفتہ وار لوپ ہے۔ میں لاگز (logs) پڑھتا ہوں۔ میں سیشنز کو اسکور کرتا ہوں۔ میں مہارتوں میں بہتری لاتا ہوں۔ میں پروفائلز کو اپ ڈیٹ کرتا ہوں۔

اگر آپ اس لوپ کو چھوڑ دیں گے، تو آپ کے پاس صرف ایک ڈیمو ہوگا۔ اگر آپ اسے کریں گے، تو آپ کے پاس ایک پروڈکٹ ہوگا۔

مقصد صرف تیز جوابات حاصل کرنا نہیں ہے۔ مقصد ادارہ جاتی علم (institutional knowledge) کو ادارے کے اندر محفوظ رکھنا ہے۔ جب کوئی شخص چھوڑ کر جاتا ہے، تو اس کا علم ٹرانسکرپٹس میں محفوظ رہتا ہے۔

آپ کی تعمیر کے لیے خلاصہ:

  • اپنی ہسٹری پر RAG سے آغاز کریں۔
  • ایک بڑے پرامپٹ کے بجائے لیزی لوڈڈ (lazy-loaded) اسکل فائلز استعمال کریں۔
  • ذاتی نوعیت کے سیاق و سباق (context) کے لیے یوزر پروفائلز استعمال کریں۔
  • AI کو اپنے الگ کنٹینر میں الگ رکھیں۔
  • ہدایات کے بجائے انفراسٹرکچر کے ذریعے حفاظت کو یقینی بنائیں۔
  • ہر ہفتے اپنے لاگز پڑھیں۔

ماخذ: https://dev.to/nunc/i-put-an-ai-agent-in-front-of-20-years-of-support-tickets-heres-what-actually-broke-5gdd

اختیاری لرننگ کمیونٹی: https://t.me/GyaanSetuAi