ADK ক্র্যাশ কোর্স - শিক্ষানবিস থেকে বিশেষজ্ঞ পর্যন্ত

১. তুমি যা শিখবে

ADK মাস্টার ক্লাসে স্বাগতম - মাল্টি-এজেন্ট সিস্টেমে আপনার যাত্রা

তুমি এখন এআই এজেন্টদের রোমাঞ্চকর জগতে পা রাখতে যাচ্ছ। শুধু প্রশ্নের উত্তর দেওয়া সহজ চ্যাটবটগুলো ভুলে যাও। আমরা Agent Development Kit (ADK) এর গভীরে ডুব দিচ্ছি যাতে জটিল কাজ সম্পন্ন করার জন্য যুক্তি, পরিকল্পনা এবং সরঞ্জাম ব্যবহার করে অত্যাধুনিক, স্বায়ত্তশাসিত সিস্টেম তৈরি করা যায়।

কোর্স রোডম্যাপ

এই টিউটোরিয়ালের শেষে, আপনি সক্ষম হবেন:

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

চল শুরু করি! 🚀

2. GCP এবং Gemini API কী সেটআপ করুন

আপনার GCP প্রকল্প এবং জেমিনি API কী সেট আপ করা হচ্ছে

আমাদের এআই এজেন্টদের শক্তিশালী করার জন্য, আমাদের দুটি জিনিসের প্রয়োজন: ভিত্তি প্রদানের জন্য একটি গুগল ক্লাউড প্রজেক্ট এবং গুগলের শক্তিশালী মডেলগুলি অ্যাক্সেস করার জন্য একটি জেমিনি এপিআই কী।

ধাপ ১: বিলিং অ্যাকাউন্ট সক্ষম করুন

  • ৫ ডলার ক্রেডিট দিয়ে আপনার বিলিং অ্যাকাউন্ট দাবি করার জন্য, আপনার এটি স্থাপনের জন্য প্রয়োজন হবে। আপনার জিমেইল অ্যাকাউন্টটি নিশ্চিত করুন।

ধাপ ২: একটি নতুন জিসিপি প্রকল্প তৈরি করুন

  • গুগল ক্লাউড কনসোলে যান এবং একটি নতুন প্রকল্প তৈরি করুন।

একটি নতুন জিসিপি অ্যাকাউন্ট তৈরি করুন

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

বিলিং অ্যাকাউন্টটি জিসিপি অ্যাকাউন্টের সাথে লিঙ্ক করুন

যদি আপনি এই পৃষ্ঠাটি দেখেন, তাহলে manage billing account চেক করুন, Google Cloud Trial One নির্বাচন করুন এবং এর সাথে লিঙ্ক করুন।

ধাপ ৩: আপনার জেমিনি এপিআই কী তৈরি করুন

চাবিটি সুরক্ষিত করার আগে, আপনার একটি থাকা দরকার।

  • গুগল এআই স্টুডিওতে যান।
  • আপনার জিমেইল অ্যাকাউন্ট দিয়ে সাইন ইন করুন।
  • "API কী পান" বোতামে ক্লিক করুন, যা সাধারণত বাম দিকের নেভিগেশন প্যানে বা উপরের ডানদিকের কোণায় পাওয়া যায়।
  • "API কী" ডায়ালগে, "নতুন প্রকল্পে API কী তৈরি করুন" এ ক্লিক করুন। নতুন প্রকল্পে API কী তৈরি করুন
  • আপনার তৈরি করা নতুন প্রকল্পটি বেছে নিন যাতে বিলিং অ্যাকাউন্ট সেট আপ করা আছে। নতুন প্রকল্পটি বেছে নিন
  • আপনার জন্য একটি নতুন API কী তৈরি করা হবে। এই কীটি অবিলম্বে কপি করুন এবং এটিকে অস্থায়ীভাবে নিরাপদ কোথাও সংরক্ষণ করুন (যেমন একটি পাসওয়ার্ড ম্যানেজার বা একটি সুরক্ষিত নোট)। পরবর্তী ধাপগুলিতে আপনি এই মানটি ব্যবহার করবেন।

৩. সেশন ১: রানারের সাথে আপনার প্রথম এজেন্ট

রোডম্যাপ১

