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

1. আপনি কি শিখবেন

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

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

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

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

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

চলুন শুরু করা যাক! 🚀

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

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

আমাদের AI এজেন্টদের শক্তি দিতে, আমাদের দুটি জিনিসের প্রয়োজন: একটি Google ক্লাউড প্রজেক্ট ফাউন্ডেশন প্রদান করার জন্য এবং একটি Gemini API কী Google-এর শক্তিশালী মডেলগুলি অ্যাক্সেস করার জন্য৷

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

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

ধাপ 2: একটি নতুন GCP প্রকল্প তৈরি করুন

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

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

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

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

আপনি যদি এই পৃষ্ঠাটি দেখেন, manage billing account চেক করুন, Google ক্লাউড ট্রায়াল ওয়ান চয়ন করুন এবং এটির সাথে লিঙ্ক করুন৷

ধাপ 3: আপনার Gemini API কী তৈরি করুন

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

  • Google AI স্টুডিওতে নেভিগেট করুন: https://aistudio.google.com/
  • আপনার জিমেইল অ্যাকাউন্ট দিয়ে সাইন ইন করুন।
  • "এপিআই কী পান" বোতামটি ক্লিক করুন, সাধারণত বাম-হাতের নেভিগেশন ফলকে বা উপরের-ডান কোণায় পাওয়া যায়।
  • "API কী" ডায়ালগে, "নতুন প্রকল্পে API কী তৈরি করুন" এ ক্লিক করুন। নতুন প্রকল্পে API কী তৈরি করুন
  • আপনার তৈরি করা নতুন প্রকল্পটি বেছে নিন যাতে বিলিং অ্যাকাউন্ট সেট আপ আছে। নতুন প্রকল্প নির্বাচন করুন
  • আপনার জন্য একটি নতুন API কী তৈরি করা হবে। এই কী অবিলম্বে অনুলিপি করুন এবং এটিকে অস্থায়ীভাবে নিরাপদ কোথাও সংরক্ষণ করুন (যেমন একটি পাসওয়ার্ড ম্যানেজার বা একটি সুরক্ষিত নোট)। এই মানটি আপনি পরবর্তী ধাপে ব্যবহার করবেন।

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

রোডম্যাপ1

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

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

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

👉 এটি অংশ 1-এর অধীনে থাকা কোষগুলির সাথে মিলে যায়: আপনার প্রথম এজেন্ট - দ্য ডে ট্রিপ জিনি 🧞।🌟

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

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

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

4. সেশন 2: কাস্টম টুল 🛠️

রোডম্যাপ2

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

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

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

👉 এটি 2.1 এর অধীনে থাকা ঘরগুলির সাথে মিলে যায় সাধারণ ফাংশন টুল: একটি রিয়েল-টাইম ওয়েদার API কল করা । 🌟

adk টুলস

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

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

5. সেশন 3: এজেন্ট-এ-এ-টুল 🧑‍🍳

রোডম্যাপ3

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

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

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

👉 এটি 2.2 এর নিচের কোষের সাথে মিলে যায় The 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 কল করে।
  • ফ্লো : run_trip_data_concierge() এ চালানো পরীক্ষাটি সম্পূর্ণ প্রতিনিধি চেইন প্রদর্শন করে।
    • একজন ব্যবহারকারী অর্কেস্ট্রেটরকে একটি হোটেল এবং কাছাকাছি একটি রেস্টুরেন্টের জন্য জিজ্ঞাসা করেন৷
    • অর্কেস্ট্রেটরের নির্দেশাবলী হোটেল ডেটা পেতে প্রথমে call_db_agent টুল ব্যবহার করতে বলে।
    • অর্কেস্ট্রেটর তারপর একটি সুপারিশ পেতে call_concierge_agent টুল ব্যবহার করে।
    • concierge_agent , অনুরোধ পাওয়ার পরে, একটি রেস্টুরেন্টের ধারণা পেতে তার নিজস্ব টুল, food_critic_agent ব্যবহার করে।

খাদ্য সমালোচকের প্রতিক্রিয়া প্রহরীর কাছে ফেরত পাঠানো হয়, যিনি বিনয়ের সাথে এটিকে ফরম্যাট করেন এবং অর্কেস্ট্রেটরের কাছে ফেরত পাঠান, যিনি অবশেষে এটি ব্যবহারকারীর কাছে উপস্থাপন করেন।

