ADK क्रैश कोर्स - शुरुआती से लेकर विशेषज्ञ तक

1. आपको क्या-क्या सीखने को मिलेगा

ADK मास्टर क्लास में आपका स्वागत है - मल्टी-एजेंट सिस्टम के बारे में जानकारी

अब आप एआई एजेंट की दिलचस्प दुनिया में कदम रखने वाले हैं. सिर्फ़ सवालों के जवाब देने वाले सामान्य चैटबॉट को भूल जाएं. हम Agent Development Kit (ADK) पर काफ़ी काम कर रहे हैं, ताकि हम ऐसे बेहतर और अपने-आप काम करने वाले सिस्टम बना सकें जो तर्क दे सकें, प्लान बना सकें, और मुश्किल कामों को पूरा करने के लिए टूल का इस्तेमाल कर सकें.

कोर्स का रोडमैप

इस ट्यूटोरियल को पूरा करने के बाद, आपको ये काम करने में मदद मिलेगी:

  • अपना पहला एआई एजेंट बनाएं: शून्य से एक पूरी तरह से काम करने वाले एजेंट तक जाएं जो उपयोगकर्ता की ज़रूरतों को समझ सके, Google Search जैसे टूल का इस्तेमाल कर सके, और विस्तृत, मददगार जवाब जनरेट कर सके.
  • कस्टम टूल का बेहतर इस्तेमाल करें: एजेंटों को अपने कस्टम फ़ंक्शन और एपीआई से कनेक्ट करके, उनकी पूरी क्षमता का इस्तेमाल करें. आपको अपने एजेंट को रीयल-टाइम डेटा फ़ेच करने के बारे में सिखाना होगा. जैसे, मौसम की लाइव जानकारी.
  • मल्टी-एजेंट सिस्टम बनाना: "एजेंट-एज़-ए-टूल" पैटर्न के बारे में जानें. यह एक क्रांतिकारी कॉन्सेप्ट है, जिसमें एजेंट, टास्क को अन्य विशेषज्ञ एजेंट को सौंपते हैं. इससे एआई विशेषज्ञों की एक टीम बनती है, जो एक साथ काम करती है.
  • मुश्किल वर्कफ़्लो को व्यवस्थित करें: सिर्फ़ काम सौंपने के बजाय, राउटर, सीक्वेंशियल चेन, लूप, और पैरलल एक्ज़ीक्यूशन जैसे ऐडवांस पैटर्न का इस्तेमाल करें. इससे ऐसे मज़बूत, असरदार, और स्मार्ट ऐप्लिकेशन बनाए जा सकते हैं जो लगभग सभी अनुरोधों को पूरा कर सकते हैं.
  • अपने एजेंट को मेमोरी दें: बातचीत की मेमोरी की अहम भूमिका को समझें. इससे आपके एजेंट, फ़ॉलो-अप सवालों के जवाब दे पाते हैं, सुझाव/राय/शिकायत से सीख पाते हैं, और कई चरणों वाले कामों को आसानी से मैनेज कर पाते हैं.

आइए, शुरू करें! 🚀

2. सेटअप: अपना एपीआई पासकोड पाना

Google AI Studio API Key Setup

हमारे एआई एजेंट को बेहतर बनाने के लिए, हमें Google AI Studio से Gemini API पासकोड की ज़रूरत होती है. यह सबसे तेज़ तरीका है.

पहला चरण — AI Studio से Gemini API पासकोड पाएं (एक मिनट)

  1. एक नए ब्राउज़र टैब में, https://aistudio.google.com/app/apikey खोलें.
  2. अपने Google खाते से साइन इन करें.
  3. सबसे ऊपर दाईं ओर मौजूद, "एपीआई पासकोड बनाएं" पर क्लिक करें.
  4. प्रोजेक्ट ड्रॉपडाउन के साथ एक डायलॉग बॉक्स खुलता है:
    • अगर आपने पहले से कोई Google प्रोजेक्ट बनाया हुआ है, तो: उसे चुनें और "मौजूदा प्रोजेक्ट में एपीआई पासकोड बनाएं" पर क्लिक करें
    • अगर सूची में नहीं है: "प्रोजेक्ट बनाएं" पर क्लिक करें.

aistudio

  1. दिखने वाले एपीआई पासकोड को कॉपी करें. यह AIza... से शुरू होता है और इसमें ~40 वर्ण होते हैं.