মৌলিক বিষয়গুলো দিয়ে শুরু করা যাক। এখানে, আমরা আমাদের প্রথম সহজ এজেন্ট, day_trip_agent তৈরি করি। এই এজেন্টের উদ্দেশ্য হল ব্যবহারকারীর অনুরোধের ভিত্তিতে একটি পূর্ণ-দিনের ভ্রমণের ভ্রমণপথ তৈরি করা, যার মধ্যে বাজেট বিবেচনা অন্তর্ভুক্ত। এই উদাহরণটি ADK-তে যেকোনো এজেন্টের মিথস্ক্রিয়ার তিনটি মূল উপাদানের সাথে পরিচয় করিয়ে দেয়:

  • এজেন্ট : অপারেশনের মূল মস্তিষ্ক। এটি এর নির্দেশাবলী (এর ব্যক্তিত্ব এবং লক্ষ্য), এটি যে AI মডেল ব্যবহার করে (যেমন জেমিনি), এবং এটি যে সরঞ্জামগুলি অ্যাক্সেস করতে পারে তার দ্বারা সংজ্ঞায়িত হয়।
  • অধিবেশন : কথোপকথনের স্মৃতি। এটি মিথস্ক্রিয়ার ইতিহাস (ব্যবহারকারীর বার্তা এবং এজেন্টের প্রতিক্রিয়া) সংরক্ষণ করে, যা একটি অবিচ্ছিন্ন সংলাপের সুযোগ করে দেয়।
  • রানার : ইঞ্জিন যা কাজটি সম্পাদন করে। এটি এজেন্ট এবং সেশন নেয়, নতুন ব্যবহারকারীর কোয়েরি প্রক্রিয়া করে এবং প্রতিক্রিয়া তৈরির পদক্ষেপগুলি পরিচালনা করে।

➡️ নোটবুকে এটি কোথায় পাবেন

👉 এটি পার্ট ১: ইওর ফার্স্ট এজেন্ট - দ্য ডে ট্রিপ জিনি 🧞 এর অধীনে থাকা সেলগুলির সাথে মিলে যায়।🌟

এজেন্ট রোবট পড়ছে

  • এজেন্টের সংজ্ঞা : create_day_trip_agent() ফাংশনটি দেখুন। এখানেই এজেন্টকে সংজ্ঞায়িত করা হয়েছে। বিস্তারিত নির্দেশিকা স্ট্রিংটি লক্ষ্য করুন—এটি হল প্রম্পট যা এজেন্টকে কীভাবে আচরণ করতে হবে তা বলে। আমরা এটিকে তার প্রথম টুলটিও দিই: গুগল সার্চ।
  • হেল্পার ফাংশন : run_agent_query() হেল্পার ফাংশনটি এখানে সংজ্ঞায়িত করা হয়েছে। চলমান কোয়েরিগুলি সহজ করার জন্য আমরা নোটবুক জুড়ে এই ইউটিলিটিটি ব্যবহার করব।
  • টেস্ট রান : run_day_trip_genie() ফাংশনটি একজন ব্যবহারকারীকে "সাশ্রয়ী মূল্যের" এবং "আরামদায়ক" দিনের ভ্রমণের জন্য অনুরোধ করার অনুকরণ করে। এজেন্ট তার নির্দেশাবলী এবং গুগল অনুসন্ধান সরঞ্জাম ব্যবহার করে উপযুক্ত স্থানগুলি খুঁজে বের করে এবং একটি মার্কডাউন-ফর্ম্যাটেড ভ্রমণপথ তৈরি করে।

➡️ পদক্ষেপ : day_trip_agent এর জন্য নির্দেশিকা প্রম্পট পরীক্ষা করুন। পরীক্ষার প্রশ্নের "সাশ্রয়ী মূল্যের" ভ্রমণের অনুরোধটি এজেন্টের "বাজেট-সচেতন" হওয়ার নির্দেশিকার সাথে কীভাবে সরাসরি সম্পর্কিত তা দেখুন।

৪. সেশন ২: কাস্টম টুলস 🛠️

রোডম্যাপ২

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

একটি ফাংশন টুলের সবচেয়ে গুরুত্বপূর্ণ অংশ হল এর ডকস্ট্রিং। ADK স্বয়ংক্রিয়ভাবে ডকস্ট্রিংটিকে পার্স করে বুঝতে পারে যে টুলটি কী করে, কোন প্যারামিটারগুলি গ্রহণ করে (Args), এবং কী ফেরত দেয় (Returns)। বৃহৎ ভাষা মডেল (LLM) এই বর্ণনাটি পড়ে কখন এবং কীভাবে টুলটি ব্যবহার করতে হবে তা নির্ধারণ করে।