➡️ অ্যাকশন : run_trip_data_concierge() এর অধীনে চালানো পরীক্ষায় এক্সিকিউশন ফ্লো ট্রেস করুন। পর্যবেক্ষণ করুন কিভাবে TOOL CALLED প্রিন্টআউটগুলি অর্কেস্ট্রেটর থেকে বিশেষজ্ঞদের কাছে প্রতিনিধিত্বের চেইন দেখায়৷ এটি কমান্ডের একটি অনুক্রমিক চেইন।

6. সেশন 4: এজেন্ট মেমরি 🧠

রোডম্যাপ4

একজন সত্যিকারের বুদ্ধিমান এজেন্টকে কেবলমাত্র একক প্রশ্নের উত্তর দেওয়ার চেয়ে আরও বেশি কিছু করতে হবে। এটি কথোপকথন মনে রাখতে হবে, প্রসঙ্গ বুঝতে হবে এবং প্রতিক্রিয়ার সাথে খাপ খাইয়ে নিতে হবে। এটি সঠিক সেশন পরিচালনার মাধ্যমে অর্জন করা হয়। একটি "লুপ এজেন্ট" কে একটি অবিচ্ছিন্ন কথোপকথনমূলক লুপে নিযুক্ত একটি এজেন্ট হিসাবে চিন্তা করুন, এটির স্মৃতি দ্বারা চালিত৷

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

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

👉 এটি অংশ 3-এর অধীনে থাকা কোষগুলির সাথে মিলে যায়: মেমরি সহ এজেন্ট - অভিযোজিত পরিকল্পনাকারী 🗺️ । 🌟

এজেন্ট মেমরি

  • এজেন্ট সংজ্ঞা : create_multi_day_trip_agent() ফাংশন একটি এজেন্টকে সংজ্ঞায়িত করে যা ক্রমান্বয়ে ভ্রমণের পরিকল্পনা করার জন্য ডিজাইন করা হয়েছে। এর নির্দেশাবলী প্রসঙ্গটি মনে রাখা, প্রতিক্রিয়া পরিচালনা করা এবং একবারে একদিন পরিকল্পনা করার উপর জোর দেয়।

দৃশ্যকল্প 3a: এজেন্ট উইথ মেমরি (✅)

এই পরীক্ষাটি run_adaptive_memory_demonstration() ফাংশনে চালানো হয়।

  • একটি একক trip_session তৈরি করা হয় এবং পরপর তিনটি পালা করার জন্য পুনরায় ব্যবহার করা হয়।
  • পালা 1 : ব্যবহারকারী একটি 2 দিনের ট্রিপ প্ল্যান শুরু করে৷
  • টার্ন 2 : ব্যবহারকারী প্রতিক্রিয়া দেয় ("আমি দুর্গের বিশাল ভক্ত নই")। কারণ এজেন্টের কাছে টার্ন 1 এর মেমরি রয়েছে, এটি পরিকল্পনার কোন অংশটি পরিবর্তন করতে হবে তা বোঝে এবং একটি বিকল্প প্রদান করে।
  • টার্ন 3 : ব্যবহারকারী পরিবর্তনটি নিশ্চিত করে এবং পরবর্তী পদক্ষেপের জন্য জিজ্ঞাসা করে। এজেন্ট সবকিছু মনে রাখে এবং 2 দিন পরিকল্পনা করতে এগিয়ে যায়।

দৃশ্যকল্প 3b: মেমরি ছাড়া এজেন্ট (❌)

এই পরীক্ষাটি run_memory_failure_demonstration() ফাংশনে চালানো হয়।

এটি উদ্দেশ্যমূলকভাবে ভুল করে সেশন পরিচালনার সমালোচনামূলক গুরুত্ব প্রদর্শন করে। প্রতিটি বাঁকের জন্য একটি নতুন অধিবেশন তৈরি করা হয়

  • টার্ন 1 : ব্যবহারকারী সেশন_ওয়ানে ট্রিপ শুরু করেন। এজেন্ট সঠিকভাবে উত্তর দেয়।
  • টার্ন 2 : ব্যবহারকারী 2 দিন পরিকল্পনা করতে বলে, কিন্তু ক্যোয়ারীটি একেবারে নতুন সেশন_টুতে পাঠানো হয়। কারণ এই নতুন সেশনের কোনো ইতিহাস নেই, এজেন্ট বিভ্রান্ত। এটা স্মৃতিভ্রষ্টতা আছে! কি সফরের পরিকল্পনা করা হচ্ছে তা জানা নেই।

