আপনার এজেন্টের ডেমো কাজ করছে। এটাই হলো ফাঁদ।
আমি কোম্পানিগুলোর জন্য AI এজেন্ট তৈরি করি। আমি প্রায়ই একই প্যাটার্ন দেখতে পাই। ডেমোতে মডেলটি কাজ করে। আপনি প্রোডাক্টটি রিলিজ করেন। তারপর প্রোডাকশনে এটি প্রতি তিনবারের মধ্যে একবার ব্যর্থ হয়। কেউ জানে না কেন।
ডেমো এবং প্রোডাকশনের মধ্যকার ব্যবধান হলো গণিত। একবার আপনি গণিতটি বুঝে ফেললে, আপনি ভিন্নভাবে তৈরি করবেন।
যদি আপনার এজেন্টের প্রতিটি ধাপ ৯৫% নির্ভরযোগ্য হয়, তবে তা শুনতে ভালো লাগে। কিন্তু এজেন্টগুলো ধাপের চেইন (chains of steps) ব্যবহার করে। আপনি যদি দশটি ধাপকে একসাথে যুক্ত করেন, তবে আপনার সাফল্যের হার কমে ৬০% হয়ে যায়। আপনি যদি বিশটি ধাপ ব্যবহার করেন, তবে সাফল্যের হার কমে ৩৬% হয়ে যায়।
বাস্তব কাজে, ধাপগুলোর ত্রুটির হার প্রায়শই ১০% থেকে ২০% হয়। যদি একটি এজেন্টের ৮টি ধাপ থাকে এবং প্রতিটির নির্ভরযোগ্যতা ৮৫% হয়, তবে এটি ৭৫% সময় ব্যর্থ হয়।
মডেলটি সমস্যা নয়। কম্পাউন্ডিং প্রোবাবিলিটি (compounding probability) হলো সমস্যা।
একটি ডেমো কেবল একটি 'হ্যাপি পাথ' (happy path) দেখায়। এটি পরিষ্কার ইনপুট এবং ছোট চেইন ব্যবহার করে। প্রোডাকশন শত শত ব্যবহারকারীর অগোছালো (messy) ডেটা ব্যবহার করে। এটি দীর্ঘ চেইন ব্যবহার করে যাতে লুকানো ধাপও অন্তর্ভুক্ত থাকে।
এজেন্টের ব্যর্থতা কোনো ক্র্যাশ (crash) এর মতো দেখায় না। এটি একটি নিঃশব্দ ত্রুটির মতো দেখায়।
৩ নম্বর ধাপটি একটি ফিল্ড ভুলভাবে পড়ে। আউটপুটটি তবুও বৈধ JSON এর মতো দেখায়। ৪ নম্বর ধাপটি সেই ভুল ডেটা ব্যবহার করে যুক্তি প্রদান করে। ৫ থেকে ৮ নম্বর ধাপগুলো সেই ভুলের ওপর ভিত্তি করে কাজ করে। চূড়ান্ত উত্তরটি ভুল কিন্তু দেখতে বিশ্বাসযোগ্য মনে হয়। কোথায় ভুল হয়েছে তা দেখানোর জন্য কোনো এরর লগ (error log) থাকে না।
মডেলটি 'হ্যালুসিনেশন' (hallucinated) করেছে বলা বন্ধ করুন। মডেলটি কেবল তার প্রাপ্ত ভুল ডেটাটি পরবর্তী ধাপে পাঠিয়ে দিয়েছে। আপনার সিস্টেমে ৩ নম্বর ধাপে ত্রুটিটি ধরার জন্য কোনো চেকপয়েন্ট ছিল না।
এজেন্টকে কেবল একটি প্রম্পট হিসেবে দেখা বন্ধ করুন। এটিকে একটি সিস্টেম হিসেবে দেখা শুরু করুন।
নির্ভরযোগ্য এজেন্ট তৈরি করতে এই নিয়মগুলো অনুসরণ করুন:
এজেন্টের বাইরে স্টেট (state) সেভ করুন। স্টেট কথোপকথনে (conversation) নয়, বরং একটি ডেটাবেসে রাখুন। যদি কোনো প্রসেস ৬ নম্বর ধাপে ব্যর্থ হয়, তবে আপনি ৬ নম্বর ধাপ থেকেই আবার শুরু করতে পারেন। আপনাকে পুরো চেইনটি আবার শুরু করতে হবে না।
বাউন্ডারিতে (boundaries) ভ্যালিডেশন করুন। প্রতিটি ইনপুট এবং আউটপুট একটি স্কিমার (schema) বিপরীতে যাচাই করুন। যে ধাপে ত্রুটিটি ঘটছে সেখানেই তা শনাক্ত করুন। এটি একটি রহস্যময় সমস্যাকে একটি পুনরুদ্ধারযোগ্য (recoverable) ত্রুটিতে পরিণত করে।
সাইড ইফেক্টগুলোকে (side effects) আইডেমপোটেন্ট (idempotent) করুন। ধাপগুলো ব্যর্থ হলে আপনাকে অবশ্যই সেগুলো পুনরায় চেষ্টা (retry) করতে হবে। যদি কোনো ধাপ ইমেল পাঠায় বা কার্ড থেকে টাকা কাটে, তবে একটি আইডেমপোটেন্সি কী (idempotency key) ব্যবহার করুন। এটি রিট্রাই করার সময় একই কাজ বারবার হওয়া রোধ করে।
আপনার CI-তে evals ব্যবহার করুন। প্রতিটি পরিবর্তনের সাথে এজেন্টের আচরণ পরিবর্তিত হয়। একটি প্রম্পট পরিবর্তন একটি সমস্যা সমাধান করতে পারে কিন্তু অন্য পাঁচটি সমস্যা তৈরি করতে পারে। এই ধরনের রিগ্রেশন (regressions) স্বয়ংক্রিয়ভাবে ধরার জন্য একটি টেস্ট সেট ব্যবহার করুন।
ডেমো থেকে একটি বাস্তব প্রোডাক্টে যাওয়া হলো ইঞ্জিনিয়ারিংয়ের বিষয়। এটি এরর হ্যান্ডলিং (error handling), স্টেট ম্যানেজমেন্ট (state management) এবং অবজারভেবিলিটি (observability) সংক্রান্ত। এটি কেবল উন্নত প্রম্পট তৈরির বিষয় নয়।
যদি আপনার এজেন্ট প্রোডাকশনে অস্থিতিশীল (flakes) হয়, তবে আরও বড় মডেল খুঁজবেন না। চেইনটি কোথায় ভুল পথে যাচ্ছে সেই ধাপটি খুঁজুন। আপনার সিস্টেম কেন সেখানে ত্রুটিটি ধরতে পারল না তা জিজ্ঞাসা করুন।
Source: https://dev.to/sagar_jain4010/your-agent-demo-works-thats-the-trap-4joc
Optional learning community: https://t.me/GyaanSetuAi
