১. আপনি যা শিখবেন
ADK মাস্টার ক্লাসে স্বাগতম - মাল্টি-এজেন্ট সিস্টেমে আপনার যাত্রা
আপনি এআই এজেন্টের রোমাঞ্চকর জগতে প্রবেশ করতে চলেছেন। শুধু প্রশ্নের উত্তর দেয় এমন সাধারণ চ্যাটবটকে ভুলে যান। আমরা Agent Development Kit (ADK) এর গভীরে প্রবেশ করছি অত্যাধুনিক, স্বায়ত্তশাসিত সিস্টেম তৈরি করতে, যা যুক্তি দিয়ে ভাবতে, পরিকল্পনা করতে এবং জটিল কাজ সম্পন্ন করার জন্য বিভিন্ন টুল ব্যবহার করতে পারে।
এই টিউটোরিয়ালটি শেষে আপনি যা করতে সক্ষম হবেন:
- আপনার প্রথম এআই এজেন্ট তৈরি করুন : একেবারে শূন্য থেকে একটি সম্পূর্ণ কার্যকরী এজেন্ট তৈরি করুন যা ব্যবহারকারীর চাহিদা বুঝতে পারে, গুগল সার্চের মতো টুল ব্যবহার করতে পারে এবং বিস্তারিত ও সহায়ক প্রতিক্রিয়া জানাতে পারে।
- কাস্টম টুলস আয়ত্ত করুন : এজেন্টদের আপনার নিজস্ব কাস্টম ফাংশন এবং এপিআই-এর সাথে সংযুক্ত করে তাদের প্রকৃত শক্তি উন্মোচন করুন। আপনি আপনার এজেন্টকে রিয়েল-টাইম ডেটা, যেমন লাইভ আবহাওয়ার পূর্বাভাস, সংগ্রহ করতে শেখাবেন।
- মাল্টি-এজেন্ট সিস্টেম তৈরি করুন : "এজেন্ট-অ্যাজ-এ-টুল" প্যাটার্নটি শিখুন, এটি একটি বৈপ্লবিক ধারণা যেখানে এজেন্টরা অন্যান্য বিশেষায়িত এজেন্টদের কাছে কাজ অর্পণ করে, যার ফলে একসাথে কাজ করার জন্য এআই বিশেষজ্ঞদের একটি দল তৈরি হয়।
- জটিল ওয়ার্কফ্লো পরিচালনা করুন : সাধারণ ডেলিগেশনের বাইরে যান এবং রাউটার , সিকোয়েনশিয়াল চেইন , লুপ এবং প্যারালাল এক্সিকিউশনের মতো উন্নত প্যাটার্নগুলো আয়ত্ত করে এমন শক্তিশালী, দক্ষ এবং বুদ্ধিমান অ্যাপ্লিকেশন তৈরি করুন যা প্রায় যেকোনো অনুরোধ সামলাতে পারে।
- আপনার এজেন্টদের স্মৃতিশক্তি দিন : কথোপকথনমূলক স্মৃতির গুরুত্বপূর্ণ ভূমিকা বুঝুন, যা আপনার এজেন্টদেরকে পরবর্তী প্রশ্ন সামলাতে, মতামত থেকে শিখতে এবং একাধিক ধাপের কাজ নির্বিঘ্নে পরিচালনা করতে সক্ষম করবে।
চলো শুরু করি! 🚀
২. GCP সেটআপ করুন
আপনার GCP প্রজেক্ট সেট আপ করা
আমাদের এআই এজেন্টদের সক্রিয় করতে দুটি জিনিস প্রয়োজন: ভিত্তি স্থাপনের জন্য একটি গুগল ক্লাউড প্রজেক্ট এবং গুগলের শক্তিশালী মডেলগুলো ব্যবহারের জন্য একটি প্রজেক্ট আইডি।
ধাপ ১: বিলিং অ্যাকাউন্ট সক্রিয় করুন
- আপনার বিলিং অ্যাকাউন্টে ৫ ডলার ক্রেডিট জমা হয়ে যাবে, যা আপনার ডেপ্লয়মেন্টের জন্য প্রয়োজন হবে। আপনার জিমেইল অ্যাকাউন্ট ব্যবহার করে লগইন করতে ভুলবেন না।
ধাপ ২: একটি নতুন GCP প্রজেক্ট তৈরি করুন
- গুগল ক্লাউড কনসোলে গিয়ে একটি নতুন প্রজেক্ট তৈরি করুন।

- গুগল ক্লাউড কনসোলে গিয়ে একটি নতুন প্রজেক্ট তৈরি করুন।
- বাম প্যানেল খুলুন,
Billingক্লিক করুন এবং বিলিং অ্যাকাউন্টটি এই জিসিপি অ্যাকাউন্টের সাথে লিঙ্ক করা আছে কিনা তা পরীক্ষা করুন।

আপনি যদি এই পৃষ্ঠাটি দেখতে পান, তাহলে manage billing account চেক করুন, 'Google Cloud Trial One' বেছে নিন এবং এটিকে লিঙ্ক করুন।
ধাপ ৩: আপনার প্রজেক্ট আইডি কপি করুন।
- console.cloud.google.com- এ যান।
- পৃষ্ঠার শীর্ষে থাকা প্রজেক্ট সিলেক্টর ড্রপডাউনটিতে ক্লিক করুন।
- 'All' ট্যাবে ক্লিক করুন (কারণ নতুন প্রজেক্টটি এখনও 'Recent'-এ নাও দেখা যেতে পারে)।
- আপনি এইমাত্র তৈরি করা প্রজেক্ট আইডিটি নির্বাচন করুন।