কর্ম : run_adaptive_memory_demonstration() এবং run_memory_failure_demonstration() এ এজেন্টের প্রতিক্রিয়া তুলনা করুন। এটি নোটবুকের সবচেয়ে গুরুত্বপূর্ণ ধারণা: একটি অবিচ্ছিন্ন কথোপকথনের জন্য একটি অবিচ্ছিন্ন সেশন প্রয়োজন।

7. সেশন 5: রাউটার এজেন্ট 🚏

রোডম্যাপ5

একটি একক এজেন্ট শুধুমাত্র এত কিছু করতে পারেন. সত্যিই জটিল ব্যবহারকারীর অনুরোধগুলি মোকাবেলা করার জন্য, আমাদের বিশেষ এজেন্টদের একটি দল প্রয়োজন৷ কিন্তু প্রদত্ত প্রশ্নের জন্য কোন এজেন্ট ব্যবহার করতে হবে তা আমরা কীভাবে জানি? সেখানেই রাউটার এজেন্ট আসে।

রাউটার এজেন্ট একটি "মাস্টার" এজেন্ট বা প্রেরক হিসাবে কাজ করে। এর একমাত্র উদ্দেশ্য হল একটি আগত ব্যবহারকারীর প্রশ্ন বিশ্লেষণ করা এবং সিদ্ধান্ত নেওয়া যে কোন বিশেষজ্ঞ এজেন্ট (বা এজেন্টদের কর্মপ্রবাহ) কাজের জন্য সবচেয়ে উপযুক্ত। এটি নিজেই প্রশ্নের উত্তর দেয় না; এটি কেবল সঠিক ডাউনস্ট্রিম এজেন্টের কাছে এটিকে রুট করে।

উদাহরণস্বরূপ, "সর্বোত্তম সুশি" সম্পর্কে একটি প্রশ্ন একজন ফুডী_এজেন্টের কাছে যাওয়া উচিত, যখন "এই সপ্তাহান্তে কনসার্ট" সম্পর্কে একটি প্রশ্ন weekend_guide_agent দ্বারা পরিচালনা করা উচিত।

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

👉 এই ধারণাটি পুরো নোটবুকের কেন্দ্রবিন্দু, তবে এটি প্রথম অংশ 1-এ প্রবর্তিত হয়েছে: মাল্টি-এজেন্ট মেহেম - অনুক্রমিক কর্মপ্রবাহ 🧠→🤖→🤖 🌟

রাউটার এজেন্ট

  • এজেন্টের সংজ্ঞা : কোড সেল একাধিক বিশেষজ্ঞ এজেন্টকে (day_trip_agent, foodie_agent, transportation_agent) এবং সবচেয়ে গুরুত্বপূর্ণভাবে রাউটার_এজেন্টকে সংজ্ঞায়িত করে। রাউটার_এজেন্টের নির্দেশ প্রম্পটের প্রতি গভীর মনোযোগ দিন, এটি স্পষ্টভাবে বলা হয়েছে যে শুধুমাত্র কাজের জন্য সেরা এজেন্টের নাম ফেরত দিতে।
  • এক্সিকিউশন লজিক : run_sequential_app ফাংশনটি দেখায় কিভাবে প্রথমে রাউটার_এজেন্টকে একটি সিদ্ধান্ত নেওয়ার জন্য কল করতে হয় (chosen_route) এবং তারপর উপযুক্ত বিশেষজ্ঞ এজেন্ট চালানোর জন্য একটি if/elif ব্লকে সেই সিদ্ধান্তটি ব্যবহার করতে হয়।

8. অধিবেশন 6: অনুক্রমিক এজেন্ট ⛓️

রোডম্যাপ6

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

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

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

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

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

অনুক্রমিক এজেন্ট

  • এজেন্ট রিফ্যাক্টরিং: এই বিভাগের প্রথম কোড সেলে, 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 অভ্যন্তরীণ অনুক্রমিক পদক্ষেপগুলি স্বয়ংক্রিয়ভাবে পরিচালনা করে।

9. অধিবেশন 7: লুপএজেন্ট 🔁

রোডম্যাপ7

সমস্ত সমস্যার একটি সহজবোধ্য, এক-শট সমাধান নেই। কখনও কখনও, আমাদের একটি সমাধান প্রস্তাব করতে হবে, এটি সমালোচনা করতে হবে এবং এটি একটি নির্দিষ্ট সীমাবদ্ধতা পূরণ না হওয়া পর্যন্ত এটি পরিমার্জন করতে হবে।

