AI ایجنٹس کے لیے PRG پیٹرن

AI ایجنٹس 25 سال پرانی غلطی دہرا رہے ہیں۔

90 کی دہائی میں، ویب فارمز میں ایک بڑا بگ (bug) ہوا کرتا تھا۔ ایک صارف آرڈر دیتا، ریفریش (refresh) کا بٹن دباتا، اور براؤزر دوبارہ وہی آرڈر بھیج دیتا۔ اس کے نتیجے میں دو بار چارجز کٹ جاتے اور ایک غصے میں بھرپور صارف حاصل ہوتا۔

اس کا حل Post/Redirect/Get (PRG) پیٹرن تھا۔ یہ اس طرح کام کرتا ہے:

  • صارف ڈیٹا جمع کروانے کے لیے POST ریکویسٹ بھیجتا ہے۔
  • سرور ڈیٹا پر کارروائی کرتا ہے۔
  • سرور ایک نئے URL پر ری ڈائریکٹ (redirect) بھیجتا ہے۔
  • براؤزر نتیجہ دکھانے کے لیے GET ریکویسٹ کرتا ہے۔

اگر صارف ریفریش کرتا ہے، تو وہ صرف GET ریکویسٹ کو دوبارہ دہراتا ہے۔ خطرناک POST ریکویسٹ ختم ہو جاتی ہے۔

AI ایجنٹس اس بگ کو دوبارہ لے آئے ہیں۔

جب کوئی ایجنٹ کارڈ چارج کرنے یا ریکارڈ بنانے کے لیے کسی ٹول (tool) کو کال کرتا ہے، تو نیٹ ورک منقطع ہو سکتا ہے۔ ایجنٹ کو معلوم نہیں ہوتا کہ کارروائی کامیاب ہوئی یا نہیں۔ وہ دوبارہ کوشش کرتا ہے۔ اب صارف کے پاس دو بار چارجز ہو چکے ہوتے ہیں۔

آپ اسے idempotency keys کا استعمال کر کے ٹھیک کر سکتے ہیں۔ ایک idempotency key ری ڈائریکٹ کی طرح کام کرتی ہے۔ یہ "کام کرنے" اور "نتیجہ دکھانے" کو الگ کر دیتی ہے۔

ایجنٹس کے لیے پیٹرن ایسا ہونا چاہیے:

  • ایجنٹ پہلی کوشش سے پہلے ایک منفرد (unique) کی (key) تیار کرتا ہے۔
  • یہ صارف کی آئی ڈی (user ID) اور کارٹ آئی ڈی (cart ID) جیسی مستحکم ویلیو استعمال کرتا ہے۔
  • یہ ہر ٹول کال کے ساتھ اس کی (key) بھیجتا ہے۔
  • سرور کی (key) کو چیک کرتا ہے۔ اگر اسے وہی کی دوبارہ نظر آئے، تو وہ کارروائی کو دو بار چلانے کے بجائے پچھلا نتیجہ واپس کر دیتا ہے۔

طویل کاموں کے لیے، آپ کو صرف ایک کی (key) سے زیادہ کی ضرورت ہوتی ہے۔ آپ کو چیک پوائنٹنگ (checkpointing) کی ضرورت ہوتی ہے۔ آپ کو ہر مرحلے پر اسٹیٹ (state) کو محفوظ کرنا چاہیے۔ اس سے یہ یقینی بنتا ہے کہ دوبارہ شروع کرنے پر وہیں سے کام شروع ہو جہاں سے چھوڑا گیا تھا۔

ڈیٹا تبدیل کرنے والے کسی بھی ایجنٹ ٹول کے لیے ان اصولوں پر عمل کریں:

  • ہر تبدیل کرنے والے (mutating) ٹول کو idempotency key قبول کرنی چاہیے۔
  • کی (key) کو صارف کے ارادے (intent) سے اخذ کریں، ٹائم اسٹیمپ (timestamp) سے نہیں۔
  • پہلی کوشش سے پہلے کی (key) تیار کریں۔
  • ہر ری ٹرائی (retry) پر وہی کی (key) دوبارہ استعمال کریں۔
  • طویل کاموں کے لیے، ہر درمیانی مرحلے کا چیک پوائنٹ بنائیں۔

لیئر (layer) بدل جاتی ہے، لیکن منطق (logic) وہی رہتی ہے۔

Source: https://dev.to/ravikiran438/the-prg-pattern-for-ai-agents-a-25-year-old-fix-coming-of-age-in-a-new-era-23fh

Optional learning community: https://t.me/GyaanSetuAi