১০৭টি বৈচিত্র্যময় টাস্কের একটি বেঞ্চমার্ক দেখায় যে, সফলতার হার (success rate), ল্যাটেন্সি (latency) এবং টোকেন খরচের (token cost) ক্ষেত্রে AutoGen, LangGraph এবং CrewAI-কে ছাড়িয়ে গেছে; এটি প্রতি রান-এ মাত্র ১০,৭০০ টোকেন ব্যবহার করে গড়ে ১০.২ সেকেন্ডে ৯০% সম্পন্ন করার হার প্রদান করে। প্রোডাকশন-গ্রেড AI পাইপলাইন তৈরি করা ডেভেলপারদের কাছে এটি গুরুত্বপূর্ণ, কারণ এই সংখ্যাগুলো সেই লুকানো খরচগুলো প্রকাশ করে যা সাধারণ ডেমোতে কখনোই দেখা যায় না।
কেন বাস্তব জগতের পরীক্ষা গুরুত্বপূর্ণ
এজেন্ট ফ্রেমওয়ার্কের বেশিরভাগ পাবলিক ডেমো একটি সিঙ্গেল-স্টেপ ইউজ কেসেই সীমাবদ্ধ থাকে – যেমন একটি PDF চ্যাট, একটি সাধারণ সেলস বট, বা একটি বেসিক ডেটা ফেচ। এই উদাহরণগুলো কাজের চাপ যখন ডজন ডজন স্টেপ, কন্ডিশনাল ব্রাঞ্চ এবং বড় প্রম্পট কনটেক্সটে বিস্তৃত হয়, তখন সিস্টেমগুলো কেমন আচরণ করে তা আড়াল করে রাখে। নতুন এই বেঞ্চমার্কটি প্রতিটি ফ্রেমওয়ার্ককে এমন এক বিস্তৃত পরিস্থিতির মধ্য দিয়ে নিয়ে যায় যা স্টেট শেয়ারিং (state sharing), প্যারালাল এক্সিকিউশন (parallel execution) এবং টোকেন এফিসিয়েন্সির (token efficiency) ওপর চাপ সৃষ্টি করে, যা ডেভেলপারদের প্রোডাকশন চ্যালেঞ্জগুলোর একটি ধারণা দেয়।
সরাসরি তুলনা (Head-to-head numbers)
| ফ্রেমওয়ার্ক | সফলতার হার | গড় ল্যাটেন্সি | গড় টোকেন ব্যবহার |
|---|---|---|---|
| AutoGen | 90 % | 10.2 s | 10,700 |
| LangGraph | 85 % | 12.9 s | 11,900 |
| CrewAI | 78 % | 19.1 s | 14,350 |
সফলতার হার (Success rate) পরিমাপ করে যে চূড়ান্ত আউটপুট টাস্কের সঠিকতার মানদণ্ড পূরণ করে কি না। ল্যাটেন্সি (Latency) হলো শুরু থেকে শেষ পর্যন্ত প্রকৃত সময়, এবং টোকেন ব্যবহার (token use) মডেলটি প্রসেস করা মোট প্রম্পট দৈর্ঘ্য নির্দেশ করে, যা খরচের একটি সূচক।
ফ্রেমওয়ার্কের বিস্তারিত বিশ্লেষণ
AutoGen – গতি এবং দক্ষতা, কিন্তু ডিবাগিং করা বেশ কঠিন
AutoGen-এর আর্কিটেকচার পুরো পাইপলাইন জুড়ে স্টেট শেয়ার করে, ফলে প্রতিটি স্টেপে একই কনটেক্সট বারবার পাঠানোর প্রয়োজন হয় না। বিল্ট-ইন অ্যাসিনক্রোনাস এক্সিকিউশন (asynchronous execution) স্বাধীন শাখাগুলোকে প্যারালালে চলতে সাহায্য করে, যা সর্বনিম্ন ল্যাটেন্সি এবং টোকেন সংখ্যা নিশ্চিত করে। এর বিনিময়ে ভিজিবিলিটি বা দৃশ্যমানতা কমে যায়: যেহেতু ওয়ার্কফ্লোটি একটি একক, মনোলিথিক চেইনের মধ্যে থাকে, তাই কোনো ত্রুটি শনাক্ত করতে একটি নির্দিষ্ট নোড আলাদা করার পরিবর্তে প্রায়শই পুরো রানটি ধাপে ধাপে পরীক্ষা করতে হয়।
LangGraph – সুনির্দিষ্ট নিয়ন্ত্রণ, তবে কন্ডিশনালের জন্য অতিরিক্ত কোড প্রয়োজন
LangGraph ডেভেলপারদের ওয়ার্কফ্লোকে নোডের একটি গ্রাফ হিসেবে ঘোষণা করতে বাধ্য করে, যা এক্সিকিউশন অর্ডার এবং স্টেট ট্রানজিশনের ওপর সূক্ষ্ম নিয়ন্ত্রণ প্রদান করে। এটি CrewAI-এর চেয়ে স্টেট আরও ভালোভাবে হ্যান্ডেল করে এবং বারবার কনটেক্সট ব্যবহারের সমস্যা এড়ায়। তবে, যখন কোনো শাখা একটি LLM-এর আউটপুটের ওপর ভিত্তি করে পরিবর্তন করতে হয়, তখন ডেভেলপারদের অতিরিক্ত প্লাম্বিং কোড লিখতে হয়, যা এর স্বচ্ছতার সুবিধা কমিয়ে দিতে পারে এবং রক্ষণাবেক্ষণের বোঝা বাড়িয়ে দিতে পারে।
CrewAI – বিচ্ছিন্ন এজেন্ট, টোকেনের অপচয়
CrewAI একটি এজেন্ট-রোল মেটাফোর অনুসরণ করে: প্রতিটি রোল তার নিজস্ব প্রম্পট এবং নির্দেশাবলী সহ একটি স্বাধীন ইউনিট হিসেবে কাজ করে। এই বিচ্ছিন্নতা বিশেষায়িত বটগুলোর ছোট টিমের জন্য কার্যকর হতে পারে, কিন্তু বড় পরিসরে এটি প্রতিটি এজেন্টের জন্য একই কনটেক্সট বারবার ব্যবহার করতে বাধ্য করে। এর ফলে টোকেন খরচ সবচেয়ে বেশি হয় এবং রান করার গতি সবচেয়ে ধীর হয়। স্টেট শেয়ারিংও দুর্বল, যার ফলে যখন একটি এজেন্টের আউটপুট পরবর্তী ধাপে প্রয়োজন হয়, তখন মাঝেমধ্যে ডেটা মিসিং এরর দেখা দিতে পারে।
সারকথা: আপনার যদি অনেকগুলো স্টেপ যুক্ত একটি দ্রুত এবং টোকেন-সাশ্রয়ী পাইপলাইনের প্রয়োজন হয়, তবে ডিবাগ করা কিছুটা কঠিন হলেও AutoGen একটি বাস্তবসম্মত পছন্দ। যখন আপনাকে একটি কঠোর এক্সিকিউশন গ্রাফ বজায় রাখতে হবে এবং কিছুটা অতিরিক্ত গ্লু কোড (glue code) লিখতে রাজি থাকবেন, তখন LangGraph বেছে নিন। CrewAI-কে শুধুমাত্র সীমিত পরিসরের এবং কম এজেন্টের কাজের জন্য রাখুন, যেখানে বিচ্ছিন্নতা একটি সুবিধা, বোঝা নয়।
উৎস: https://dev.to/priyesh_dave_cb8759cdeca4/agent-frameworks-in-the-real-world-107-task-bakeoff-of-langgraph-crewai-and-autogen-445g কমিউনিটি আলোচনা: https://t.me/GyaanSetuAi