এর জন্য, ADK LoopAgent অফার করে। একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত এই ওয়ার্কফ্লো এজেন্ট বারবার সাব-এজেন্টের একটি ক্রম নির্বাহ করে। এটি "পরিপূর্ণতাবাদী" এজেন্ট তৈরির জন্য উপযুক্ত যা তাদের নিজস্ব কাজের পরিকল্পনা, সমালোচনা এবং উন্নতি করতে পারে।

চিত্রটি দেখায় যে Planner Agent প্রথমে একটি পরিকল্পনা তৈরি করে। তারপর, আমরা LoopAgent প্রবেশ করি। Critic Agent পরিকল্পনা চেক. যদি এটি ত্রুটিপূর্ণ হয়, Refiner Agent একটি নতুন সংস্করণ তৈরি করে, এবং লুপ পুনরাবৃত্তি হয়। যদি পরিকল্পনাটি ভাল হয়, Refiner Agent exit_loop টুলকে কল করে এবং চূড়ান্ত, যাচাইকৃত প্ল্যানটি ফেরত দেওয়া হয়।

লুপ এজেন্ট

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

👉 এটি লুপএজেন্ট 🧠→🔁→🤖 সহ পুনরাবৃত্তিমূলক ধারণাগুলিতে ব্যাখ্যা করা হয়েছে। 🌟

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

10. সেশন 8: ParallelAgent ⚡️

রোডম্যাপ8

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

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

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

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

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

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

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

11. পরিশিষ্ট: ADK ওয়েব - 🍎 Mac/Linux-এর জন্য

রোডম্যাপ9

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

পূর্বশর্ত

  • পাইথন 3.8 বা উচ্চতর
    • Python 3.9+ : google-adk==1.5.0 ইনস্টল করে (সম্পূর্ণ বৈশিষ্ট্য সহ সর্বশেষ সংস্করণ)
    • Python 3.8 : google-adk==0.3.0 ইনস্টল করে (সামঞ্জস্যপূর্ণ সংস্করণ)
  • Google AI Studio API কী
  • ইন্টারনেট সংযোগ

ধাপ 1: সংগ্রহস্থল ক্লোন করুন

টার্মিনাল খুলুন এবং চালান:

git clone https://github.com/cuppibla/ADK_Basic.git
cd ADK_Basic

ধাপ 2: ভার্চুয়াল এনভায়রনমেন্ট সেট আপ করুন এবং নির্ভরতা ইনস্টল করুন

বিকল্প 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

ধাপ 3: 🔥 গুরুত্বপূর্ণ - এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন

⚠️ এই ধাপটি এড়িয়ে যাবেন না! 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

🚨 সমালোচনামূলক : আপনার প্রকৃত API কী দিয়ে your_actual_api_key_here প্রতিস্থাপন করুন!

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

source .adk_env/bin/activate

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

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

adk web

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

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

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

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

আপনি যখন প্রকল্পের সাথে কাজ শেষ করেন:

deactivate

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

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

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

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

রোডম্যাপ9

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

পূর্বশর্ত

  • পাইথন 3.8 বা উচ্চতর
    • Python 3.9+ : google-adk==1.5.0 ইনস্টল করে (সম্পূর্ণ বৈশিষ্ট্য সহ সর্বশেষ সংস্করণ)
    • Python 3.8 : google-adk==0.3.0 ইনস্টল করে (সামঞ্জস্যপূর্ণ সংস্করণ)
  • Google AI Studio API কী
  • ইন্টারনেট সংযোগ

ধাপ 1: সংগ্রহস্থল ক্লোন করুন

কমান্ড প্রম্পট বা পাওয়ারশেল খুলুন এবং চালান:

git clone https://github.com/cuppibla/ADK_Basic.git
cd ADK_Basic

ধাপ 2: ভার্চুয়াল এনভায়রনমেন্ট সেট আপ করুন এবং নির্ভরতা ইনস্টল করুন

বিকল্প 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

ধাপ 3: 🔥 গুরুত্বপূর্ণ - এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন

⚠️ এই ধাপটি এড়িয়ে যাবেন না! 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

🚨 সমালোচনামূলক : আপনার প্রকৃত API কী দিয়ে your_actual_api_key_here প্রতিস্থাপন করুন!

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

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

.adk_env\Scripts\activate

পাওয়ারশেল:

.adk_env\Scripts\Activate.ps1

আপনার প্রম্পটের শুরুতে (.adk_env) দেখতে হবে।

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

adk web

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

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

উইন্ডোজ ট্রাবলশুটিং

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

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

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

আপনি যখন প্রকল্পের সাথে কাজ শেষ করেন:

deactivate

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