➡️ নোটবুকে এটি কোথায় পাবেন

👉 এটি 2.1 এর অধীনে থাকা কোষগুলির সাথে মিলে যায় The Simple FunctionTool: Calling a Real-Time Weather API । 🌟

adk টুলস

  • টুলের সংজ্ঞা : get_live_weather_forecast(location: str) ফাংশনটি আমাদের কাস্টম টুলের মূল অংশ। এটি একটি শহরের নাম নেয়, পাবলিক ন্যাশনাল ওয়েদার সার্ভিস API কল করে এবং তাপমাত্রা এবং পূর্বাভাস সহ একটি অভিধান প্রদান করে।
  • এজেন্টের সংজ্ঞা : weather_agent তৈরি করা হয় এবং আমাদের নতুন টুল দিয়ে সজ্জিত করা হয় tools=[get_live_weather_forecast] এর মাধ্যমে এটি চালু করা হয়। এজেন্টের নির্দেশাবলী স্পষ্টভাবে বলে যে বাইরের কার্যকলাপগুলি সুপারিশ করার আগে এই টুলটি ব্যবহার করতে হবে।
  • টেস্ট রান : "আমি লেক তাহোর কাছে হাইকিং করতে চাই, আবহাওয়া কেমন?" এই প্রশ্নটি এজেন্টকে সরাসরি get_live_weather_forecast টুলটি ব্যবহার করতে উৎসাহিত করে কারণ এর নির্দেশাবলী অনুসারে এটি প্রয়োজন।

➡️ অ্যাকশন : get_live_weather_forecast ফাংশনের ডকস্ট্রিং এবং weather_agent এর নির্দেশাবলী পড়ুন। তাদের মধ্যে সরাসরি সম্পর্ক লক্ষ্য করুন।

৫. সেশন ৩: এজেন্ট-অ্যাজ-এ-টুল 🧑‍🍳

রোডম্যাপ৩

বিশেষজ্ঞদের একটি দল তৈরি করতে পারলে কেন একটি একক, একঘেয়ে এজেন্ট তৈরি করবেন? Agent-as-a-Tool প্যাটার্ন জটিল সিস্টেম তৈরির একটি শক্তিশালী উপায় যেখানে একটি প্রাথমিক এজেন্ট, যাকে প্রায়শই অর্কেস্ট্রেটর বা রাউটার বলা হয়, অন্যান্য, আরও মনোযোগী এজেন্টদের কাছে কাজ অর্পণ করে।

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

➡️ নোটবুকে এটি কোথায় পাবেন

👉 এটি ২.২ এর অধীনে কোষগুলির সাথে মিলে যায় The Agent-as-a-Tool: Consulting a Specialist 🧑‍🍳 .🌟

ভ্রমণের তথ্য

এই উদাহরণটি একটি পরিশীলিত, বহু-স্তরযুক্ত এজেন্ট সিস্টেম তৈরি করে:

  • বিশেষজ্ঞরা :
    • food_critic_agent : একটি অত্যন্ত বিশেষজ্ঞ এজেন্ট যে শুধুমাত্র রেস্তোরাঁর পরামর্শ প্রদান করে।
    • db_agent : একটি নকল এজেন্ট যে হোটেলের তথ্যের জন্য একটি ডাটাবেস অনুসন্ধান করার ভান করে।
    • concierge_agent : একটি মাঝারি স্তরের এজেন্ট যে একজন ভদ্র concierge হিসেবে কাজ করে। গুরুত্বপূর্ণ বিষয় হল, এর নিজস্ব হাতিয়ার হিসেবে food_critic_agent রয়েছে।
  • অর্কেস্ট্রেটর ( trip_data_concierge_agent ): এটি হল শীর্ষ-স্তরের এজেন্ট যার সাথে ব্যবহারকারী যোগাযোগ করে। এর নির্দেশাবলী এটিকে "মাস্টার ট্র্যাভেল প্ল্যানার" করে তোলে এবং এটিকে দুটি সরঞ্জাম দেওয়া হয় যা অন্যান্য এজেন্টদের কল করে:
    • call_db_agent : একটি ফাংশন যা db_agent কে কল করে।
    • call_concierge_agent : একটি ফাংশন যা concierge_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() ফাংশনে চালানো হয়।

