1. परिचय
इस कोडलैब में, आपको Agent Development Kit (ADK) का इस्तेमाल करके, प्रो-कोड एआई एजेंट बनाने का तरीका बताया जाएगा. यह सीधे तौर पर Google Workspace के आधिकारिक एमसीपी सर्वर से कनेक्ट होता है.
मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) एक ओपन स्टैंडर्ड है. इसकी मदद से एआई मॉडल, रिमोट सर्वर से मिले टूल का सुरक्षित तरीके से इस्तेमाल कर सकते हैं. एडीके, Google का प्रो-कोड फ़्रेमवर्क है. इसकी मदद से, ऑटोनॉमस एजेंट बनाए जाते हैं. इन दोनों को मिलाकर, Gmail, Google Drive, Google Calendar, Google Chat, और लोगों के डेटा के आधार पर, अपनी पसंद के मुताबिक एजेंट बनाए जा सकते हैं.
उपलब्ध टूल और कॉन्फ़िगरेशन के बारे में पूरी जानकारी के लिए, Google Workspace के एमसीपी सर्वर कॉन्फ़िगर करना लेख पढ़ें.
आपको क्या करना होगा
- अपने Google Cloud प्रोजेक्ट में, Google Workspace की एमसीपी सेवाएं चालू करें.
- OAuth की सहमति को कॉन्फ़िगर करें. साथ ही, स्थानीय टेस्टिंग और प्रोडक्शन डिप्लॉयमेंट, दोनों के लिए क्रेडेंशियल बनाएं.
- स्टैटिक टोकन का इस्तेमाल करके, पांच Workspace एमसीपी सर्वर से कनेक्ट होने वाला लोकल एडीके एजेंट बनाएं.
- डाइनैमिक टोकन इंजेक्शन का इस्तेमाल करने वाले, प्रोडक्शन के लिए तैयार ADK एजेंट को Gemini Enterprise Agent Platform (GEAP) Agent Runtime पर बनाएं और डिप्लॉय करें.
- Gemini Enterprise में, अपने कस्टम एजेंट को रजिस्टर करें और उसकी टेस्टिंग करें.
आपको किन चीज़ों की ज़रूरत होगी
- कोई वेब ब्राउज़र (जैसे, Chrome).
- बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट.
- Google Workspace खाता (जिसमें स्मार्ट फ़ीचर चालू हों).
- आपके कंप्यूटर पर Python 3.11 या इसके बाद का वर्शन इंस्टॉल हो.
- Google Cloud CLI (
gcloud) इंस्टॉल और शुरू किया गया हो.
2. शुरू करने से पहले
Google Cloud प्रोजेक्ट बनाना या चुनना
Console का विकल्प
Google Cloud Console में, Google Cloud प्रोजेक्ट चुनें या बनाएं.
सीएलआई विकल्प
नया प्रोजेक्ट बनाएं और उसे चालू के तौर पर सेट करें:
gcloud projects create YOUR_PROJECT_ID
gcloud config set project YOUR_PROJECT_ID
एपीआई चालू करना
Google Workspace के एमसीपी सर्वर का इस्तेमाल करने के लिए, आपको Google Workspace के स्टैंडर्ड एपीआई और एमसीपी की खास सेवाएं, दोनों चालू करनी होंगी.
Console का विकल्प
वेब ब्राउज़र का इस्तेमाल करके इन्हें चालू करने के लिए, इन बटन पर क्लिक करें:
सीएलआई विकल्प ये टर्मिनल कमांड चलाएं:
# Enable standard GWS APIs
gcloud services enable chat.googleapis.com \
drive.googleapis.com \
calendar-json.googleapis.com \
people.googleapis.com \
gmail.googleapis.com
# Enable dedicated MCP services
gcloud services enable calendarmcp.googleapis.com \
chatmcp.googleapis.com \
drivemcp.googleapis.com \
gmailmcp.googleapis.com
Chat ऐप्लिकेशन को कॉन्फ़िगर करना
Google Chat MCP सर्वर का इस्तेमाल करने के लिए, आपको अपने Google Cloud प्रोजेक्ट में Chat ऐप्लिकेशन को कॉन्फ़िगर करना होगा.
- Google Chat API > मैनेज करें > कॉन्फ़िगरेशन पर जाएं.
- Chat ऐप्लिकेशन सेट अप करें:
- ऐप्लिकेशन का नाम:
ADK Workspace Agent - अवतार का यूआरएल:
https://developers.google.com/chat/images/quickstart-app-avatar.png - ब्यौरा:
MCP server connection for ADK Agent - सुविधाएं में जाकर, इंटरैक्टिव सुविधाएं चालू करें को बंद करें.
- लॉग में जाकर, लॉगिंग में गड़बड़ियों को लॉग करें चुनें.
- ऐप्लिकेशन का नाम:
- सेव करें पर क्लिक करें.
3. OAuth की सहमति और क्लाइंट कॉन्फ़िगर करना
Google Workspace के एमसीपी सर्वर, सुरक्षित तरीके से पुष्टि करने के लिए OAuth 2.0 का इस्तेमाल करते हैं. आपको OAuth सहमति स्क्रीन को कॉन्फ़िगर करना होगा. साथ ही, दो अलग-अलग क्लाइंट आईडी बनाने होंगे: एक लोकल डेवलपमेंट के लिए और दूसरा डिप्लॉय किए गए एजेंट के लिए.
OAuth की सहमति वाली स्क्रीन सेट अप करना
- Google Cloud Console में, सबसे ऊपर बाएं कोने में मौजूद नेविगेशन मेन्यू (हैमबर्गर आइकॉन) पर क्लिक करें. Google Auth Platform > ब्रैंडिंग चुनें. अगर Google Auth Platform नहीं दिख रहा है, तो एपीआई और सेवाएं > OAuth के लिए सहमति वाली स्क्रीन चुनें.
- ऐप्लिकेशन की जानकारी कॉन्फ़िगर करें:
- ऐप्लिकेशन का नाम:
Workspace ADK Agent - उपयोगकर्ता सहायता के लिए ईमेल पता: अपना ईमेल पता चुनें.
- ऐप्लिकेशन का नाम:
- ऑडियंस को कॉन्फ़िगर करें: इंटरनल को चुनें.
- संपर्क जानकारी कॉन्फ़िगर करें: अपना ईमेल पता डालें. इसके बाद, बनाएं पर क्लिक करें.
- डेटा ऐक्सेस > स्कोप जोड़ें या हटाएं पर जाएं. स्कोप मैन्युअल तरीके से जोड़ें में जाकर, इन स्कोप को जोड़ें, ताकि सभी पांच सेवाओं को ऐक्सेस दिया जा सके:
https://www.googleapis.com/auth/calendar.calendarlist.readonly https://www.googleapis.com/auth/calendar.events https://www.googleapis.com/auth/calendar.calendars https://www.googleapis.com/auth/chat.spaces https://www.googleapis.com/auth/chat.messages https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.compose https://www.googleapis.com/auth/gmail.send https://www.googleapis.com/auth/directory.readonly https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/contacts.readonly https://www.googleapis.com/auth/cloud-platform - टेबल में जोड़ें पर क्लिक करें. इसके बाद, अपडेट करें पर क्लिक करें. आखिर में, सेव करें पर क्लिक करें.
लोकल डेवलपमेंट (डेस्कटॉप ऐप्लिकेशन) के लिए क्लाइंट आईडी बनाना
- Google Cloud Console में, Google Auth Platform > क्लाइंट (या एपीआई और सेवाएं > क्रेडेंशियल) पर जाएं. क्रेडेंशियल बनाएं (या क्लाइंट बनाएं) पर क्लिक करें. इसके बाद, OAuth क्लाइंट आईडी चुनें.
- ऐप्लिकेशन के टाइप के तौर पर, डेस्कटॉप ऐप्लिकेशन चुनें.
- इसे
Workspace Agent Localनाम दें. - बनाएं पर क्लिक करें और JSON फ़ाइल डाउनलोड करें. इसे स्थानीय तौर पर
client_secret.jsonके तौर पर सेव करें.
4. स्मार्ट एआई एजेंट को डेवलप करना और उसकी टेस्टिंग करना
इस सेक्शन में, एजेंट एनवायरमेंट बनाने का तरीका बताया गया है. हम टेस्टिंग के लिए स्टैटिक टोकन का इस्तेमाल करेंगे. इसमें हम gcloud का इस्तेमाल करके OAuth टोकन फ़ेच करते हैं और इसे ADK के McpToolset को पास करते हैं. इन चरणों को पूरा करने के लिए, लोकल मशीन या Google Cloud Shell का इस्तेमाल किया जा सकता है.
डेवलपमेंट एनवायरमेंट सेट अप करने के लिए, अपना एनवायरमेंट चुनें: लोकल मशीन या Google Cloud Shell. दोनों तरीकों में, पुष्टि करने के लिए शेयर की गई Python स्क्रिप्ट का इस्तेमाल किया जाएगा, ताकि सभी प्लैटफ़ॉर्म पर एक जैसा अनुभव मिले.
1. एनवायरमेंट डायरेक्ट्री सेट अप करना
प्रोजेक्ट डायरेक्ट्री बनाने और ज़रूरी पैकेज इंस्टॉल करने के लिए, अपने टर्मिनल में ये कमांड चलाएं.
- Google Cloud Shell के लिए: सबसे पहले, Google Cloud Console के सबसे ऊपर दाएं टूलबार में मौजूद, Cloud Shell चालू करें आइकॉन (
>_) पर क्लिक करें. - लोकल मशीन के लिए: अपना स्टैंडर्ड टर्मिनल खोलें.
mkdir -p gws-adk-agent/workspace_agent
cd gws-adk-agent
python3 -m venv .venv
source .venv/bin/activate
pip install google-adk poetry google-auth-oauthlib
2. क्रेडेंशियल की फ़ाइल तैयार करना
आपको पिछले चरण में डाउनलोड की गई client_secret.json फ़ाइल को, अपनी gws-adk-agent डायरेक्ट्री के रूट में रखना होगा.
- लोकल मशीन: डाउनलोड की गई
client_secret.jsonफ़ाइल कोgws-adk-agentडायरेक्ट्री में ले जाएं या कॉपी करें. - Google Cloud Shell: Cloud Shell में यह कमांड चलाकर फ़ाइल बनाएं (
[PASTE_JSON_HERE]को अपने JSON कॉन्टेंट से बदलें):
cat << 'EOF' > client_secret.json
[PASTE_JSON_HERE]
EOF
3. पुष्टि करें और .env फ़ाइल जनरेट करें (auth.py)
हम पुष्टि करने की प्रोसेस को एक जैसा रखने और एनवायरमेंट के हिसाब से सीएलआई राउटिंग से जुड़ी समस्याओं से बचने के लिए, कस्टम Python स्क्रिप्ट का इस्तेमाल करते हैं. यह स्क्रिप्ट, Google की आधिकारिक पुष्टि करने वाली लाइब्रेरी की मदद से काम करती है. यह स्क्रिप्ट, OAuth फ़्लो को मैनेज करती है. साथ ही, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (एडीसी) को डिवाइस पर सेव करती है और ज़रूरी .env फ़ाइल जनरेट करती है.
gws-adk-agent डायरेक्ट्री में auth.py नाम की फ़ाइल बनाएं और यह कोड जोड़ें:
import json
import os
from urllib.parse import urlparse, parse_qs
import google.auth
from google_auth_oauthlib.flow import InstalledAppFlow
CLIENT_SECRET_FILE = 'client_secret.json'
SCOPES = [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/calendar",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/gmail.readonly",
"https://www.googleapis.com/auth/gmail.compose",
"https://www.googleapis.com/auth/directory.readonly",
"https://www.googleapis.com/auth/contacts.readonly"
]
# Initialize the flow from the client secrets JSON
flow = InstalledAppFlow.from_client_secrets_file(
CLIENT_SECRET_FILE,
scopes=SCOPES,
redirect_uri='http://localhost:8085/'
)
# Generate the Auth URL
auth_url, expected_state = flow.authorization_url(prompt='consent', access_type='offline')
print("\n=== GOOGLE OAUTH OFFICIAL LIBRARY FLOW ===")
print("1. Copy the following link and paste it into your browser (or click it if supported):\n")
print(auth_url)
print("\n2. Authorize the application.")
print("3. Your browser will redirect to a 'localhost' page (it will show a 'Site can't be reached' error, which is EXPECTED and normal).")
print("4. Copy the ENTIRE URL from your browser's address bar (including the http://localhost:8085/ part).\n")
# Get the redirected URL from the user
redirected_url = input("Paste the full localhost URL here: ").strip()
# Exchange the redirect URL for tokens
print("\nExchanging code for tokens...")
try:
parsed_url = urlparse(redirected_url)
query_params = parse_qs(parsed_url.query)
returned_state = query_params.get('state', [None])[0]
code = query_params.get('code', [None])[0]
if not code:
raise ValueError("No 'code' parameter found in the URL.")
if returned_state != expected_state:
raise ValueError("CSRF Warning! State mismatch.")
flow.fetch_token(code=code)
creds = flow.credentials
except Exception as e:
print(f"Authentication failed: {e}")
exit(1)
if not creds.refresh_token:
print("\nError: No refresh token returned. You may need to revoke access and try again.")
exit(1)
# Save Application Default Credentials
adc_data = {
"client_id": creds.client_id,
"client_secret": creds.client_secret,
"refresh_token": creds.refresh_token,
"type": "authorized_user"
}
adc_dir = os.path.expanduser("~/.config/gcloud")
os.makedirs(adc_dir, exist_ok=True)
adc_path = os.path.join(adc_dir, "application_default_credentials.json")
with open(adc_path, "w") as f:
json.dump(adc_data, f, indent=2)
# Detect Project ID
try:
_, project_id = google.auth.default()
except Exception:
project_id = None
project_id = project_id or os.environ.get("GOOGLE_CLOUD_PROJECT", "YOUR_PROJECT_ID")
# Save to .env for local development (relative to project root)
env_dir = "workspace_agent"
os.makedirs(env_dir, exist_ok=True)
env_path = os.path.join(env_dir, ".env")
with open(env_path, "w") as f:
f.write("GOOGLE_GENAI_USE_VERTEXAI=1\n")
f.write(f"GOOGLE_CLOUD_PROJECT={project_id}\n")
f.write("GOOGLE_CLOUD_LOCATION=us-central1\n")
print(f"\nSuccess! Application Default Credentials saved to: {adc_path}")
print(f"Environment variables saved to: {env_path}")
if project_id == "YOUR_PROJECT_ID":
print("NOTE: Could not automatically detect Project ID. Please update it manually in .env")
टर्मिनल में स्क्रिप्ट चलाएं:
python3 auth.py
एजेंट कोड बनाना
पिछले चरण में आपने जो भी एनवायरमेंट चुना हो, एजेंट कोड वही रहेगा. पहले से बनाई गई workspace_agent सबडायरेक्ट्री में, agent.py नाम की फ़ाइल बनाएं और यह कोड जोड़ें. यह स्क्रिप्ट, अनुमति देने के लिए ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (एडीसी) का इस्तेमाल करती है. साथ ही, डाइनैमिक हेडर प्रोवाइडर के ज़रिए, क्रेडेंशियल की पुष्टि अपने-आप करती है और उन्हें सिर्फ़ मेमोरी में रीफ़्रेश करती है.
import datetime
import google.auth
from google.auth.transport.requests import Request
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
MODEL = "gemini-2.5-flash"
# Load credentials from Application Default Credentials (ADC) saved by auth.py
creds, _ = google.auth.default()
# 1. STARTUP SAFETY: Ensure valid token at import time for static tool discovery (e.g. adk web UI load)
if not creds.valid:
creds.refresh(Request())
print("\n[Agent Startup] Access token refreshed from ADC.")
def auth_header_provider(tool_context=None) -> dict[str, str]:
"""2. RUNTIME SAFETY: Dynamically provides auth headers, refreshing if expired during the session."""
if not creds.valid:
creds.refresh(Request())
print("\n[Agent Runtime] Access token refreshed from ADC.")
return {"Authorization": f"Bearer {creds.token}"}
# Initialize the 5 GWS MCP servers with combined startup headers and dynamic runtime provider
calendar_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://calendarmcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
chat_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://chatmcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
drive_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://drivemcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
gmail_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://gmailmcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
people_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://people.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
current_date = datetime.datetime.now().strftime("%Y-%m-%d")
# Define the agent and attach all 5 toolsets
root_agent = LlmAgent(
model=MODEL,
name='gws_adk_agent',
instruction=f"""You are a helpful assistant grounded in the user's Google Workspace data.
Today's current date is {current_date}. Always calculate relative dates (like 'this week' or 'upcoming meetings') using this reference.
Use the provided MCP tools to answer questions about their Calendar, Chat, Drive, Gmail, and Contacts.""",
tools=[calendar_mcp, chat_mcp, drive_mcp, gmail_mcp, people_mcp]
)
अपने एजेंट को चलाएं और उसकी जांच करें
अपने एजेंट के साथ इंटरैक्ट करने के लिए, इंटरैक्टिव वेब यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल किया जा सकता है. इसके अलावा, सीधे तौर पर अपने टर्मिनल/शेल में भी इंटरैक्ट किया जा सकता है.
पहला विकल्प: इंटरैक्टिव वेब यूज़र इंटरफ़ेस (यूआई)
अगर लोकल मशीन का इस्तेमाल किया जा रहा है, तो:
- अपनी
gws-adk-agentप्रोजेक्ट रूट डायरेक्ट्री से, ADK वेब इंटरफ़ेस शुरू करें:adk web - अपने एजेंट से चैट करने के लिए, अपने ब्राउज़र में
http://localhost:8000खोलें.
अगर Google Cloud Shell का इस्तेमाल किया जा रहा है, तो:
- अपनी
gws-adk-agentप्रोजेक्ट रूट डायरेक्ट्री से, एडीके के वेब इंटरफ़ेस को पोर्ट 8080 को साफ़ तौर पर लागू करने के लिए शुरू करें:adk web --port 8080 --allow_origins=* - इंटरफ़ेस को नए टैब में खोलने के लिए, Cloud Shell टूलबार में सबसे ऊपर दाईं ओर मौजूद वेब प्रीव्यू बटन पर क्लिक करें. इसके बाद, पोर्ट 8080 पर प्रीव्यू करें चुनें.
दूसरा विकल्प: टर्मिनल सीएलआई मोड (वैकल्पिक)
अगर आपको टर्मिनल में ही रहना है या वेब ब्राउज़र में झलक देखने की सुविधा सेट अप नहीं करनी है, तो ADK, नेटिव इंटरैक्टिव REPL चैट मोड उपलब्ध कराता है.
अपनी gws-adk-agent प्रोजेक्ट रूट डायरेक्ट्री से, यह कमांड चलाएं. यह कमांड, लोकल मशीन और Google Cloud Shell, दोनों पर एक जैसा काम करती है:
adk run workspace_agent
आपको सीधे अपने शेल में इंटरैक्टिव चैट सेशन में शामिल किया जाएगा:
Running agent gws_adk_agent, type exit to exit.
[user]:
अपने एजेंट को प्रॉम्प्ट करके देखें
आपने जो भी इंटरफ़ेस चुना है, उससे कोई फ़र्क़ नहीं पड़ता. एजेंट को उन क्वेरी के साथ टेस्ट करें जो Workspace MCP टूल का इस्तेमाल करती हैं:
What are my upcoming meetings this week?Summarize the last 3 unread emails in my Gmail.
5. प्रोडक्शन डिप्लॉयमेंट
एजेंट को प्रोडक्शन में डिप्लॉय करने के लिए, हम हार्डकोड किए गए लोकल टोकन का इस्तेमाल नहीं कर सकते. इसके बजाय, हम ADK के header_provider का इस्तेमाल करते हैं. इससे, Gemini Enterprise प्लैटफ़ॉर्म से इंजेक्ट किए गए OAuth ऐक्सेस टोकन को डाइनैमिक तरीके से निकाला जाता है. ऐसा तब होता है, जब कोई व्यक्ति एजेंट से इंटरैक्ट करता है.
प्रोडक्शन एजेंट कोड बनाना
enterprise_ai नाम का डायरेक्ट्री पैकेज बनाएं और उसके अंदर agent.py फ़ाइल बनाएं:
mkdir -p enterprise_ai
enterprise_ai/agent.py के लिए यह कॉन्टेंट लिखो:
import datetime
import os
import re
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
from google.adk.tools.tool_context import ToolContext
MODEL = "gemini-2.5-flash"
# This name MUST match the Authorization Name used during Gemini Enterprise registration
CLIENT_AUTH_NAME = "workspace-adk-auth"
def _get_access_token_from_context(tool_context: ToolContext) -> str:
"""Dynamically parses the user bearer token injected into the ToolContext state."""
escaped_name = re.escape(CLIENT_AUTH_NAME)
pattern = re.compile(fr"^{escaped_name}_\d+$")
state_dict = tool_context.state.to_dict() if hasattr(tool_context.state, 'to_dict') else tool_context.state
matching_keys = [k for k in state_dict.keys() if pattern.match(k)]
if matching_keys:
return state_dict.get(matching_keys[0])
raise Exception(f"No bearer token found in ToolContext state matching pattern {pattern.pattern}")
def auth_header_provider(tool_context: ToolContext) -> dict[str, str]:
"""Provides the dynamic Authorization header for MCP requests."""
token = _get_access_token_from_context(tool_context)
return {"Authorization": f"Bearer {token}"}
# Initialize toolsets using the dynamic header_provider
calendar_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://calendarmcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
chat_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://chatmcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
drive_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://drivemcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
gmail_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://gmailmcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
people_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://people.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
current_date = datetime.datetime.now().strftime("%Y-%m-%d")
root_agent = LlmAgent(
model=MODEL,
name='enterprise_ai',
instruction=f"""You are an enterprise assistant grounded securely in the user's Workspace data.
Today's current date is {current_date}. Always calculate relative dates (like 'this week' or 'upcoming meetings') using this reference.
Always use the provided MCP tools to fetch context from Calendar, Chat, Drive, Gmail, and People.""",
tools=[calendar_mcp, chat_mcp, drive_mcp, gmail_mcp, people_mcp]
)
GEAP एजेंट रनटाइम में डिप्लॉय करना
ADK सीएलआई का इस्तेमाल करके, प्रो-कोड एजेंट को डिप्लॉय करें:
adk deploy agent_engine \
--project=$(gcloud config get-value project) \
--region=us-central1 \
--display_name="Workspace ADK Agent" \
enterprise_ai
डिप्लॉयमेंट पूरा होने का इंतज़ार करें.इसके बाद, जनरेट किए गए रीज़निंग इंजन के संसाधन का नाम, टर्मिनल आउटपुट से कॉपी करें. उदाहरण के लिए, projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID.
6. Gemini Enterprise में रजिस्टर करना
अब हम कस्टम एडीके एजेंट को Gemini Enterprise में शामिल कर रहे हैं, ताकि उपयोगकर्ता इसके साथ आसानी से चैट कर सकें.
प्रोडक्शन (वेब ऐप्लिकेशन) के लिए Client-ID बनाना
अपने एजेंट को प्रोडक्शन में डिप्लॉय करने के लिए, आपको वेब ऐप्लिकेशन क्लाइंट आईडी बनाना होगा. लोकल टेस्टिंग के लिए इस्तेमाल किए जाने वाले डेस्कटॉप क्लाइंट के उलट, वेब ऐप्लिकेशन क्लाइंट, सर्वर-साइड OAuth फ़्लो को सुरक्षित बनाता है. इससे GEAP Agent Runtime पर होस्ट किया गया एजेंट, उपयोगकर्ता के पुष्टि करने वाले टोकन को सुरक्षित तरीके से पा सकता है. ये टोकन, Gemini Enterprise ने रीडायरेक्ट यूआरआई का इस्तेमाल करके फ़ॉरवर्ड किए हैं. यह सेटअप इसलिए ज़रूरी है, ताकि एजेंट प्रॉडक्शन एनवायरमेंट में उपयोगकर्ता की ओर से Google Workspace के डेटा को सुरक्षित तरीके से ऐक्सेस कर सके.
- Google Cloud Console में, सबसे ऊपर बाएं कोने में मौजूद नेविगेशन मेन्यू (हैमबर्गर आइकॉन) पर क्लिक करें. Google Auth Platform > क्लाइंट चुनें. अगर Google Auth Platform नहीं दिख रहा है, तो एपीआई और सेवाएं > क्रेडेंशियल चुनें. क्रेडेंशियल बनाएं (या क्लाइंट बनाएं) पर क्लिक करें. इसके बाद, OAuth क्लाइंट आईडी चुनें.
- ऐप्लिकेशन टाइप के तौर पर, वेब ऐप्लिकेशन चुनें.
- इसे
Workspace Agent Productionनाम दें. - अनुमति वाले रीडायरेक्ट यूआरआई सेक्शन में, ये यूआरआई जोड़ें:
- यूआरआई जोड़ें पर क्लिक करें और
https://vertexaisearch.cloud.google.com/oauth-redirectडालें. - यूआरआई जोड़ें पर फिर से क्लिक करें और
https://vertexaisearch.cloud.google.com/static/oauth/oauth.htmlडालें.
- यूआरआई जोड़ें पर क्लिक करें और
- बनाएं पर क्लिक करें. "OAuth क्लाइंट बनाया गया" पॉप-अप में (या क्लाइंट सूची में जाकर), क्लाइंट आईडी और क्लाइंट सीक्रेट कॉपी करें. Gemini Enterprise में एजेंट को रजिस्टर करते समय, आपको इनकी ज़रूरत होगी.
Gemini Enterprise ऐप्लिकेशन बनाना
- Google Cloud Console में, Gemini Enterprise पेज पर जाएं:
- Gemini Enterprise कार्ड में जाकर, मैनेज करें पर क्लिक करें.
- ऐप्लिकेशन बनाएं पर क्लिक करें.
- Gemini Enterprise सेक्शन में, बनाएं पर क्लिक करें.
- आपके ऐप्लिकेशन का नाम फ़ील्ड में, अपने ऐप्लिकेशन का नाम डालें. ऐप्लिकेशन के नाम के नीचे, ऐप्लिकेशन का आईडी दिखता है.
- आपकी कंपनी या संगठन का बाहरी नाम फ़ील्ड में, कंपनी या संगठन का नाम डालें. इस ट्यूटोरियल के लिए,
Cymbal Bankका इस्तेमाल किया जा सकता है. - अपने ऐप्लिकेशन के लिए, जगह के तौर पर global (Global) चुनें.
- जारी रखें पर क्लिक करें.
कस्टम एजेंट को रजिस्टर करना
- Gemini Enterprise कंसोल खोलें:
- अपने चालू ऐप्लिकेशन को चुनें. इसके बाद, एजेंट पर जाएं और + एजेंट जोड़ें > एजेंट रनटाइम के ज़रिए कस्टम एजेंट जोड़ें पर क्लिक करें.
- अनुमतियां सेक्शन में जाकर, अनुमति जोड़ें पर क्लिक करें:
- अनुमति का नाम:
workspace-adk-auth(यह आपके Python कोड में मौजूद CLIENT_AUTH_NAME से पूरी तरह मेल खाना चाहिए) - क्लाइंट आईडी: ऊपर बनाया गया प्रोडक्शन वेब ऐप्लिकेशन क्लाइंट आईडी चिपकाएं.
- क्लाइंट सीक्रेट: ऊपर बनाया गया प्रोडक्शन वेब ऐप्लिकेशन क्लाइंट सीक्रेट चिपकाएं.
- टोकन यूआरआई:
https://oauth2.googleapis.com/token - ऑथराइज़ेशन यूआरआई: यूआरआई बनाने के लिए, ऊपर दिए गए पांचवें चरण में कॉपी किए गए क्लाइंट आईडी को
YOUR_CLIENT_IDसे बदलें:https://accounts.google.com/o/oauth2/v2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendars%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.send%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fchat.spaces%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fchat.messages%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.file%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdirectory.readonly&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
- अनुमति का नाम:
- हो गया पर क्लिक करें. इसके बाद, आगे बढ़ें पर क्लिक करें.
- कॉन्फ़िगरेशन सेक्शन में जाकर:
- एजेंट का नाम:
Workspace Pro Agent - ब्यौरा:
Use this agent to answer questions about your Google Workspace data, including Gmail, Google Drive, Google Calendar, Google Chat, and Contacts. It can find files, summarize emails, check your schedule, and look up contact information. - एजेंट रनटाइम रीज़निंग इंजन:
adk deployआउटपुट से कॉपी किया गया इंजन का संसाधन नाम चिपकाएं.
- एजेंट का नाम:
- बनाएं पर क्लिक करें.
Gemini Enterprise में एजेंट को आज़माएँ
अपने एजेंट से इंटरैक्ट करने के लिए, Google Cloud Console Preview (डेवलपर के लिए सबसे तेज़) या Gemini Enterprise का वेब ऐप्लिकेशन (एंड-यूज़र के लिए) का इस्तेमाल किया जा सकता है.
पहला विकल्प: Google Cloud Console की झलक
- Google Cloud Console में, Gemini Enterprise पेज पर जाएं:
- नेविगेशन मेन्यू में, ऐप्लिकेशन पर क्लिक करें. इसके बाद, वह ऐप्लिकेशन चुनें जिसे आपने अभी बनाया है.
- सबसे ऊपर दाईं ओर, झलक देखें या झलक खोलें पर क्लिक करें.
- खोज बार में, यह क्वेरी डालें:
Search for files in Drive related to 'Project Milestone', summarize them, and tell me if I have any meetings with the project owner today. - क्वेरी सबमिट करने और नतीजों को सीधे कंसोल में देखने के लिए, Enter दबाएं.
दूसरा विकल्प: Gemini Enterprise का वेब ऐप्लिकेशन
- Gemini Enterprise के वेब ऐप्लिकेशन का इंटरफ़ेस खोलें.
- मेन्यू ☰ > एजेंट पर जाएं. इसके बाद, आपके संगठन से में जाकर, Workspace Pro एजेंट चुनें.
- Google Cloud Console के 'झलक देखें' विकल्प में मौजूद क्वेरी को टाइप करें.
- OAuth की मदद से उपयोगकर्ता की सहमति लेने की प्रोसेस पूरी करने के लिए, प्रॉम्प्ट मिलने पर अनुमति दें पर क्लिक करें.
- एमसीपी प्रोटोकॉल का इस्तेमाल करके, एजेंट कई सेवाओं पर आसानी से टास्क पूरे कर पाएगा!
7. व्यवस्थित करें
ज़रूरत से ज़्यादा शुल्क से बचने के लिए, अपने संसाधनों को हटा दें:
कंसोल का विकल्प
एपीआई और सेवाएं डैशबोर्ड पर जाएं. इसके बाद, चालू की गई एमसीपी सेवाएं चुनें. जैसे, Calendar MCP और Gmail MCP. इसके बाद, एपीआई बंद करें पर क्लिक करें. Google Auth Platform > Clients में जाकर, OAuth क्लाइंट आईडी मिटाएं. साथ ही, Gemini Enterprise Console से Reasoning Engine डिप्लॉयमेंट मिटाएं.
सीएलआई विकल्प
एमसीपी सेवाओं को बंद करने के लिए, टर्मिनल में ये कमांड चलाएं:
# Disable Workspace MCP services
gcloud services disable calendarmcp.googleapis.com \
chatmcp.googleapis.com \
drivemcp.googleapis.com \
gmailmcp.googleapis.com
8. बधाई हो
बधाई हो! आपने Google Workspace के आधिकारिक एमसीपी सर्वर से सीधे तौर पर कनेक्ट होने वाला, प्रो-कोड एडीके एआई एजेंट बना लिया है, उसकी जांच कर ली है, और उसे डिप्लॉय कर दिया है.
आपको क्या सीखने को मिला
- Google Cloud में Google Workspace MCP सेवाओं को चालू करने का तरीका.
- स्टैटिक हेडर का इस्तेमाल करके, स्थानीय ADK की जांच के लिए OAuth क्रेडेंशियल को मैनेज करने का तरीका.
- प्रोडक्शन एजेंट के लिए,
header_providerका इस्तेमाल करके डाइनैमिक टोकन इंजेक्शन लागू करने का तरीका. - एडीके एजेंट को GEAP एजेंट रनटाइम में डिप्लॉय करने और उसे Gemini Enterprise में रजिस्टर करने का तरीका.