1. शुरू करने से पहले
"ADK की मदद से एआई एजेंट बनाना" सीरीज़ के दूसरे पार्ट में आपका स्वागत है! इस हैंड्स-ऑन कोडलैब में, आपको एक बुनियादी एआई एजेंट को कई टूल इस्तेमाल करने की अनुमति देने का तरीका बताया जाएगा.
शुरू करने के लिए, इस गाइड में दो तरीके बताए गए हैं: एक तरीका उन लोगों के लिए है जो ' ADK की मदद से एआई एजेंट बनाना: बुनियादी बातें' कोडलैब से आगे बढ़ रहे हैं. दूसरा तरीका उन लोगों के लिए है जो नए सिरे से शुरुआत कर रहे हैं. इन दोनों पाथ से, आपको शुरू करने के लिए ज़रूरी बेस एजेंट कोड मिल जाएगा.
इस कोडलैब के आखिर तक, आपके पास अपने निजी असिस्टेंट एजेंट को अलग-अलग कामों के लिए टूल उपलब्ध कराने का विकल्प होगा. साथ ही, इस सीरीज़ के आने वाले हिस्सों में, हम इसे एक बेहतर मल्टी-एजेंट सिस्टम (एमएएस) में बदल देंगे.
इस कोडलैब को इस छोटे किए गए यूआरएल से भी ऐक्सेस किया जा सकता है: goo.gle/adk-using-tools.
ज़रूरी शर्तें
- जनरेटिव एआई के कॉन्सेप्ट की जानकारी
- Python प्रोग्रामिंग की बुनियादी जानकारी
- ADK की मदद से एआई एजेंट बनाना: बुनियादी बातें कोडलैब या इसी तरह का कोई अन्य कोडलैब पूरा किया हो
आपको क्या सीखने को मिलेगा
- टूल के तौर पर कस्टम Python फ़ंक्शन बनाकर, अपने एजेंट को नई स्किल दें.
- Google Search जैसे बिल्ट-इन टूल का इस्तेमाल करके, अपने एजेंट को रीयल-टाइम जानकारी से कनेक्ट करें.
- मुश्किल कामों के लिए खास सब-एजेंट बनाकर, मल्टी-टूल एजेंट को स्ट्रक्चर करें.
- क्षमताएं बढ़ाने के लिए, LangChain जैसे लोकप्रिय एआई फ़्रेमवर्क से टूल इंटिग्रेट करें.
आपको इन चीज़ों की ज़रूरत होगी
- काम करने वाला कंप्यूटर और भरोसेमंद वाई-फ़ाई
- Google Cloud Console को ऐक्सेस करने के लिए, Chrome जैसे ब्राउज़र का इस्तेमाल करें
- चीज़ें जानने की दिलचस्पी और सीखने की इच्छा
2. परिचय
ADK की मदद से बनाए गए बुनियादी एजेंट में, एक पावरफ़ुल एलएलएम होता है. हालाँकि, इसकी कुछ सीमाएं भी होती हैं: यह ट्रेनिंग की तारीख के बाद बनाई गई जानकारी को ऐक्सेस नहीं कर सकता. साथ ही, यह बाहरी सेवाओं के साथ इंटरैक्ट नहीं कर सकता. यह एक ऐसी समझदार असिस्टेंट की तरह है जो एक लाइब्रेरी में बंद है. उसके पास फ़ोन या इंटरनेट की सुविधा नहीं है. किसी एजेंट को वाकई में मददगार बनाने के लिए, हमें उसे टूल देने होंगे.
टूल को इस तरह समझें कि वे एआई असिस्टेंट को बाहरी दुनिया का ऐक्सेस देते हैं: जैसे, कैलकुलेटर, वेब ब्राउज़र या किसी कंपनी के डेटाबेस का ऐक्सेस. ADK में, टूल कोड का एक मॉड्यूलर हिस्सा होता है. इसकी मदद से एजेंट, कुछ खास कार्रवाइयां कर सकता है. जैसे, रीयल-टाइम डेटा देखना या किसी बाहरी एपीआई को कॉल करना. टूल का इस्तेमाल करने से, इसकी क्षमताएं सिर्फ़ बातचीत करने से कहीं ज़्यादा बढ़ जाती हैं.
ADK में तीन कैटगरी के टूल उपलब्ध हैं:
- फ़ंक्शन टूल: ये ऐसे कस्टम टूल होते हैं जिन्हें ऐप्लिकेशन की खास ज़रूरतों को पूरा करने के लिए डेवलप किया जाता है. जैसे, पहले से तय किए गए फ़ंक्शन और एजेंट.
- पहले से मौजूद टूल: फ़्रेमवर्क की ओर से, सामान्य कार्रवाइयों के लिए इस्तेमाल किए जा सकने वाले टूल उपलब्ध कराए जाते हैं. जैसे, Google Search और कोड को लागू करना.
- तीसरे पक्ष के टूल: Serper जैसी लोकप्रिय बाहरी लाइब्रेरी और LangChain और CrewAI के टूल.
ADK एजेंट के साथ टूल इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, आधिकारिक दस्तावेज़ देखें. इस कोडलैब में, हम अपने सामान्य एजेंट में टूल जोड़ेंगे, ताकि उसे एक बेहतरीन निजी यात्रा सहायक के तौर पर इस्तेमाल किया जा सके. आइए शुरू करें!
3. शुरू करना: आपका बेस एजेंट
किसी एजेंट को टूल इस्तेमाल करने की अनुमति देने से पहले, आपके पास एक बेसिक एजेंट होना चाहिए. अपनी प्रोग्रेस के हिसाब से सबसे सही पाथ चुनें.
पाथ A: फ़ाउंडेशन कोडलैब से आगे बढ़ना
अगर आपने " ADK की मदद से एआई एजेंट बनाना: बुनियादी बातें" कोडलैब अभी-अभी पूरा किया है, तो आप तैयार हैं. अपनी मौजूदा ai-agents-adk प्रोजेक्ट डायरेक्ट्री में काम जारी रखा जा सकता है.
पाथ B: नए सिरे से शुरू करना
अगर आपको यह कोडलैब सीधे तौर पर शुरू करना है, तो अपना एनवायरमेंट सेट अप करने और ज़रूरी स्टार्टर एजेंट बनाने के लिए, ये चार चरण पूरे करें.
- Google Cloud की सेवाओं को कॉन्फ़िगर करना
- Python का वर्चुअल एनवायरमेंट बनाना
- एजेंट बनाना
- डेवलपमेंट यूज़र इंटरफ़ेस (यूआई) पर एजेंट को चलाना
ऊपर दिए गए चरणों को पूरा करने के बाद, लर्निंग की अपनी यात्रा शुरू की जा सकती है.
4. मुद्रा बदलने के लिए कस्टम टूल बनाना
इस चरण में, आपको ADK का इस्तेमाल करके एक सामान्य एआई एजेंट बनाने और उसे डेवलपमेंट यूज़र इंटरफ़ेस (यूआई) पर चलाने का तरीका पता होना चाहिए.
मान लें कि आपको अगले महीने जापान की यात्रा करनी है और आपको मुद्रा के मौजूदा एक्सचेंज रेट की जानकारी चाहिए. एजेंट से पूछें कि "सिंगापुर डॉलर को जापानी येन में बदलने का रेट क्या है?"

