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

आपको क्या सीखने को मिलेगा
- मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) का इस्तेमाल करके, यह तय करना कि एआई एजेंट, Google Cloud के डेटा के साथ कैसे इंटरैक्ट करें.
- एडीके एजेंट, Google के मैनेज किए गए नॉलेज कैटलॉग एमसीपी सर्वर से कैसे कनेक्ट होता है.
- शेयर की गई एजेंट स्किल से, गवर्नेंस के नियमों को डाइनैमिक तौर पर लोड करने का तरीका.
- अपने एजेंट को Cloud Run पर डिप्लॉय करने और ADK के बिल्ट-इन वेब प्लेग्राउंड को चलाने का तरीका.
आपको किन चीज़ों की ज़रूरत होगी
- बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट.
- Google Cloud Shell का ऐक्सेस.
- Cloud Run, IAM सेवा खातों, और Python के बारे में बुनियादी जानकारी.
- पहले हिस्से में बनाए गए BigQuery डेटासेट और Knowledge Catalog के पहलू. (अगर आपने उन्हें मिटा दिया है, तो चिंता न करें. हम यहां एक फ़ास्ट-ट्रैक स्क्रिप्ट दे रहे हैं, ताकि आप उन्हें फिर से बना सकें!)
मुख्य सिद्धांत
- मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी): एमसीपी को एआई एजेंट के लिए "यूनिवर्सल यूएसबी-सी केबल" के तौर पर समझें. हर एआई मॉडल के लिए कस्टम एपीआई इंटिग्रेशन कोड लिखने के बजाय, एमसीपी एआई को आपके एंटरप्राइज़ डेटा टूल (जैसे, Knowledge Catalog और BigQuery) से सुरक्षित तरीके से कनेक्ट करने का एक स्टैंडर्ड तरीका उपलब्ध कराता है.
- Agent Development Kit (ADK): यह Google का एक फ़्लेक्सिबल और ओपन-सोर्स फ़्रेमवर्क है. इसे एआई एजेंट के एंड-टू-एंड डेवलपमेंट को आसान बनाने के लिए डिज़ाइन किया गया है. यह एजेंट बनाने के लिए, सॉफ़्टवेयर इंजीनियरिंग के सिद्धांतों का इस्तेमाल करता है. इससे आपको मुश्किल टूल को व्यवस्थित करने, स्थिति को मैनेज करने, और टेस्टिंग और डिप्लॉयमेंट के लिए, डेवलपर के लिए उपलब्ध यूज़र इंटरफ़ेस (यूआई) को आसानी से लॉन्च करने में मदद मिलती है.
- Gemini Enterprise Agent Platform(GEAP): यह एंटरप्राइज़-ग्रेड का होस्टिंग और ऑर्केस्ट्रेशन एनवायरमेंट है. इसका इस्तेमाल, Google Cloud पर एआई एजेंट डिप्लॉय करने के लिए किया जाता है.
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"
ज़रूरी एपीआई चालू करना
अपने डेटा फ़ाउंडेशन को मैनेज करने, Vertex AI मॉडल चलाने, और Cloud Run पर ADK एजेंट को होस्ट करने के लिए, Google Cloud के ज़रूरी एपीआई चालू करें.
gcloud services enable \
dataplex.googleapis.com \
bigquery.googleapis.com \
aiplatform.googleapis.com \
run.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com
चेकपॉइंट: क्या आपको फिर से शुरू करना है या फिर से बनाना है?
यह दूसरा हिस्सा है. इसलिए, आपके एजेंट को काम करने के लिए, पहले हिस्से का डेटा चाहिए. कृपया अपना रास्ता चुनें:
पाथ A: मैंने अभी पहला हिस्सा पूरा किया है और मेरे संसाधन अब भी चल रहे हैं
बढ़िया! वर्किंग डायरेक्ट्री पर जाएं और आगे की प्रोसेस के लिए तैयार रहें.
cd ~/devrel-demos/data-analytics/governance-context
पाथ B: मैंने पहला हिस्सा छोड़ दिया है या मैंने अपने संसाधन मिटा दिए हैं (साफ़ कर दिए हैं)
कोई बात नहीं! हमने यहां "फ़ास्ट-ट्रैक" कमांड ब्लॉक दिया है. इससे BigQuery डेटा लेक अपने-आप फिर से बन जाएगा. साथ ही, पहलू का टाइप रजिस्टर हो जाएगा और गवर्नेंस मेटाडेटा ठीक उसी तरह लागू हो जाएगा जैसा हमने पहले भाग में किया था.
# 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 BigQuery datasets and tables
chmod +x ./setup_bq_tables.sh
./setup_bq_tables.sh
# 3. Register the Knowledge Catalog aspect type
gcloud dataplex aspect-types create official-data-product-spec \
--location="${REGION}" \
--project="${PROJECT_ID}" \
--metadata-template-file-name="aspect_template.json"
# 4. Generate and apply aspects (governance rules)
chmod +x ./generate_payloads.sh ./apply_governance.sh
./generate_payloads.sh
./apply_governance.sh
3. सेंट्रलाइज़्ड डेटा कंट्रोल प्लेन (मैनेज किया गया एमसीपी)
किसी एंटरप्राइज़ एनवायरमेंट में, आपको सुरक्षित और केंद्रीकृत डेटा कंट्रोल प्लेन की ज़रूरत होती है. Cloud Run पर कस्टम एमसीपी सर्वर कंटेनर बनाने और डिप्लॉय करने के बजाय, हम अपने एजेंट को सीधे Google के मैनेज किए जा रहे Knowledge Catalog MCP Server से कनेक्ट करेंगे.
इस मैनेज किए गए एंडपॉइंट का इस्तेमाल करके, हमें ये फ़ायदे मिलते हैं:
- रखरखाव की ज़रूरत नहीं: एमसीपी सर्वर के लिए कंटेनर, स्केलिंग या पैचिंग को मैनेज करने की ज़रूरत नहीं होती.
- स्टैंडर्डाइज़ेशन: एजेंट, मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एसएसई ट्रांसपोर्ट) का इस्तेमाल करके, स्टैंडर्ड और सुरक्षित Google API एंडपॉइंट से कनेक्ट होता है.
- कंट्रोल किया गया स्कोप: एमसीपी सर्वर सिर्फ़ ज़रूरी मेटाडेटा टूल (
search_entries,lookup_context,lookup_entry) दिखाता है. इससे, सिर्फ़ पढ़ने की अनुमति मिलती है और गवर्नेंस को प्राथमिकता दी जाती है.
Google के मैनेज किए गए Knowledge Catalog एमसीपी सर्वर को इस सुरक्षित यूआरएल से ऐक्सेस किया जा सकता है:
https://dataplex.googleapis.com/mcp
यह Google का पहला एपीआई है. इसलिए, एजेंट को आईडी टोकन के बजाय, स्टैंडर्ड Google Cloud OAuth2 ऐक्सेस टोकन का इस्तेमाल करके पुष्टि करनी होगी. हम पुष्टि करने की इस प्रोसेस को अपने ऐप्लिकेशन कोड में अपने-आप मैनेज करेंगे.
4. ADK की मदद से एजेंट का बैकएंड बनाना
आपके पास सुरक्षित और मैनेज किया गया डेटा कंट्रोल प्लेन होता है. अब आपके एआई एजेंट को अपने लॉजिक को व्यवस्थित करने के लिए एक फ़्रेमवर्क की ज़रूरत होगी. जैसे, उपयोगकर्ता के इनपुट को प्रोसेस करना, यह तय करना कि एमसीपी सर्वर को कब कॉल करना है, और आउटपुट को फ़ॉर्मैट करना.
हम Google के एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करेंगे. एडीके, कोड-फ़र्स्ट फ़्रेमवर्क है. यह आपके एजेंट लॉजिक को अपने-आप FastAPI बैकएंड में रैप कर देता है. साथ ही, तुरंत टेस्टिंग के लिए एक वेब इंटरफ़ेस उपलब्ध कराता है.
Cloud Shell Editor में एजेंट कोड खोलना
पूरी फ़ाइल को टर्मिनल में डंप करने के बजाय, इसे Cloud Shell Editor में खोलें, ताकि कोड की जांच, उसमें बदलाव, और उसे आसानी से समझा जा सके.
टर्मिनल में यहां दिया गया निर्देश चलाएं और एडिटर में कोड स्ट्रक्चर देखें. इस ऐप्लिकेशन को Google के Agent Development Kit (ADK) का इस्तेमाल करके बनाया गया है:
cd ~/devrel-demos/data-analytics/governance-context/mcp_server
# Copy the governance skill directory inside the application bundle so it packages during Cloud Run deployment
mkdir -p skills
cp -r ../.agents/skills/knowledge-catalog-governance skills/
cloudshell edit agent.py
(ध्यान दें: agent.py में सबसे ऊपर बॉयलरप्लेट कोड होता है. इसका इस्तेमाल Google Cloud OAuth2 की पुष्टि करने और टोकन रीफ़्रेश करने के लिए किया जाता है. इससे यह पक्का किया जाता है कि एजेंट, Google के मैनेज किए गए Knowledge Catalog API के साथ सुरक्षित तरीके से कम्यूनिकेट कर सके).
1. नेटिव स्किल लोड करने की सुविधा
बेहतरीन तरीके से ऑप्टिमाइज़ किया गया एजेंट बनाने के लिए, हम एआई डेवलपमेंट किट (एडीके) के नेटिव load_skill_from_dir का इस्तेमाल करके, बाहरी एजेंट स्किल डायरेक्ट्री से गवर्नेंस के निर्देश लोड करते हैं. इस तरीके से, प्रोग्रेसिव डिसक्लोज़र को चालू किया जा सकता है:
- L1 मेटाडेटा: एजेंट, स्टार्टअप के समय सिर्फ़ कौशल का नाम और ब्यौरा लोड करता है. इस कम से कम कॉन्टेक्स्ट की मदद से, एलएलएम यह पहचान कर पाता है कि स्किल का इस्तेमाल कब करना है. इसके लिए, उसे पहले से बड़ी संख्या में टोकन इस्तेमाल करने की ज़रूरत नहीं पड़ती.
- L2 निर्देश:
SKILL.mdमें मौजूद दिशा-निर्देशों का सेट, सिर्फ़ तब रनटाइम पर डाइनैमिक तौर पर फ़ेच किया जाता है, जब मॉडल यह तय करता है कि यह काम का है.
base_dir = Path(__file__).parent
governance_skill = load_skill_from_dir(
base_dir / "skills" / "knowledge-catalog-governance"
)
# Bundle the skill and MCP tools together into a SkillToolset
governance_skill_toolset = skill_toolset.SkillToolset(
skills=[governance_skill],
additional_tools=[tools]
)
2. एजेंट ऑर्केस्ट्रेशन
ADK की मदद से, कई एजेंट को एक साथ जोड़कर, एजेंट के जटिल व्यवहारों को व्यवस्थित किया जा सकता है. हम SequentialAgent वर्कफ़्लो तय करते हैं, जिसमें दो विशेषज्ञ एजेंट शामिल होते हैं:
governance_researcher:इसमेंgovernance_skill_toolsetऔर नॉलेज कैटलॉग एमसीपीtoolsकी सुविधा है. यह जांच करता है कि क्वेरी, डेटा कैटलॉग और अनुपालन के दायरे में आती है या नहीं. इसके बाद, यह Knowledge Catalog से क्वेरी करता है. इसके लिए, यह सिस्टम के निर्देशों में डाले गए एनवायरमेंट वैरिएबल का इस्तेमाल करता है.compliance_formatter:यह फ़ंक्शन, खोज के नतीजों के रॉ JSON मेटाडेटा को साफ़-सुथरे जवाब में बदलने के लिए ज़िम्मेदार होता है. इसके अलावा, अगर अनुरोध स्कोप से बाहर है, तो यह स्कोप की सीमाओं के बारे में साफ़ तौर पर बताता है.
# 1. Researcher Agent (has access to the encapsulated SkillToolset)
governance_researcher = LlmAgent(
name="governance_researcher",
model=model_name,
description="Dynamically interprets metadata schema (Booleans/Enums) and searches for assets using strict syntax.",
instruction=f"""
You are a governance researcher. Your job is to verify Knowledge Catalog metadata rules and find compliant assets for the user's query.
YOUR ACTIVE ENVIRONMENT CONTEXT:
- Google Cloud Project ID: {project_id}
- Location (Region): {location}
YOUR WORKFLOW:
1. First, check if the user query is related to data analytics assets, database tables, or data compliance.
- If YES: Call `load_skill` with `name="knowledge-catalog-governance"` to load the rules, then use search/lookup tools to locate a certified compliant table.
- If NO (e.g., general chit-chat, unrelated tasks): Skip skill loading and output a JSON object indicating it is out of scope:
{"error": "out_of_scope", "message": "The query does not pertain to data catalog search or governance compliance."}
2. Populate the required projectId and location parameters in tool calls with the active environment parameters.
3. Return the verified table's metadata in JSON format as your final research output.
""",
tools=[governance_skill_toolset, tools],
output_key="research_data"
)
# 2. Formatter Agent (formats the output or explains out-of-scope errors)
compliance_formatter = LlmAgent(
name="compliance_formatter",
model=model_name,
description="Formats the JSON research data into a helpful response for the user.",
instruction="""
You are the **Intelligent Data Governance Specialist**.
Your job is to explain the findings of the governance research clearly to the user.
**YOUR GOAL:**
1. If the researcher found a matching table (valid JSON with table metadata):
- Explain the logical connection between the User's Request, the Governance Schema (translated criteria), and the Recommended Table.
- Use the following RESPONSE TEMPLATE:
- **Analysis:** "I analyzed the metadata schema and translated your request into the following technical criteria:..."
- **Recommendation:** "Based on this, I recommend the following table:"
- **Table:** [Insert Table Name]
- **Description:** [Insert Table Description]
- **Verification:** "This asset is a verified match because: [Explain the verification details]."
2. If the researcher returned an 'out_of_scope' error or no matching tables were found:
- Apologize politely and explain that no data asset currently matches the strict governance criteria defined in `official-data-product-spec`.
- Clearly state what domain of questions this agent is certified to answer (e.g., Data Catalog Search and Data Governance compliance).
"""
)
# 3. Orchestrated Workflow (Exported as root_agent)
root_agent = SequentialAgent(
name="governance_workflow",
description="Workflow to learn metadata rules, search with strict syntax, and recommend assets.",
sub_agents=[
governance_researcher,
compliance_formatter,
]
)
रनटाइम वैरिएबल कॉन्फ़िगर करना
एजेंट को चलाने के लिए, हमें उसे यह बताना होगा कि आपका मैनेज किया गया एमसीपी सर्वर कहां है. साथ ही, हमें उसके प्रोजेक्ट और क्षेत्र को कॉन्फ़िगर करना होगा. हम इन वैरिएबल को .env फ़ाइल में सेव करेंगे. ADK, रनटाइम के दौरान इस फ़ाइल को पढ़ेगा.
.env फ़ाइल जनरेट करने के लिए, यह कमांड चलाएं. ध्यान दें कि MCP_SERVER_URL सीधे तौर पर, Google के मैनेज किए गए Knowledge Catalog API एंडपॉइंट पर ले जाता है:
export MCP_SERVER_URL="https://dataplex.googleapis.com/mcp"
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
5. एजेंट को स्थानीय तौर पर चलाएं और उसकी जांच करें
अपने एजेंट को क्लाउड पर डिप्लॉय करने से पहले, आपको उसे Cloud Shell में स्थानीय तौर पर चलाना चाहिए. इससे आपको यह पुष्टि करने में मदद मिलेगी कि वह सही तरीके से काम कर रहा है. एजेंट कई Python पैकेज पर निर्भर करता है. इनमें Google Cloud Logging और ADK लाइब्रेरी शामिल हैं. इसलिए, हम इन डिपेंडेंसी को इंस्टॉल करने के लिए, लोकल वर्चुअल एनवायरमेंट सेट अप करेंगे.
Cloud Shell में स्थानीय तौर पर चलाने पर, एजेंट आपके चालू Google Cloud उपयोगकर्ता क्रेडेंशियल का इस्तेमाल अपने-आप करता है. इसलिए, इसके पास Vertex AI और Knowledge Catalog को ऐक्सेस करने के लिए ज़रूरी अनुमतियां पहले से ही होती हैं.
mcp_serverडायरेक्ट्री पर जाएं, वर्चुअल एनवायरमेंट बनाएं, और डिपेंडेंसी इंस्टॉल करें:
cd ~/devrel-demos/data-analytics/governance-context/mcp_server
# Create a virtual environment using uv
uv venv
source .venv/bin/activate
# Install the dependencies listed in requirements.txt
uv pip install -r requirements.txt
- अपने टर्मिनल में इंटरैक्टिव चैट सेशन शुरू करें:
adk run .
- सेशन शुरू होने के बाद, आपको एक सूचना दिखेगी. एजेंट के गवर्नेंस लॉजिक की जांच करने के लिए, कोई क्वेरी टाइप करें:
I need the Q1 revenue summary for our internal board meeting.
एजेंट आपके अनुरोध को प्रोसेस करेगा. इसके बाद, मैनेज किए गए एमसीपी सर्वर के ज़रिए नॉलेज कैटलॉग से क्वेरी करेगा. इसके बाद, टर्मिनल में सीधे तौर पर सुझाव और उसके पीछे की वजह बताएगा.
- इंटरैक्टिव सेशन से बाहर निकलने के लिए,
exitयाquitटाइप करें याCtrl+Cदबाएं. सेशन से बाहर निकलने के बाद, वर्चुअल एनवायरमेंट बंद किया जा सकता है:
deactivate
6. एजेंट को प्रोडक्शन में डिप्लॉय करना
आपने एजेंट की पुष्टि स्थानीय तौर पर कर ली है. अब इसे प्रोडक्शन के लिए Google Cloud पर डिप्लॉय किया जा सकता है.
सेवा खाता बनाना
सुरक्षा के लिए, डिप्लॉय किए गए एजेंट को आपके निजी क्रेडेंशियल के तहत नहीं चलना चाहिए. हम एजेंट के लिए एक अलग आइडेंटिटी (knowledge-catalog-agent-sa) बनाएंगे. यह कम से कम अधिकारों के सिद्धांत के मुताबिक होगी.
सेवा खाता बनाने के लिए, ये कमांड चलाएं:
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"
मंज़ूरी दें
भले ही, एजेंट एमसीपी सर्वर को गवर्नेंस की जांच करने की ज़िम्मेदारी सौंपता हो, लेकिन उसे काम करने के लिए बुनियादी अनुमतियों की ज़रूरत होती है.
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/aiplatform.user"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/dataplex.catalogAdmin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/bigquery.dataViewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/mcp.toolUser"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/viewer"
Cloud Run पर डिप्लॉय करना
आखिर में, हम एजेंट को Cloud Run पर डिप्लॉय करते हैं. नीचे दी गई कमांड, आपकी मौजूदा डायरेक्ट्री में मौजूद Dockerfile का इस्तेमाल करके कंटेनर इमेज बनाती है. साथ ही, इसे Artifact Registry पर अपलोड करती है और Cloud Run पर डिप्लॉय करती है. इसमें 1 से 3 मिनट लग सकते हैं.
gcloud run deploy knowledge-catalog-agent \
--source . \
--project=$PROJECT_ID \
--region=$REGION \
--service-account=$AGENT_SERVICE_ACCOUNT \
--allow-unauthenticated \
--clear-base-image \
--labels created-by=adk
यह कमांड पूरी होने के बाद, यह सेवा का यूआरएल (जैसे, https://knowledge-catalog-agent-xyz.run.app) आउटपुट करेगी. इस लिंक पर क्लिक करके, जनरेटिव एआई चैट इंटरफ़ेस खोलें.

7. लाइव एजेंट की सुविधा को टेस्ट करना
अब आपका एजेंट लाइव हो गया है. आइए, अब हम गवर्नेंस के उदाहरणों को टेस्ट करते हैं. लॉजिक पहले जैसा ही है, लेकिन अब आपको डिप्लॉय किए गए ADK Web Playground के साथ इंटरैक्ट करना है. यह इंटरनल स्टेट और टूल के एक्ज़ीक्यूशन को दिखाता है.
अपने ब्राउज़र में, पिछले चरण में जनरेट किया गया सेवा का यूआरएल खोलें. उदाहरण के लिए, https://knowledge-catalog-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_entries फ़ंक्शन को इस क्वेरी के साथ कॉल करता है:
[PROJECT_ID].us-central1.official-data-product-spec.update_frequency=REALTIME_STREAMING - चुना गया: इससे पता चलता है कि टेबल
mkt_realtime_campaign_performanceइन शर्तों को पूरा करती है. - जवाब: एजेंट, रीयल-टाइम टेबल का सुझाव देता है.

यह ज़रूरी क्यों है:
इस गवर्नेंस मेटाडेटा के बिना, एलएलएम शायद 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?"
8. व्यवस्थित करें
अपने Google Cloud खाते पर शुल्क लगने से बचने के लिए, इस कोडलैब में बनाए गए सभी इन्फ़्रास्ट्रक्चर को बंद करने के लिए यह तरीका अपनाएं.
डेटा लेक को बंद करें
BigQuery टेबल, डेटासेट, और Knowledge Catalog की ऐस्पेक्ट डेफ़िनिशन को हटाने के लिए, क्लीन-अप स्क्रिप्ट का इस्तेमाल करें.
cd ~/devrel-demos/data-analytics/governance-context
chmod +x ./cleanup_data_lake.sh
./cleanup_data_lake.sh
Cloud Run की सेवाएं मिटाना
कंटेनर को बंद करने के लिए, कंप्यूट संसाधनों को हटाएं.
gcloud run services delete knowledge-catalog-agent --region=$REGION --quiet
बिल्ड आर्टफ़ैक्ट और स्टेजिंग स्टोरेज में जगह बनाएं
ADK एजेंट को डिप्लॉय करने पर, सिस्टम ने अपने-आप एक कंटेनर इमेज बनाई और आपके सोर्स कोड को Cloud Storage की अस्थायी बकेट में अपलोड कर दिया.
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}
पहचान और अनुमतियां मिटाना
सबसे पहले, आईएएम नीति के बाइंडिंग हटाएं. इसके बाद, सेवा खाते मिटाएं.
# 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
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/dataplex.catalogViewer" --quiet
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/mcp.toolUser" --quiet
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/bigquery.dataViewer" --quiet
# Delete the Service Account
gcloud iam service-accounts delete $AGENT_SERVICE_ACCOUNT --quiet
लोकल कॉन्फ़िगरेशन हटाना
आखिर में, Cloud Shell में लोकल कॉन्फ़िगरेशन फ़ाइलों और एनवायरमेंट वैरिएबल को मिटाएं.
# Uninstall the AGY CLI plugin
agy plugin uninstall dataplex
# Remove local repository files and unset variables
cd ~
rm -rf ~/devrel-demos
unset MCP_SERVER_URL
unset AGENT_SERVICE_ACCOUNT
9. बधाई हो!
आपने एक ऐसे GenAI एजेंट को पूरी तरह से डिप्लॉय कर दिया है जो गवर्नेंस के बारे में जानता है.
दो हिस्सों वाले इस कोडलैब में, आपने प्रॉम्प्ट इंजीनियरिंग के सामान्य तरीके से आगे बढ़कर, एक मज़बूत और प्रोडक्शन के लिए तैयार आर्किटेक्चर लागू किया. आपने GenAI के लिए डेटा गवर्नेंस को ज़रूरी शर्त के तौर पर माना. इससे, मॉडल को बिना पुष्टि किए गए या मनगढ़ंत डेटा को वापस पाने से रोकने के लिए, एक व्यवस्थित तरीका तैयार किया गया.
ज़रूरी बातें
- मेटाडेटा के ज़रिए डिटरमिनिस्टिक एआई: कॉलम के नामों के आधार पर सही टेबल का अनुमान लगाने के लिए एलएलएम पर भरोसा करने के बजाय, आपने Google के मैनेज किए गए नॉलेज कैटलॉग एमसीपी सर्वर का इस्तेमाल करके, तर्क देने वाले लूप को लागू किया. इससे मॉडल को टेबल का सुझाव देने से पहले, डेटा सर्टिफ़िकेट की पुष्टि करनी पड़ी.
- डिकपल्ड आर्किटेक्चर: फ़्रंटएंड एजेंट में डेटाबेस लॉजिक शामिल करने की ज़रूरत नहीं होती. इसे सिर्फ़ एमसीपी स्टैंडर्ड के ज़रिए कम्यूनिकेट करना होता है. इसका मतलब है कि आने वाले समय में, किसी भी एआई मॉडल या क्लाइंट को एक ही नियंत्रित बैकएंड में प्लग किया जा सकता है.
- ज़िम्मेदारियों का बंटवारा: आपने IAM आइडेंटिटी को अलग करके, कम से कम अधिकारों के सिद्धांत को लागू किया है. उपयोगकर्ता के लिए उपलब्ध एडीके एजेंट, सिर्फ़ मॉडल इनवोकेशन और एपीआई राउटिंग की अनुमतियों के साथ काम करता है.
- कोड-फ़र्स्ट एजेंट ऑर्केस्ट्रेशन: आपने Google एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके, अपने Python एजेंट लॉजिक को तुरंत एक स्केलेबल FastAPI बैकएंड में रैप किया. साथ ही, इसके बिल्ट-इन डेवलपर यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, एजेंट के इंटरनल टूल के एक्ज़ीक्यूशन को विज़ुअलाइज़ और डीबग किया.
आगे क्या करना है?
- Knowledge Catalog फ़ाउंडेशनल डेटा गवर्नेंस कोडलैब: एआई लेयर जोड़ने से पहले, Knowledge Catalog में डेटा को मैनेज करने के बुनियादी सिद्धांतों के बारे में जानें.
- Agent Development Kit (ADK) का दस्तावेज़: ADK की मदद से एजेंट बनाने और डिप्लॉय करने के बारे में आधिकारिक दस्तावेज़ पढ़ें.
- एमसीपी के बारे में ज़्यादा जानें: एमसीपी के आधिकारिक स्पेसिफ़िकेशन देखें. इससे आपको यह समझने में मदद मिलेगी कि अपने इंटरनल एंटरप्राइज़ एपीआई के लिए, कस्टम सर्वर कैसे बनाए जाएं.