✏️ इसे किसी सुरक्षित जगह पर चिपकाएं — आपको इसकी ज़रूरत Colab नोटबुक और ADK वेब सेटअप (अपेंडिक्स में) के लिए पड़ेगी.

दूसरा चरण — Colab में अपनी एपीआई कुंजी जोड़ना (एक मिनट)

हर नोटबुक में एक सेटअप सेल होती है, जो आपकी एपीआई पासकोड को लोड करती है. आपके पास दो विकल्प हैं. इनमें से अपनी पसंद का विकल्प चुनें:

विकल्प A: Colab के सीक्रेट (सुझाया गया — कुंजी छिपी रहती है)

  1. Colab नोटबुक में, बाईं ओर मौजूद साइडबार में 🔑 कुंजी वाले आइकॉन पर क्लिक करें.
  2. "नया सीक्रेट जोड़ें" पर क्लिक करें.
  3. नाम को GOOGLE_API_KEY पर सेट करें.
  4. पहले चरण में मिला एपीआई पासकोड, वैल्यू फ़ील्ड में चिपकाएं.
  5. "Notebook का ऐक्सेस" स्विच को टॉगल करके चालू करें.

Colab सीक्रेट

सेटअप सेल चलाने पर, यह अपने-आप कुंजी चुन लेगा:

 API key loaded from Colab Secrets.

दूसरा विकल्प: प्रॉम्प्ट मिलने पर चिपकाएं (तेज़ और आसान)

अगर आपने Colab Secrets को स्किप करके सीधे codelab1 और codelab2 को चलाया, तो नोटबुक में आपको पासवर्ड फ़ील्ड दिखेगा:

🔑 Enter your Google AI Studio API key: ••••••••

अपना एपीआई पासकोड चिपकाएं और Enter दबाएं. कुंजी, स्क्रीन पर नहीं दिखेगी.

✅ API key entered manually.

एपीआई कुंजी सेल के चलने के बाद, अगली सेल एनवायरमेंट को कॉन्फ़िगर करती है:

✅ API key configured (starts with 'AIzaSy...')
✅ Using Google AI Studio (not Vertex AI).

चेकपॉइंट: आपको नोटबुक में ऊपर दिए गए दोनों ✅ मैसेज दिखते हैं. आपकी एपीआई कुंजी कॉन्फ़िगर हो गई है. अब एजेंट बनाए जा सकते हैं!

3. सेशन 1: Runner की मदद से पहला एजेंट बनाना

roadmap1

आइए, बुनियादी बातों से शुरू करते हैं. यहां हम अपना पहला आसान एजेंट, day_trip_agent बनाते हैं. इस एजेंट का मकसद, उपयोगकर्ता के अनुरोध के आधार पर पूरे दिन की यात्रा का प्लान बनाना है. इसमें बजट का ध्यान रखना भी शामिल है. इस उदाहरण में, ADK में किसी भी एजेंट इंटरैक्शन के तीन मुख्य कॉम्पोनेंट के बारे में बताया गया है:

  • एजेंट: यह ऑपरेशन का मुख्य हिस्सा होता है. इसे इसके निर्देशों (इसकी पर्सनैलिटी और मिशन), इस्तेमाल किए जाने वाले एआई मॉडल (जैसे, Gemini), और ऐक्सेस किए जा सकने वाले टूल के हिसाब से तय किया जाता है.
  • सेशन: बातचीत की यादें. यह इंटरैक्शन का इतिहास (उपयोगकर्ता के मैसेज और एजेंट के जवाब) सेव करता है, ताकि बातचीत जारी रखी जा सके.
  • रनर: यह वह इंजन होता है जो टास्क को एक्ज़ीक्यूट करता है. यह एजेंट और सेशन की जानकारी लेता है. साथ ही, उपयोगकर्ता की नई क्वेरी को प्रोसेस करता है और जवाब जनरेट करने के लिए ज़रूरी चरणों को व्यवस्थित करता है.

➡️ नोटबुक में यह सुविधा कहां मिलेगी

👉 यह पहला हिस्सा: आपका पहला एजेंट - डे ट्रिप जिनी 🧞 के नीचे मौजूद सेल से मेल खाता है.🌟

