কি আপনার AI টুলগুলো কিছুটা... নিষ্ক্রিয় লাগে? যেন সেগুলো শুধু আপনার পরবর্তী কমান্ডের জন্য অপেক্ষা করে থাকে? কল্পনা করুন যদি সেগুলো নিজে উদ্যোগ নিতে পারে, বড় সমস্যাগুলো ছোট ছোট অংশে ভাগ করতে পারে, এবং একসাথে কাজ করে কাজটি সম্পন্ন করতে পারে।
এটি হলো LLM agents যা টেবিলে আনছে। সেগুলো আমাদের জটিল কাজ অটোমেট করার পদ্ধতি বদলাচ্ছে, এবং আমাদের AI আইডিয়াগুলোকে একদম নতুন ভাবে বাস্তবায়ন করতে সাহায্য করতে পারে।
এই নিবন্ধে, আমরা শিখব LLM agents কী, সেগুলো কীভাবে কাজ করে, এবং আপনি কীভাবে আপনার নিজস্বটি বিল্ড করতে পারেন দুটি দারুণ ওপেন-সোর্স ফ্রেমওয়ার্ক ব্যবহার করে।
আমরা কী কভার করব:
LLM Agents-এর বর্তমান অবস্থা
চ্যাটবট থেকে স্বায়ত্তশাসিত এজেন্ট পর্যন্ত
এজেন্টগুলো আজ কী করতে পারে?
বিল্ড করার জন্য কী কী উপলব্ধ?
কেন এখন শিখতে সবচেয়ে ভালো সময়?
LLM Agents কী এবং কেন এটা বড় ব্যাপার?
LLM কী?
তাহলে, LLM Agent কী?
এটি কেন গুরুত্বপূর্ণ?
ওপেন-সোর্স এজেন্ট ফ্রেমওয়ার্কের উত্থান
প্রচলিত ওপেন-সোর্স এজেন্ট ফ্রেমওয়ার্ক
এই টুলগুলো কী সক্ষম করে?
কেন স্ক্র্যাচ থেকে বিল্ড না করে ফ্রেমওয়ার্ক ব্যবহার করবেন?
এজেন্ট ডিজাইনের মূল কনসেপ্ট
এজেন্ট লুপ
এজেন্টের মূল কম্পোনেন্ট
মাল্টি-এজেন্ট কোলাবোরেশন
প্রজেক্ট: ইমেইল থেকে আপনার দৈনিক শিডিউল অটোমেট করুন
আমরা কী অটোমেট করছি
ধাপ ১: প্রয়োজনীয় টুলস ইনস্টল করুন
ধাপ ২: টাস্ক ডিফাইন করুন
ধাপ ৩: LangGraph দিয়ে ওয়ার্কফ্লো বিল্ড করুন
CrewAI দিয়ে মাল্টি-এজেন্ট কোলাবোরেশন
CrewAI কী?
ইমেইল সামারি টাস্কের জন্য স্যাম্পল রোল
স্যাম্পল CrewAI কোড
এক্সিকিউশনের সময় আসলে কী ঘটে?
LLM Agents সুরক্ষিত কি? সিকিউরিটি ও প্রাইভেসি সম্পর্কে জানা দরকার
ট্রাবলশুটিং ও টিপস
আরও দৈনিক অটোমেশন এক্সপ্লোর করুন
এজেন্ট টেকনোলজিতে आगे কী আসছে?
চূড়ান্ত সারাংশ
LLM Agents-এর বর্তমান অবস্থা
LLM agents আজ AI-র সবচেয়ে এক্সাইটিং ডেভেলপমেন্টের মধ্যে একটি। সেগুলো ইতিমধ্যে রিয়েল টাস্ক অটোমেট করতে সাহায্য করছে কিন্তু সেগুলো এখনও এভোলভ করছে। তো আজ আমরা কোথায় আছি?
চ্যাটবট থেকে স্বায়ত্তশাসিত এজেন্ট পর্যন্ত
Large Language Models (LLMs) যেমন GPT-4, Claude, Gemini, এবং LLaMA সিম্পল চ্যাটবট থেকে আশ্চর্য সক্ষম রিজনিং ইঞ্জিনে রূপান্তরিত হয়েছে। সেগুলো ট্রিভিয়া প্রশ্নের উত্তর দেয়া এবং এসে জেনারেট করার থেকে জটিল রিজনিং, মাল্টি-স্টেপ ইনস্ট্রাকশন ফলো করা, এবং ওয়েব সার্চ ও কোড ইন্টারপ্রেটারের মতো টুলসের সাথে ইন্টারঅ্যাক্ট করার ধরণে এগিয়ে এসেছে।
কিন্তু একটি ক্যাচ রয়েছে: এই মডেলগুলো রিঅ্যাক্টিভ। সেগুলো ইনপুটের অপেক্ষা করে এবং আউটপুট দেয়। সেগুলো টাস্কের মাঝপথে মেমরি রিটেইন করে না, আগে থেকে প্ল্যান করে না, বা নিজে থেকে গোল পূরণ করতে চায় না। সেখানে LLM agents এসে এই গ্যাপ পূরণ করে স্ট্রাকচার, মেমরি, এবং অটোনومی যোগ করে।
এজেন্টগুলো আজ কী করতে পারে?
এখনই LLM agents ব্যবহার হচ্ছে:
ইমেইল বা ডকিউমেন্ট সার্মারাইজ করতে
দৈনিক শিডিউল প্ল্যান করতে
DevOps স্ক্রিপ্ট রান করতে
API বা টুলস সার্চ করে উত্তর খুঁজে বের করতে
ছোট “টিম” গড়ে জটিল টাস্ক কমপ্লিট করতে
কিন্তু সেগুলো এখনো পরিপূর্ণ নয়। এজেন্টগুলো এখনও:
লুপে আটকে যেতে পারে
গোল মিসঅন্ডারস্ট্যান্ড করতে পারে
ডিটেইলড প্রম্পট এবং গার্ডরেলস চায়
এটি কারণ এই টেকনোলজি এখনও আধুনিক стаেজে। ফ্রেমওয়ার্কগুলো দ্রুত উন্নত হচ্ছে, কিন্তু নির্ভরযোগ্যতা এবং মেমরি এখনও কাজে লাগছে। তাই এক্সপেরিমেন্ট করার সময় এটিকে মনে রাখুন।
কেন এখন শিখতে সবচেয়ে ভালো সময়?
সত্যি হলো: আমরা এখনো আগ্রগামী। কিন্তু খুব বেশি আগ্রগামী নই।
এজেন্টসহ এক্সপেরিমেন্ট শুরু করার জন্য এটি পারফেক্ট টাইমিং:
টুলিং রিয়েল প্রজেক্ট বিল্ড করার পর্যায়ে পরিপক্ক
কমিউনিটি দ্রুত বড় হচ্ছে
এবং আপনাকে AI এক্সপার্ট হতে হবে না শুধু Python-এ কমফর্টেবল থাকলেই হবে
LLM Agents কী এবং কেন এটা বড় ব্যাপার?
এজেন্টদের এক্সাইটিং ওয়ার্ল্ডে ডুব مروয়ার আগে, বেসিক्स সম্পর্কে একটু আর কথা বলি।
LLM কী?
LLM, বা Large Language Model, মূলত একটি AI যেটি ইন্টারনেট থেকে বিপুল পরিমাণ টেক্সট পড়ে শিখেছে—চিন্তা করুন বই, আর্টিকেল, কোড, এবং আরও অনেক কিছু। আপনি এটিকে একটি সুপার-স্মার্ট অটোকমপ্লিট ইঞ্জিন হিসেবে কল্পনা করতে পারেন। কিন্তু এটি শুধু আপনার বাক্য পুরনো করে না। এটি আরও অনেক কিছু করতে পারে:
জটিল প্রশ্নের উত্তর দিতে
লম্বা আর্টিকেল বা ডকিউমেন্ট সার্মারাইজ করতে
কোড, ইমেইল, বা ক্রিয়েটিভ স্টোরি লিখতে
ভাষা ইনস্ট্যান্টলি ট্রান্সলেট করতে
লজিক পাজল সমাধান করতে এবং আকর্ষণীয় কথা বলতে
সম্ভবত আপনি ChatGPT-র কথা শুনেছেন, যা OpenAI-এর GPT মডেল দিয়ে পাওয়ারড। অন্যান্য জনপ্রিয় LLM গুলো যেগুলো আপনি দেখতে পেতে পারেন: Claude (Anthropic-র), LLaMA (Meta-র), Mistral, এবং Gemini (Google-র)।
এই মডেলগুলো কনটেক্সট বেসড পরবর্তী শব্দ প্রিডিক্ট করে কাজ করে। যেহেতু এটি বিলিয়ন শব্দে ট্রেন করা হয়েছে, LLMs আশ্চর্য বুদ্ধিমান বিহেভিয়ার ক্যাপেবল হয়ে উঠেছে, আপনার ইনস্ট্রাকশন বুঝতে, ধাপে ধাপে রিজনিং ফলো করতে, এবং আপনার কল্পনাতीत প্রায় সব টপিকে কোহেরেন্ট রেসপন্স প্রডিউস করতে।
তাহলে, LLM Agent কী?
LLMs সুপার পাওয়ারফুল হলেও, সেগুলো সাধারণত শুধু রিঅ্যাক্ট করে—তবে আপনি জিজ্ঞেস করলে সেগুলো রেসপন্ড করে। একটি LLM agent, অন্যদিকে, প্রোয়েক্টিভ।
LLM agents পারেন:
বড়, জটিল টাস্কগুলো ছোট, ম্যানেজেবল ধাপে ভাগ করতে
স্মার্ট ডিসিশন নিতে এবং পরের কী করবেন তা বুঝতে
“টুলস” ব্যবহার করতে যেমন ওয়েব সার্চ, ক্যালকুলেটর, বা অন্য অ্যাপস
একটি গোল অর্জনের জন্য কাজ করতে, যদি সেটি একাধিক ধাপ বা চেষ্টা নেওয়া লাগে
অন্য এজেন্টদের সাথে টিম বানিয়ে শেয়ারড গোল অর্জন করতে
সংক্ষেপে, LLM agents চিন্তা করতে পারে, প্ল্যান করতে পারে, এক্ট করতে পারে, এবং অ্যাডাপ্ট করতে পারে।
একটি LLM agent কে আপনার সুপার-এফিশিয়েন্ট নতুন অ্যাসিস্ট্যান্ট হিসেবে ভাবুন: আপনি এটিকে একটি গোল দিন, এবং সেটি নিজে থেকে বুঝে নেবে কীভাবে অর্জন করবেন।
এটি কেন গুরুত্বপূর্ণ?
শুধু রেসপন্ড করার থেকে এক্টিভলি গোল পূরণ করার দিকে এই শিফ্ট অসংখ্য এক্সাইটিং সম্ভাবনা খুলে দেয়:
বোরিং IT বা DevOps টাস্ক অটোমেট করতে
র ডেটা থেকে ডিটেইলড রিপোর্ট জেনারেট করতে
মাল্টি-স্টেপ রিসার্চ প্রজেক্টে সাহায্য করতে
আপনার দৈনিক ইমেইল পড়ে কী ইনফো গুরুত্বপূর্ণ সেটি হাইলাইট করতে
আপনার ইন্টারনাল টুলস রান করে রিয়েল-ওয়ার্ল্ড একশন নিতে
পুরনো, রুল-বেসড বটদের থেকে আলাদা, LLM agents রিজন করতে পারে, রিফ্লেক্ট করতে পারে, এবং তাদের অটেম্পট থেকে শিখতে পারে। এটি সেগুলোকে রিয়েল-ওয়ার্ল্ড টাস্কের জন্য অনেক উপযুক্ত করে তোলে যেগুলো মেসি, ফ্লেক্সিবিলিটি চায়, এবং কনটেক্সট বুঝতে নির্ভর করে।
ওপেন-সোর্স এজেন্ট ফ্রেমওয়ার্কের উত্থান
খুব পুরনো কথা নয়, যদি আপনি একটি AI সিস্টেম বানাতে চান যা স্বায়ত্তশাসিতভাবেই এক্ট করতে পারে, তবে সেটি মানে.Custom কোড লিখে অনেক সময় ব্যয় করা, মেমরি পেইনস্টেকিংলি ম্যানেজ করা, এবং দर्जনগুলোর কম্পোনেন্ট একসাথে ষ্টিচ করার চেষ্টা করা। এটি জটিল, নাজুক, এবং হাইলি স্পেশালাইজড কাজ ছিল।
আনুমান করুন কী? এখন সেটি সত্যি নয়।
২০২৪-এ, এক সিরিজ ফ্যান্টাস্টিক ওপেন-সোর্স ফ্রেমওয়ার্ক হিট করল। এই টুলগুলো আপনাকে চাকা পুনরাবিষ্কার না করেই পাওয়ারফুল LLM agents বিল্ড করতে দিয়েছে।
প্রচলিত ওপেন-সোর্স এজেন্ট ফ্রেমওয়ার্ক
ফ্রেমওয়ার্কবিবরণমেইনটেইনার LangGraphGraph-ভিত্তিক ফ্রেমওয়ার্ক এজেন্ট স্টেট এবং মেমরি জন্যLangChain CrewAI"রোল-ভিত্তিক, মাল্টি-এজেন্ট কোলাবোরেশন ইঞ্জিন"Community (CrewAI) AutoGenকাস্টমাইজেবল মাল্টি-এজেন্ট চ্যাট অর্কেস্ট্রেশনMicrosoft AgentVerseএজেন্ট সিমুলেশন এবং টেস্টিং এর জন্য মডুলার ফ্রেমওয়ার্কOpen-source projectএই টুলগুলো কী সক্ষম করে?
এই ফ্রেমওয়ার্কগুলো আপনাকে রেডি-মেড বিল্ডিং ব্লক দেয় এজেন্ট তৈরি করার কঠিন অংশগুলো হ্যান্ডেল করতে:
প্ল্যানিং – এজেন্টদের তাদের পরবর্তী মুভ ডिसাইড করতে দেয়
টুল ইউজ – সহজে এজেন্টদের ফাইল সিস্টেম, ওয়েব ব্রাউজার, API, বা ডেটাবেসের সাথে কানেক্ট করতে দেয়
মেমরি – অতীতে তথ্য বা ইন্টারমিডিয়েট রেজাল্ট স্টোর ও রিট্রিভ করতে দেয় লং-টার্ম কনটেক্সটের জন্য
মাল্টি-এজেন্ট কোলাবোরেশন – শেয়ারড গোল অর্জনের জন্য এজেন্টদের টিম সেট আপ করতে দেয়
কেন স্ক্র্যাচ থেকে বিল্ড না করে ফ্রেমওয়ার্ক ব্যবহার করবেন?
যদিও আপনি পারা একটি কাস্টম এজেন্ট গ্রাউন্ড আপ থেকে বিল্ড করতে পারেন, ফ্রেমওয়ার্ক ব্যবহার করলে আপনার প্রচুর সময় ও শ্রম বাঁচবে। ওপেন-সোর্স এজেন্ট লাইব্রেরি প্যাকড আসে:
LLMs অর্কেস্ট্রেট করার বিল্ট-ইন সাপোর্ট
টাস্ক প্ল্যানিং, ট্র্যাকিং, এবং ফিডব্যাক পাওয়ার প্রুভেন প্যাটার্ন
OpenAI-এর মতো জনপ্রিয় মডেল বা লোকালি রান করা মডেলসহ সহজ ইন্টিগ্রেশন
একটি সহায়ক এজেন্ট থেকে পুরো এজেন্ট টিম পর্যন্ত বড় হওয়ার ফ্লেক্সিবিলিটি
মূলত, এই ফ্রেমওয়ার্কগুলো আপনাকে আপনার এজেন্ট কী করবেন সেটিতে ফোকাস করতে দেয়, বরং সব ইন্টারনাল মেকানিজম কীভাবে বিল্ড করবেন সেটিতে আটকে পড়ার বদলে। পлюস, ওপেন সোর্স বেছে নিলে আপনি কমিউনিটি কন্ট্রিবিউশন, ট্রান্সপারেন্সি, এবং আপনার সঠিক প্রয়োজন অনুযায়ী টুইক করার স্বাধীনতা পাবেন, ভেন্ডর লক-ইন ছাড়া।
এজেন্ট ডিজাইনের মূল কনসেপ্ট
LLM agents কীভাবে অপারেট করে সেটি বুঝতে, সেগুলোকে গোল-ড্রিভেন সিস্টেম হিসেবে চিন্তা করা সাহায্য করে যা নিরন্তর অবলোকন, রিজনিং, এবং এক্ট করার মাধ্যমে সাইকেল করে। এই συνεχমত লুপ সেগুলোকে সিম্পল Q&A থেকে বাহিরে,true অটোমেশন, টুল ইউজ, এবং ফ্লাইতে অ্যাডাপ্টেশনে নেয়।
এজেন্ট লুপ
বেশিরভাগ LLM agents Agent Loop নামে একটি মেন্টাল মডেল বেসড ফাংশন করে—a ধাপে ধাপে সাইকেল যা কাজটি সম্পূর্ণ না হওয়া পর্যন্ত রিপিট হয়। এখানে এটি কীভাবে কাজ করে তার সাধারণ রূপ:
Perceive (নಿರীক্ষণ): এজেন্ট আপনার প্রম্পট, একটি ডেটা টুকরো, বা একটি সিস্টেমের বর্তমান স্টেট থেকে এনভায়রনমেন্টে কিছু নোটিশ করে বা নতুন ইনফরমেশন পায়।
Plan (পরিকল্পনা): যা এটিকে উপলব্ধি হয়েছে এবং এর সামগ্রিক গোল বেসড, এজেট ডিসাইড করে পরের কী করবেন। এটি টাস্ককে ছোট সাব-গোলএ ভাগ করতে পারে বা কাজের জন্য সেরা টুল ফিগার আউট করতে পারে।
Act (কর্ম): এজেন্ট এক্ট করে। এর মানে হতে পারে একটি ফাংশন রান করা, একটি API কল করা, ওয়েব সার্চ করা, ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করা, বা এমনকি অন্য একটি এজেন্টকে সাহায্য চাওয়া।
Reflect (চিন্তা-মনন): এক্ট করার পর, এজেন্ট ফলাফলটি পর্যবেক্ষণ করে: এটা কাজ করলো? ফলাফলটা উপযোগী ছিল? এটি অন্য পথে চেষ্টা করা উচিত? এর উপর ভিত্তি করে, এটি তার প্ল্যান আপডেট করে এবং কাজটি কমপ্লিট না হওয়া পর্যন্ত চলতে থাকে।
এই লুপটি হলো যা এজেন্টগুলোক এত ডাইনামিক করে তোলে। এটি সেগুলোক কখনো বদলানোর মতো টাস্ক হ্যান্ডেল করতে দেয়, আংশিক ফলাফল থেকে শিখতে দেয়, এবং তাদের কোর্স করেক্ট করতে দেয়—যা সত্যিকারের উপযোগী AI অ্যাসিস্ট্যান্ট বিল্ড করার জন্য ভাইটাল।
এজেন্টের মূল কম্পোনেন্ট
তাদের কাজ দক্ষতার সাথে করার জন্য, এজেন্টগুলো বেশ কিছু ক্রুশিয়াল পার্টের চারপাশে তৈরি হয়েছে:
Tools হলো এজেন্ট রিয়েল (বা ডিজিটাল) ওয়ার্ল্ডের সাথে ইন্টারঅ্যাক্ট করার মাধ্যম। এগুলো হতে পারে সার্চ ইঞ্জিন থেকে কোড এক্সিকিউশন এনভায়রনমেন্ট, ফাইল রিডার, বা API ক্লায়েন্ট, সিম্পল ক্যালকুলেটর বা কমান্ড-লাইন স্ক্রিপ্ট পর্যন্ত।
Memory এজেন্টদের যেটা उन्हোনে করা বা দেখা সেটি বিভিন্ন ধাপে মনে রাখতে দেয়। এতে হতে পারে আপনার আগের কথা, টেম্পোরারি রেজাল্ট, বা কী ডিসিশন। কিছু ফ্রেমওয়ার্ক শর্ট-টার্ম মেমরি অফার করে (শুধু এক সেশনের জন্য), অন্যদের লং-টার্ম মেমরি যা একাধিক সেশন বা গোল পর্যন্ত ছড়িয়ে থাকতে পারে।
Environment বলতে এক্সটার্নাল ডেটা বা সিস্টেম কনটেক্সটকে বুঝায় যেটির মধ্যে এজেন্ট অপারেট করে—চিন্তা করুন APIs, ডকুমেন্টস, ডেটাবেস, ফাইলস, বা সেন্সর ইনপুট। এজেন্টের কাছে তার এনভায়রনমেন্টের যত বেশি ইনফো এবং অ্যাক্সেস থাকবে, তত বেশি অর্থবহ একশন নিতে পারবে।
Goal হলো এজেটের চূড়ান্ত উদ্দেশ্য: যা এটা অর্জন করার চেষ্টা করছে। গোলগুলো স্পেসিফিক এবং ক্লিয়ার হওয়া উচিত—উদাহরণস্বরূপ, “দৈনিক শিডিউল জেনারেট করুন,” “এই ডকিউমেন্ট সার্মারাইজ করুন,” বা “ইমেইল থেকে টাস্ক এক্সট্র্যাক্ট করুন।”
মাল্টি-এজেন্ট কোলাবোরেশন
আরও এডভান্সড সিস্টেমের জন্য, আপনি একাধিক এজেন্ট একসাথে কাজ করিয়ে একটি শেয়ারড টার্গেট হিট করতে পারেন। প্রতিটি এজেন্টকে একটি নির্দিষ্ট রোল দেওয়া যায় যা এর স্পেশালিটি হাইলাইট করে—যেন একটি টিমে মানুষ কাজ করে।
উদাহরণস্বরূপ:
A researcher agent ইনফরমেশন গাদারিং-এ টাস্ক করা যেতে পারে।
A coder agent Python স্ক্রিপ্ট বা অটোমেশন রুটিন লিখতে পারে।
A reviewer agent রেজাল্ট চেক করে সবকিছু ঠিক আছে কিনা নিশ্চিত করতে পারে।
এই এজেন্টগুলো একে অপরের সাথে চ্যাট করতে পারে, ইনফরমেশন শেয়ার করতে পারে, এবং এমনকি ডিবেট বা ভোট দিয়ে ডিসিশন নিতে পারে। এই ধরনের টিমওয়ার্ক AI সিস্টেমগুলোক বড়, আরও জটিল টাস্ক ট্যাকল করতে দেয় সেটিকে অর্গানাইজড এবং মডুলার রেখে।
প্রজেক্ট: ইমেইল থেকে আপনার দৈনিক শিডিউল অটোমেট করুন
আমরা কী অটোমেট করছি
আপনার সাধারণ সকালের রুটিন সম্পর্কে চিন্তা করুন:
আপনি আপনার ইনবক্স খুলেন।
আপনি দ্রুত এক झাঁক ইমেইল স্ক্যান করেন।
আপনি মিটিং, টাস্ক, এবং গুরুত্বপূর্ণ রিমাইন্ডার স্পট করার চেষ্টা করেন।
তারপর, আপনি ম্যানুয়ালি একটি টু-ডু লিস্ট লিখেন বা ক্যালেন্ডারে জিনিসগুলো অ্যাড করেন।
চলুন একটি LLM agent ব্যবহার করে এই প্রক্রিয়াকে esforless করি। আমাদের এজেন্ট করবে:
আপনার ইমেইল মেসেজের লিস্ট পড়বে
মিটিং বা ডেডলাইন মতো টাইম-সেনসিটিভ আইটেম এক্সট্র্যাক্ট করবে
সবকিছু একটি সুন্দর, ক্লিন দৈনিক শিডিউলে সার্মারাইজ করবে
ধাপ ১: প্রয়োজনীয় টুলস ইনস্টল করুন
শুরু করতে, আপনাকে তিনটি প্রধান টুল প্রয়োজন: Python, VSCode, এবং একটি OpenAI API key।
১. Python 3.9 বা উচ্চতর ইনস্টল করুন
ওফিসিয়াল ওয়েবসাইট থেকে Python 3.9+ এর লেটেস্ট ভার্সন নিন: https://www.python.org/downloads/
ইনস্টল হলে, আপনার টার্মিনালে python --version রান করে ডাবল-চেক করুন।
এই কমান্ডটি আপনার সিস্টেমকে বর্তমানে ইনস্টল করা Python ভার্সন রিপোর্ট করতে বলে। আপনি Python 3.9.x বা উচ্চতর দেখতে চান আমাদের প্রজেক্টের সাথে কম্প্যাটিবিলিটি নিশ্চিত করতে।
২. VSCode ইনস্টল করুন (অপশনাল কিন্তু রিকমেন্ডেড)
VSCode একটি ফ্যান্টাস্টিক, ইউজার-ফ্রেন্ডলি কোড এডিটর যা Python-এর সাথে পারফেক্টলি কাজ করে। এখান থেকে ডাউনলোড করুন: https://code.visualstudio.com/.
৩. আপনার OpenAI API Key পান
যান: https://platform.openai.com
সাইন ইন করুন বা নতুন অ্যাকাউন্ট তৈরি করুন। আপনার API Keys পেজে নেভিগেট করুন। “Create new secret key” ক্লিক করুন এবং সেই কী কোথাও সেফ রাখুন পরে ব্যবহারের জন্য।
৪. Python লাইব্রেরি ইনস্টল করুন
আপনার টার্মিনাল বা কমান্ড প্রম্প্ট খুলুন এবং এই এসেনশিয়াল প্যাকেজগুলো ইনস্টল করুন:
pip install langgraph langchain openai
এই কমান্ডটি pip, Python-এর প্যাকেজ ম্যানেজার, ব্যবহার করে আমাদের এজেন্টের জন্য তিনটি গুরুত্বপূর্ণ লাইব্রেরি ডাউনলোড ও ইনস্টল করে:
langgraph: আমাদের এজেন্টের ওয়ার্কফ্লো বিল্ড করার কোর ফ্রেমওয়ার্ক।
langchain: বড় ল্যাঙ্গুয়েজ মডেলের সাথে কাজ করার ফাউন্ডেশনাল লাইব্রেরি, যার ওপর LangGraph বিল্ট।
openai: OpenAI-এর পাওয়ারফুল AI মডেলের সাথে কানেক্ট করার অফিসিয়াল Python লাইব্রেরি।
আপনি যদি মাল্টি-এজেন্ট সেটআপ ট্রাই করতে এক্সাইটেড হন (যা আমরা ধাপ ৫-এ কভার করব), CrewAI-ও ইনস্টল করুন:
pip install crewai
এই কমান্ডটি CrewAI ইনস্টল করে, একটি স্পেশালাইজড ফ্রেমওয়ার্ক যা একাধিক AI এজেন্টকে একটি টিম হিসেবে একসাথে কাজ করানো সহজ করে দেয়।
৫. আপনার OpenAI API Key সেট করুন
আপনাকে নিশ্চিত করতে হবে আপনার Python কোড আপনার OpenAI API key খুঁজে পায় এবং ব্যবহার করতে পারে। এটি সাধারণত এনভায়রনমেন্ট ভেরিয়েবল হিসেবে সেট করে করা হয়।
macOS/Linux-এ, আপনার টার্মিনালে এটি রান করুন (আপনার একচুয়াল কী দিয়ে "your-api-key" রিপ্লেস করুন):
export OPENAI_API_KEY="your-api-key"
এই কমান্ডটি OPENAI_API_KEY নামে একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করে। এনভায়রনমেন্ট ভেরিয়েবলগুলো একটি সিকিউর উপায় যেন অ্যাপ্লিকেশনগুলো (যেমন আপনার Python স্ক্রিপ্ট) সেনসিটিভ ইনফরমেশন অ্যাক্সেস করতে পারে সেটিকে সরাসরি কোডে হার্ডকোড না করেই।
Windows-এ (Command Prompt ব্যবহার করে), এটি করুন:
set OPENAI_API_KEY="your-api-key"
এটি OPENAI_API_KEY এনভায়রনমেন্ট ভেরিয়েবল সেট করার উইন্ডোজ সমতুল্য কমান্ড।
এখন, আপনার Python কোড OpenAI মডেলের সাথে কথা বলতে সেট!
ধাপ ২: টাস্ক ডিফাইন করুন
আমরা এই সেকশনের শুরুতে এটিকে সংক্ষেপে আলোচনা করেছি। কিন্তু পুনরাবৃত্তি করার জন্য, এটা হলো যা আমরা আমাদের এজেন্টকে করাতে চাই:
মিটিং, ইভেন্ট, এবং গুরুত্বপূর্ণ টাস্ক খুঁজে বের করুন।
সেগুলো দ্রুত একটি নোটবুক বা অ্যাপে নোট করুন।
আপনার দিনের জন্য একটি রफ़ মেন্টাল প্ল্যান তৈরি করুন।
এই রুটিন টাইম এবং মেন্টাল এনার্জি নেয়। তাই একটি এজেন্ট এটা আমাদের জন্য করলে সুপার হেল্পফুল হবে।
ধাপ ৩: LangGraph দিয়ে ওয়ার্কফ্লো বিল্ড করুন
LangGraph কী?
LangGraph একটি কুল ফ্রেমওয়ার্ক যা আপনাকে “গ্রাফ-ভিত্তিক” ওয়ার্কফ্লো ব্যবহার করে এজেন্ট বিল্ড করতে সাহায্য করে, যেন একটি ফ্লোচার্ট আঁকা। এটি LangChain-দ্বারা পাওয়ারড এবং আপনাকে আপনার এজেন্টের প্রসেসের প্রতিটি ধাপ কীভাবে আনফোল্ড হবে সেটির ওপর অনেক বেশি কন্ট্রোল দেয়।
এই গ্রাফের প্রতিটি "নোড" একটি ডিসিশন পয়েন্ট বা একটি ফাংশন যা প্রতিনিধিত্ব করে:
কিছু ইনপুট নেয় (এর বর্তমান "স্টেট")।
কিছু রিজনিং বা একশন নেয় (প্রায়শই LLM এবং এর টুলস জড়িত)।
একটি আপডেটেড আউটপুট রিটার্ন করে (একটি নতুন "স্টেট")।
আপনি এই নোডগুলোর মাঝপথে কানেকশন আঁকেন, এবং LangGraph সেটিকে একটি স্মার্ট, অটোমেটেড স্টেট মেশিনের মতো এক্সিকিউট করে।
কেন LangGraph ব্যবহার করবেন?
আপনি এক্সিকিউশনের সঠিক অর্ডার কন্ট্রোল করতে পারেন।
এটি মাল্টি-স্টেপ বা ব্রাঞ্চিং ওয়ার্কফ্লো বিল্ড করার জন্য ফ্যান্টাস্টিক।
এটি ক্লাউড-বেসড মডেল (যেমন OpenAI) এবং লোকালি রান করা মডেল দুটোই সাথে ভালো কাজ করে।
ঠিক আছে – এখন কোড লিখি।
১. ইমেইল ইনপুট সিমুলেট করুন
একটি রিয়েল অ্যাপ্লিকেশনে, আপনার এজেন্ট সম্ভবত Gmail বা Outlook-এ কানেক্ট করে আপনার আসল ইমেইল ফেচ করত। এই উদাহরণের জন্য, আমরা শুধু কিছু স্যাম্পল মেসেজ হার্ডকোড করব সিম্পল রাখতে:
Python emails = """ 1. Subject: Standup Call at 10 AM 2. Subject: Client Review due by 5 PM 3. Subject: Lunch with Sarah at noon 4. Subject: AWS Budget Warning – 80% usage 5. Subject: Dentist Appointment - 4 PM """
এই মাল্টিলাইন Python স্ট্রিং, emails, আমাদের রিয়েল ইমেইল কনটেন্টের স্ট্যান্ড-ইন হিসেবে কাজ করছে। আমরা ইমেইল সাবজেক্টের একটি সিম্পল, স্ট্রাকচারড লিস্ট দিয়ে দেমো করছি কীভাবে এজেন্ট টেক্সট প্রসেস করবে।
২. এজেন্ট লজিক ডিফাইন করুন
এখন, আমরা OpenAI-এর GPT মডেলকে বলব কীভাবে এই ইমেইল টেক্সট প্রসেস করবে এবং একটি সামারি-তে পরিণত করবে।
from langchain_openai import ChatOpenAI
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated, List
import operator
# আমাদের গ্রাফের জন্য স্টেট ডিফাইন করুন
class AgentState(TypedDict):
emails: str
result: str
llm = ChatOpenAI(temperature=0, model="gpt-4o") # बेटার পারফরম্যান্সের জন্য gpt-4o ব্যবহার করা হয়েছে
def calendar_summary_agent(state: AgentState) -> AgentState:
emails = state["emails"]
prompt = f"Summarize today's schedule based on these emails, listing time-sensitive items first and then other important notes. Be concise and use bullet points:\n{emails}"
summary = llm.invoke(prompt).content
return {"result": summary, "emails": emails} # emails ও রিটার্ন করুন ডাউনস্ট্রিমের জন্য
এখানে কী হচ্ছে:
ইম্পোর্টস: আমরা প্রয়োজনীয় কম্পোনেন্টগুলো ইম্পোর্ট করছি:
ChatOpenAILLM-এ কানেক্ট করার জন্য,StateGraphএবংENDlanggraph.graph- থেকে আমাদের এজেন্ট ওয়ার্কফ্লো বিল্ড করার জন্য,TypedDict,Annotated, এবংListtyping- থেকে টাইপ চেকিং এবং স্ট্রাকচারের জন্য,operator(এই স্নিপেটে ব্যবহার করা হয়নি, তবে কমপারিজন বা লজিকে সাহায্য করতে পারে)।
AgentState: এই
TypedDictআমাদের এজেন্ট যে ডেটার সাথে কাজ করবে তার আকার ডিফাইন করে। এতে থাকে:emails: র কাঁচা ইনপুট মেসেজ।result: চূড়ান্ত আউটপুট (দৈনিক সামারি)।
llm = ChatOpenAI(...): ল্যাঙ্গুয়েজ মডেল ইনিশিয়ালাইজ করে। আমরা GPT-4o ব্যবহার করছি
temperature=0দিয়ে যাতে কনসিস্টেন্ট, প্রিডিক্টেবল আউটপুট আসে—স্ট্রাকচারড সামারাইজেশন টাস্কের জন্য পারফেক্ট।calendar_summary_agent(state: AgentState): এটি আমাদের এজেন্টের "ব্রেন"। এটি:
কারেন্ট স্টেট নেয়, যাতে ইমেইলগুলোর লিস্ট থাকে।
সেই স্টেট থেকে ইমেইলগুলো এক্সট্র্যাক্ট করে।
একটি প্রম্প্ট কনস্ট্রাক্ট করে যা মডেলকে বলে বুলেট পয়েন্ট ব্যবহার করে সংক্ষিপ্ত দৈনিক শিডিউল সামারি জেনারেট করতে, টাইম-সেনসিটিভ আইটেমগুলো প্রায়োরিটি দিয়ে।
llm.invoke(prompt).contentদিয়ে এই প্রম্প্ট মডেলে পাঠায়, যা LLM-এর রেসপন্স প্লেইন টেক্সট হিসেবে রিটার্ন করে।একটি নতুন
AgentStateডিকশনারি রিটার্ন করে যাতে থাকে:result: জেনারেট করা সামারি,emails: প্রিজার্ভড, যেন ডাউনস্ট্রিমে প্রয়োজন হলে।
৩. গ্রাফ বিল্ড ও রান করুন
এখন, LangGraph ব্যবহার করে আমাদের সিঙ্গল-এজেন্ট টাস্কের ফ্লো ম্যাপ আউট করি এবং রান করি।
builder = StateGraph(AgentState)
builder.add_node("calendar", calendar_summary_agent)
builder.set_entry_point("calendar")
builder.set_finish_point("calendar") # END ইম্প্লিসিট যদি এক্সপ্লিসিটলি সেট না করা হয়
graph = builder.compile()
# আপনার সিমুলেটেড ইমেইল ডেটা দিয়ে গ্রাফ রান করুন
result = graph.invoke({"emails": emails})
print(result["result"])
এখানে কী হচ্ছে:
builder = StateGraph(AgentState): আমরা একটি StateGraph অবজেক্ট ইনিশিয়ালাইজ করছি। AgentState পাস করলে, আমরা LangGraph কে এর ইন্টারনাল স্টেটের জন্য এক্সপেক্টেড ডেটা স্ট্রাকচার বুঝাচ্ছি।
builder.add_node("calendar", calendar_summary_agent): এই লাইন আমাদের গ্রাফে একটি নামযুক্ত "নোড" অ্যাড করে। আমরা এটিকে "calendar" নাম দিচ্ছি, এবং এটিকে আমাদের
calendar_summary_agentফাংশন সাথে লিংক করছি, অর্থাৎ এই নোড এক্টিভ হলে সেটি এক্সিকিউট হবে।builder.set_entry_point("calendar"): এটি "calendar" কে আমাদের ওয়ার্কফ্লোর ভেরি ফার্স্ট স্টেপ হিসেবে সেট করে। গ্রাফ শুরু করলে এক্সিকিউশন এখান থেকে শুরু হবে।
builder.set_finish_point("calendar"): এটি LangGraph কে বলে দেয় যে একবার "calendar" নোড তার কাজ ফিনিশ করলে, পুরো গ্রাফ প্রসেস কমপ্লিট।
graph = builder.compile(): এই কমান্ড আমাদের ডিফাইন করা গ্রাফ ব্লুপ্রিন্ট নেয় এবং এটিকে একটি এক্সিকিউটেবল ওয়ার্কফ্লোতে "কম্পাইল" করে।
result = graph.invoke({"emails": emails}): এখানে ম্যাজিক হচ্ছে! আমরা আমাদের গ্রাফকে বলছি রান শুরু করতে। আমরা এক ইনিশিয়াল স্টেট পাস করছি যাতে আমাদের ইমেইল ডেটা থাকে। গ্রাফ তারপর এই ডেটাকে এর নোডগুলোর মাধ্যমে প্রসেস করবে যতক্ষণ না এটি একটি এন্ড পয়েন্টে পৌঁছায়, চূড়ান্ত স্টেট রিটার্ন করবে।
print(result["result"]): শেষে, আমরা রেজাল্ট থেকে (আমাদের গ্রাফের চূড়ান্ত স্টেট) সামারাইজড শিডিউল গ্র্যাব করি এবং কনসোলে প্রিন্ট করি।
আউটপুট উদাহরণ
Your Schedule:- 10:00 AM – Standup Call- 12:00 PM – Lunch with Sarah- 4:00 PM – Dentist Appointment- Submit client report by 5:00 PM- AWS Budget Warning – check usage
বাম! আপনি আপনার ইমেইল পড়ে আপনার দৈনিক শিডিউল বানাতে পারেন এমন একটি AI এজেন্ট বানালেন। খুব কুল, ঠিক? এটি একটি সিম্পল কিন্তু পাওয়ারফুল ঝলক যে LLM agents কী করতে পারে শুধু কয়েক লাইন কোড দিয়ে।
CrewAI দিয়ে মাল্টি-এজেন্ট কোলাবোরেশন
CrewAI কী?
CrewAI একটি এক্সाइटিং ওপেন-সোর্স ফ্রেমওয়ার্ক যা আপনাকে এজেন্টদের টিম বানাতে দেয় যারা স্মूदলি একসাথে কাজ করে—যেন একটি রিয়েল-ওয়ার্ল্ড প্রজেক্ট টিম! CrewAI সেটআপের প্রতিটি এজেন্ট:
একটি নির্দিষ্ট, স্পেশালাইজড রোল ধারণ করে।
তার টিমমেটদের সাথে কমিউনিকেট ও ইনফরমেশন শেয়ার করতে পারে।
একটি শেয়ারড গোল অর্জনের জন্য কোলাবোরেট করে।
এই মাল্টি-এজेंट অ্যাপ্রোচ তখন সুপার ইউজফুল হয় যখন আপনার টাস্ক শুধু একটি এজেন্টের জন্য খুব বড় বা জটিল হয়, অথবা যখন এটিকে স্পেশালাইজড পার্টে ভাগ করলে আরও ক্লিয়ার এবং এফিশিয়েন্ট হয়।
ইমেইল সামারি টাস্কের জন্য স্যাম্পল রোল
আমাদের ইমেইল সামারি টাস্ককে একটি ছোট এজেন্ট টিম হ্যান্ডেল করছে কল্পনা করুন:
এজেন্টের নামরোলদায়িত্ব ExtractorEmail Scanner"ইমেইল থেকে মিটিং, রিমাইন্ডার, এবং টাস্ক খুঁজে বের করা" PrioritizerSchedule Optimizerআইটেমগুলো জরুরি এবং সময় অনুযায়ী সর্ট করা FormatterOutput Generator"একটি ক্লিন, পোলিশড দৈনিক এজেন্ডা বুলেট পয়েন্ট ফরম্যাটে লিখা"স্যাম্পল CrewAI কোড
from crewai import Agent, Crew, Task, Process
from langchain_openai import ChatOpenAI
import os
# আপনার OpenAI API key এনভায়রনমেন্ট ভেরিয়েবল থেকে সেট করুন
# os.environ["OPENAI_API_KEY"] = "YOUR_API_KEY"
# নিশ্চিত করুন এটি সেট আছে, অথবা ডায়রেক্টলি ডিফাইন করুন
# LLM ইনিশিয়ালাইজ করুন (বেটার পারফরম্যান্সের জন্য gpt-4o ব্যবহার করা হয়েছে)
llm = ChatOpenAI(temperature=0, model="gpt-4o")
# স্পেসিফিক রোল এবং গোল সহ এজেন্ট ডিফাইন করুন
extractor = Agent(
role="Email Scanner",
goal="দেওয়া ইমেইলগুলো থেকে সকল মিটিং, রিমাইন্ডার, এবং টাস্ক সঠিকভাবে এক্সট্র্যাক্ট করা, টাইম, ডেট, এবং সাবজেক্টের মতো ডিটেইলসহ।",
backstory="আপনি ইমেইল স্ক্যান করে কী ইনফরমেশন বের করতে এক্সপার্ট। আপনি প্রতিটি প্রাসঙ্গিক ডিটেইল মেটিকুলাসলি এক্সট্র্যাক্ট করেন।",
verbose=True,
allow_delegation=False,
llm=llm
)
prioritizer = Agent(
role="Schedule Optimizer",
goal="এক্সট্র্যাক্ট করা আইটেমগুলো জরুরি এবং সময় অনুযায়ী সর্ট করা, দৈনিক এজেন্ডার জন্য প্রস্তুত করা।",
backstory="আপনি টাইম ম্যানেজমেন্টের মাস্টার, সবসময় জানেন আগে কী করতে হবে। আপনি টাস্কগুলো লজিক্যালি অর্গানাইজ করেন।",
verbose=True,
allow_delegation=False,
llm=llm
)
formatter = Agent(
role="Output Generator",
goal="একটি ক্লিন, পোলিশড, এবং সংক্ষিপ্ত দৈনিক এজেন্ডা বুলেট-পয়েন্ট ফরম্যাটে জেনারেট করা, সব শিডিউল আইটেম স্পষ্টভাবে লিস্ট করা।",
backstory="আপনি একটি প্রফেশনাল সেক্রেটারি, সব আউটপুট পারফেক্টলি ফরম্যাটেড এবং পড়া সহজ তা নিশ্চিত করেন। আপনি ক্ল্যারিটি প্রায়োরিটি দেন।",
verbose=True,
allow_delegation=False,
llm=llm
)
# ইমেইল ইনপুট সিমুলেট করুন
emails = """
1. Subject: Standup Call at 10 AM
2. Subject: Client Review due by 5 PM
3. Subject: Lunch with Sarah at noon
4. Subject: AWS Budget Warning – 80% usage
5. Subject: Dentist Appointment - 4 PM
"""
# প্রতিটি এজেন্টের জন্য টাস্ক ডিফাইন করুন
extract_task = Task(
description=f"এই ইমেইলগুলো থেকে সকল প্রাসঙ্গিক ইভেন্ট, মিটিং, এবং টাস্ক এক্সট্র্যাক্ট করুন: {emails}। প্রিসাইজ ডিটেইলস ফোকাস করুন।",
agent=extractor,
expected_output="এক্সট্র্যাক্ট করা আইটেমগুলোর লিস্ট তাদের ডিটেইলসহ (যেমন, '- Standup Call at 10 AM', '- Client Review due by 5 PM')।"
)
prioritize_task = Task(
description="এক্সট্র্যাক্ট করা আইটেমগুলো সময় এবং জরুরি অনুযায়ী প্রায়োরিটাইজ করুন। মিটিং আগে, তারপর ডেডলাইন, তারপর অন্যান্য নোট।",
agent=prioritizer,
context=[extract_task], # extract_task-এর আউটপুট এখানে ইনপুট
expected_output="একটি প্রায়োরিটাইজড শিডিউল আইটেম লিস্ট।"
)
format_task = Task(
description="প্রায়োরিটাইজড শিডিউলকে একটি ক্লিন, সহজে পড়া যাবে দৈনিক এজেন্ডা-তে বুলেট পয়েন্ট ব্যবহার করে ফরম্যাট করুন। সংক্ষিপ্ত ভাষা নিশ্চিত করুন।",
agent=formatter,
context=[prioritize_task], # prioritize_task-এর আউটপুট এখানে ইনপুট
expected_output="বুলেট পয়েন্টসহ একটি ভালো ফরম্যাটেড দৈনিক এজেন্ডা।"
)
# Crew ইনস্ট্যানশিয়েট করুন
crew = Crew(
agents=[extractor, prioritizer, formatter],
tasks=[extract_task, prioritize_task, format_task],
process=Process.sequential, # টাস্কগুলো সিকোয়েনশিয়ালি এক্সিকিউট হবে tasks লিস্টের অর্ডার অনুযায়ী
verbose=2 # এক্সিকিউশনের সময় ডিটেইলড লগ দেখাবে
)
# Crew চালু করুন
result = crew.kickoff()
print("\n########################")
print("## Final Daily Agenda ##")
print("########################\n")
print(result)
এখানে কী হচ্ছে:
ইম্পোর্টস: আমরা CrewAI-র ключ ক্লাসগুলো ইম্পোর্ট করছি: Agent, Crew, Task, এবং Process। আমরা
ChatOpenAIল্যাঙ্গুয়েজ মডেলের জন্য এবং os এনভায়রনমেন্ট ভেরিয়েবল হ্যান্ডেল করার জন্য ইম্পোর্ট করছি।llm = ChatOpenAI(...): LangGraph উদাহরণের মতো, এটি আমাদের OpenAI ল্যাঙ্গুয়েজ মডেল সেট আপ করে, নিশ্চিত করে এর রেসপন্স ডায়রেক্ট (temperature=0) এবং gpt-4o মডেল ব্যবহার করছে।
এজেন্ট ডেফিনিশন (extractor, prioritizer, formatter):
এই ভেরিয়েবলগুলো একটি Agent ইনস্ট্যান্স তৈরি করে। একটি এজেন্ট তার রোল (এটা কী করে), একটি স্পেসিফিক গোল যা এটা অর্জন করার চেষ্টা করছে, এবং একটি ব্যাকস্টোরি (এক ধরনের পারসন্যালিটি বা এক্সপার্টাইজ যা LLM কে এর উদ্দেশ্য বুঝাতে সাহায্য করে) দিয়ে ডিফাইন করা হয়।
verbose=True ডিবাগিংয়ের জন্য সুপার হেল্পফুল, কারণ এটি এজেন্টদের "চিন্তা" প্রিন্ট করে যেন তারা কাজ করে।
allow_delegation=False মানে এই এজেন্টগুলো তাদের অ্যাসাইন করা টাস্ক অন্য এজেন্টদের ডেলিগেট করবে না (যদিও জটিল ডেলিগেশন সিনেরিওর জন্য এটি True সেট করা যায়)।
llm=llm প্রতিটি এজেন্টকে আমাদের OpenAI ল্যাঙ্গুয়েজ মডেলের সাথে কানেক্ট করে।
সিমুলেটেড ইমেইলস: আমরা এই উদাহরণের জন্য একই স্যাম্পল ইমেইল ডেটা রি-ইউজ করছি।
টাস্ক ডেফিনিশন (extract_task, prioritize_task, format_task):
প্রতিটি Task একটি স্পেসিফিক কাজ ডিফাইন করে যা একটি এজেন্টকে করতে হবে।
description স্পষ্টভাবে এজেন্টকে বলে টাস্কটি কী জিনিস ইনভলভ করে।
agent এই টাস্ককে আমাদের ডিফাইন করা এজেন্টগুলির একজনকে অ্যাসাইন করে (যেমন, extract_task- এর জন্য extractor)।
context=[...] CrewAI-এর কোলাবোরেশনের একটি ক্রিটিক্যাল অংশ। এটি একটি টাস্ককে বলে একটি পূর্ববর্তী টাস্কের আউটপুট তার ইনপুট হিসেবে ব্যবহার করতে। উদাহরণস্বরূপ, prioritize_task extract_task-এর আউটপুটকে তার কনটেক্সট হিসেবে নেয়।
expected_output এজেন্টকে একটি আইডিয়া দেয় তার রেজাল্ট কেমন দেখাবে, যা LLM কে গাইড করতে সাহায্য করে।
crew = Crew(...):
এখানে আমরা আমাদের টিম অ্যাসেম্বল করছি! আমরা একটি Crew ইনস্ট্যান্স তৈরি করছি, এতে আমাদের এজেন্ট এবং টাস্কের লিস্ট দিয়ে।
process=Process.sequential Crew কে বলে টাস্কগুলো একের পর এক্সিকিউট করতে tasks লিস্টে ডিফাইন করা অর্ডার অনুযায়ী। CrewAI আরও এডভান্সড প্রসেসও সাপোর্ট করে যেমন hierarchical।
verbose=2 আপনাকে Crew-এর ইন্টারনাল ওয়ার্কিং এবং কমিউনিকেশনের খুব ডিটেইলড লগ দেখাবে।
result = crew.kickoff(): এই কমান্ড পুরো মাল্টি-এজেন্ট ওয়ার্কফ্লো অফিসিয়ালি শুরু করে। এজেন্টগুলো কোলাবোরেট করা শুরু করবে, ইনফরমেশন পাস করবে, এবং তাদের অ্যাসাইন করা টাস্ক সিকোয়েনশিয়ালি ওয়ার্ক থ্রু করবে।
print(result): শেষে, পুরো Crew-এর কোলাবোরেটিভ প্রচেষ্টার কনসোলিডেটেড আউটপুট আপনার কনসোলে প্রিন্ট হয়।
CrewAI চতুরতার সাথে এজেন্টদের মাঝপথে সব কমিউনিকেশন হ্যান্ডেল করে, ফিগার আউট করে কে কী এবং কখন কাজ করবে, এবং আউটপুট স্মूदলি এক এজেন্ট থেকে অন্যটিতে পাস করে—যেন একটি মিনি AI অ্যাসেম্বলি লাইন!
এক্সিকিউশনের সময় আসলে কী ঘটে?
তো, আপনি LangGraph ব্যবহার করুন বা CrewAI, এজেন্ট রান করার সময় পিছনে আসলে কী হচ্ছে? এক্সিকিউশন প্রসেসটি ব্রেক ডাউন করি:
সিস্টেম একটি ইনপুট স্টেট পায় (উদাহরণস্বরূপ, আপনার ইমেইল)।
প্রথম এজেন্ট বা গ্রাফ নোড এই ইনপুট পড়ে এবং একটি Large Language Model (LLM) ব্যবহার করে এটিকে সেন্স করে।
তার বুঝতের ভিত্তিতে, এজেন্ট একটি একশন ডিসাইড করে যেমন কী ইভেন্ট এক্সট্র্যাক্ট করা বা একটি স্পেসিফিক টুল কল করা।
যদি প্রয়োজন হয়, এজেন্ট টুলস ইনভোক করতে পারে (যেমন ওয়েব সার্চ বা ফাইল রিডার) আরও কনটেক্সট পাওয়ার জন্য বা এক্সটার্নাল অপারেশন পারফর্ম করতে।
उस একশনের রেজাল্ট তারপর পরবর্তী এজেন্টকে পাস করা হয় টিমে (যদি মাল্টি-এজেন্ট সেটআপ হয়) অথবা সরাসরি আপনাকে রিটার্ন করা হয়।
এক্সিকিউশন চলতে থাকে যতক্ষণ না:
টাস্কটি পুরোপুরি কমপ্লিট হয়।
সকল এজেন্ট তাদের অ্যাসাইন করা রোল ফিনিশ করে।
একটি স্টপিং কন্ডিশন বা ওয়ার্কফ্লোতে একটি ডেজিগনেটেড "END" পয়েন্ট পৌঁছায়।
এটিকে একটি সুপার-স্মার্ট ওয়ার্কফ্লো ইঞ্জিন হিসেবে চিন্তা করুন যেখানে প্রতিটি একক ধাপে রিজনিং, ডিসিশন মেকিং, এবং পূর্ববর্তী ইন্টারঅ্যাকশন মনে রাখা জড়িত।
LLM Agents সুরক্ষিত কি? সিকিউরিটি ও প্রাইভেসি সম্পর্কে জানা দরকার
LLM agents যত কুল হোক না কেন, সেগুলো একটি গুরুত্বপূর্ণ প্রশ্ন তুলে ধরে: আপনি কি আপনার ওয়ার্কফ্লোর অংশ রান করতে বা আপনার ডেটার সাথে ইন্টারঅ্যাক্ট করতে একটি AI-র ওপর আস্থা রাখতে পারেন? নির্ভর করে। আপনি যদি OpenAI বা Anthropic-এর মতো সার্ভিস ব্যবহার করেন, আপনার ডেটা ট্রানজিট-এ এনক্রিপ্টেড থাকে এবং (এখন পর্যন্ত) ট্রেনিং-এ ব্যবহার হয় না।
কিন্তু কিছু ডেটা مؤقتভাবে লগ করা হয়ে থাকতে পারে Abuuse প্রতিরোধের জন্য। এটি সাধারণত টেস্টিং এবং পারসোনাল প্রজেক্টের জন্য ঠিক, কিন্তু আপনি যদি সেনসিটিভ বিজনেস ইনফো, কাস্টমার ডেটা, বা কিছু প্রাইভেট জিনিসের সাথে কাজ করেন, তবে আপনাকে সতর্ক থাকতে হবে।
অ্যানোনিমাইজড ইনপুট ব্যবহার করুন, ফুল ডেটাসেট এক্সপোজ না করুন, এবং লোকালি ওপেন-সোর্স মডেল যেমন LLaMA বা Mistral রান করুন যদি ফুল কন্ট্রোল আপনার কাছে প্রয়োজন।
আপনার এজেন্টদের জন্য স্পষ্ট বাউন্ডারি সেট করুন যাতে সেগুলো ওভারস্টেপ না করে। এটা যেন একজন নতুন ইন্টার্ন অনবোর্ড করছেন: আপনি দিন একে সব কিছু এক্সেস দিবেন না।
এজেন্টদের শুধু প্রয়োজনীয় টুলস এবং ফাইলস দিন, তাদের করuneanোর লগ রাখুন, এবং রিয়েল চেঞ্জ করার আগে রেজাল্ট রিভিউ করুন।
যে রকম এই টেক বড় হচ্ছে, আরও সেফটি ফিচার আসছে—যেমন बेटার স্যান্ডবক্সিং, মেমরি লিমিট, এবং রোল-বেসড অ্যাক্সেস। কিন্তু এখনও, আপনার এজেন্টদের পাওয়ারফুল হেল্পার হিসেবে চিন্তা করা স্মার্ট যাদের এখনও কিছু হিউম্যান সুপারভিশনের প্রয়োজন।
ট্রাবলশুটিং ও টিপস
কখনো কখনো, এজেন্টগুলো কিছুটা কুইরکی হতে পারে! এখানে কিছু कॉमन ইস্যু আপনি ফেস করতে পারেন এবং কীভাবে ফিক্স করবেন:
ইস্যুসাজেস্টেড ফিক্স এজেন্ট চিরকাল লুপ করতে লাগেসর্বোচ্চ ইটারেশন সংখ্যা সেট করুন বা একটি স্পষ্ট স্টপিং পয়েন্ট ডিফাইন করুন। আউটপুট খুব চ্যাটি বা ভার্বোজআরও স্পেসিফিক প্রম্প্ট ব্যবহার করুন (যেমন, “শুধু বুলেট পয়েন্টে রেসপন্ড করুন”)। ইনপুট খুব বড় বা কাটা হয়ে যায়বড় কনটেন্ট ছোট চাঙ্কে ভাগ করুন এবং সেগুলো আলাদা আলাদা সার্মারাইজ করুন। এজেন্ট খুব ধীরে চলে অন্য দ্রুত LLM মডেল যেমন gpt-3.5 ট্রাই করুন বা লোকাল মডেল রান করার কথা ভাবুন।একটি হ্যান্ডি টিপ: আপনি আপনার এজেন্ট ফাংশনগুলোর ভেতরে print() স্টেটমেন্ট বা লগিং মেসেজ যোগ করতে পারেন প্রতিটি স্টেজে কী হচ্ছে সেটি দেখতে এবং স্টেট ট্রানজিশন ডিবাগ করতে।
আরও দৈনিক অটোমেশন এক্সপ্লোর করুন
একবার আপনি একটি এজেন্ট-বেসড টাস্ক বিল্ড করলে, আপনি পাবেন প্যাটার্নটি অন্য অটোমেশনের জন্য অ্যাডাপ্ট করা অবিশ্বাস্যভাবে সহজ। আপনার ক্রিয়েটিভ জুস ফ্লো করানোর জন্য কিছু কুল আইডিয়া:
টাস্ক টাইপউদাহরণ অটোমেশন DevOps Assistant"সিস্টেম লগ পড়ুন, পটেনশিয়াল ইস্যু ডিটেক্ট করুন, এবং সমাধান সাজেস্ট করুন।" Finance Trackerব্যাংক স্টেটমেন্ট বা CSV ফাইল পড়ুন এবং আপনার খরচের অভ্যাস/বাজেট সার্মারাইজ করুন। Meeting Organizerমিটিং খতম হলে, অটোমেটিক্যালি একশন আইটেম এক্সট্র্যাক্ট করুন এবং ওনার অ্যাসাইন করুন। Inbox Cleaner"অটোমেটিক্যালি লেবেল, আর্কাইভ, এবং নন-আর্জেন্ট ইমেইল ডিলিট করুন।" Note Summarizerআপনার দৈনিক নোটকে একটি নেট টু-ডু লিস্ট বা সামারি-তে কনভার্ট করুন। Link Checkerডকুমেন্ট থেকে URL এক্সট্র্যাক্ট করুন এবং অটোমেটিক্যালি টেস্ট করুন সেগুলো এখনও ভ্যালিড কিনা। Resume Formatterরেজিউমে জব ডেসক্রিপশনের বনাম স্কোর করুন এবং অটোমেটিক্যালি ফরম্যাট করুন।এই প্রতিটি একই প্রিন্সিপল এবং ফ্রেমওয়ার্ক ব্যবহার করে বিল্ড করা যায়—চায়া LangGraph হোক বা CrewAI।
এজেন্ট টেকনোলজিতে আসলে কী আসছে?
LLM agents লাইটনিং স্পিডে এভোলভ করছে, এবং পরবর্তী ইনোভেশন এর ওয়েভ ইতিমধ্যে এখানে:
স্মার্টার মেমরি সিস্টেম: আশা করুন এজেন্টগুলোর बेटার লং-টার্ম মেমরি থাকবে, যা সেগুলোক এক্সটেনডেড পিরিয়ডে শিখতে এবং গত কথোপকথন ও একশন মনে রাখতে দেবে।
মাল্টি-মডাল এজেন্ট: এজেন্টগুলো আর শুধু টেক্সট হ্যান্ডেল করবে না! সেগুলো ইমেজ, অডিও, এবং ভিডিও প্রসেস ও বুঝতে পারবে, সেগুলোক অনেক ভারসেটাইল করে তুলবে।
এডভান্সড প্ল্যানিং ফ্রেমওয়ার্ক: ReAct, Toolformer, এবং AutoGen-এর মতো টেকনিক्स কন্টিনিউয়াসলি এজেন্টদের রিজনিং, প্ল্যানিং, এবং অই পেসকি "হ্যালুসিনেশন" কমানোর ক্ষমতা উন্নত করছে।
এজ ডিপ্লয়মেন্ট: কল্পনা করুন এজেন্টগুলো আপনার লোকাল কম্পিউটার বা ডিভাইসে পুরোপুরি অফলাইন রান করছে লাইটওয়েট মডেল যেমন LLaMA 3 বা Mistral দিয়ে।
খুব নিকট ভবিষ্যতে, আপনি এজেন্টগুলো সিমলেসলি ইন্টিগ্রেটেড দেখব:
আপনার DevOps পাইপলাইনে
বড় এন্টারপ্রাইজ ওয়ার্কফ্লোতে
প্রতিদিনের প্রোডাক্টিভিটি টুলসে
মোবাইল অ্যাপ এবং স্মার্ট ডিভাইসে
গেম, সিমুলেশন, এবং এডুকেশনাল প্ল্যাটফর্মে
চূড়ান্ত সারাংশ
ঠিক আছে, দ্রুত রিক্যাপ করি আপনি যা শিখলেন এবং অর্জন করলেন:
আপনি LLM agents কী এবং কেন সেগুলো এত পাওয়ারফুল সেটির একটি সলিড ধারণা পেয়েছেন।
আপনি দেখেছেন কীভাবে LangGraph এবং CrewAI-এর মতো ওপেন-সোর্স ফ্রেমওয়ার্ক এজেন্ট বিল্ড করা অনেক সহজ করে দিয়েছে।
আপনি LangGraph ব্যবহার করে একটি রিয়েল LLM agent বিল্ড করেছেন আপনার দৈনিক একটি সাধারণ টাস্ক অটোমেট করতে: আপনার ইনবক্স সার্মারাইজ!
আপনি CrewAI দিয়ে মাল্টি-এজেন্ট কোলাবোরেশন এর ওয়ার্ল্ড এক্সপ্লোর করেছেন, বুঝতে পেরেছেন কীভাবে AI-এর টিম একসাথে কাজ করতে পারে।
আপনি শিখেছেন এই প্রিন্সিপলগুলো কীভাবে অন্য অসংখ্য টাস্ক অটোমেট করার জন্য স্কেল করা যায়।
তো, পরবর্তীবার আপনি নিজেকে কিছু রিপিটেটিভ জিনিস করতে আটকে পেলে, শুধু নিজেকে জিজ্ঞেস করুন: "Hey, can I build an agent for that?" উত্তরটি প্রায় হ্যাঁই!
রিসোর্স রিক্যাপ
এখানে কিছু হেল্পফুল রিসোর্স যদি আপনি LLM agents বিল্ড করার গভীরে যেতে চান:
ফ্রিতে কোডিং শিখুন। freeCodeCamp-এর ওপেন সোর্স কারিকুলাম ৪০,০০০+ মানুষকে ডেভেলপার হিসেবে জব পেতে সাহায্য করেছে। শুরু করুন