৩. সেশন ১: রানারের সাথে আপনার প্রথম এজেন্ট
চলুন মৌলিক বিষয়গুলো দিয়ে শুরু করা যাক। এখানে, আমরা আমাদের প্রথম সাধারণ এজেন্ট, day_trip_agent তৈরি করব। এই এজেন্টের উদ্দেশ্য হলো ব্যবহারকারীর অনুরোধের ভিত্তিতে, বাজেট বিবেচনা সহ, একটি পুরো দিনের ভ্রমণসূচী তৈরি করা। এই উদাহরণটি ADK-তে যেকোনো এজেন্ট ইন্টারঅ্যাকশনের তিনটি মূল উপাদানের সাথে পরিচয় করিয়ে দেয়:
- এজেন্ট : অভিযানের মূল মস্তিষ্ক। এর পরিচয় নির্ধারিত হয় এর নির্দেশাবলী (এর ব্যক্তিত্ব ও লক্ষ্য), ব্যবহৃত এআই মডেল (যেমন জেমিনি), এবং এর ব্যবহারযোগ্য সরঞ্জাম দ্বারা।
- সেশন : কথোপকথনের স্মৃতি। এটি পারস্পরিক ক্রিয়ার ইতিহাস (ব্যবহারকারীর বার্তা এবং এজেন্টের প্রতিক্রিয়া) সংরক্ষণ করে, যা একটি নিরবচ্ছিন্ন সংলাপের সুযোগ করে দেয়।
- রানার : এটি সেই ইঞ্জিন যা কাজটি সম্পাদন করে। এটি এজেন্ট এবং সেশন গ্রহণ করে, নতুন ব্যবহারকারীর জিজ্ঞাসাটি প্রক্রিয়া করে এবং একটি প্রতিক্রিয়া তৈরি করার জন্য প্রয়োজনীয় ধাপগুলো সমন্বয় করে।
➡️ নোটবুকে এটি কোথায় পাবেন
👉 এটি পার্ট ১: আপনার প্রথম এজেন্ট - দ্য ডে ট্রিপ জিনি 🧞 এর অধীনে থাকা সেলগুলোর সাথে সম্পর্কিত। 🌟
- এজেন্ট সংজ্ঞা : `
create_day_trip_agent()ফাংশনটি খুঁজুন। এখানেই এজেন্টকে সংজ্ঞায়িত করা হয়। বিস্তারিত নির্দেশনামূলক স্ট্রিংটি লক্ষ্য করুন—এটিই সেই প্রম্পট যা এজেন্টকে বলে দেয় কীভাবে আচরণ করতে হবে। আমরা একে এর প্রথম টুলটিও দিই: গুগল সার্চ। - সহায়ক ফাংশন : এখানে
run_agent_query()সহায়ক ফাংশনটি সংজ্ঞায়িত করা হয়েছে। কোয়েরি চালানো সহজ করার জন্য আমরা এই নোটবুক জুড়ে এই ইউটিলিটিটি ব্যবহার করব। - পরীক্ষামূলক চালনা : `
run_day_trip_genie()ফাংশনটি এমন একজন ব্যবহারকারীকে অনুকরণ করে যিনি একটি "সাশ্রয়ী" এবং "আরামদায়ক" দিনের ভ্রমণের অনুরোধ করছেন। এজেন্টটি তার নির্দেশাবলী এবং গুগল সার্চ টুল ব্যবহার করে উপযুক্ত স্থান খুঁজে বের করে এবং একটি মার্কডাউন-ফরম্যাটের ভ্রমণসূচী তৈরি করে।
➡️ করণীয় : day_trip_agent এর জন্য দেওয়া নির্দেশনামূলক প্রম্পটটি পরীক্ষা করুন। দেখুন, কীভাবে টেস্ট কোয়েরিতে একটি "সাশ্রয়ী" ভ্রমণের অনুরোধটি এজেন্টের "বাজেট-সচেতন" হওয়ার নির্দেশিকার সাথে সরাসরি সম্পর্কিত।
৪. সেশন ২: কাস্টম টুলস 🛠️
যদিও গুগল সার্চ শক্তিশালী, এআই এজেন্টদের আসল সম্ভাবনা তখনই উন্মোচিত হয় যখন আপনি সেগুলোকে আপনার নিজস্ব ডেটা সোর্স, এপিআই বা কাস্টম লজিকের সাথে সংযুক্ত করেন। এই অংশে, আমরা একটি সাধারণ পাইথন ফাংশন থেকে একটি কাস্টম টুল তৈরি করব।
একটি ফাংশন টুলের সবচেয়ে গুরুত্বপূর্ণ অংশ হলো এর ডকস্ট্রিং। টুলটি কী কাজ করে, এটি কী কী প্যারামিটার (Args) গ্রহণ করে এবং কী রিটার্ন (Returns) করে, তা বোঝার জন্য ADK স্বয়ংক্রিয়ভাবে ডকস্ট্রিংটি পার্স করে। লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) এই বিবরণটি পড়ে সিদ্ধান্ত নেয় যে টুলটি কখন এবং কীভাবে ব্যবহার করতে হবে।
➡️ নোটবুকে এটি কোথায় পাবেন
👉 এটি ২.১ ‘দ্য সিম্পল ফাংশনটুল: কলিং আ রিয়েল-টাইম ওয়েদার এপিআই’ অধ্যায়ের অন্তর্ভুক্ত সেলগুলোর সাথে সম্পর্কিত। 🌟
- টুলের সংজ্ঞা :
get_live_weather_forecast(location: str)ফাংশনটি আমাদের কাস্টম টুলের মূল অংশ। এটি একটি শহরের নাম গ্রহণ করে, পাবলিক ন্যাশনাল ওয়েদার সার্ভিস এপিআই-কে কল করে এবং তাপমাত্রা ও পূর্বাভাসসহ একটি ডিকশনারি ফেরত দেয়। - এজেন্ট সংজ্ঞা : weather_agent-টি তৈরি করার সময়
tools=[get_live_weather_forecast]পাস করে এটিকে আমাদের নতুন টুল দিয়ে সজ্জিত করা হয়। এজেন্টের নির্দেশাবলীতে স্পষ্টভাবে বলা আছে যে, বাইরের কার্যকলাপের পরামর্শ দেওয়ার আগে এই টুলটি ব্যবহার করতে হবে। - পরীক্ষামূলক চালনা : "আমি লেক তাহোর কাছে হাইকিং করতে যেতে চাই, আবহাওয়া কেমন?"—এই কোয়েরিটি এজেন্টকে সরাসরি
get_live_weather_forecastটুলটি ব্যবহার করতে ট্রিগার করে, কারণ এর নির্দেশাবলীতে এটির প্রয়োজন হয়।
➡️ করণীয় : get_live_weather_forecast ফাংশনের ডকস্ট্রিং এবং weather_agent এর নির্দেশাবলী পড়ুন। এদের মধ্যেকার সরাসরি সম্পর্কটি লক্ষ্য করুন।
৫. সেশন ৩: এজেন্ট-একটি-উপকরণ হিসেবে 🧑🍳
যখন আপনি বিশেষজ্ঞদের একটি দল তৈরি করতে পারেন, তখন কেন একটি একক, অখণ্ড এজেন্ট তৈরি করবেন? Agent-as-a-Tool প্যাটার্ন হলো জটিল সিস্টেম তৈরির একটি শক্তিশালী উপায়, যেখানে একটি প্রধান এজেন্ট, যাকে প্রায়শই অর্কেস্ট্রেটর বা রাউটার বলা হয়, অন্যান্য, আরও নির্দিষ্ট কাজে নিয়োজিত এজেন্টদের কাছে বিভিন্ন কাজ অর্পণ করে।
এই প্যাটার্নটি আপনাকে মডিউলার ও পুনঃব্যবহারযোগ্য এজেন্ট তৈরি করার সুযোগ দেয়। উদাহরণস্বরূপ, আপনার এমন একজন এজেন্ট থাকতে পারে যিনি ডাটাবেস কোয়েরিতে বিশেষজ্ঞ, আরেকজন যিনি সৃজনশীল লেখায় বিশেষজ্ঞ, এবং তৃতীয়জন যিনি একজন বন্ধুত্বপূর্ণ কনসিয়ার্জ হিসেবে কাজ করেন। অর্কেস্ট্রেটরের কাজ হলো ব্যবহারকারীর অনুরোধটি বোঝা এবং সেটিকে সঠিক বিশেষজ্ঞের কাছে পাঠিয়ে দেওয়া।
➡️ নোটবুকে এটি কোথায় পাবেন
👉 এটি ২.২ ‘এজেন্ট-একটি-সরঞ্জাম-হিসেবে: একজন বিশেষজ্ঞের পরামর্শ’ 🧑🍳 .🌟 এর অধীনে থাকা সেলগুলোর সাথে সম্পর্কিত।
এই উদাহরণটি একটি অত্যাধুনিক, বহুস্তরীয় এজেন্ট সিস্টেম তৈরি করে:
- বিশেষজ্ঞরা :
- food_critic_agent : একজন অত্যন্ত বিশেষায়িত এজেন্ট যিনি শুধুমাত্র রেস্তোরাঁর পরামর্শ দিয়ে থাকেন।
- db_agent : একটি নকল এজেন্ট যা হোটেলের তথ্যের জন্য ডাটাবেসে কোয়েরি করার ভান করে।
- concierge_agent : একজন মধ্যম-স্তরের এজেন্ট যে একজন ভদ্র কনসিয়ার্জ হিসেবে কাজ করে। গুরুত্বপূর্ণভাবে, এর নিজস্ব একটি টুল হিসেবে
food_critic_agentরয়েছে।
- অর্কেস্ট্রেটর (
trip_data_concierge_agent): এটি হলো শীর্ষ-স্তরের এজেন্ট যার সাথে ব্যবহারকারী যোগাযোগ করে। এর নির্দেশাবলী একে একজন "মাস্টার ট্র্যাভেল প্ল্যানার" হিসেবে গড়ে তোলে এবং একে দুটি টুল দেওয়া হয় যা অন্য এজেন্টদের কল করে:- call_db_agent : একটি ফাংশন যা
db_agentকল করে। - call_concierge_agent : একটি ফাংশন যা
concierge_agentকল করে।
- call_db_agent : একটি ফাংশন যা
- কার্যপ্রবাহ :
run_trip_data_concierge()ফাংশনে চালানো টেস্ট রানটি সম্পূর্ণ ডেলিগেশন চেইন প্রদর্শন করে।- একজন ব্যবহারকারী অর্কেস্ট্রেটরের কাছে একটি হোটেল এবং কাছাকাছি একটি রেস্তোরাঁর তথ্য জানতে চান।
- অর্কেস্ট্রেটরের নির্দেশনায় বলা হয়েছে যে, হোটেলের ডেটা পাওয়ার জন্য প্রথমে
call_db_agentটুলটি ব্যবহার করতে হবে। - এরপর অর্কেস্ট্রেটর একটি সুপারিশ পাওয়ার জন্য
call_concierge_agentটুলটি ব্যবহার করেন। - অনুরোধটি পাওয়ার পর,
concierge_agentতার নিজস্ব টুল,food_critic_agentব্যবহার করে একটি রেস্তোরাঁ সম্পর্কে ধারণা নেয়।
খাদ্য সমালোচকের প্রতিক্রিয়াটি কনসিয়ার্জের কাছে ফেরত পাঠানো হয়, যিনি বিনয়ের সাথে সেটিকে ফরম্যাট করে অর্কেস্ট্রেটরের কাছে পুনরায় পাঠান, এবং অর্কেস্ট্রেটর অবশেষে তা ব্যবহারকারীর কাছে উপস্থাপন করেন।
➡️ করণীয় : run_trip_data_concierge() এর অধীনে টেস্ট রানের কার্যপ্রবাহ অনুসরণ করুন। লক্ষ্য করুন কিভাবে TOOL CALLED প্রিন্টআউটগুলো অর্কেস্ট্রেটর থেকে স্পেশালিস্টদের পর্যন্ত দায়িত্ব অর্পণের ক্রম দেখায়। এটি একটি অনুক্রমিক নির্দেশ-শৃঙ্খল।
৬. সেশন ৪: এজেন্ট মেমরি 🧠
একটি সত্যিকারের বুদ্ধিমান এজেন্টকে শুধু বিচ্ছিন্ন প্রশ্নের উত্তর দেওয়ার চেয়েও বেশি কিছু করতে হয়। তাকে কথোপকথন মনে রাখতে, প্রেক্ষাপট বুঝতে এবং প্রতিক্রিয়ার সাথে নিজেকে মানিয়ে নিতে হয়। যথাযথ সেশন ব্যবস্থাপনার মাধ্যমে এটি অর্জন করা হয়। একটি 'লুপ এজেন্ট'-কে এমন একটি এজেন্ট হিসেবে ভাবা যেতে পারে, যা তার স্মৃতিশক্তির দ্বারা চালিত হয়ে একটি অবিরাম কথোপকথনের চক্রে নিযুক্ত থাকে।
যখন আপনি একাধিক ধারাবাহিক অনুসন্ধানের জন্য একই সেশন অবজেক্ট ব্যবহার করেন, তখন এজেন্ট কথোপকথনের সম্পূর্ণ ইতিহাস "দেখতে" পারে। এর ফলে এটি পরবর্তী প্রশ্নগুলো সামলাতে, প্রতিক্রিয়ার ভিত্তিতে নিজেকে সংশোধন করতে এবং একাধিক ধাপের কাজ পরিকল্পনা করতে পারে।
➡️ নোটবুকে এটি কোথায় পাবেন
👉 এটি পার্ট ৩: স্মৃতিশক্তি সম্পন্ন এজেন্ট - অভিযোজিত পরিকল্পনাকারী 🗺️ -এর অধীনে থাকা সেলগুলোর সাথে সম্পর্কিত। 🌟
- এজেন্টের সংজ্ঞা :
create_multi_day_trip_agent()ফাংশনটি এমন একটি এজেন্টকে সংজ্ঞায়িত করে যা পর্যায়ক্রমে একটি ভ্রমণের পরিকল্পনা করার জন্য ডিজাইন করা হয়েছে। এর নির্দেশাবলীতে প্রেক্ষাপট মনে রাখা, প্রতিক্রিয়া সামলানো এবং একবারে একদিনের পরিকল্পনা করার উপর জোর দেওয়া হয়।
দৃশ্যকল্প ৩ক: স্মৃতিশক্তি সম্পন্ন এজেন্ট (✅)
এই পরীক্ষাটি run_adaptive_memory_demonstration() ফাংশনে চালানো হয়।
- একটিমাত্র
trip_sessionতৈরি করা হয় এবং পরপর তিনটি টার্নের জন্য পুনরায় ব্যবহার করা হয়। - টার্ন ১ : ব্যবহারকারী একটি ২-দিনের ভ্রমণ পরিকল্পনা শুরু করেন।
- টার্ন ২ : ব্যবহারকারী মতামত দেয় ("আমি ক্যাসেল খুব একটা পছন্দ করি না")। যেহেতু এজেন্টের টার্ন ১-এর স্মৃতি থাকে, তাই এটি বুঝতে পারে পরিকল্পনার কোন অংশটি পরিবর্তন করতে হবে এবং একটি বিকল্প প্রদান করে।
- পর্যায় ৩ : ব্যবহারকারী পরিবর্তনটি নিশ্চিত করেন এবং পরবর্তী পদক্ষেপ জানতে চান। এজেন্ট সবকিছু মনে রাখেন এবং দ্বিতীয় দিনের পরিকল্পনা নিয়ে এগিয়ে যান।
দৃশ্যকল্প ৩খ: স্মৃতিহীন এজেন্ট (❌)
এই পরীক্ষাটি run_memory_failure_demonstration() ফাংশনে চালানো হয়।
ইচ্ছাকৃতভাবে ভুল করার মাধ্যমে সেশন ব্যবস্থাপনার অপরিহার্য গুরুত্ব তুলে ধরা হয়েছে। প্রতিটি পালার জন্য একটি নতুন সেশন তৈরি করা হয় ।
- টার্ন ১ : ব্যবহারকারী সেশন_ওয়ান-এ ট্রিপটি শুরু করেন। এজেন্ট সঠিকভাবে সাড়া দেন।
- টার্ন ২ : ব্যবহারকারী দ্বিতীয় দিনের পরিকল্পনা করতে বলেন, কিন্তু কোয়েরিটি একটি সম্পূর্ণ নতুন সেশন_টু-তে পাঠানো হয়। যেহেতু এই নতুন সেশনটির কোনো ইতিহাস নেই, এজেন্টটি বিভ্রান্ত হয়ে পড়ে। তার স্মৃতিভ্রংশ হয়েছে! সে জানে না কোন ভ্রমণের পরিকল্পনা করা হচ্ছে।
করণীয় : run_adaptive_memory_demonstration() এবং run_memory_failure_demonstration() -এ এজেন্টের প্রতিক্রিয়াগুলো তুলনা করুন। নোটবুকের সবচেয়ে গুরুত্বপূর্ণ ধারণাটি হলো: একটি অবিচ্ছিন্ন কথোপকথনের জন্য একটি অবিচ্ছিন্ন সেশন প্রয়োজন।
৭. সেশন ৫: রাউটার এজেন্ট 🚏
একটি একক এজেন্ট একা খুব বেশি কিছু করতে পারে না। সত্যিকারের জটিল ব্যবহারকারীর অনুরোধগুলো মোকাবেলা করার জন্য আমাদের বিশেষায়িত এজেন্টের একটি দল প্রয়োজন। কিন্তু একটি নির্দিষ্ট কোয়েরির জন্য কোন এজেন্ট ব্যবহার করতে হবে, তা আমরা কীভাবে জানব? এখানেই রাউটার এজেন্টের ভূমিকা শুরু হয়।
রাউটার এজেন্ট একটি 'মাস্টার' এজেন্ট বা ডিসপ্যাচার হিসেবে কাজ করে। এর একমাত্র উদ্দেশ্য হলো আগত ব্যবহারকারীর কোয়েরি বিশ্লেষণ করা এবং কাজটি করার জন্য কোন বিশেষজ্ঞ এজেন্ট (বা এজেন্টদের কর্মপ্রবাহ) সবচেয়ে উপযুক্ত, তা নির্ধারণ করা। এটি নিজে কোয়েরির উত্তর দেয় না; এটি কেবল কোয়েরিটিকে সঠিক ডাউনস্ট্রিম এজেন্টের কাছে পাঠিয়ে দেয়।
উদাহরণস্বরূপ, 'সেরা সুশি' সম্পর্কিত কোনো জিজ্ঞাসা একজন foodie_agent-এর কাছে যাওয়া উচিত, অন্যদিকে 'এই সপ্তাহান্তের কনসার্ট' সম্পর্কিত কোনো প্রশ্নের উত্তর একজন weekend_guide_agent দেবেন।
➡️ নোটবুকে এটি কোথায় পাবেন:
👉 এই ধারণাটি পুরো নোটবুকের কেন্দ্রবিন্দু, কিন্তু এটি প্রথম উপস্থাপন করা হয়েছে পার্ট ১: মাল্টি-এজেন্ট মেহেম - সিকোয়েনশিয়াল ওয়ার্কফ্লো-তে 🧠→🤖→🤖 🌟
- এজেন্ট সংজ্ঞা : এই কোড সেলটি একাধিক বিশেষজ্ঞ এজেন্ট (day_trip_agent, foodie_agent, transportation_agent) এবং সবচেয়ে গুরুত্বপূর্ণভাবে, router_agent-কে সংজ্ঞায়িত করে। router_agent-এর নির্দেশনার দিকে বিশেষভাবে মনোযোগ দিন, এটিকে স্পষ্টভাবে বলা হয়েছে যে এটি যেন শুধুমাত্র কাজের জন্য সেরা এজেন্টের নামটিই ফেরত দেয়।
- কার্যপ্রণালী : run_sequential_app ফাংশনটি দেখায় কিভাবে প্রথমে একটি সিদ্ধান্ত (chosen_route) পাওয়ার জন্য router_agent-কে কল করতে হয় এবং তারপর সেই সিদ্ধান্তটি একটি
if/elifব্লকে ব্যবহার করে উপযুক্ত স্পেশালিস্ট এজেন্টকে কার্যকর করতে হয়।
৮. সেশন ৬: সিকোয়েনশিয়ালএজেন্ট ⛓️
কিছু কাজের জন্য একটি নির্দিষ্ট ক্রমে একাধিক ধাপের প্রয়োজন হয়। উদাহরণস্বরূপ, "পালো অল্টোতে সেরা সুশি খুঁজে দিন এবং তারপর সেখানে যাওয়ার পথ বলে দিন।" এটি একটি দুই-ধাপের প্রক্রিয়া: প্রথমত, রেস্তোরাঁটি খুঁজে বের করা এবং দ্বিতীয়ত, যাওয়ার দিকনির্দেশনা সংগ্রহ করা।
ADK, SequentialAgent-এর মাধ্যমে এটি পরিচালনা করার একটি পরিচ্ছন্ন ও শক্তিশালী উপায় প্রদান করে। এটি একটি বিশেষ ওয়ার্কফ্লো এজেন্ট যা পূর্বনির্ধারিত ক্রমে সাব-এজেন্টগুলির একটি তালিকা কার্যকর করে।
এর জাদুটি নিহিত রয়েছে শেয়ার্ড স্টেটে। সিকোয়েন্সের একটি এজেন্টের আউটপুট স্বয়ংক্রিয়ভাবে একটি শেয়ার্ড স্টেট ডিকশনারিতে সেভ করা যায় এবং তারপর পরবর্তী এজেন্টের ইনপুট হিসেবে ব্যবহার করা যায়, যা ধাপগুলোর মধ্যে তথ্য আদান-প্রদানের জন্য জটিল ম্যানুয়াল কোডের প্রয়োজনীয়তা দূর করে।
➡️ নোটবুকে এটি কোথায় পাবেন:
👉 এটি পার্ট ২ (দ্য এডিকে ওয়ে)-তে আলোচনা করা হয়েছে: সিকোয়েনশিয়ালএজেন্ট দিয়ে মাল্টি-এজেন্ট মেহেম 🧠→⛓️→🤖 . 🌟
- এজেন্ট রিফ্যাক্টরিং: এই অংশের প্রথম কোড সেলে,
foodie_agentএবংtransportation_agentএর মূল পরিবর্তনগুলো লক্ষ্য করুন:-
foodie_agentএখন একটিoutput_key="destination"আছে। এটি ADK-কে তার চূড়ান্ত উত্তরটি শেয়ার্ড স্টেটেরdestinationনামের একটি ভেরিয়েবলে সংরক্ষণ করতে নির্দেশ দেয়। -
transportation_agentএর নির্দেশনা প্রম্পটে এখন{destination}প্লেসহোল্ডারটি রয়েছে। ADK স্বয়ংক্রিয়ভাবে শেয়ার্ড স্টেট থেকে মানটি এই প্লেসহোল্ডারে প্রবেশ করিয়ে দেয়।
-
- ওয়ার্কফ্লো নির্ধারণ :
find_and_navigate_agentকে একটি SequentialAgent হিসেবে সংজ্ঞায়িত করা হয়েছে, এবং এর sub_agent-গুলো [foodie_agent,transportation_agent] হিসেবে সেট করা হয়েছে, যা নিশ্চিত করে যে তারা ঠিক এই ক্রমেই চলবে। - সরলীকৃত কার্যসম্পাদন : এই অংশের
run_sequential_appফাংশনটি দেখুন। জটিলif/elifলজিকটি আর নেই!find_and_navigate_agentএখন একটি একক, কলযোগ্য ইউনিট হিসেবে গণ্য করা হয় এবং ADK অভ্যন্তরীণ ধারাবাহিক ধাপগুলো স্বয়ংক্রিয়ভাবে পরিচালনা করে।
৯. সেশন ৭: লুপএজেন্ট 🔁
সব সমস্যারই সহজ-সরল ও একবারে সমাধান হয় না। কখনও কখনও, আমাদের একটি সমাধান প্রস্তাব করতে হয়, সেটিকে পর্যালোচনা করতে হয় এবং একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত সেটিকে পরিমার্জন করতে হয়।
এর জন্য, ADK-তে LoopAgent রয়েছে। এই ওয়ার্কফ্লো এজেন্টটি একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত ধারাবাহিকভাবে একাধিক সাব-এজেন্টকে বারবার সম্পাদন করে। এটি এমন 'পারফেকশনিস্ট' এজেন্ট তৈরির জন্য আদর্শ, যারা নিজেদের কাজের পরিকল্পনা, সমালোচনা এবং উন্নতি করতে পারে।
ডায়াগ্রামটিতে দেখানো হয়েছে যে Planner Agent প্রথমে একটি প্ল্যান তৈরি করছে। এরপর, আমরা LoopAgent প্রবেশ করি। Critic Agent প্ল্যানটি পরীক্ষা করে। যদি এতে কোনো ত্রুটি থাকে, তাহলে Refiner Agent একটি নতুন সংস্করণ তৈরি করে এবং লুপটি পুনরাবৃত্তি হয়। যদি প্ল্যানটি সঠিক হয়, তাহলে Refiner Agent exit_loop টুলটিকে কল করে এবং চূড়ান্ত, যাচাইকৃত প্ল্যানটি ফেরত দেওয়া হয়।
➡️ নোটবুকে এটি কোথায় পাবেন:
👉 এটি “Iterative Ideas with LoopAgent 🧠→🔁→🤖” -এ ব্যাখ্যা করা হয়েছে। 🌟
- মূল এজেন্টসমূহ : এই ওয়ার্কফ্লোতে
planner_agent,critic_agentএবংrefiner_agentব্যবহৃত হয়। - লুপের সংজ্ঞা :
refinement_loopএকটি লুপএজেন্ট হিসেবে সংজ্ঞায়িত করা হয় যাcritic_agentএবংrefiner_agentপরিচালনা করে এবংsets max_iterations=3। - প্রস্থান শর্ত : যখন
critic_agentপরিকল্পনাটি অনুমোদন করে, তখন লুপটি সমাপ্ত হয়, যার ফলেrefiner_agentকাস্টমexit_loopটুলটিকে কল করে।
১০. সেশন ৮: প্যারালালএজেন্ট ⚡️
দক্ষতাই মূল বিষয়। যদি কোনো ব্যবহারকারী একই সাথে একাধিক, সম্পর্কহীন তথ্য জানতে চান, তবে এই অনুসন্ধানগুলো এক এক করে চালালে তা ধীরগতির হবে।
ParallelAgent হলো সমাধান। এই ওয়ার্কফ্লো এজেন্টটি একযোগে একাধিক সাব-এজেন্টের কাজ সম্পাদন করে। সমস্ত সমান্তরাল কাজ সম্পন্ন হয়ে গেলে, সেগুলোর ফলাফল সংগ্রহ করে একটি একক ও পূর্ণাঙ্গ প্রতিক্রিয়া তৈরি করা যায়।
এই ডায়াগ্রামটি দেখাচ্ছে যে, ParallelAgent একটিমাত্র কোয়েরি গ্রহণ করে কাজটিকে তিনটি সমান্তরাল ট্র্যাকে বিভক্ত করছে। museum_finder , concert_finder , এবং restaurant_finder সবগুলোই একই সময়ে চলে। তিনটিই যখন তাদের কাজ শেষ করে, তখন তাদের স্বতন্ত্র ফলাফলগুলো (শেয়ার্ড স্টেটে সংরক্ষিত) একত্রিত করে চূড়ান্ত সিন্থেসিস এজেন্টের কাছে পাঠানো হয়, যা সেগুলোকে সমন্বয় করে একটি একক উত্তরে পরিণত করে।
➡️ নোটবুকে এটি কোথায় পাবেন:
👉 এই ওয়ার্কফ্লোটি "Parallel Power with ParallelAgent" সেকশনে বিস্তারিতভাবে বর্ণনা করা হয়েছে 🧠→⚡️→🤖🤖🤖 । 🌟
- বিশেষজ্ঞ এজেন্ট : তিনটি বিশেষজ্ঞ এজেন্ট সংজ্ঞায়িত করা হয়েছে, যাদের প্রত্যেকের একটি অনন্য আউটপুট_কী (যেমন, museum_result) রয়েছে।
- সমান্তরাল কর্মপ্রবাহ : parallel_research_agent-কে একটি ParallelAgent হিসেবে সংজ্ঞায়িত করা হয়েছে, এবং তিনটি ফাইন্ডার এজেন্টকে এর sub_agent হিসেবে তালিকাভুক্ত করা হয়েছে।
- সংশ্লেষণ ধাপ : সমান্তরাল ধাপের পরে, একটি চূড়ান্ত সংশ্লেষণ এজেন্ট প্লেসহোল্ডার (
{museum_result},{concert_result}, ইত্যাদি) ব্যবহার করে শেয়ার্ড স্টেট থেকে সমস্ত ফলাফল সংগ্রহ করে একটি পরিপাটি সারসংক্ষেপ তৈরি করে।
১১. পরিশিষ্ট: এডিকে ওয়েব - 🍎 ম্যাক/লিনাক্সের জন্য
এই নির্দেশিকাটি আপনাকে আপনার স্থানীয় কম্পিউটারে ADK Day Trip Planning Agent সেট আপ এবং চালু করার পদ্ধতি ধাপে ধাপে দেখিয়ে দেবে।
পূর্বশর্ত
- পাইথন ৩.৮ বা উচ্চতর
- পাইথন ৩.৯+ : গুগল-এডিকে==১.৫.০ ইনস্টল করে (সম্পূর্ণ বৈশিষ্ট্যসহ সর্বশেষ সংস্করণ)
- পাইথন ৩.৮ : google-adk==0.3.0 (সামঞ্জস্যপূর্ণ সংস্করণ) ইনস্টল করে।
- গুগল এআই স্টুডিও এপিআই কী
- ইন্টারনেট সংযোগ
ধাপ ১: রিপোজিটরি ক্লোন করুন
টার্মিনাল খুলুন এবং চালান:
git clone https://github.com/cuppibla/ADK_Basic.git
cd ADK_Basic
ধাপ ২: ভার্চুয়াল পরিবেশ তৈরি করুন এবং নির্ভরতাগুলো ইনস্টল করুন
বিকল্প A: স্বয়ংক্রিয় সেটআপ (প্রস্তাবিত)
# Run the setup script
chmod +x setup_venv.sh
./setup_venv.sh
বিকল্প বি: ম্যানুয়াল সেটআপ
# Create virtual environment
python3 -m venv .adk_env
# Activate virtual environment
source .adk_env/bin/activate
# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
ধাপ ৩: 🔥 গুরুত্বপূর্ণ - এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন
⚠️ এই ধাপটি বাদ দেবেন না! agent/ ডিরেক্টরিতে একটি .env ফাইল তৈরি করুন:
# Create the .env file
touch agent/.env
# Open it in your default text editor
open agent/.env
ফাইলে এই লাইনগুলো যোগ করুন:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=your_actual_api_key_here
🚨 অত্যন্ত গুরুত্বপূর্ণ : your_actual_api_key_here এর জায়গায় আপনার আসল API কী লিখুন!
ধাপ ৪: ভার্চুয়াল এনভায়রনমেন্ট সক্রিয় করুন (যদি আগে থেকে সক্রিয় না থাকে)
source .adk_env/bin/activate
আপনার টার্মিনাল প্রম্পটের শুরুতে (.adk_env) দেখতে পাবেন।
ধাপ ৫: ADK ওয়েব ইন্টারফেসটি চালান।
adk web
ধাপ ৬: আপনার ব্রাউজার খুলুন
- আপনার ব্রাউজার খুলুন এবং টার্মিনালে দেখানো URL-টিতে যান (সাধারণত
http://localhost:8000)। - উপরের বাম দিকের ড্রপডাউন থেকে
agentনির্বাচন করুন। - আপনার দিনের ভ্রমণ পরিকল্পনা এজেন্টের সাথে কথা বলা শুরু করুন!
আপনি এই ধরনের কথোপকথন দেখতে পাবেন: 
পরিবেশ নিষ্ক্রিয় করা
প্রকল্পটির কাজ শেষ হয়ে গেলে:
deactivate
এই কমান্ডটি ম্যাক/লিনাক্স এবং উইন্ডোজ উভয় প্ল্যাটফর্মেই একইভাবে কাজ করে। আপনি লক্ষ্য করবেন যে আপনার টার্মিনাল প্রম্পট থেকে (.adk_env) প্রিফিক্সটি অদৃশ্য হয়ে যাবে।
ম্যাক ট্রাবলশুটিং
- পাইথন খুঁজে পাওয়া যায়নি :
pythonপরিবর্তেpython3ব্যবহার করুন। - অনুমতি নেই : স্ক্রিপ্টটি চালানোর আগে
chmod +x setup_venv.shচালান।
১২. পরিশিষ্ট: এডিকে ওয়েব - 🪟 উইন্ডোজ ব্যবহারকারীদের জন্য
এই নির্দেশিকাটি আপনাকে আপনার স্থানীয় কম্পিউটারে ADK Day Trip Planning Agent সেট আপ এবং চালু করার পদ্ধতি ধাপে ধাপে দেখিয়ে দেবে।
পূর্বশর্ত
- পাইথন ৩.৮ বা উচ্চতর
- পাইথন ৩.৯+ : গুগল-এডিকে==১.৫.০ ইনস্টল করে (সম্পূর্ণ বৈশিষ্ট্যসহ সর্বশেষ সংস্করণ)
- পাইথন ৩.৮ : google-adk==0.3.0 (সামঞ্জস্যপূর্ণ সংস্করণ) ইনস্টল করে।
- গুগল এআই স্টুডিও এপিআই কী
- ইন্টারনেট সংযোগ
ধাপ ১: রিপোজিটরি ক্লোন করুন
কমান্ড প্রম্পট বা পাওয়ারশেল খুলুন এবং চালান:
git clone https://github.com/cuppibla/ADK_Basic.git
cd ADK_Basic
ধাপ ২: ভার্চুয়াল পরিবেশ তৈরি করুন এবং নির্ভরতাগুলো ইনস্টল করুন
বিকল্প A: স্বয়ংক্রিয় সেটআপ (প্রস্তাবিত)
# Run the setup script in Command Prompt
setup_venv.bat
বিকল্প বি: ম্যানুয়াল সেটআপ
কমান্ড প্রম্পটের জন্য:
# Create virtual environment
python -m venv .adk_env
# Activate virtual environment
.adk_env\Scripts\activate
# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
পাওয়ারশেলের জন্য:
# Create virtual environment
python -m venv .adk_env
# Activate virtual environment
.adk_env\Scripts\Activate.ps1
# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
ধাপ ৩: 🔥 গুরুত্বপূর্ণ - এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন
⚠️ এই ধাপটি বাদ দেবেন না! agent/ ডিরেক্টরিতে একটি .env ফাইল তৈরি করুন:
# Create the .env file
type nul > agent\.env
# Open it in Notepad
notepad agent\.env
ফাইলে এই লাইনগুলো যোগ করুন:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=your_actual_api_key_here
🚨 অত্যন্ত গুরুত্বপূর্ণ : your_actual_api_key_here এর জায়গায় আপনার আসল API কী লিখুন!
ধাপ ৪: ভার্চুয়াল এনভায়রনমেন্ট সক্রিয় করুন (যদি আগে থেকে সক্রিয় না থাকে)
কমান্ড প্রম্পট:
.adk_env\Scripts\activate
পাওয়ারশেল:
.adk_env\Scripts\Activate.ps1
আপনার প্রম্পটের শুরুতে (.adk_env) দেখতে পাবেন।
ধাপ ৫: ADK ওয়েব ইন্টারফেসটি চালান।
adk web
ধাপ ৬: আপনার ব্রাউজার খুলুন
- আপনার ব্রাউজার খুলুন এবং টার্মিনালে দেখানো URL-টিতে যান (সাধারণত
http://localhost:8000)। - উপরের বাম দিকের ড্রপডাউন থেকে
agentনির্বাচন করুন। - আপনার দিনের ভ্রমণ পরিকল্পনা এজেন্টের সাথে কথা বলা শুরু করুন!
উইন্ডোজ সমস্যা সমাধান
- PowerShell এক্সিকিউশন পলিসি ত্রুটি :
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserচালান
আপনি এই ধরনের কথোপকথন দেখতে পাবেন: 
পরিবেশ নিষ্ক্রিয় করা
প্রকল্পটির কাজ শেষ হয়ে গেলে:
deactivate
এই কমান্ডটি ম্যাক/লিনাক্স এবং উইন্ডোজ উভয় প্ল্যাটফর্মেই একইভাবে কাজ করে। আপনি লক্ষ্য করবেন যে আপনার টার্মিনাল প্রম্পট থেকে (.adk_env) প্রিফিক্সটি অদৃশ্য হয়ে যাবে।