ইচ্ছাকৃতভাবে ভুল করে অধিবেশন পরিচালনার গুরুত্ব কতটা তা এটি প্রদর্শন করে। প্রতিটি পালায় একটি নতুন অধিবেশন তৈরি করা হয়

  • প্রথম ধাপ : ব্যবহারকারী session_one-এ ট্রিপ শুরু করেন। এজেন্ট সঠিকভাবে উত্তর দেন।
  • দ্বিতীয় পালা : ব্যবহারকারী দ্বিতীয় দিনের পরিকল্পনা করতে বলেন, কিন্তু প্রশ্নটি একেবারে নতুন session_two-তে পাঠানো হয়। যেহেতু এই নতুন সেশনের কোনও ইতিহাস নেই, তাই এজেন্ট বিভ্রান্ত। এর স্মৃতিভ্রংশতা আছে! এটি জানে না কোন ভ্রমণের পরিকল্পনা করা হচ্ছে।

Action : 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) পেতে হয় এবং তারপর সেই সিদ্ধান্তটি একটি if/elif ব্লকে ব্যবহার করে উপযুক্ত বিশেষজ্ঞ এজেন্ট কার্যকর করতে হয়।

৮. সেশন ৬: সিকোয়েন্সিয়াল এজেন্ট ⛓️

রোডম্যাপ৬

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

ADK SequentialAgent এর সাহায্যে এটি পরিচালনা করার একটি পরিষ্কার এবং শক্তিশালী উপায় প্রদান করে। এটি একটি বিশেষ ওয়ার্কফ্লো এজেন্ট যা একটি পূর্বনির্ধারিত ক্রমে সাব-এজেন্টের একটি তালিকা কার্যকর করে।

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

➡️ নোটবুকে এটি কোথায় পাবেন:

👉 এটি পর্ব ২ (দ্য এডিকে ওয়ে) -এ আলোচনা করা হয়েছে: সিকোয়েন্সিয়াল এজেন্টের সাথে মাল্টি-এজেন্ট মেহেম 🧠→⛓️→🤖 । 🌟

