একটি রেসপন্স হারিয়ে গেলে আপনার AI Agent ডাবল-চার্জ করতে পারে

যদি আপনার AI agent একটি কার্ড চার্জ করার জন্য কোনো টুল কল করে এবং নেটওয়ার্ক রেসপন্সটি হারিয়ে ফেলে, তবে আপনার এজেন্টটি ভুলভাবে কাজ করবে। এটি না জেনেই গ্রাহকের কাছ থেকে ডাবল-চার্জ করে ফেলবে।

টাকা ইতিমধ্যেই স্থানান্তরিত হয়ে গেছে। এজেন্ট কখনোই "ok" শুনতে পায়নি। এটি ঠিক তাই করে যা প্রতিটি retry loop করে: এটি আবার চেষ্টা করে। এটি একই prompt এবং একই arguments ব্যবহার করে। এর ফলে দ্বিতীয়বার চার্জ হয়ে যায়।

একটি retry কেবল একটি নেটওয়ার্ক ইভেন্ট নয়। এটি একটি side effect সম্পর্কে নেওয়া সিদ্ধান্ত যা ইতিমধ্যে ঘটে থাকতে পারে।

backoff এবং jitter-এর মতো স্ট্যান্ডার্ড retry টুলগুলো retry প্রক্রিয়াকে মার্জিত করে। কিন্তু ডাবল-চার্জ বন্ধ করতে এগুলো কিছুই করতে পারে না।

আপনার একটি idempotency ledger প্রয়োজন। এটি একটি unique key ব্যবহার করে নিশ্চিত করে যে একটি কাজ বড়জোর একবারই সম্পন্ন হবে।

একটি টুল কল ব্যর্থ হওয়ার দুটি উপায় আছে:

একটি এজেন্টের কাছে এই দুটি বিষয় দেখতে একই রকম। উভয় ক্ষেত্রেই এটি একটি timeout বা কানেকশন ড্রপ হওয়া বলে মনে হয়।

যদি কোনো টুলের side effect হিসেবে পেমেন্ট, ইমেল বা রিফান্ডের মতো কাজ থাকে, তবে আপনি কেবল সাধারণ retry-এর ওপর নির্ভর করতে পারবেন না। আপনাকে অবশ্যই একটি idempotency key ব্যবহার করতে হবে।

এটি কীভাবে সমাধান করবেন:

"at-least-once"-কে "exactly-once" মনে করার ভুল করবেন না। distributed systems-এ, আপনি at-most-once delivery-এর সাথে at-least-once retries এবং একটি deduplication ledger সমন্বয় করার মাধ্যমে "exactly-once" অর্জন করতে পারেন।

write-কে read-এর মতো মনে করা বন্ধ করুন। একটি read পুনরায় করার জন্য কোনো খরচ নেই। কিন্তু একটি write পুনরায় করলে টাকা খরচ হয়।

উৎস: https://dev.to/0012303/your-ai-agent-will-double-charge-on-a-lost-response-5eed

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