आपको दिखेगा कि एजेंट, रीयल-टाइम में एक्सचेंज रेट नहीं पा सकता. ऐसा इसलिए है, क्योंकि एजेंट के पास फ़िलहाल इंटरनेट का ऐक्सेस नहीं है और वह बाहरी सिस्टम से कनेक्ट नहीं हो सकता. अगर एजेंट किसी वैल्यू के साथ जवाब देता है, तो भी उस पर भरोसा करना मुश्किल है, क्योंकि यह वैल्यू गलत जानकारी पर आधारित हो सकती है.
इस समस्या को हल करने के लिए, हम एक Python फ़ंक्शन लागू करेंगे. इससे REST API के ज़रिए, मुद्रा बदलने की दरें वापस मिलेंगी. साथ ही, हम इसे एजेंट के लिए फ़ंक्शन टूल के तौर पर इंटिग्रेट करेंगे.
टर्मिनल विंडो में, कीबोर्ड शॉर्टकट Ctrl + C का इस्तेमाल करके, एजेंट की प्रोसेस को बंद करें.
custom_functions.py फ़ाइल बनाएं
टर्मिनल में यह कमांड टाइप करके, personal_assistant फ़ोल्डर में custom_functions.py नाम की Python फ़ाइल बनाएं.
touch personal_assistant/custom_functions.py
आपके फ़ोल्डर का स्ट्रक्चर ऐसा दिखना चाहिए:
ai-agents-adk/
└── personal_assistant/
├── .env
├── __init__.py
├── agent.py
└── custom_functions.py
कोड एडिटर में मौजूद custom_functions.py खोलें. इस फ़ाइल में, Python फ़ंक्शन होगा. यह फ़ंक्शन, बाहरी एपीआई से विनिमय दर का डेटा वापस पाने के लिए ज़िम्मेदार होगा.
यहां दिए गए कोड को कॉपी करके, इसमें चिपकाएं:
import requests
# define a function to get exchange rate
def get_fx_rate(base: str, target: str):
"""
Fetches the current exchange rate between two currencies.
Args:
base: The base currency (e.g., "SGD").
target: The target currency (e.g., "JPY").
Returns:
The exchange rate information as a json response,
or None if the rate could not be fetched.
"""
base_url = "https://hexarate.paikama.co/api/rates/latest"
api_url = f"{base_url}/{base}?target={target}"
response = requests.get(api_url)
if response.status_code == 200:
return response.json()
अब agent.py फ़ाइल में बदलाव करें: get_fx_rate फ़ंक्शन इंपोर्ट करें और इसे FunctionTool के तौर पर असाइन करें.
agent.py फ़ाइल अपडेट करें
इस कोडब्लॉक को कॉपी करें और agent.py फ़ाइल के मौजूदा कॉन्टेंट की जगह पर चिपकाएं:
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from .custom_functions import get_fx_rate
root_agent = Agent(
model='gemini-2.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
instruction='Answer user questions to the best of your knowledge',
tools=[FunctionTool(get_fx_rate)]
)
बदलाव करने के बाद, एजेंट को फिर से शुरू करने के लिए यह टाइप करें:
adk web
जब एजेंट उपलब्ध हो जाए, तो उससे वही सवाल दोबारा पूछें, "सिंगापुर डॉलर से जापानी येन का एक्सचेंज रेट क्या है?"
इस बार, आपको get_fx_rate टूल की दी गई मुद्रा बदलने की सही दर दिखेगी.