एजेंट रोबोट पढ़ रहा है

  • एजेंट की परिभाषा: create_day_trip_agent() फ़ंक्शन ढूंढें. यहां एजेंट को तय किया जाता है. निर्देशों वाली स्ट्रिंग पर ध्यान दें. यह वह प्रॉम्प्ट है जो एजेंट को बताता है कि उसे कैसे काम करना है. हम इसे पहला टूल भी देते हैं: Google Search.
  • हेल्पर फ़ंक्शन: यहां run_agent_query() हेल्पर फ़ंक्शन के बारे में बताया गया है. हम इस यूटिलिटी का इस्तेमाल पूरी नोटबुक में करेंगे, ताकि क्वेरी को आसानी से चलाया जा सके.
  • टेस्ट रन: run_day_trip_genie() फ़ंक्शन, उपयोगकर्ता के "किफ़ायती" और "आरामदायक" एक दिन की यात्रा के बारे में पूछने की प्रोसेस को सिम्युलेट करता है. यह एजेंट, निर्देशों और Google Search टूल का इस्तेमाल करके, घूमने के लिए सही जगहें ढूंढता है. साथ ही, मार्कडाउन फ़ॉर्मैट में यात्रा का प्लान बनाता है.

➡️ कार्रवाई: day_trip_agent के लिए, निर्देश वाले प्रॉम्प्ट की जांच करें. देखें कि टेस्ट क्वेरी में "किफ़ायती" यात्रा के अनुरोध का, एजेंट के "बजट का ध्यान रखें" दिशा-निर्देश से सीधा संबंध कैसे है.

4. दूसरा सेशन: कस्टम टूल 🛠️

roadmap2

Google Search एक बेहतरीन टूल है. हालांकि, एआई एजेंट की असली क्षमता तब सामने आती है, जब उन्हें अपने यूनीक डेटा सोर्स, एपीआई या कस्टम लॉजिक से कनेक्ट किया जाता है. इस सेक्शन में, हम एक सामान्य Python फ़ंक्शन से कस्टम टूल बनाएंगे.

किसी फ़ंक्शन टूल का सबसे अहम हिस्सा, उसका डॉकस्ट्रिंग होता है. ADK, docstring को अपने-आप पार्स करता है. इससे उसे यह समझने में मदद मिलती है कि टूल क्या करता है, यह किन पैरामीटर (Args) को स्वीकार करता है, और यह क्या दिखाता है (Returns). लार्ज लैंग्वेज मॉडल (एलएलएम) इस ब्यौरे को पढ़कर यह तय करता है कि टूल का इस्तेमाल कब और कैसे करना है.

➡️ नोटबुक में यह सुविधा कहां मिलेगी

👉 यह 2.1 Simple FunctionTool: Calling a Real-Time Weather API में मौजूद सेल से मेल खाता है. 🌟

adk tools

  • टूल की परिभाषा: get_live_weather_forecast(location: str) फ़ंक्शन, हमारे कस्टम टूल का मुख्य हिस्सा है. यह शहर का नाम लेता है, सार्वजनिक तौर पर उपलब्ध National Weather Service API को कॉल करता है, और तापमान और पूर्वानुमान के साथ एक डिक्शनरी दिखाता है.
  • एजेंट की परिभाषा: weather_agent को बनाया गया है और इसे हमारे नए टूल के साथ जोड़ा गया है. इसके लिए, एजेंट को शुरू करते समय tools=[get_live_weather_forecast] को पास किया गया है. एजेंट को साफ़ तौर पर निर्देश दिए गए हैं कि वह बाहर की गतिविधियों के सुझाव देने से पहले, इस टूल का इस्तेमाल करे.
  • टेस्ट रन: "मुझे लेक टाहो के पास हाइकिंग के लिए जाना है, वहां का मौसम कैसा है?" क्वेरी से, एजेंट सीधे तौर पर get_live_weather_forecast टूल का इस्तेमाल करता है, क्योंकि इसके निर्देशों में ऐसा करना ज़रूरी है.

➡️ कार्रवाई: get_live_weather_forecast फ़ंक्शन के लिए डॉकस्ट्रिंग और weather_agent के लिए निर्देश पढ़ें. इनके बीच के सीधे संबंध पर ध्यान दें.

5. तीसरा सेशन: टूल के तौर पर एजेंट 🧑🍳

roadmap3

जब विशेषज्ञों की एक टीम बनाई जा सकती है, तो एक ही एजेंट क्यों बनाया जाए? Agent-as-a-Tool पैटर्न, जटिल सिस्टम बनाने का एक असरदार तरीका है. इसमें मुख्य एजेंट, जिसे अक्सर ऑर्केस्ट्रेटर या राउटर कहा जाता है, अन्य एजेंट को टास्क सौंपता है.

