ইন্টারনেট সিদ্ধান্ত নিয়েছে যে এটিই হলো এজেন্টদের বছর। LangGraph, CrewAI, এবং AutoGen এখন প্রতিটি ইঞ্জিনিয়ারিং রোডম্যাপের আলোচনার বিষয়। টিমগুলো অর্কেস্ট্রেশন লেয়ারগুলো স্ট্রেস-টেস্ট করছে, স্টেট মেশিন বনাম রোল-প্লে নিয়ে বিতর্ক করছে, এবং ভাবছে কোন লাইব্রেরিটি শেষ পর্যন্ত লার্জ ল্যাঙ্গুয়েজ মডেলগুলোকে স্বয়ংসম্পূর্ণ (autonomous) করে তুলবে।

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

কোনো ফ্রেমওয়ার্ক বেছে নেওয়ার আগে, আপনি আসলে কী তৈরি করছেন তা সংজ্ঞায়িত করুন।

একটি এজেন্ট আসলে কী

একটি এজেন্ট সেটি দিয়ে সংজ্ঞায়িত হয় না যে এটি কোন মডেলের ওপর চলে বা এটি কতবার API কল করে। একটি এজেন্ট সংজ্ঞায়িত হয় তার আচরণ দ্বারা। এর একটি স্পষ্ট লক্ষ্য থাকতে হবে। কোনো মানুষ আগে থেকে পথ ঠিক করে না দিয়ে, পরবর্তী পদক্ষেপ কী হবে তা একে সিদ্ধান্ত নিতে হবে। সেই পদক্ষেপটি ব্যর্থ হলে এটি তা সামলাতে সক্ষম হতে হবে। এবং কখন থামতে হবে তা এর জানা থাকতে হবে।

একটি সাপোর্ট সিস্টেমের কথা ভাবুন যা একটি ইনকামিং ইমেল পড়ে, সেটিকে একটি রিফান্ড রিকোয়েস্ট হিসেবে শ্রেণীবদ্ধ করে, অর্ডার নম্বরটি বের করে, শিপিং ডেটাবেস থেকে তথ্য নেয়, রিটার্ন পলিসির সময়সীমা পরীক্ষা করে, একটি উত্তরের খসড়া তৈরি করে এবং টিকিটটি সমাধান হয়েছে বলে চিহ্নিত করে। যদি ডেটাবেস টাইম-আউট হয়, তবে এটি অপেক্ষা করে এবং পুনরায় চেষ্টা করে। যদি পলিসির সময়সীমা অস্পষ্ট হয়, তবে এটি একজন মানুষের সাহায্য চায়। যখন উত্তরটি পাঠানো হয়, তখন এটি থেমে যায়। এটাই হলো একটি এজেন্ট। একটি সিঙ্গেল LLM কলের চারপাশে তৈরি করা একটি র‍্যাপার যা JSON রিটার্ন করে, তা এজেন্ট নয়—মার্কেটিং টিম তার ওপর যতগুলোই "এজেন্ট" স্টিকার লাগাক না কেন।

এই পার্থক্যটি গুরুত্বপূর্ণ কারণ জটিলতার একটি মূল্য আছে। যে সিস্টেমের স্বায়ত্তশাসনের প্রয়োজন নেই, তার জন্য সেই মূল্য দেওয়ার দরকার নেই।

প্রোডাকশন এআই-এর প্রকৃত রূপ

বর্তমানে প্রোডাকশনে চলা বেশিরভাগ এআই সিস্টেম অত্যন্ত নির্দিষ্ট কাজের জন্য (narrow)। তারা একটি কাজ খুব ভালোভাবে করে। তারা সাপোর্ট টিকিটগুলোকে কিউতে (queues) ভাগ করে। তারা স্ক্যান করা ডকুমেন্ট থেকে মেয়াদ শেষ হওয়ার তারিখ বের করে। তারা কাস্টমারের প্রশ্নগুলোকে বিদ্যমান নলেজ বেস আর্টিকেলের সাথে মিলিয়ে দেয়। তারা কোনো সাধারণ রিজনিং ইঞ্জিন নয়, এবং তারা এমনভাবে কাজ করছে বলে ভান করা মানেই হলো চরম পর্যায়ের ওভার-ইঞ্জিনিয়ারিং করা।

