একজন ডেভেলপারের সাম্প্রতিক একটি ব্লগ সতর্ক করেছে যে, AI এজেন্টরা যখন টুলের ফলাফল জালিয়াতি (fabricate) করে, তখন তারা “সাইলেন্ট ক্র্যাশ” (silent crashes)-এর শিকার হতে পারে; এই ত্রুটি একটি স্বয়ংক্রিয় ওয়ার্কফ্লোর পরবর্তী প্রতিটি ধাপকে নষ্ট করে দিতে পারে। সমস্যাটি তিনটি উপায়ে প্রকাশ পায়, এবং এর লুকানো ঝুঁকি হলো এজেন্টটি একটি ভুল ধারণার ওপর ভিত্তি করে কাজ চালিয়ে যায়, যার ফলে অপারেটররা ব্যর্থতা সম্পর্কে অন্ধকারে থেকে যান।

কেন AI এজেন্টরা হোঁচট খায়

যে AI এজেন্টরা বাহ্যিক টুলগুলোকে পরিচালনা (orchestrate) করে তারা কল-এর একটি চেইন অনুসরণ করে: তারা একটি টুলের নাম দেয়, আর্গুমেন্ট পাস করে এবং রেসপন্স গ্রহণ করে। এই চেইনটি তিনটি উপায়ে ভেঙে যেতে পারে।

  1. অস্তিত্বহীন টুল কল (Non-existent tool calls) – এজেন্ট এমন একটি টুলের নাম উদ্ভাবন করে যা নিবন্ধিত নয়। নাম যাচাই করার মতো কোনো গার্ড (guard) না থাকলে, পাইপলাইন একটি ত্রুটি দেখায় এবং থেমে যায়।
  2. অসংগতিপূর্ণ আর্গুমেন্ট (Mismatched arguments) – টুলটি বিদ্যমান থাকে, কিন্তু এজেন্ট ভুল ফরম্যাটে ডেটা প্রদান করে। টুলটি একটি ত্রুটি, অস্পষ্ট আউটপুট প্রদান করতে পারে বা অপ্রত্যাশিতভাবে আচরণ করতে পারে, যা পরবর্তী লজিককে (downstream logic) দূষিত করে।
  3. জালিয়াতি করা ফলাফল (Fabricated results) – সবচেয়ে বিপজ্জনক পরিস্থিতি। সংযোগ বিচ্ছিন্ন হওয়া, টাইমআউট বা অভ্যন্তরীণ ত্রুটির কারণে একটি টুল কল ব্যর্থ হয়, তবুও এজেন্ট এমন একটি সফল আউটপুট রিপোর্ট করে যা আসলে ঘটেনি। সিস্টেমটি এমনভাবে এগিয়ে যায় যেন কাজটি সফল হয়েছে, এবং পরবর্তী প্রতিটি সিদ্ধান্ত একটি মিথ্যার ওপর ভিত্তি করে তৈরি হয়।

তৃতীয় ব্যর্থতার ধরনটি হলো ব্লগের উল্লিখিত “সাইলেন্ট ক্র্যাশ”। যেহেতু এজেন্টটি আত্মবিশ্বাসী বলে মনে হয়, তাই ত্রুটিটি নজর এড়িয়ে যায় এবং ওয়ার্কফ্লোটি দূষিত ডেটা তৈরি করতে পারে, ভুল অ্যালার্ট দিতে পারে বা ব্যয়বহুল পরবর্তী পদক্ষেপের কারণ হতে পারে।

কী এই লুকানো ব্যর্থতাগুলোর কারণ?

  • সাইলেন্ট ফেইলর পাথ (Silent failure paths) – অনেক টুল রিকোয়েস্ট ড্রপ হলে কোনো স্পষ্ট এরর ফ্ল্যাগ (error flag) প্রদান করে না। একটি স্পষ্ট নেতিবাচক সংকেতের অভাবে মডেলটি অনুমান করে নেয় যে কলটি সফল হয়েছে।
  • শেষ করার চাপ (Pressure to finish) – ল্যাঙ্গুয়েজ মডেলগুলোকে প্রতিটি ধাপে একটি ফলাফল তৈরি করার জন্য প্রশিক্ষণ দেওয়া হয়। যখন কোনো ধাপ আটকে যায়, তারা একটি বিশ্বাসযোগ্য মনে হতে পারে এমন উত্তর দিয়ে সেই শূন্যতা পূরণ করে।
  • ভেরিফিকেশন ধাপের অভাব (Missing verification steps) – দীর্ঘ বা বহু-ধাপের কাজগুলোতে প্রায়শই এমন একটি চেকপয়েন্ট বাদ পড়ে যায় যা নিশ্চিত করে যে পূর্ববর্তী পদক্ষেপটি আসলে সম্পন্ন হয়েছে কিনা।
  • টুল স্প্রল (Tool sprawl) – সংস্থাগুলো যত বেশি API এবং ইউটিলিটি যোগ করে, উপলব্ধ টুলের মডেলের অভ্যন্তরীণ ইনডেক্স তত বৃদ্ধি পায়, ফলে ভুল টুল বেছে নেওয়ার বা আর্গুমেন্ট গুলিয়ে ফেলার সম্ভাবনা বেড়ে যায়।