इस पैटर्न की मदद से, मॉड्यूलर और बार-बार इस्तेमाल किए जा सकने वाले एजेंट बनाए जा सकते हैं. उदाहरण के लिए, आपके पास एक ऐसा एजेंट हो सकता है जो डेटाबेस क्वेरी में विशेषज्ञ हो, दूसरा क्रिएटिव राइटिंग में विशेषज्ञ हो, और तीसरा एक मददगार कंसीयर्ज के तौर पर काम करता हो. ऑर्केस्ट्रेटर का काम, उपयोगकर्ता के अनुरोध को समझना और उसे सही विशेषज्ञ तक पहुंचाना है.

➡️ नोटबुक में यह सुविधा कहां मिलेगी

👉 यह 2.2 टूल के तौर पर एजेंट: किसी विशेषज्ञ से सलाह लेना 🧑🍳 के तहत मौजूद सेल से मेल खाता है.🌟

यात्रा का डेटा

इस उदाहरण में, कई लेयर वाला एक बेहतर एजेंट सिस्टम बनाया गया है:

  • विशेषज्ञ:
    • 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. चौथा सेशन: एजेंट की मेमोरी 🧠

roadmap4

एक बेहतरीन एजेंट को सिर्फ़ एक बार की क्वेरी का जवाब देने के अलावा और भी बहुत कुछ करना होता है. इसे बातचीत को याद रखना होता है, कॉन्टेक्स्ट को समझना होता है, और सुझाव/राय या शिकायत के हिसाब से काम करना होता है. ऐसा सही तरीके से सेशन मैनेज करके किया जाता है. "लूप एजेंट" को ऐसे एजेंट के तौर पर समझें जो लगातार बातचीत में शामिल रहता है. यह अपनी मेमोरी की मदद से ऐसा करता है.

जब एक ही सेशन ऑब्जेक्ट का इस्तेमाल, क्रम से की गई कई क्वेरी के लिए किया जाता है, तो एजेंट बातचीत के पूरे इतिहास को "देख" सकता है. इससे Gemini, फ़ॉलो-अप सवालों के जवाब दे पाता है, फ़ीडबैक के आधार पर अपने जवाबों को बेहतर बना पाता है, और कई चरणों वाले टास्क को पूरा करने के लिए प्लान बना पाता है.

➡️ नोटबुक में यह सुविधा कहां मिलेगी

👉 यह तीसरा चरण: याददाश्त वाला एजेंट - अडैप्टिव प्लानर 🗺️ के तहत मौजूद सेल से मेल खाता है. 🌟

एजेंट की मेमोरी

  • एजेंट की परिभाषा: create_multi_day_trip_agent() फ़ंक्शन, यात्रा की योजना बनाने के लिए डिज़ाइन किए गए एजेंट को तय करता है. इसमें दिए गए निर्देशों में, कॉन्टेक्स्ट को याद रखने, सुझाव/राय देने या शिकायत करने से जुड़ी जानकारी को मैनेज करने, और एक दिन के हिसाब से प्लान करने पर ज़ोर दिया गया है.

स्थिति 3a: मेमोरी वाला एजेंट (✅)

यह टेस्ट, run_adaptive_memory_demonstration() फ़ंक्शन में चलाया जाता है.

  • एक ही trip_session को तीन बार लगातार इस्तेमाल किया जाता है.
  • पहला चरण: उपयोगकर्ता, दो दिन की यात्रा की योजना बनाता है.
  • दूसरा जवाब: उपयोगकर्ता ने सुझाव/राय दी या शिकायत की ("मुझे किले बहुत पसंद नहीं हैं"). एजेंट के पास पहले टर्न की जानकारी है. इसलिए, वह समझता है कि प्लान के किस हिस्से में बदलाव करना है और इसके लिए दूसरा विकल्प देता है.
  • तीसरा चरण: उपयोगकर्ता बदलाव की पुष्टि करता है और अगले चरण के बारे में पूछता है. एजेंट को सारी जानकारी याद रहती है और वह दूसरे दिन की योजना बनाता है.

तीसरा विकल्प: मेमोरी के बिना एजेंट (❌)

यह टेस्ट, run_memory_failure_demonstration() फ़ंक्शन में चलाया जाता है.