এটি মডেল রিলিজের প্রতি একটি ধ্বংসাত্মক আসক্তির দিকেও নিয়ে যায়। টিমগুলো নতুনতম ফাউন্ডেশন মডেলের পেছনে এমনভাবে ছোটে যেন এটি তাদের অগোছালো আর্কিটেকচারের অভাব পূরণ করে দেবে। তা হবে না। কোনো এরর হ্যান্ডলিং ছাড়া একটি ভঙ্গুর লুপের ভেতরে একটি আরও শক্তিশালী মডেল চালানো মানে হলো সেটি আরও বেশি আত্মবিশ্বাসের সাথে এবং আরও সৃজনশীল হ্যালুসিনেশনের মাধ্যমে ব্যর্থ হবে। বেঞ্চমার্কের পেছনে ছোটা বন্ধ করুন। স্ট্রাকচারের পেছনে ছোটা শুরু করুন।

ফ্রেমওয়ার্ক কোনো প্রোডাক্ট নয়

LangGraph আপনাকে সুনির্দিষ্ট স্টেট মেশিন এবং সাইকেল প্রদান করে। CrewAI রোল-ভিত্তিক অর্কেস্ট্রেশনের ওপর গুরুত্ব দেয় যেখানে এজেন্টরা বিভিন্ন পারসোনা গ্রহণ করে। AutoGen মূলত কনভারসেশনাল এজেন্টদের কেন্দ্র করে কাজ করে যারা সমস্যা সমাধানের জন্য একে অপরের সাথে চ্যাট করে। এগুলো সবই সক্ষম টুল। তবে এগুলো কন্ট্রোল ফ্লো-এর ক্ষেত্রে মৌলিকভাবে ভিন্ন ভিন্ন পদ্ধতি।

কিন্তু আপনি কোন ফ্রেমওয়ার্ক বেছে নিচ্ছেন তার চেয়ে বেশি গুরুত্বপূর্ণ হলো আপনি এর ভেতরে কোন প্যাটার্নগুলো প্রয়োগ করছেন। আমি দেখেছি অনেক টিম শুধুমাত্র Python এবং Redis ব্যবহার করে অত্যন্ত মজবুত অটোমেশন তৈরি করেছে কারণ তারা বাউন্ডারি বা সীমানা বজায় রেখেছিল। আবার আমি দেখেছি অন্যান্য টিম চাকচিক্যময় অর্কেস্ট্রেশনের চাপে ভেঙে পড়েছে কারণ তারা ফ্রেমওয়ার্ককে ডিজাইনের বিকল্প হিসেবে ব্যবহার করেছিল।

যদি আপনার হ্যান্ডঅফগুলো অস্পষ্ট হয়, আপনার টুলগুলো ভঙ্গুর হয় এবং আপনার রিট্রাই লজিক না থাকে, তবে আপনার requirements.txt-এ থাকা লোগো আপনাকে রক্ষা করতে পারবে না।

তিনটি বিষয় যা আসলে আপনার সময়ের দাবি রাখে

আপনি যদি এজেন্টিক সিস্টেম তৈরি করেন, তবে আপনার প্রচেষ্টা এই তিনটি ক্ষেত্রে ব্যয় করুন।

টুল ডিজাইন। আপনার এজেন্ট যে ফাংশনগুলো কল করতে পারে, তার প্রতিটিই একটি ইন্টারফেসের মোড়কে থাকা একটি দায়বদ্ধতা (liability)। এগুলোকে সুসংগঠিতভাবে ডিজাইন করুন। ইনপুটগুলো কঠোরভাবে যাচাই করুন। এমন এরর রিটার্ন করুন যা আসলে পড়া যায়, কেবল ৫০০ এরর ডাম্প নয়। একটি ভালো টুল হলো সেটি, যা কোনো সমস্যা হলে এজেন্ট নিজে তা নিয়ে যুক্তি দিয়ে চিন্তা করতে পারে।

ফেইলিউর হ্যান্ডলিং। ধরে নিন প্রতিটি LLM