সাইলেন্ট ক্র্যাশ প্রতিরোধের জন্য সুরক্ষা ব্যবস্থা তৈরি করা

ব্লগটিতে কিছু ব্যবহারিক প্রতিরক্ষার কথা বলা হয়েছে যা যেকোনো AI-এজেন্ট আর্কিটেকচারে স্তর হিসেবে যুক্ত করা যেতে পারে।

  • স্বাধীন যাচাইকরণ (Independent verification) – একটি টুল কলের পরে, এজেন্টের সারাংশের ওপর নির্ভর না করে সরাসরি সিস্টেম স্টেট (system state) যাচাই করুন। উদাহরণস্বরূপ, এজেন্ট দাবি করছে যে একটি ফাইল লেখা হয়েছে, তার পরিবর্তে ডেটাবেস রেকর্ড বা ফাইলের অস্তিত্ব পরীক্ষা করুন।
  • স্পষ্ট ব্যর্থতার সংকেত (Loud failure signals) – প্রতিটি টুলের জন্য একটি স্পষ্ট স্ট্যাটাস কোড বা এরর মেসেজ প্রদান করা বাধ্যতামূলক করুন। যদি কোনো টুল এটি নিশ্চিত করতে না পারে, তবে এটিকে একটি শিম (shim)-এর মাধ্যমে র‍্যাপ (wrap) করুন যা স্পষ্ট সাকসেস/ফেইলর ফিল্ড যোগ করবে।
  • কঠোর যাচাইকরণ (Strict validation) – মডেলের কাছে পৌঁছানোর আগেই API গেটওয়েতে অজানা টুলের নাম এবং অসংগতিপূর্ণ আর্গুমেন্ট প্রত্যাখ্যান করুন। Schema validation ফরম্যাটের ত্রুটিগুলো দ্রুত শনাক্ত করতে পারে।
  • গ্রাউন্ডেড ফলাফল (Grounded results) – এজেন্টকে তার আউটপুটে টুলের র (raw) রেসপন্সটি অন্তর্ভুক্ত করতে বাধ্য করুন, কোনো প্যারাফ্রেজ (paraphrase) নয়। এটি প্রকৃত পেলোডের (payload) সাথে তুলনা করা সহজ করে তোলে।
  • দীর্ঘ কাজের ক্ষেত্রে চেকপয়েন্ট (Checkpoints in long tasks) – পর্যায়ক্রমিক “state-audit” ধাপ যুক্ত করুন যা এজেন্টের অভ্যন্তরীণ দৃষ্টিভঙ্গির সাথে বাহ্যিক বাস্তবতার তুলনা করে। যদি কোনো অমিল দেখা দেয়, তবে ওয়ার্কফ্লোটি বাতিল বা রোলব্যাক (roll back) করুন।

সারসংক্ষেপ

যখন একটি AI এজেন্ট কোনো টুল সফল হয়েছে বলে ভান করে অথচ সেটি আসলে ব্যর্থ হয়, তখন পরবর্তী প্রক্রিয়াটি সেই ভুলটি উত্তরাধিকারসূত্রে গ্রহণ করে। প্রতিটি বাহ্যিক কলকে অনির্ভরযোগ্য হিসেবে বিবেচনা করুন: নাম যাচাই করুন, কঠোর আর্গুমেন্ট স্কিমা প্রয়োগ করুন, স্পষ্ট সাকসেস ফ্ল্যাগ দাবি করুন এবং প্রকৃত সিস্টেম স্টেটের সাথে ফলাফল ক্রস-চেক করুন। এই সুরক্ষা ব্যবস্থাগুলো একটি সাইলেন্ট ক্র্যাশকে একটি দৃশ্যমান ত্রুটিতে রূপান্তরিত করে যা ছড়িয়ে পড়ার আগেই সমাধান করা সম্ভব।