इस कुकी का इस्तेमाल, सेशन मैनेजमेंट की अहमियत को दिखाने के लिए किया जाता है. इसके लिए, जान-बूझकर गड़बड़ी की जाती है. हर बातचीत के लिए एक नया सेशन बनाया जाता है.

  • पहला चरण: उपयोगकर्ता, session_one में यात्रा शुरू करता है. एजेंट सही जवाब देता है.
  • दूसरा टर्न: उपयोगकर्ता, दूसरे दिन की यात्रा का प्लान बनाने के लिए कहता है. हालांकि, क्वेरी को नए सेशन_टू में भेजा जाता है. इस नए सेशन की कोई हिस्ट्री नहीं है. इसलिए, एजेंट को समझ नहीं आ रहा है कि क्या करना है. इसे कुछ याद नहीं रहता! इसे यह नहीं पता कि किस यात्रा की योजना बनाई जा रही है.

कार्रवाई: run_adaptive_memory_demonstration() और run_memory_failure_demonstration() में एजेंट के जवाबों की तुलना करें. नोटबुक में यह सबसे ज़रूरी कॉन्सेप्ट है: बातचीत जारी रखने के लिए, सेशन जारी रहना चाहिए.

7. पांचवां सेशन: राउटर एजेंट 🚏

roadmap5

एक एजेंट, सीमित संख्या में ही अनुरोधों को पूरा कर सकता है. उपयोगकर्ता के मुश्किल अनुरोधों को पूरा करने के लिए, हमें विशेषज्ञ एजेंट की टीम की ज़रूरत होती है. हालांकि, हमें यह कैसे पता चलेगा कि किसी क्वेरी के लिए किस एजेंट का इस्तेमाल करना है? ऐसे में, राऊटर एजेंट काम आता है.

राउटर एजेंट, "मास्टर" एजेंट या डिस्पैचर के तौर पर काम करता है. इसका मुख्य काम, उपयोगकर्ता की क्वेरी का विश्लेषण करना और यह तय करना है कि इस काम के लिए कौनसा स्पेशलिस्ट एजेंट (या एजेंटों का वर्कफ़्लो) सबसे सही है. यह क्वेरी का जवाब खुद नहीं देता है. यह सिर्फ़ क्वेरी को सही डाउनस्ट्रीम एजेंट को भेजता है.

उदाहरण के लिए, "सबसे अच्छी सुशी" के बारे में क्वेरी, foodie_agent को भेजी जानी चाहिए. वहीं, "इस हफ़्ते के कॉन्सर्ट" के बारे में सवाल, weekend_guide_agent को भेजा जाना चाहिए.

➡️ नोटबुक में यह कहां मिलेगा:

👉 यह कॉन्सेप्ट, पूरी नोटबुक के लिए ज़रूरी है. हालांकि, इसे पहली बार Part 1: Multi-Agent Mayhem - Sequential Workflows 🧠→🤖→🤖 🌟 में पेश किया गया है

राऊटर एजेंट

  • एजेंट की परिभाषाएं: कोड सेल में, कई स्पेशलिस्ट एजेंट (day_trip_agent, foodie_agent, transportation_agent) और सबसे अहम, router_agent को परिभाषित किया गया है. router_agent के लिए दिए गए निर्देश वाले प्रॉम्प्ट पर ध्यान दें. इसमें साफ़ तौर पर बताया गया है कि सिर्फ़ उस एजेंट का नाम दिखाएं जो काम के लिए सबसे सही है.
  • एक्ज़ीक्यूशन लॉजिक: run_sequential_app फ़ंक्शन दिखाता है कि सबसे पहले router_agent को कॉल करके फ़ैसला (chosen_route) कैसे लिया जाता है. इसके बाद, उस फ़ैसले का इस्तेमाल if/elif ब्लॉक में करके, सही स्पेशलिस्ट एजेंट को कैसे एक्ज़ीक्यूट किया जाता है.

8. छठा सेशन: SequentialAgent ⛓️

roadmap6

कुछ टास्क को पूरा करने के लिए, कई चरणों को एक खास क्रम में पूरा करना होता है. उदाहरण के लिए, "मुझे पालो आल्टो में सबसे अच्छी सुशी खाने की जगह के बारे में बताओ. इसके बाद, वहां पहुंचने का रास्ता बताओ." यह दो चरणों वाली प्रोसेस है: पहला, रेस्टोरेंट ढूंढना और दूसरा, वहां जाने का रास्ता ढूंढना.