करंसी एक्सचेंज से जुड़ा कोई भी सवाल बेझिझक पूछें.
5. पहले से मौजूद Google Search टूल के साथ इंटिग्रेट करना
अब एजेंट, मुद्रा विनिमय दरें बता सकता है. इसलिए, अगला टास्क अगले महीने के मौसम का पूर्वानुमान पाना है. एजेंट से यह सवाल पूछें: "जापान के टोक्यो शहर में अगले महीने का मौसम कैसा रहेगा?"

जैसा कि आपको पता होगा कि मौसम के पूर्वानुमान के लिए, रीयल-टाइम जानकारी की ज़रूरत होती है. हालांकि, हमारे एजेंट के पास यह जानकारी नहीं है. हम रीयल-टाइम डेटा की ज़रूरत वाले हर इस्तेमाल के उदाहरण के लिए, नए Python फ़ंक्शन कोड कर सकते हैं. हालांकि, ज़्यादा से ज़्यादा कस्टम टूल जोड़ने से, एजेंट बहुत जटिल हो जाता है और उसे मैनेज करना मुश्किल हो जाता है.
अच्छी बात यह है कि एजेंट डेवलपमेंट किट (एडीके) में, पहले से मौजूद टूल का एक सुइट उपलब्ध है. इसमें Google Search भी शामिल है. ये टूल इस्तेमाल के लिए तैयार हैं. इनसे यह आसान हो जाता है कि हमारा एजेंट बाहरी दुनिया से कैसे इंटरैक्ट करता है.
एजेंट को Google Search टूल से लैस करने के लिए, आपको मल्टी-एजेंट पैटर्न लागू करना होगा. सबसे पहले, एक खास एजेंट बनाया जाता है. इसका काम सिर्फ़ Google पर खोज करना होता है. इसके बाद, इस नए Google Search एजेंट को हमारे मुख्य personal_assistant में टूल के तौर पर असाइन करें. इसका तरीका यहां बताया गया है:
custom_agents.py फ़ाइल बनाएं
अब टर्मिनल में यह कमांड चलाकर, personal_assistant फ़ोल्डर में custom_agents.py नाम की Python फ़ाइल बनाएं:
touch personal_assistant/custom_agents.py
अब आपके फ़ोल्डर का स्ट्रक्चर ऐसा दिखना चाहिए:
ai-agents-adk/
└── personal_assistant/
├── .env
├── __init__.py
├── agent.py
├── custom_functions.py
└── custom_agents.py
इस फ़ाइल में, खास google_search_agent का कोड होगा. कोड एडिटर का इस्तेमाल करके, इस कोड को custom_agents.py फ़ाइल में कॉपी करें.
from google.adk.agents import Agent
from google.adk.tools import google_search
# Create an agent with google search tool as a search specialist
google_search_agent = Agent(
model='gemini-2.5-flash',
name='google_search_agent',
description='A search agent that uses google search to get latest information about current events, weather, or business hours.',
instruction='Use google search to answer user questions about real-time, logistical information.',
tools=[google_search],
)
फ़ाइल बन जाने के बाद, यहां दिए गए तरीके से agent.py फ़ाइल को अपडेट करें.
agent.py फ़ाइल अपडेट करें
इस कोडब्लॉक को कॉपी करें और agent.py फ़ाइल के मौजूदा कॉन्टेंट की जगह पर चिपकाएं:
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from google.adk.tools.agent_tool import AgentTool
from .custom_functions import get_fx_rate
from .custom_agents import google_search_agent
root_agent = Agent(
model='gemini-2.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
tools=[
FunctionTool(get_fx_rate),
AgentTool(agent=google_search_agent),
]
)
आइए, कोड में मौजूद नए पैटर्न के बारे में जानते हैं:
- नया स्पेशलिस्ट एजेंट: हमने एक नया एजेंट,
google_search_agentबनाया है. इसके बारे में दी गई जानकारी और यह ध्यान रखें कि इसका सिर्फ़ एक टूलgoogle_searchहै. यह एक सर्च स्पेशलिस्ट है. agent_tool.AgentTool: यह ADK का एक खास रैपर है. यह पूरे एजेंट (google_search_agent) को लेता है और इसे एक स्टैंडर्ड टूल की तरह दिखाता है और काम करता है.- ज़्यादा स्मार्ट **
root_agent**: हमारेroot_agentमें अब एक नया टूल है:AgentTool(agent=google_search_agent). इसे वेब पर खोजने का तरीका नहीं पता है. हालाँकि, इसे यह पता है कि इसके पास एक ऐसा टूल है जिसे खोज से जुड़े टास्क सौंपे जा सकते हैं.
ध्यान दें कि निर्देश फ़ील्ड, root_agent से हट गया है. इसके निर्देशों को अब उन टूल के हिसाब से तय किया जाता है जो इसके लिए उपलब्ध हैं.
root_agent अब एक ऑर्केस्ट्रेटर या राउटर बन गया है. इसका मुख्य काम, उपयोगकर्ता के अनुरोध को समझना और उसे सही टूल, यानी कि get_fx_rate फ़ंक्शन या google_search_agent को पास करना है. यह डिसेंट्रलाइज़्ड डिज़ाइन, जटिल और रखरखाव वाले एजेंट सिस्टम बनाने के लिए ज़रूरी है.
अब, टाइप करें
adk web
टर्मिनल में जाकर इंस्टेंस शुरू करें. इसके बाद, एजेंट से यह सवाल फिर से पूछें: "जापान के टोक्यो शहर में अगले महीने का मौसम कैसा रहेगा?"

अब एजेंट, नई जानकारी पाने के लिए google_search_agent का इस्तेमाल कर रहा है
आप मौजूदा एक्सचेंज के बारे में भी सवाल पूछ सकते हैं. अब एजेंट को, सवाल के हिसाब से सही टूल का इस्तेमाल करना चाहिए.

बेझिझक होकर अन्य सवाल पूछें, जिनके लिए एजेंट को रीयल-टाइम में जानकारी की ज़रूरत होती है. साथ ही, देखें कि यह उपलब्ध टूल का इस्तेमाल करके क्वेरी को कैसे हैंडल करता है.
6. LangChain के Wikipedia टूल का इस्तेमाल करना
हमारा एजेंट, यात्रा से जुड़ी जानकारी देने वाला एक बेहतरीन असिस्टेंट बनने की ओर बढ़ रहा है. यह get_fx_rate टूल की मदद से, मुद्रा बदलने की सुविधा देता है. साथ ही, google_search_agent टूल की मदद से लॉजिस्टिक्स को मैनेज करता है. हालांकि, एक शानदार यात्रा का मतलब सिर्फ़ लॉजिस्टिक्स नहीं है. इसका मतलब, अपनी मंज़िल की संस्कृति और इतिहास को समझना भी है.
google_search_agent को संस्कृति और इतिहास से जुड़े तथ्य मिल सकते हैं. हालांकि, Wikipedia जैसे किसी खास सोर्स से मिली जानकारी ज़्यादा व्यवस्थित और भरोसेमंद होती है.
अच्छी बात यह है कि ADK को इस तरह से डिज़ाइन किया गया है कि इसे आसानी से बढ़ाया जा सकता है. इससे आपको CrewAI और LangChain जैसे अन्य एआई एजेंट फ़्रेमवर्क के टूल को आसानी से इंटिग्रेट करने में मदद मिलती है. यह इंटरऑपरेबिलिटी बहुत ज़रूरी है, क्योंकि इससे डेवलपमेंट का समय कम हो जाता है और आपको मौजूदा टूल का फिर से इस्तेमाल करने की अनुमति मिलती है. इस इस्तेमाल के उदाहरण के लिए, हम LangChain के Wikipedia टूल का इस्तेमाल करेंगे.
सबसे पहले, चालू एजेंट प्रोसेस (Ctrl + C) को रोकें. इसके बाद, मौजूदा Python वर्चुअल एनवायरमेंट में अतिरिक्त लाइब्रेरी इंस्टॉल करें. इसके लिए, टर्मिनल में ये कमांड टाइप करें.
uv pip install langchain-community wikipedia
third_party_tools.py फ़ाइल बनाएं
अब, टर्मिनल में यह कमांड चलाकर, personal_assistant फ़ोल्डर में third_party_tools.py नाम की Python फ़ाइल बनाएं:
touch personal_assistant/third_party_tools.py
अब आपके फ़ोल्डर का स्ट्रक्चर ऐसा दिखना चाहिए:
ai-agents-adk/
└── personal_assistant/
├── .env
├── __init__.py
├── agent.py
├── custom_functions.py
├── custom_agents.py
└── third_party_tools.py
इस फ़ाइल में, LangChain Wikipedia टूल को लागू करने के बारे में जानकारी होगी. नीचे दिए गए कोड को, क्लाउड एडिटर का इस्तेमाल करके third_party_tools.py में कॉपी करें:
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
# Configure the Wikipedia LangChain tool to act as our cultural guide
langchain_wikipedia_tool = WikipediaQueryRun(
api_wrapper=WikipediaAPIWrapper(top_k_results=1, doc_content_chars_max=3000)
)
# Give the tool a more specific description for our agent
langchain_wikipedia_tool.description = (
"Provides deep historical and cultural information on landmarks, concepts, and places."
"Use this for 'tell me about' or 'what is the history of' type questions."
)
agent.py फ़ाइल अपडेट करें
अब नीचे दिए गए कॉन्टेंट के साथ agent.py फ़ाइल को अपडेट करें:
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from google.adk.tools.agent_tool import AgentTool
from google.adk.tools.langchain_tool import LangchainTool
from .custom_functions import get_fx_rate
from .custom_agents import google_search_agent
from .third_party_tools import langchain_wikipedia_tool
root_agent = Agent(
model='gemini-2.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
tools=[
FunctionTool(get_fx_rate),
AgentTool(agent=google_search_agent),
LangchainTool(langchain_wikipedia_tool),
]
)
अब, टाइप करें
adk web
टर्मिनल में "क्योटो के इतिहास के बारे में बताओ" लिखकर, एजेंट से यह सवाल पूछें. इसके लिए, आपको टर्मिनल में इंस्टेंस शुरू करना होगा.

एजेंट इस क्वेरी को पुरानी क्वेरी के तौर पर सही तरीके से पहचानता है और इसके लिए, Wikipedia टूल का इस्तेमाल करता है. तीसरे पक्ष के टूल को इंटिग्रेट करके और उसे कोई खास भूमिका देकर, आपने अपने एजेंट को ज़्यादा स्मार्ट और यात्रा की योजना बनाने के लिए ज़्यादा मददगार बना दिया है.
एजेंट ने यह विकल्प कैसे चुना, यह देखने के लिए adk web यूज़र इंटरफ़ेस (यूआई) में इवेंट इंस्पेक्टर का इस्तेमाल किया जा सकता है. इवेंट टैब पर क्लिक करें. इसके बाद, सबसे हाल के functionCall इवेंट पर क्लिक करें.

इंस्पेक्टर, उपलब्ध सभी टूल की सूची दिखाता है. साथ ही, उस टूल के tool_code को हाइलाइट करता है जिसे एजेंट ने एक्ज़ीक्यूट किया था.

7. डेटा साफ़ करना (ज़रूरी नहीं)
इस कोडलैब में, लंबे समय तक चलने वाले किसी भी प्रॉडक्ट का इस्तेमाल नहीं किया जाता. इसलिए, अपने चालू एजेंट सेशन (जैसे, आपके टर्मिनल में adk web इंस्टेंस) को रोकने के लिए, टर्मिनल में Ctrl + C दबाना काफ़ी है.
एजेंट प्रोजेक्ट के फ़ोल्डर और फ़ाइलें मिटाना
अगर आपको सिर्फ़ अपने Cloud Shell एनवायरमेंट से कोड हटाना है, तो इन कमांड का इस्तेमाल करें:
cd ~
rm -rf ai-agents-adk
Vertex AI API बंद करना
पहले से चालू किए गए Vertex AI API को बंद करने के लिए, यह निर्देश चलाएं:
gcloud services disable aiplatform.googleapis.com
पूरे Google Cloud प्रोजेक्ट को बंद करना
अगर आपको अपना Google Cloud प्रोजेक्ट पूरी तरह से बंद करना है, तो निर्देशों के लिए आधिकारिक गाइड देखें.
8. नतीजा
बधाई हो! आपने पर्सनल असिस्टेंट एजेंट को कस्टम फ़ंक्शन और Google Search को रीयल-टाइम में ऐक्सेस करने की सुविधा दे दी है. Google ADK के साथ टूल इस्तेमाल करने के बारे में यह आधिकारिक दस्तावेज़ पढ़ें.
सबसे अहम बात यह है कि आपने एआई एजेंट बनाने के लिए, बुनियादी आर्किटेक्चरल पैटर्न के बारे में जाना. इसमें, टूल के तौर पर खास एजेंट का इस्तेमाल करना शामिल है. एक खास google_search_agent बनाकर उसे अपने root_agent को देने का मतलब है कि आपने एक एजेंट बनाने से लेकर, एक आसान लेकिन असरदार मल्टी-एजेंट सिस्टम बनाने की दिशा में पहला कदम बढ़ा लिया है.
अब आप सीरीज़ के अगले कोडलैब के लिए पूरी तरह से तैयार हैं. इसमें हम कई एजेंट और वर्कफ़्लो को व्यवस्थित करने के बारे में ज़्यादा जानकारी देंगे. चलिए, इवेंट में मिलते हैं!