সিকোয়েন্সিয়াল এজেন্ট

  • এজেন্ট রিফ্যাক্টরিং: এই বিভাগের প্রথম কোড সেলে, foodie_agent এবং transportation_agent এর মূল পরিবর্তনগুলি লক্ষ্য করুন:
    • foodie_agent এখন একটি output_key="destination" আছে। এটি ADK কে তার চূড়ান্ত উত্তরটি destination নামক একটি ভেরিয়েবলে ভাগ করা অবস্থায় সংরক্ষণ করতে বলে।
    • transportation_agent এর নির্দেশ প্রম্পটে এখন প্লেসহোল্ডার {destination} আছে। ADK স্বয়ংক্রিয়ভাবে শেয়ার্ড স্টেট থেকে মানটি এই প্লেসহোল্ডারে ইনজেক্ট করে।
  • কর্মপ্রবাহ সংজ্ঞায়িত করা : find_and_navigate_agent কে একটি SequentialAgent হিসেবে সংজ্ঞায়িত করা হয়, এর সাব_এজেন্টগুলিকে [ 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 টুলটি কল করে এবং চূড়ান্ত, বৈধ পরিকল্পনাটি ফেরত পাঠানো হয়।

লুপ এজেন্ট

➡️ নোটবুকে এটি কোথায় পাবেন:

👉 এটি লুপএজেন্টের সাথে ইটারেটিভ আইডিয়াস 🧠→🔁→🤖 -এ ব্যাখ্যা করা হয়েছে। 🌟

  • মূল এজেন্ট : কর্মপ্রবাহে একটি planner_agent , critic_agent , এবং refiner_agent ব্যবহার করা হয়।
  • লুপের সংজ্ঞা : refinement_loop কে একটি LoopAgent হিসেবে সংজ্ঞায়িত করা হয় যা critic_agent এবং refiner_agent সাজিয়ে তোলে এবং sets max_iterations=3
  • Exit Condition : যখন critic_agent প্ল্যানটি অনুমোদন করে তখন লুপটি বন্ধ হয়ে যায়, যার ফলে refiner_agent কাস্টম exit_loop টুলটি কল করে।

১০. সেশন ৮: প্যারালাল এজেন্ট ⚡️

রোডম্যাপ৮

দক্ষতাই মূল বিষয়। যদি একজন ব্যবহারকারী একসাথে একাধিক, সম্পর্কহীন তথ্যের জন্য জিজ্ঞাসা করে, তাহলে একের পর এক অনুসন্ধান চালানো ধীর গতির হবে।

ParallelAgent হলো সমাধান। এই ওয়ার্কফ্লো এজেন্ট একই সাথে সাব-এজেন্টের একটি তালিকা কার্যকর করে। সমস্ত সমান্তরাল কাজ সম্পন্ন হয়ে গেলে, তাদের ফলাফল সংগ্রহ করে একটি একক, ব্যাপক প্রতিক্রিয়ায় সংশ্লেষিত করা যেতে পারে।

এই চিত্রটিতে ParallelAgent একটি একক কোয়েরি গ্রহণ করে এবং কাজটিকে তিনটি সমসাময়িক ট্র্যাকে বিভক্ত করে দেখায়। museum_finder , concert_finder , এবং restaurant_finder সবগুলি একই সময়ে চলে। একবার তিনটি কাজ শেষ হয়ে গেলে, তাদের পৃথক ফলাফল (শেয়ার করা অবস্থায় সংরক্ষিত) যুক্ত করা হয় এবং চূড়ান্ত Synthesis Agent-এ পাঠানো হয়, যা তাদের একটি উত্তরে একত্রিত করে।

➡️ নোটবুকে এটি কোথায় পাবেন:

👉 এই কর্মপ্রবাহটি "প্যারালাল পাওয়ার উইথ প্যারালাল এজেন্ট" বিভাগে বিস্তারিতভাবে বর্ণনা করা হয়েছে 🧠→⚡️→🤖🤖🤖 । 🌟

সমান্তরাল এজেন্ট

  • বিশেষজ্ঞ এজেন্ট : তিনজন বিশেষজ্ঞ এজেন্টকে সংজ্ঞায়িত করা হয়েছে, প্রত্যেকের একটি অনন্য আউটপুট_কী (যেমন, museum_result) রয়েছে।
  • সমান্তরাল কর্মপ্রবাহ : সমান্তরাল_গবেষণা_এজেন্টকে একটি সমান্তরাল এজেন্ট হিসেবে সংজ্ঞায়িত করা হয়, যার তিনটি ফাইন্ডার এজেন্ট এর উপ-এজেন্ট হিসেবে তালিকাভুক্ত থাকে।
  • সংশ্লেষণ ধাপ : সমান্তরাল ধাপের পর, একটি চূড়ান্ত সংশ্লেষণ_এজেন্ট একটি সুন্দর সারাংশ বিন্যাস করার জন্য স্থানধারক ( {museum_result} , {concert_result} , ইত্যাদি) ব্যবহার করে ভাগ করা অবস্থা থেকে সমস্ত ফলাফল সংগ্রহ করে।

১১. পরিশিষ্ট: ADK ওয়েব - 🍎 ম্যাক/লিনাক্সের জন্য

রোডম্যাপ৯

এই নির্দেশিকাটি আপনাকে আপনার স্থানীয় মেশিনে ADK ডে ট্রিপ প্ল্যানিং এজেন্ট সেট আপ এবং পরিচালনা করার পদ্ধতি সম্পর্কে নির্দেশনা দেবে।

পূর্বশর্ত

  • পাইথন ৩.৮ বা তার বেশি
    • পাইথন ৩.৯+ : google-adk==1.5.0 ইনস্টল করে (সম্পূর্ণ বৈশিষ্ট্য সহ সর্বশেষ সংস্করণ)
    • পাইথন ৩.৮ : 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

বিকল্প B: ম্যানুয়াল সেটআপ

# 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

🚨 CRITICAL : your_actual_api_key_here আপনার আসল API কী দিয়ে প্রতিস্থাপন করুন!

ধাপ ৪: ভার্চুয়াল পরিবেশ সক্রিয় করুন (যদি ইতিমধ্যে সক্রিয় না থাকে)

source .adk_env/bin/activate

আপনার টার্মিনাল প্রম্পটের শুরুতে (.adk_env) দেখা উচিত।

ধাপ ৫: ADK ওয়েব ইন্টারফেস চালান

adk web

ধাপ ৬: আপনার ব্রাউজার খুলুন

  1. আপনার ব্রাউজারটি খুলুন এবং টার্মিনালে প্রদর্শিত URL এ যান (সাধারণত http://localhost:8000 )
  2. উপরের বাম দিকের ড্রপডাউনে, agent নির্বাচন করুন
  3. আপনার ডে ট্রিপ প্ল্যানিং এজেন্টের সাথে চ্যাট শুরু করুন!

আপনি কথোপকথনটি দেখতে পাবেন যেমন: ADK ওয়েব UI এর উদাহরণ

পরিবেশ নিষ্ক্রিয় করা

প্রকল্পের কাজ শেষ হলে:

deactivate

এই কমান্ডটি ম্যাক/লিনাক্স এবং উইন্ডোজ উভয় ক্ষেত্রেই একইভাবে কাজ করে। আপনি লক্ষ্য করবেন যে (.adk_env) প্রিফিক্সটি আপনার টার্মিনাল প্রম্পট থেকে অদৃশ্য হয়ে গেছে।

ম্যাক সমস্যা সমাধান

  • পাইথন পাওয়া যায়নি : python পরিবর্তে python3 ব্যবহার করুন
  • অনুমতি অস্বীকার করা হয়েছে : স্ক্রিপ্ট চালানোর আগে chmod +x setup_venv.sh চালান

১২. পরিশিষ্ট: ADK ওয়েব - 🪟 উইন্ডোজ ব্যবহারকারীদের জন্য

রোডম্যাপ৯

এই নির্দেশিকাটি আপনাকে আপনার স্থানীয় মেশিনে ADK ডে ট্রিপ প্ল্যানিং এজেন্ট সেট আপ এবং পরিচালনা করার পদ্ধতি সম্পর্কে নির্দেশনা দেবে।

পূর্বশর্ত

  • পাইথন ৩.৮ বা তার বেশি
    • পাইথন ৩.৯+ : google-adk==1.5.0 ইনস্টল করে (সম্পূর্ণ বৈশিষ্ট্য সহ সর্বশেষ সংস্করণ)
    • পাইথন ৩.৮ : 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

বিকল্প B: ম্যানুয়াল সেটআপ

কমান্ড প্রম্পটের জন্য:

# 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

🚨 CRITICAL : your_actual_api_key_here আপনার আসল API কী দিয়ে প্রতিস্থাপন করুন!

ধাপ ৪: ভার্চুয়াল পরিবেশ সক্রিয় করুন (যদি ইতিমধ্যে সক্রিয় না থাকে)

কমান্ড প্রম্পট:

.adk_env\Scripts\activate

পাওয়ারশেল:

.adk_env\Scripts\Activate.ps1

আপনার প্রম্পটের শুরুতে (.adk_env) দেখা উচিত।

ধাপ ৫: ADK ওয়েব ইন্টারফেস চালান

adk web

ধাপ ৬: আপনার ব্রাউজার খুলুন

  1. আপনার ব্রাউজারটি খুলুন এবং টার্মিনালে প্রদর্শিত URL এ যান (সাধারণত http://localhost:8000 )
  2. উপরের বাম দিকের ড্রপডাউনে, agent নির্বাচন করুন
  3. আপনার ডে ট্রিপ প্ল্যানিং এজেন্টের সাথে চ্যাট শুরু করুন!

উইন্ডোজ সমস্যা সমাধান

  • পাওয়ারশেল এক্সিকিউশন পলিসি ত্রুটি : Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser চালান

আপনি কথোপকথনটি দেখতে পাবেন যেমন: ADK ওয়েব UI এর উদাহরণ

পরিবেশ নিষ্ক্রিয় করা

প্রকল্পের কাজ শেষ হলে:

deactivate

এই কমান্ডটি ম্যাক/লিনাক্স এবং উইন্ডোজ উভয় ক্ষেত্রেই একইভাবে কাজ করে। আপনি লক্ষ্য করবেন যে (.adk_env) প্রিফিক্সটি আপনার টার্মিনাল প্রম্পট থেকে অদৃশ্য হয়ে গেছে।