ADK, SequentialAgent की मदद से इसे मैनेज करने का आसान और असरदार तरीका उपलब्ध कराता है. यह एक खास वर्कफ़्लो एजेंट है, जो पहले से तय किए गए क्रम में सब-एजेंट की सूची को लागू करता है.

असल बात तो शेयर की गई स्थिति में छिपी है. सीक्वेंस में मौजूद किसी एजेंट के आउटपुट को, शेयर की गई स्टेट डिक्शनरी में अपने-आप सेव किया जा सकता है. इसके बाद, इसका इस्तेमाल अगले एजेंट के इनपुट के तौर पर किया जा सकता है. इससे, चरणों के बीच जानकारी भेजने के लिए, जटिल मैन्युअल कोड की ज़रूरत नहीं पड़ती.

➡️ नोटबुक में यह कहां मिलेगा:

👉 इसके बारे में Part 2 (The ADK Way): Multi-Agent Mayhem with SequentialAgent 🧠→⛓️→🤖 में बताया गया है. 🌟

सीक्वेंशियल एजेंट

  • एजेंट को फिर से व्यवस्थित करना: इस सेक्शन की पहली कोड सेल में, foodie_agent और transportation_agent में हुए मुख्य बदलावों पर ध्यान दें:
    • foodie_agent के पास अब output_key="destination" है. इससे ADK को यह निर्देश मिलता है कि वह अपने फ़ाइनल जवाब को शेयर किए गए स्टेट में destination नाम के वैरिएबल में सेव करे.
    • transportation_agent के निर्देश वाले प्रॉम्प्ट में अब प्लेसहोल्डर {destination} मौजूद है. ADK, शेयर की गई स्थिति से वैल्यू को इस प्लेसहोल्डर में अपने-आप डाल देता है.
  • वर्कफ़्लो तय करना: find_and_navigate_agent को SequentialAgent के तौर पर तय किया गया है. इसके sub_agents को [foodie_agent, transportation_agent] पर सेट किया गया है, ताकि यह पक्का किया जा सके कि वे इसी क्रम में चलें.
  • आसान तरीके से लागू करना: इस सेक्शन में run_sequential_app फ़ंक्शन देखें. कॉम्प्लेक्स if/elif लॉजिक हटा दिया गया है! find_and_navigate_agent को अब एक ही यूनिट माना जाता है, जिसे कॉल किया जा सकता है. साथ ही, ADK इंटरनल सीक्वेंशियल चरणों को अपने-आप हैंडल करता है.

9. सातवां सेशन: LoopAgent 🔁

roadmap7

सभी समस्याओं का एक बार में सीधा समाधान नहीं होता. कभी-कभी, हमें किसी समस्या का समाधान सुझाना होता है. इसके बाद, हमें उस समाधान की आलोचना करनी होती है और उसे तब तक बेहतर बनाना होता है, जब तक वह किसी खास शर्त को पूरा न कर ले.

इसके लिए, ADK LoopAgent उपलब्ध कराता है. यह वर्कफ़्लो एजेंट, सब-एजेंट के क्रम को तब तक बार-बार लागू करता है, जब तक कोई खास शर्त पूरी नहीं हो जाती. यह "परफ़ेक्शनिस्ट" एजेंट बनाने के लिए सबसे सही है. ये एजेंट, अपने काम की योजना बना सकते हैं, उसकी समीक्षा कर सकते हैं, और उसे बेहतर बना सकते हैं.

इस डायग्राम में, Planner Agent पहले प्लान बनाने की प्रोसेस दिखाई गई है. इसके बाद, हम LoopAgent डालते हैं. Critic Agent प्लान की जांच करता है. अगर जवाब में कोई गड़बड़ी होती है, तो Refiner Agent एक नया वर्शन बनाता है और यह प्रोसेस फिर से शुरू हो जाती है. अगर प्लान सही है, तो Refiner Agent, exit_loop टूल को कॉल करता है. इसके बाद, पुष्टि किया गया फ़ाइनल प्लान वापस कर दिया जाता है.

लूप एजेंट

➡️ नोटबुक में यह कहां मिलेगा:

👉 इसके बारे में LoopAgent के साथ बार-बार आइडिया जनरेट करना 🧠→🔁→🤖 लेख में बताया गया है. 🌟

  • मुख्य एजेंट: वर्कफ़्लो में planner_agent, critic_agent, और refiner_agent का इस्तेमाल किया जाता है.
  • लूप की परिभाषा: refinement_loop को LoopAgent के तौर पर तय किया गया है. यह critic_agent, refiner_agent, और sets max_iterations=3 को व्यवस्थित करता है.
  • लूप से बाहर निकलने की शर्त: जब critic_agent प्लान को मंज़ूरी दे देता है, तब लूप खत्म हो जाता है. इसके बाद, refiner_agent कस्टम exit_loop टूल को कॉल करता है.

10. आठवां सेशन: ParallelAgent ⚡️

roadmap8

सही समय पर सही चाल ही इस गेम में सबकुछ है. अगर कोई उपयोगकर्ता एक साथ कई तरह की जानकारी मांगता है, तो एक-एक करके खोज करने में समय लगेगा.

ParallelAgent इसका समाधान है. यह वर्कफ़्लो एजेंट, एक साथ कई सब-एजेंट को एक्ज़ीक्यूट करता है. सभी टास्क पूरे होने के बाद, उनके नतीजों को इकट्ठा किया जा सकता है और उन्हें एक साथ मिलाकर पूरी जानकारी दी जा सकती है.

इस डायग्राम में दिखाया गया है कि ParallelAgent एक क्वेरी लेता है और काम को तीन एक साथ चलने वाले ट्रैक में बांट देता है. museum_finder, concert_finder, और restaurant_finder सभी एक साथ चलते हैं. इन तीनों के जवाब मिलने के बाद, इनके अलग-अलग जवाबों को एक साथ जोड़ दिया जाता है. ये जवाब, शेयर किए गए स्टेट में सेव होते हैं. इसके बाद, इन्हें फ़ाइनल सिंथेसिस एजेंट को भेज दिया जाता है. यह एजेंट, इन जवाबों को मिलाकर एक जवाब तैयार करता है.

➡️ नोटबुक में यह कहां मिलेगा:

👉 इस वर्कफ़्लो के बारे में, ParallelAgent की मदद से एक साथ कई काम करना 🧠→⚡️→🤖🤖🤖 सेक्शन में बताया गया है. 🌟

पैरलल एजेंट

  • स्पेशलिस्ट एजेंट: तीन स्पेशलिस्ट एजेंट तय किए गए हैं.हर एजेंट के पास एक यूनीक output_key होता है. जैसे, museum_result.
  • पैरलल वर्कफ़्लो: parallel_research_agent को ParallelAgent के तौर पर तय किया जाता है. इसमें, खोज करने वाले तीन एजेंटों को sub_agents के तौर पर लिस्ट किया जाता है.
  • सिंथेसिस चरण: पैरलल चरण के बाद, फ़ाइनल synthesis_agent, शेयर किए गए स्टेट से मिली सभी जानकारी को इकट्ठा करता है. इसके लिए, वह प्लेसहोल्डर ({museum_result}, {concert_result} वगैरह) का इस्तेमाल करता है, ताकि जानकारी को साफ़ तौर पर दिखाया जा सके.

11. अपेंडिक्स: ADK Web - 🍎 Mac/Linux के लिए

roadmap9

इस गाइड में, अपनी लोकल मशीन पर ADK Day Trip Planning Agent को सेट अप करने और चलाने का तरीका बताया गया है.

ज़रूरी शर्तें

  • Python 3.8 या इसके बाद का वर्शन
    • Python 3.9 या इसके बाद का वर्शन: google-adk==1.5.0 इंस्टॉल करता है. यह सभी सुविधाओं वाला सबसे नया वर्शन है
    • Python 3.8: google-adk==0.3.0 (कंपैटिबल वर्शन) इंस्टॉल करता है
  • Google AI Studio का एपीआई पासकोड (ऊपर दिए गए सेटअप चरण से)
  • इंटरनेट कनेक्शन

पहला चरण: रिपॉज़िटरी क्लोन करना

टर्मिनल खोलें और यह कमांड चलाएं:

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

दूसरा चरण: वर्चुअल एनवायरमेंट सेट अप करना और डिपेंडेंसी इंस्टॉल करना

पहला विकल्प: ऑटोमेटेड सेटअप (सुझाया गया)

# 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

🚨 ज़रूरी है: सेटअप: अपना एपीआई पासकोड पाएं चरण में दिए गए अपने असली एपीआई पासकोड से your_actual_api_key_here को बदलें!

चौथा चरण: वर्चुअल एनवायरमेंट चालू करें (अगर यह पहले से चालू नहीं है)

source .adk_env/bin/activate

आपको अपने टर्मिनल प्रॉम्प्ट की शुरुआत में (.adk_env) दिखेगा.

पाँचवाँ चरण: ADK वेब इंटरफ़ेस चलाना

adk web

छठा चरण: ब्राउज़र खोलना

  1. अपना ब्राउज़र खोलें और टर्मिनल में दिखाए गए यूआरएल पर जाएं. आम तौर पर, यह यूआरएल http://localhost:8000 होता है
  2. सबसे ऊपर बाईं ओर मौजूद ड्रॉपडाउन में, agent
  3. दिन की यात्रा की योजना बनाने वाले एजेंट के साथ चैट करना शुरू करें!

आपको इस तरह की बातचीत दिखेगी: ADK के वेब यूज़र इंटरफ़ेस (यूआई) का उदाहरण

एनवायरमेंट बंद करना

प्रोजेक्ट पर काम पूरा होने के बाद:

deactivate

यह निर्देश, Mac/Linux और Windows, दोनों पर एक जैसा काम करता है. आपको दिखेगा कि आपके टर्मिनल प्रॉम्प्ट से (.adk_env) प्रीफ़िक्स हट गया है.

Mac से जुड़ी समस्या हल करना

  • Python नहीं मिला: python के बजाय python3 का इस्तेमाल करें
  • अनुमति नहीं दी गई: स्क्रिप्ट चलाने से पहले chmod +x setup_venv.sh चलाएं

12. अपेंडिक्स: ADK Web - 🪟 Windows का इस्तेमाल करने वाले लोगों के लिए

roadmap9

इस गाइड में, अपनी लोकल मशीन पर ADK Day Trip Planning Agent को सेट अप करने और चलाने का तरीका बताया गया है.

ज़रूरी शर्तें

  • Python 3.8 या इसके बाद का वर्शन
    • Python 3.9 या इसके बाद का वर्शन: google-adk==1.5.0 इंस्टॉल करता है. यह सभी सुविधाओं वाला सबसे नया वर्शन है
    • Python 3.8: google-adk==0.3.0 (कंपैटिबल वर्शन) इंस्टॉल करता है
  • Google AI Studio का एपीआई पासकोड (ऊपर दिए गए सेटअप चरण से)
  • इंटरनेट कनेक्शन

पहला चरण: रिपॉज़िटरी क्लोन करना

कमांड प्रॉम्प्ट या PowerShell खोलें और यह कमांड चलाएं:

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

दूसरा चरण: वर्चुअल एनवायरमेंट सेट अप करना और डिपेंडेंसी इंस्टॉल करना

पहला विकल्प: ऑटोमेटेड सेटअप (सुझाया गया)

# 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

PowerShell के लिए:

# 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 को बदलें!

चौथा चरण: वर्चुअल एनवायरमेंट चालू करें (अगर यह पहले से चालू नहीं है)

कमांड प्रॉम्प्ट:

.adk_env\Scripts\activate

PowerShell:

.adk_env\Scripts\Activate.ps1

आपको अपने प्रॉम्प्ट की शुरुआत में (.adk_env) दिखना चाहिए.

पाँचवाँ चरण: ADK वेब इंटरफ़ेस चलाना

adk web

छठा चरण: ब्राउज़र खोलना

  1. अपना ब्राउज़र खोलें और टर्मिनल में दिखाए गए यूआरएल पर जाएं. आम तौर पर, यह यूआरएल http://localhost:8000 होता है
  2. सबसे ऊपर बाईं ओर मौजूद ड्रॉपडाउन में, agent
  3. दिन की यात्रा की योजना बनाने वाले एजेंट के साथ चैट करना शुरू करें!

Windows से जुड़ी समस्याओं को हल करना

  • PowerShell की एक्ज़ीक्यूशन नीति से जुड़ी गड़बड़ी: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser चलाएं

आपको इस तरह की बातचीत दिखेगी: ADK के वेब यूज़र इंटरफ़ेस (यूआई) का उदाहरण

एनवायरमेंट बंद करना

प्रोजेक्ट पर काम पूरा होने के बाद:

deactivate

यह निर्देश, Mac/Linux और Windows, दोनों पर एक जैसा काम करता है. आपको दिखेगा कि आपके टर्मिनल प्रॉम्प्ट से (.adk_env) प्रीफ़िक्स हट गया है.