1. परिचय
यह कोडलैब, दो हिस्सों वाली सीरीज़ का हिस्सा है. इसमें, गवर्नेंस के बारे में जानकारी रखने वाला GenAI एजेंट बनाने का तरीका बताया गया है.
(इस सीरीज़ का पहला हिस्सा पढ़ें. इसमें बताया गया है कि BigQuery टेबल में नॉलेज कैटलॉग के पहलुओं को लागू करके, डेटा फ़ाउंडेशन कैसे बनाया जाता है. साथ ही, Gemini CLI के ज़रिए नियमों को स्थानीय तौर पर कैसे टेस्ट किया जाता है. 👉 पहला हिस्सा पढ़ें)
हालांकि, लोकल सीएलआई में टेस्टिंग सिर्फ़ शुरुआत है. इसे अपनी पूरी कंपनी के लिए रोल आउट करने के लिए, आपको इन चीज़ों की ज़रूरत होगी: सुरक्षा के लिए एक केंद्रीय सिस्टम, एआई टूल के स्टैंडर्ड कनेक्शन, और एजेंट के लॉजिक को व्यवस्थित करने और चैट का जाना-पहचाना इंटरफ़ेस उपलब्ध कराने के लिए एक सही ऐप्लिकेशन फ़्रेमवर्क.
दूसरे हिस्से में, आपको इन चुनौतियों को हल करना होगा और प्रोडक्शन ट्रैक पर स्केल करना होगा. गवर्नेंस के नियमों को एमसीपी सर्वर में डिप्लॉय किया जाएगा. यह सर्वर, Cloud Run पर होस्ट किया जाता है. इसके बाद, आपको Google के Agent Development Kit (ADK) का इस्तेमाल करके, एजेंट ऐप्लिकेशन बनाना होगा. साथ ही, इसे अपने MCP टूल से कनेक्ट करना होगा. इसमें एक प्रोफ़ेशनल वेब यूज़र इंटरफ़ेस (यूआई) भी शामिल होगा.

ज़रूरी शर्तें
- बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट.
- Cloud Run, IAM सेवा खातों, और Python के बारे में बुनियादी जानकारी.
- पहले हिस्से में बनाए गए BigQuery डेटासेट और नॉलेज कैटलॉग के पहलू. (अगर आपने इन्हें मिटा दिया है, तो चिंता न करें. हम इन्हें फिर से बनाने के लिए, यहां एक फ़ास्ट-ट्रैक स्क्रिप्ट दे रहे हैं!)
आपको क्या सीखने को मिलेगा
- मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) का इस्तेमाल करके, यह तय करना कि एआई एजेंट, Google Cloud के डेटा के साथ कैसे इंटरैक्ट करें.
- Cloud Run पर सुरक्षित एमसीपी सर्वर को डिप्लॉय करने का तरीका.
- Agent Development Kit (ADK) का इस्तेमाल करके, एआई एजेंट बनाने और उसे अपने एमसीपी बैकएंड से कनेक्ट करने का तरीका.
- ADK में पहले से मौजूद डेवलपर यूज़र इंटरफ़ेस (यूआई) को चलाने का तरीका, ताकि आप अपने कंट्रोल किए गए एजेंट के साथ इंटरैक्ट कर सकें.
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud Shell का ऐक्सेस
मुख्य सिद्धांत
- मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी): एमसीपी को एआई एजेंट के लिए "यूनिवर्सल यूएसबी-सी केबल" के तौर पर समझें. हर एआई मॉडल के लिए कस्टम एपीआई इंटिग्रेशन कोड लिखने के बजाय, एमसीपी एआई को आपके एंटरप्राइज़ डेटा टूल (जैसे, Knowledge Catalog और BigQuery) से सुरक्षित तरीके से कनेक्ट करने का एक स्टैंडर्ड तरीका उपलब्ध कराता है.
- Agent Development Kit (ADK): यह Google का एक फ़्लेक्सिबल ओपन-सोर्स फ़्रेमवर्क है. इसे एआई एजेंट के डेवलपमेंट को आसान बनाने के लिए डिज़ाइन किया गया है. यह एजेंट बनाने के लिए सॉफ़्टवेयर इंजीनियरिंग के सिद्धांतों का इस्तेमाल करता है. इससे आपको मुश्किल टूल को व्यवस्थित करने, स्टेट मैनेज करने, और टेस्टिंग और डिप्लॉयमेंट के लिए बिल्ट-इन डेवलपर यूज़र इंटरफ़ेस (यूआई) को आसानी से लॉन्च करने में मदद मिलती है.
2. सेटअप और ज़रूरी शर्तें
Cloud Shell शुरू करें
Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Google Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद टूलबार पर, Cloud Shell आइकॉन पर क्लिक करें:

इसे चालू करने और एनवायरमेंट से कनेक्ट करने में सिर्फ़ कुछ सेकंड लगेंगे. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, Google Cloud पर काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब में मौजूद सभी टास्क, ब्राउज़र में किए जा सकते हैं. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.
एनवायरमेंट शुरू करें
Cloud Shell खोलें और अपने प्रोजेक्ट के वैरिएबल सेट करें, ताकि यह पक्का किया जा सके कि सभी कमांड सही इंफ़्रास्ट्रक्चर को टारगेट कर रही हैं.
export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export REGION="us-central1"
चेकपॉइंट: क्या आपको फिर से शुरू करना है या फिर से बनाना है?
यह दूसरा हिस्सा है. इसलिए, आपके एजेंट को काम करने के लिए, पहले हिस्से का डेटा चाहिए. कृपया अपना रास्ता चुनें:
पाथ A: मैंने अभी पहला पार्ट पूरा किया है और मेरे संसाधन अब भी चल रहे हैं.
बढ़िया! वर्किंग डायरेक्ट्री पर जाएं और आगे की प्रोसेस के लिए तैयार रहें.
cd ~/devrel-demos/data-analytics/governance-context
पाथ B: मैंने पहला हिस्सा छोड़ दिया है या मैंने अपने संसाधन मिटा दिए हैं (साफ़ कर दिए हैं).
कोई बात नहीं! हमने यहां "फ़ास्ट-ट्रैक" कमांड ब्लॉक दिया है. इससे BigQuery डेटा लेक अपने-आप फिर से बन जाएगा. साथ ही, Knowledge Catalog के गवर्नेंस मेटाडेटा को ठीक उसी तरह लागू किया जाएगा जैसा हमने पहले भाग में किया था.
# 1. Clone the repo and navigate to the working directory
git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git
cd devrel-demos
git sparse-checkout set data-analytics/governance-context
cd data-analytics/governance-context
# 2. Rebuild the messy data lake with Terraform
cd terraform
terraform init
terraform apply -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve
# 3. Generate and apply Knowledge Catalog Aspects (Governance rules)
cd ..
chmod +x ./generate_payloads.sh ./apply_governance.sh
./generate_payloads.sh
./apply_governance.sh
3. MCP की मदद से बड़े पैमाने पर काम करना: डेटा कंट्रोल प्लेन बनाना
अब तक, आपने Gemini सीएलआई का इस्तेमाल करके, अपने गवर्नेंस लॉजिक की जांच कर ली है. यह रैपिड प्रोटोटाइपिंग के लिए बहुत अच्छा है. हालांकि, यह आपके निजी उपयोगकर्ता क्रेडेंशियल का इस्तेमाल करके स्थानीय तौर पर काम करता है.
किसी एंटरप्राइज़ एनवायरमेंट में, आपको डेटा कंट्रोल करने के लिए एक सेंट्रल सिस्टम की ज़रूरत होती है. इसे बनाने के लिए, हम डेटाबेस के लिए GenAI टूलबॉक्स का इस्तेमाल करेंगे. यह Google का आधिकारिक ओपन-सोर्स प्रोजेक्ट है. इस टूलबॉक्स में, पहले से बनाया गया एक एमसीपी सर्वर होता है. इसे खास तौर पर, एआई एजेंट को Google Cloud के डेटाबेस और Knowledge Catalog जैसी मेटाडेटा सेवाओं से सुरक्षित तरीके से कनेक्ट करने के लिए डिज़ाइन किया गया है.
इस टूलबॉक्स को Cloud Run पर एमसीपी सर्वर के तौर पर डिप्लॉय करके, हमें ये फ़ायदे मिलते हैं:
- सेंट्रलाइज़्ड आइडेंटिटी: एजेंट, आपके निजी उपयोगकर्ता खाते के तौर पर नहीं, बल्कि प्रतिबंधित सेवा खाते के तौर पर काम करता है.
- स्टैंडर्डाइज़ेशन: कोई भी क्लाइंट (ADK, Gemini, कस्टम ऐप्लिकेशन), स्टैंडर्ड एमसीपी प्रोटोकॉल का इस्तेमाल करके इस सर्वर से "प्लग इन" कर सकता है.
- स्कोप को कंट्रोल करना (कम से कम विशेषाधिकार): हम एलएलएम को BigQuery का ओपन-एंडेड ऐक्सेस नहीं देते हैं. हम उसे सबसे पहले Knowledge Catalog के मेटाडेटा कैटलॉग में नेविगेट करने के लिए मजबूर करते हैं.
टूल की परिभाषा कॉन्फ़िगर करना (tools.yaml)
जेन एआई टूलबॉक्स के लिए, डिसक्लोज़र वाली कॉन्फ़िगरेशन फ़ाइल tools.yaml की ज़रूरत होती है. इस फ़ाइल में sources (कनेक्ट करने की जगह) और tools (एआई को क्या करने की अनुमति है) के बारे में बताया गया है.
- सर्वर डायरेक्ट्री पर जाएं और कॉन्फ़िगरेशन फ़ाइल में अपना प्रोजेक्ट आईडी डालें:
cd ~/devrel-demos/data-analytics/governance-context/mcp_server
envsubst < tools.yaml > tools.tmp && mv tools.tmp tools.yaml
cat tools.yaml
यह स्निपेट, यहां दिए गए स्निपेट जैसा दिखना चाहिए. पुष्टि करें कि प्रोजेक्ट फ़ील्ड में अब आपका असली Google Cloud प्रोजेक्ट आईडी दिख रहा हो.
sources:
dataplex:
kind: dataplex
project: YOUR-PROJECT-ID
tools:
search_entries:
kind: dataplex-search-entries
source: dataplex
description: Search for entries in Knowledge Catalog.
lookup_entry:
kind: dataplex-lookup-entry
source: dataplex
description: Retrieve a specific entry from Knowledge Catalog.
search_aspect_types:
kind: dataplex-search-aspect-types
source: dataplex
description: Find aspect types relevant to a query.
toolsets:
dataplex-toolset:
- search_entries
- lookup_entry
- search_aspect_types
इन तीन टूल को तय करके, हम एआई को "रीड-ओनली" और "गवर्नेंस-फ़र्स्ट" मोड में काम करने के लिए मजबूर कर सकते हैं.
कॉन्फ़िगरेशन को सुरक्षित करना (Secret Manager)
एंटरप्राइज़ आर्किटेक्चर में, कॉन्फ़िगरेशन फ़ाइलों को सीधे तौर पर कंटेनर इमेज में कभी भी शामिल नहीं करना चाहिए. हम tools.yaml को Google Cloud Secret Manager में सुरक्षित तरीके से सेव करेंगे.
gcloud services enable secretmanager.googleapis.com
gcloud secrets create dataplex-tools-config --data-file=tools.yaml
कम से कम विशेषाधिकार (आईएम) लागू करना
इसके बाद, हम GenAI Toolbox MCP सर्वर के लिए एक खास सेवा खाता बनाते हैं. इस आइडेंटिटी के पास, सिर्फ़ Knowledge Catalog कैटलॉग को पढ़ने और BigQuery डेटा को ऐक्सेस करने के लिए ज़रूरी अनुमतियां होंगी.
export MCP_SA=mcp-sa
gcloud iam service-accounts create ${MCP_SA} \
--display-name="Service Account for Knowledge Catalog MCP"
export MCP_SERVICE_ACCOUNT="${MCP_SA}@${PROJECT_ID}.iam.gserviceaccount.com"
# Allow the server to read its own config from Secret Manager
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/secretmanager.secretAccessor"
# Allow the server to read Knowledge Catalog Metadata and BigQuery Data
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/dataplex.catalogViewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/bigquery.dataViewer"
एमसीपी सर्वर को Cloud Run पर डिप्लॉय करना
अब हम जेन एआई टूलबॉक्स को डिप्लॉय करते हैं. हम Google की पहले से बनी हुई कंटेनर इमेज (database-toolbox/toolbox) का इस्तेमाल करते हैं. साथ ही, रनटाइम के दौरान Secret Manager (--set-secrets) से अपने कॉन्फ़िगरेशन को माउंट करते हैं.
export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
gcloud run deploy governance-mcp \
--image=$IMAGE \
--service-account $MCP_SERVICE_ACCOUNT \
--region=$REGION \
--no-allow-unauthenticated \
--set-secrets="/app/tools.yaml=dataplex-tools-config:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080"
अब आपने एक मैनेज किया गया एपीआई बना लिया है! GenAI फ़्रंटएंड को सीधे डेटाबेस का ऐक्सेस देने के बजाय, यह Cloud Run यूआरएल से कनेक्ट होगा. एजेंट सिर्फ़ वही जानकारी देख सकता है जिसे यह टूलबॉक्स देखने की अनुमति देता है.
4. ADK की मदद से एजेंट का बैकएंड बनाना
आपने Cloud Run पर चलने वाला एक सुरक्षित और मैनेज किया गया डेटा कंट्रोल प्लेन (एमसीपी) बनाया हो. अब आपके एआई एजेंट को अपने लॉजिक को व्यवस्थित करने के लिए एक फ़्रेमवर्क की ज़रूरत होगी. जैसे, उपयोगकर्ता के इनपुट को प्रोसेस करना, यह तय करना कि एमसीपी सर्वर को कब कॉल करना है, और आउटपुट को फ़ॉर्मैट करना.
हम इस पूरे बॉयलरप्लेट कोड को शुरू से लिखने के बजाय, Google के Agent Development Kit (ADK) का इस्तेमाल करेंगे. ADK, कोड-फ़र्स्ट फ़्रेमवर्क है. यह आपके एजेंट लॉजिक को FastAPI बैकएंड में अपने-आप रैप कर देता है. इसके अलावा, इसमें पहले से मौजूद डेवलपर यूज़र इंटरफ़ेस (यूआई) होता है. इससे, एजेंट के फ़ैसले लेने की प्रोसेस और टूल कॉल को तुरंत देखा जा सकता है. इसके लिए, आपको पहले कस्टम फ़्रंटएंड बनाने की ज़रूरत नहीं होती.
एजेंट लॉजिक (agent.py) की जांच करना
इंफ़्रास्ट्रक्चर को कॉन्फ़िगर करने से पहले, आइए इस ऐप्लिकेशन के मुख्य हिस्से पर नज़र डालते हैं.
डायरेक्ट्री पर जाएं और agent.py के कॉन्टेंट को आउटपुट करें. यह फ़ाइल, आपके ADK डिप्लॉयमेंट का "ब्रेन" होती है.
cd ~/devrel-demos/data-analytics/governance-context/mcp_server
cat agent.py
कोड के स्ट्रक्चर को देखें. यह कम से कम बॉयलरप्लेट के साथ तीन ज़रूरी फ़ंक्शन करता है:
- MCPToolset इंटिग्रेशन: ADK, आपके नॉलेज कैटलॉग टूल के साथ इंटरैक्ट करने के लिए, कस्टम एचटीटीपी क्लाइंट लिखने के बजाय
MCPToolset(server_url=mcp_url)का इस्तेमाल करता है. यह आपके डिप्लॉय किए गए एमसीपी सर्वर सेtools.yamlडेफ़िनिशन को डाइनैमिक तरीके से फ़ेच करता है. साथ ही, उन्हें एलएलएम के लिए नेटिव फ़ंक्शन कॉल में बदलता है. - सिस्टम के निर्देश:
instructionsपैरामीटर में, गवर्नेंस के सख्त नियम शामिल होते हैं. इसमें वही लॉजिक इस्तेमाल किया जाता है जो हमने सीएलआईGEMINI.mdमें इस्तेमाल किया था. यह मॉडल को साफ़ तौर पर निर्देश देता है कि वह पहले चरण (मेटाडेटा लुकअप) से दूसरे चरण (डेटा क्वेरी) तक के तर्क वाले लूप को पूरा करे. - एजेंट ऑर्केस्ट्रेशन:
Agent(...)क्लास, Gemini मॉडल, सिस्टम प्रॉम्प्ट, और एमसीपी टूल को एक साथ जोड़ती है. डप्लॉय करने पर, ADK इस ऑब्जेक्ट को अपने-आप स्केलेबल FastAPI एंडपॉइंट में बदल देता है.
कामों को अलग-अलग करना: फ़्रंटएंड आइडेंटिटी को कॉन्फ़िगर करना
इस कोड को सुरक्षित तरीके से चलाने के लिए, हमें एजेंट को यह बताना होगा कि आपका एमसीपी सर्वर कहां है. हम यूआरएल को डाइनैमिक तरीके से बनाएंगे और इसे .env फ़ाइल में सेव करेंगे. ADK, रनटाइम के दौरान इस फ़ाइल को पढ़ेगा.
हम इस ऐप्लिकेशन के लिए, एक अलग आइडेंटिटी (dataplex-agent-sa) भी बनाएंगे. इससे यह पक्का किया जा सकेगा कि फ़्रंटएंड एजेंट के पास, बैकएंड गवर्नेंस सर्वर से अलग अनुमतियां हों.
एनवायरमेंट और पहचान को कॉन्फ़िगर करने के लिए, ये कमांड चलाएं:
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export MCP_SERVER_URL=https://governance-mcp-${PROJECT_NUMBER}.${REGION}.run.app/mcp
export AGENT_SA=knowledge-catalog-agent-sa
export AGENT_SERVICE_ACCOUNT="${AGENT_SA}@${PROJECT_ID}.iam.gserviceaccount.com"
gcloud iam service-accounts create ${AGENT_SA} \
--display-name="Service Account for Knowledge Catalog Agent "
रनटाइम वैरिएबल कॉन्फ़िगर करना
ADK फ़्रेमवर्क, कॉन्टेक्स्ट को समझने के लिए एनवायरमेंट वैरिएबल पर निर्भर करता है. हमें प्रोजेक्ट आईडी और क्षेत्र को साफ़ तौर पर सेट करना होगा. साथ ही, Gemini Enterprise Agent Engine के इस्तेमाल को चालू करना होगा. हम इन्हें एक ही .env फ़ाइल में जोड़ते हैं.
echo MCP_SERVER_URL=$MCP_SERVER_URL > .env
echo GOOGLE_GENAI_USE_VERTEXAI=1 >> .env
echo GOOGLE_CLOUD_PROJECT=$PROJECT_ID >> .env
echo GOOGLE_CLOUD_LOCATION=$REGION >> .env
अनुमतियां देना
एजेंट, भले ही एमसीपी सर्वर को गवर्नेंस से जुड़ी जांचों की ज़िम्मेदारी सौंपता हो, लेकिन उसे काम करने के लिए बुनियादी अनुमतियों की ज़रूरत होती है. हम सिर्फ़ दो भूमिकाएं असाइन करते हैं:
- Gemini Enterprise Agent Engine का इस्तेमाल करने वाला व्यक्ति: आम बोलचाल की भाषा में जवाब जनरेट करने के लिए, Gemini मॉडल को चालू करता है.
- Cloud Run Invoker: इसका इस्तेमाल, एमसीपी सर्वर एपीआई को सुरक्षित तरीके से कॉल करने के लिए किया जाता है. इसे BigQuery या Knowledge Catalog का ऐक्सेस सीधे तौर पर नहीं मिलता!
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/aiplatform.user"
gcloud run services add-iam-policy-binding governance-mcp \
--region=$REGION \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/run.invoker"
Cloud Run पर डिप्लॉय करें
आखिर में, हम फ़ुल स्टैक को Cloud Run पर डिप्लॉय करते हैं.
हम uvx का इस्तेमाल करते हैं, ताकि ADK टूल को मैन्युअल तरीके से डिपेंडेंसी इंस्टॉल किए बिना चलाया जा सके. नीचे दिए गए निर्देश से, आपके agent.py लॉजिक को पैकेज किया जाता है. साथ ही, एक कंटेनर इमेज बनाई जाती है, आपका सेवा खाता डाला जाता है, और FastAPI सर्वर लॉन्च किया जाता है. --with_ui फ़्लैग जोड़ने पर, डीबग करने के लिए ADK Web Playground भी बंडल हो जाता है.
इस कमांड से कंटेनर बनाया जाता है और उसे डिप्लॉय किया जाता है. इसमें 1 से 3 मिनट लग सकते हैं.
uvx --from google-adk \
adk deploy cloud_run \
--project=$PROJECT_ID \
--region=$REGION \
--service_name=knowledge-catalog-agent \
--with_ui \
. \
-- \
--service-account=$AGENT_SERVICE_ACCOUNT \
--allow-unauthenticated
यह कमांड पूरी होने के बाद, सेवा का यूआरएल (e.g., https://dataplex-agent-xyz.run.app) दिखेगा. इस लिंक पर क्लिक करके, जेन एआई चैट इंटरफ़ेस खोलें.

एंड-टू-एंड आर्किटेक्चरल फ़्लो
आपने सिस्टम को सेट अप कर लिया है. जब कोई उपयोगकर्ता ADK के यूज़र इंटरफ़ेस (यूआई) से इंटरैक्ट करता है, तो यह क्रम होता है:
- उपयोगकर्ता, ADK एजेंट (Dev UI) में कोई प्रॉम्प्ट सबमिट करता है.
- एडीके एजेंट (agent.py), इनपुट को प्रोसेस करता है और Gemini मॉडल को कॉल करता है.
- Gemini को लगता है कि इसके लिए कॉन्टेक्स्ट की ज़रूरत है. इसलिए, वह MCP सर्वर से Knowledge Catalog टूल को एक्ज़ीक्यूट करने के लिए कहता है.
- एमसीपी सर्वर, नॉलेज कैटलॉग के गवर्नेंस से जुड़े नियमों को लागू करता है और मेटाडेटा दिखाता है.
- Gemini, मेटाडेटा के आधार पर भरोसेमंद जवाब तैयार करता है और उसे उपयोगकर्ता को दिखाता है.
5. Enterprise Agent को टेस्ट करना
अब आपका एजेंट लाइव हो गया है. इसलिए, आइए उन गवर्नेंस के उदाहरणों पर फिर से नज़र डालें जिनकी जांच हमने पहले सीएलआई की मदद से की थी. लॉजिक वही रहता है, लेकिन अब आपको डिप्लॉय किए गए ADK वेब प्लेग्राउंड के साथ इंटरैक्ट करना है. यह इंटरनल स्टेट और टूल के एक्ज़ीक्यूशन को दिखाता है.
- ऑर्केस्ट्रेशन: Cloud Run पर चल रहा ADK एजेंट, आपका टेक्स्ट मैसेज पाता है.
- टूल राउटिंग: Gemini को पता चलता है कि आपके सवाल के लिए डेटा कॉन्टेक्स्ट की ज़रूरत है. इसलिए, वह अनुरोध को एमसीपी सर्वर पर भेज देता है.
- गवर्नेंस की जांच: MCP सर्वर (जो अलग Cloud Run इंस्टेंस पर चल रहा है) Knowledge Catalog से, खास पहलू के टाइप के बारे में क्वेरी करता है.
- सिंथेसिस: Gemini को काम का मेटाडेटा भेजा जाता है, ताकि वह फ़ाइनल जवाब जनरेट कर सके.
गवर्नेंस लॉजिक की पुष्टि करना
अपने ब्राउज़र में, पिछले चरण (e.g., https://dataplex-agent-xyz.run.app) में जनरेट किया गया सेवा का यूआरएल खोलें. यह प्रॉम्प्ट चिपकाएं:
"My dashboard needs to show what's happening right now with our ad spend. I can't wait for the overnight load. What do you recommend?"
डेवलपर यूज़र इंटरफ़ेस (यूआई) में, एजेंट के लॉजिक की प्रोसेस देखें:
- इरादे की पहचान करना: एजेंट, "अभी" और "रात भर इंतज़ार नहीं कर सकता" को पार्स करता है.
- मेटाडेटा लुकअप: यह MCP टूल
search_aspect_typesको कॉल करता है. यह उन डेटा ऐसेट को खोजता है जिनमेंupdate_frequencyपहलू को DAILY या MONTHLY के बजाय REALTIME या STREAMING पर सेट किया गया है. - चुना गया: इससे पता चलता है कि टेबल
mkt_realtime_campaign_performanceइन शर्तों को पूरा करती है. वहीं,fin_monthly_closing_internal(अच्छी क्वालिटी का होने के बावजूद) आपके अनुरोध के लिए बहुत धीमा है. - जवाब: एजेंट, रीयल-टाइम टेबल का सुझाव देता है.

यह ज़रूरी क्यों है:
इस गवर्नेंस मेटाडेटा के बिना, एलएलएम शायद fin_monthly_closing_internal टेबल का सुझाव देता. इसकी वजह यह है कि इसमें "ad_spend" नाम का कॉलम है. हालांकि, एलएलएम इस बात को अनदेखा कर देता कि यह डेटा 24 घंटे पुराना है. आपके मेटाडेटा कॉन्टेक्स्ट की वजह से, कारोबार से जुड़ी गड़बड़ी नहीं हुई.
"बोर्ड मीटिंग" प्रॉम्प्ट को भी टेस्ट किया जा सकता है. इससे यह देखा जा सकता है कि डेटा प्रॉडक्ट टियर के आधार पर, एजेंट अलग-अलग टेबल पर कैसे स्विच करता है:
"We are preparing the deck for an internal Board of Directors meeting next week. I need the numbers to be absolutely finalized, trustworthy, and kept strictly confidential. Which table is safe to use?"
6. व्यवस्थित करें
इस कोडलैब में इस्तेमाल की गई संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाने के लिए, पहले और दूसरे पार्ट में बनाए गए सभी इन्फ़्रास्ट्रक्चर को मिटाने के लिए यह तरीका अपनाएं.
डेटा लेक (Terraform) को डिस्ट्रॉय करना
BigQuery टेबल, डेटासेट, और Knowledge Catalog के पहलू की परिभाषाओं को हटाने के लिए, Terraform का इस्तेमाल करें.
cd ~/devrel-demos/data-analytics/governance-context/terraform
terraform destroy -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve
Cloud Run की सेवाएं मिटाना
कंटेनर चलाने के लिए इस्तेमाल किए जा रहे कंप्यूट संसाधनों को हटाएं, ताकि उनकी बिलिंग बंद की जा सके.
gcloud run services delete governance-mcp --region=$REGION --quiet
gcloud run services delete knowledge-catalog-agent --region=$REGION --quiet
बिल्ड आर्टफ़ैक्ट और स्टेजिंग स्टोरेज में जगह बनाएं
uvx का इस्तेमाल करके ADK एजेंट को डिप्लॉय करने पर, सिस्टम ने अपने-आप एक कंटेनर इमेज बनाई और आपके सोर्स कोड को Cloud Storage के अस्थायी बकेट में अपलोड कर दिया. Cloud Run सेवा को मिटाने के बाद भी ये आर्टफ़ैक्ट बने रहते हैं. साथ ही, इनके लिए स्टोरेज का शुल्क लगता रहता है.
Artifact Registry रिपॉज़िटरी और Cloud Storage के स्टैगिंग बकेट को हटाएं:
# Delete the repository used for the agent build
gcloud artifacts repositories delete cloud-run-source-deploy \
--location=$REGION \
--quiet
# Delete the staging bucket created by Cloud Run source deploy
gcloud storage rm --recursive gs://run-sources-${PROJECT_ID}-${REGION}
पहचान, अनुमतियां, और सीक्रेट मिटाना
सबसे पहले, IAM नीति के बाइंडिंग हटाएं, ताकि आपके प्रोजेक्ट के IAM पेज में "टॉम्बस्टोन" एंट्री (अनाथ रिकॉर्ड) न रहें. इसके बाद, सेवा खातों और कॉन्फ़िगरेशन के सीक्रेट मिटाएं.
# Remove IAM roles granted to the MCP Service Account
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/secretmanager.secretAccessor" --quiet
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/dataplex.catalogViewer" --quiet
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/bigquery.dataViewer" --quiet
# Remove IAM roles granted to the Agent Service Account
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/aiplatform.user" --quiet
# Delete the Service Accounts
gcloud iam service-accounts delete $MCP_SERVICE_ACCOUNT --quiet
gcloud iam service-accounts delete $AGENT_SERVICE_ACCOUNT --quiet
# Delete the Secret Manager entry
gcloud secrets delete dataplex-tools-config --quiet
स्थानीय कॉन्फ़िगरेशन हटाना
आखिर में, Cloud Shell में लोकल कॉन्फ़िगरेशन फ़ाइलों और एनवायरमेंट वैरिएबल को मिटाएं.
# Uninstall the Gemini CLI extension (installed in Part 1)
gemini extensions uninstall dataplex
# Remove local repository files and unset variables
cd ~
rm -rf ~/devrel-demos
unset MCP_SERVER_URL
unset MCP_SERVICE_ACCOUNT
unset AGENT_SERVICE_ACCOUNT
7. बधाई हो!
आपने पूरी तरह से काम करने वाले, गवर्नेंस के बारे में जानकारी रखने वाले जेन एआई एजेंट को डिप्लॉय कर लिया है.
दो हिस्सों वाले इस कोडलैब में, आपने प्रॉम्प्ट इंजीनियरिंग के सामान्य तरीके से आगे बढ़कर, एक मज़बूत और प्रोडक्शन के लिए तैयार आर्किटेक्चर लागू किया. डेटा को मैनेज करने को GenAI के लिए ज़रूरी शर्त के तौर पर इस्तेमाल करके, आपने एक व्यवस्थित तरीका अपनाया है. इससे मॉडल को बिना पुष्टि किए गए या गलत जानकारी वाले डेटा को ऐक्सेस करने से रोका जा सकता है.
अहम जानकारी
- मेटाडेटा के ज़रिए एआई से सटीक जवाब पाना: कॉलम के नामों के आधार पर सही टेबल का अनुमान लगाने के लिए एलएलएम पर भरोसा करने के बजाय, आपने डेटाबेस के लिए GenAI टूलबॉक्स का इस्तेमाल करके, तर्क देने की प्रोसेस को बेहतर बनाया. सिर्फ़ तीन नॉलेज कैटलॉग टूल (
search_aspect_types,search_entries,lookup_entry) को साफ़ तौर पर दिखाने से, मॉडल को जवाब तैयार करने से पहले डेटा सर्टिफ़िकेट की पुष्टि करनी पड़ी. - डिकपल्ड आर्किटेक्चर (एमसीपी): Cloud Run पर मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) सर्वर को डिप्लॉय करके, आपने डेटा गवर्नेंस के नियमों को एक स्टैंडर्ड एपीआई में बदल दिया है. फ़्रंटएंड एजेंट में डेटाबेस लॉजिक शामिल करने की ज़रूरत नहीं होती. उसे सिर्फ़ एमसीपी स्टैंडर्ड के ज़रिए कम्यूनिकेट करना होता है. इसका मतलब है कि आने वाले समय में, किसी भी एआई मॉडल या क्लाइंट को एक ही बैकएंड में प्लग किया जा सकता है.
- ज़िम्मेदारियों का बंटवारा: आपने IAM आइडेंटिटी को अलग करके, कम से कम ज़रूरी अनुमतियों के सिद्धांत को लागू किया है. उपयोगकर्ता के लिए उपलब्ध एडीके एजेंट, मॉडल इनवोकेशन और एपीआई राउटिंग के लिए सीमित अनुमतियों के साथ काम करता है. वहीं, बैकएंड एमसीपी सर्वर, नॉलेज कैटलॉग क्वेरी और BigQuery से डेटा पाने की प्रोसेस को सुरक्षित तरीके से मैनेज करता है.
- कोड-फ़र्स्ट एजेंट ऑर्केस्ट्रेशन: आपने Google एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके, अपने Python एजेंट लॉजिक को तुरंत स्केलेबल FastAPI बैकएंड में रैप किया. साथ ही, इसके बिल्ट-इन डेवलपर यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, एजेंट के इंटरनल टूल के एक्ज़ीक्यूशन को विज़ुअलाइज़ और डीबग किया.
आगे क्या करना है?
- Knowledge Catalog फ़ाउंडेशनल डेटा गवर्नेंस कोडलैब: एआई लेयर जोड़ने से पहले, Knowledge Catalog में डेटा को मैनेज करने के बुनियादी सिद्धांतों के बारे में जानें.
- नॉलेज कैटलॉग टूल का दस्तावेज़: इस लैब में इस्तेमाल किए गए, पहले से बने नॉलेज कैटलॉग टूल और एक्सटेंशन का आधिकारिक दस्तावेज़ देखें.
- Gemini CLI एक्सटेंशन का इस्तेमाल शुरू करना: अपने GenAI एजेंट को और भी ज़्यादा सुविधाएं देने के लिए, अपनी पसंद के मुताबिक एक्सटेंशन बनाने का तरीका जानें.
- एमसीपी के बारे में ज़्यादा जानें: एमसीपी के आधिकारिक स्पेसिफ़िकेशन देखें. इससे आपको यह समझने में मदद मिलेगी कि अपने एंटरप्राइज़ के इंटरनल एपीआई के लिए, कस्टम सर्वर कैसे बनाए जाते हैं.