AI এজেন্টদের জন্য PRG প্যাটার্ন

AI এজেন্টরা ২৫ বছরের পুরনো একটি ভুল পুনরাবৃত্তি করছে।

৯০-এর দশকে ওয়েব ফর্মগুলোতে একটি বড় বাগ (bug) ছিল। একজন ব্যবহারকারী একটি অর্ডার দিতেন, রিফ্রেশ বাটনে ক্লিক করতেন এবং ব্রাউজারটি আবার সেই অর্ডারটি পাঠিয়ে দিত। এর ফলে গ্রাহকের অ্যাকাউন্ট থেকে দুবার টাকা কেটে নেওয়া হতো এবং গ্রাহক ক্ষুব্ধ হতেন।

এর সমাধান ছিল Post/Redirect/Get (PRG) প্যাটার্ন। এটি এভাবে কাজ করে:

  • ব্যবহারকারী ডেটা সাবমিট করার জন্য একটি POST রিকোয়েস্ট পাঠান।
  • সার্ভার ডেটা প্রসেস করে।
  • সার্ভার একটি নতুন URL-এ রিডাইরেক্ট পাঠায়।
  • ব্রাউজার ফলাফল দেখানোর জন্য একটি GET রিকোয়েস্ট সম্পন্ন করে।

ব্যবহারকারী যদি রিফ্রেশ করেন, তবে কেবল GET রিকোয়েস্টটিই পুনরায় কার্যকর হয়। বিপজ্জনক POST রিকোয়েস্টটি আর থাকে না।

AI এজেন্টরা এই বাগটিকে আবার ফিরিয়ে এনেছে।

যখন একটি এজেন্ট কার্ড থেকে টাকা কাটার বা কোনো রেকর্ড তৈরির জন্য কোনো টুল কল করে, তখন নেটওয়ার্ক বিচ্ছিন্ন হয়ে যেতে পারে। এজেন্টটি জানে না যে কাজটি সফল হয়েছে কি না। ফলে এটি আবার চেষ্টা করে। এর ফলে গ্রাহকের অ্যাকাউন্ট থেকে দুবার টাকা কেটে নেওয়া হয়।

আপনি idempotency key ব্যবহার করে এটি সমাধান করতে পারেন। একটি idempotency key রিডাইরেক্টের মতো কাজ করে। এটি "কাজটি করা" এবং "ফলাফল দেখানো"-র মধ্যে পার্থক্য তৈরি করে।

এজেন্টদের জন্য প্যাটার্নটি এমন হওয়া উচিত:

  • প্রথম প্রচেষ্টার আগেই এজেন্ট একটি ইউনিক (unique) কী (key) তৈরি করে।
  • এটি ইউজার আইডি (user ID) এবং কার্ট আইডির (cart ID) মতো একটি স্থিতিশীল মান ব্যবহার করে।
  • এটি প্রতিটি টুল কলের সাথে এই কী-টি পাঠায়।
  • সার্ভার কী-টি পরীক্ষা করে। যদি এটি পুনরায় একই কী দেখতে পায়, তবে কাজটি দুবার না চালিয়ে এটি পূর্বের ফলাফলটিই ফেরত দেয়।

দীর্ঘস্থায়ী কাজের জন্য শুধুমাত্র একটি কী যথেষ্ট নয়। আপনার checkpointing-এর প্রয়োজন। প্রতিটি ধাপে আপনাকে স্টেট (state) সংরক্ষণ করতে হবে। এটি নিশ্চিত করে যে রিস্টার্ট দিলে কাজটি ঠিক যেখান থেকে থেমেছিল সেখান থেকেই শুরু হবে।

ডেটা পরিবর্তন করে এমন যেকোনো এজেন্ট টুলের জন্য এই নিয়মগুলো অনুসরণ করুন:

  • প্রতিটি মিউটেটিং (mutating) টুল অবশ্যই একটি idempotency key গ্রহণ করবে।
  • কী-টি ইউজারের ইনটেন্ট (intent) থেকে তৈরি করুন, টাইমস্ট্যাম্প (timestamp) থেকে নয়।
  • প্রথম প্রচেষ্টার আগেই কী-টি তৈরি করুন।
  • প্রতিটি রিট্রাই-তে (retry) একই কী ব্যবহার করুন।
  • দীর্ঘস্থায়ী কাজের জন্য প্রতিটি মধ্যবর্তী ধাপ চেকপয়েন্ট (checkpoint) করুন।

লেয়ার পরিবর্তিত হলেও লজিক একই থাকে।

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

ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi