1. परिचय
Gemini Enterprise एजेंट प्लैटफ़ॉर्म एक ओपन प्लैटफ़ॉर्म है. इसका इस्तेमाल, एंटरप्राइज़-ग्रेड एआई एजेंट बनाने, उन्हें स्केल करने, मैनेज करने, और ऑप्टिमाइज़ करने के लिए किया जा सकता है. ये एजेंट, आपके डेटा पर आधारित होते हैं.
एजेंट रनटाइम, एजेंटों को चलाने के लिए मैनेज किया गया एक्ज़ीक्यूशन एनवायरमेंट उपलब्ध कराता है. जैसे, ओपन-सोर्स एजेंट डेवलपमेंट किट (एडीके) की मदद से बनाए गए एजेंटों को Google Cloud में सुरक्षित तरीके से चलाना.
इस कोडलैब में बताया गया है कि इन मुख्य बिल्डिंग ब्लॉक का इस्तेमाल करके, Gemini Enterprise में उपयोगकर्ता की ओर से शुरू किए गए एजेंट को कैसे कंट्रोल किया जा सकता है. साथ ही, यह भी बताया गया है कि एजेंट, इंटरनल टूल तक सुरक्षित तरीके से कैसे पहुंच सकता है.
Agent Gateway के बारे में जानकारी
Agent Gateway, प्लैटफ़ॉर्म के Agent Governance सुइट का नेटवर्किंग कॉम्पोनेंट है. यह सभी एजेंट इंटरैक्शन के लिए, नेटवर्क के एंट्री और एक्ज़िट पॉइंट के तौर पर काम करता है. इससे सुरक्षा एडमिन, केंद्रीकृत गवर्नेंस को लागू कर सकते हैं. इसके लिए, डेवलपर को जटिल नेटवर्किंग प्रिमिटिव मैनेज करने की ज़रूरत नहीं होती.
यह दो मुख्य तरीकों से ऐक्सेस करने की सुविधा देता है:
- क्लाइंट से एजेंट तक (इनग्रेस): यह बाहरी क्लाइंट (जैसे कि Cursor या Gemini CLI) और आपके एजेंट के बीच होने वाले कम्यूनिकेशन को सुरक्षित करता है.
- एजेंट-टू-एनीवेयर (एग्रेस): यह Google Cloud पर चल रहे एजेंट और कहीं भी चल रहे सर्वर, टूल या एपीआई के बीच कम्यूनिकेशन को सुरक्षित करता है.
इस कोडलैब में, आपको एजेंट-टू-एनीवेयर (ईग्रैस) मोड पर फ़ोकस करना होगा.

सुरक्षा से जुड़ी नीतियों को लागू करने के लिए, एजेंट गेटवे को बाकी इकोसिस्टम के साथ इंटिग्रेट किया जाता है:
- Agent Registry: यह मंज़ूरी पा चुके एजेंट और टूल की सेंट्रल लाइब्रेरी है. इसमें तीसरे पक्ष के एमसीपी सर्वर भी शामिल हैं.
- एजेंट की पहचान: हर एजेंट के लिए एक यूनीक, ट्रैक किया जा सकने वाला पर्सोना. यह एंड-टू-एंड एमटीएलएस के साथ अपने-आप सुरक्षित हो जाता है.
- पहचान के बारे में जानकारी रखने वाली प्रॉक्सी (IAP) और IAM: यह डिफ़ॉल्ट एनफ़ोर्समेंट लेयर है. यह एजेंट की पहचान की पुष्टि करती है. इसके लिए, यह IAM की बारीक अनुमतियों की तुलना करती है. इसके बाद, यह एजेंट को कुछ टूल इस्तेमाल करने की अनुमति देती है.
- मॉडल आर्मर: यह एआई सुरक्षा गार्डरेल है. इसे सर्विस एक्सटेंशन के ज़रिए इंटिग्रेट किया जाता है, ताकि कॉन्टेंट को सुरक्षित किया जा सके. साथ ही, प्रॉम्प्ट इंजेक्शन के हमलों या डेटा लीक होने से बचाया जा सके.
डिप्लॉयमेंट मोड (Cloud Run के लिए सार्वजनिक बनाम निजी नेटवर्किंग)
इस कोडलैब को ऐक्सेस करने के लिए, Cloud Run पर डिप्लॉय किए गए अपने इंटरनल टूल (MCP सर्वर) के लिए, नेटवर्किंग के दो पाथ में से किसी एक को चुना जा सकता है:
- डिफ़ॉल्ट (पब्लिक इनग्रेस): एमसीपी सर्वर, Cloud Run पर पब्लिक होस्टनेम (
ingress=all) के साथ डिप्लॉय किए जाते हैं. ट्रैफ़िक, एजेंट से टूल तक स्टैंडर्ड*.run.appयूआरएल के ज़रिए जाता है. इसके लिए, कस्टम डीएनएस डोमेन की ज़रूरत नहीं होती. साथ ही, गवर्नेंस के कॉन्सेप्ट को समझने का यह सबसे तेज़ तरीका है. - सुरक्षित (निजी नेटवर्क): यह पूरी तरह से निजी आर्किटेक्चर है. इसका इस्तेमाल करना ज़रूरी नहीं है. एमसीपी सर्वर पर पाबंदी है (
ingress=internal-and-cloud-load-balancing). इन्हें बिना सर्वर वाले एनईजी के साथ इंटरनल ऐप्लिकेशन लोड बैलेंसर के ज़रिए ऐक्सेस किया जाता है. इसके लिए, आपके पास सार्वजनिक डीएनएस डोमेन का मालिकाना हक होना चाहिए, ताकि Google की ओर से मैनेज किए जाने वाले सर्टिफ़िकेट को सेट अप किया जा सके.
Terraform को कॉन्फ़िगर करते समय, अपनी पसंद का पाथ चुनें.
Cloud Run के लिए नेटवर्क एंडपॉइंट इनग्रेस के बारे में ज़्यादा जानने के लिए, कृपया हमारे दस्तावेज़ पढ़ें.
आपको क्या करना होगा
- Terraform का इस्तेमाल करके, मुख्य इन्फ़्रास्ट्रक्चर स्टैक को प्रोविज़न करना
- Cloud Run पर एमसीपी सर्वर के तौर पर इंटरनल टूल बनाना और उन्हें डिप्लॉय करना
- पीएससी इंटरफ़ेस इग्रेस का इस्तेमाल करके, ADK एजेंट को एजेंट रनटाइम में डिप्लॉय करना
- पहचान के आधार पर ऐक्सेस (आईएएम) और कॉन्टेंट की जांच (Model Armor) के लिए, Agent Gateway सेवा के एक्सटेंशन कॉन्फ़िगर करना
- एजेंट के सुरक्षित एंड-टू-एंड एक्ज़ीक्यूशन को ट्रेस और पुष्टि करना
आपको किन चीज़ों की ज़रूरत होगी
- कोई वेब ब्राउज़र, जैसे कि Chrome
- बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट और मालिक के तौर पर ऐक्सेस
- संगठन-लेवल पर IAM अनुमतियां (कोड लैब, संगठन के स्कोप वाली भूमिकाएं असाइन करता है)
- आपके कंट्रोल वाला कोई ऐसा डोमेन जिसे Cloud DNS को सौंपा गया हो (सार्वजनिक तौर पर मैनेज किए गए सर्टिफ़िकेट के लिए)
- Terraform,
gcloud, और Google Cloud Networking की बुनियादी जानकारी
कोडलैब टोपोलॉजी

इस कोडलैब में, आपको मॉर्गेज अंडरराइटिंग एजेंट को डिप्लॉय करना होगा. यह एजेंट, तीन इंटरनल टूल के साथ सुरक्षित तरीके से कम्यूनिकेट करता है.
आपको बुनियादी नेटवर्किंग की सुविधा चालू करनी होगी. इसमें वीपीसी और एजेंट गेटवे के तौर पर कॉन्फ़िगर किया गया इंटरनल ऐप्लिकेशन लोड बैलेंसर शामिल है. इसके बाद, आपको Cloud Run पर तीन मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) सर्वर डिप्लॉय करने होंगे. ये आपके मालिकाना हक वाले इंटरनल टूल के तौर पर काम करते हैं:
- दस्तावेज़ मैनेजमेंट (
legacy-dms) - कॉर्पोरेट ईमेल (
corporate-email) - आय की पुष्टि (
income-verification)
इन टूल की मदद से, ADK की मदद से बनाए गए मॉर्टगेज असिस्टेंट (mortgage-agent) को एजेंट रनटाइम में डिप्लॉय करें. इस एजेंट को, प्राइवेट इग्रेस के लिए पीएससी इंटरफ़ेस का इस्तेमाल करने के लिए कॉन्फ़िगर किया जाएगा. साथ ही, एजेंट रजिस्ट्री के ज़रिए रनटाइम टूल डिस्कवरी की सुविधा चालू की जाएगी.
फ़्लो को सुरक्षित करने के लिए, आपको अपने एजेंट गेटवे को दो सेवा एक्सटेंशन के साथ कॉन्फ़िगर करना होगा. सबसे पहले, REQUEST_AUTHZ एक्सटेंशन, हर टूल के लिए IAM नीतियों के हिसाब से एजेंट की पहचान की पुष्टि करेगा. इससे यह पक्का होगा कि एजेंट सिर्फ़ उन टूल को ऐक्सेस कर सकता है जिनके लिए उसे अनुमति मिली है. दूसरा, Model Armor का इस्तेमाल करने वाला CONTENT_AUTHZ एक्सटेंशन, एजेंट के प्रॉम्प्ट और जवाबों की जांच करेगा.
आखिर में, आपको Gemini Enterprise में एजेंट को रजिस्टर करना होगा. इसके बाद, आपको सामान्य उपयोगकर्ता के तौर पर मॉर्गेज अंडरराइटिंग का टास्क ट्रिगर करना होगा. साथ ही, Cloud Trace का इस्तेमाल करके यह पुष्टि करनी होगी कि टास्क को सुरक्षित तरीके से और नियमों के मुताबिक पूरा किया गया है.
यह कोडलैब, सभी लेवल के प्लैटफ़ॉर्म और सुरक्षा इंजीनियर के लिए है. इसे पूरा करने में आपको करीब 100 मिनट लग सकते हैं.
2. शुरू करने से पहले
प्रोजेक्ट बनाना और पुष्टि करना
बिलिंग की सुविधा वाला नया GCP प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का इस्तेमाल करें. इसके बाद, Cloud Shell या अपनी लोकल मशीन की पुष्टि करें:
gcloud auth login
gcloud auth application-default login
gcloud config set project <your-project-id>
बूटस्ट्रैप एपीआई चालू करना
Terraform का फ़ाउंडेशन मॉड्यूल, पहली बार लागू करने पर ~30 एपीआई चालू करता है. हालांकि, terraform init और GCS स्टेट बकेट के लिए, बूटस्ट्रैप का छोटा सेट ज़रूरी है:
gcloud services enable \
compute.googleapis.com \
serviceusage.googleapis.com \
cloudresourcemanager.googleapis.com \
iam.googleapis.com \
storage.googleapis.com \
dns.googleapis.com
ज़रूरी टूल इंस्टॉल करना
टूलचेन इंस्टॉल करें. Cloud Shell पर इनमें से ज़्यादातर पहले से मौजूद होते हैं. वर्कस्टेशन पर:
# uv (Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
# skaffold
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 && \
sudo install skaffold /usr/local/bin/
# envsubst (gettext)
sudo apt-get install -y gettext-base
इसके अलावा, आपके पास Terraform >= 1.12.2, Python 3.12+, और Google Cloud SDK (gcloud) होना चाहिए.
एनवायरमेंट वैरिएबल सेट करना
कोडलैब के बाकी हिस्से में यह माना गया है कि इन्हें आपके शेल में एक्सपोर्ट किया गया है.
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export ORG_ID=$(gcloud projects get-ancestors $PROJECT_ID | awk '$2 == "organization" {print $1}')
export REGION="us-central1"
# Only required if using the secure private networking path
export DOMAIN_NAME="agw.example.com"
पुष्टि करें कि आपके सभी वैरिएबल सही तरीके से भरे गए हों. आपको तीन वैल्यू दिखनी चाहिए.
echo $PROJECT_ID
echo $PROJECT_NUMBER
echo $ORG_ID
अगर आपका संगठन आईडी अपने-आप नहीं भरता है, तो इसे मैन्युअल तरीके से सेट किया जा सकता है.
gcloud organizations list
export ORG_ID=ID_FROM_OUTPUT
3. रिपॉज़िटरी को क्लोन करना
git clone https://github.com/GoogleCloudPlatform/cloud-networking-solutions.git
cd cloud-networking-solutions
cd demos/agent-gateway
डेमो डायरेक्ट्री में मौजूद कॉन्टेंट के बारे में यहां बताया गया है:
src/ MCP servers (legacy-dms, corporate-email, income-verification-api) + mortgage-agent
terraform/ Root Terraform config + modules (foundation, networking, agent-gateway, model-armor, ...)
cloudrun/ Cloud Run service definitions (rendered from .yaml.tmpl via envsubst)
scripts/ grant_agent_mcp_egress.sh — per-MCP IAP egressor binding
skaffold.yaml.tmpl Skaffold pipeline that builds + deploys all three MCP services to Cloud Run
4. Terraform स्टेट बकेट और बैकएंड कॉन्फ़िगरेशन बनाना
रिमोट स्टेट को सेव करने के लिए, GCS बकेट बनाएं. इसके बाद, बैकएंड टेंप्लेट कॉपी करें:
gcloud storage buckets create gs://${PROJECT_ID}-tfstate \
--location=${REGION} \
--uniform-bucket-level-access
cp terraform/example.backend.conf terraform/backend.conf
अपनी वैल्यू के हिसाब से terraform/backend.conf में बदलाव करें:
bucket = "<your-project-id>-tfstate"
prefix = "agent-gateway"
5. (ज़रूरी नहीं) सार्वजनिक क्लाउड डीएनएस ज़ोन बनाना
इस लैब के लिए, Cloud Run का इनग्रेस कॉन्फ़िगरेशन डिफ़ॉल्ट रूप से all पर सेट होता है. साथ ही, एजेंट रजिस्ट्री हर एमसीपी सर्वर को उसके सार्वजनिक *.run.app यूआरएल पर रजिस्टर करती है. इसके लिए, किसी अतिरिक्त डीएनएस, सर्टिफ़िकेट या लोड बैलेंसर की ज़रूरत नहीं होती. अगर आपको प्राइवेट नेटवर्किंग (Cloud Run, ingress = internal-and-cloud-load-balancing के साथ इंटरनल ऐप्लिकेशन एलबी के पीछे) पर स्विच करना है, तो आपको एक सार्वजनिक Cloud DNS ज़ोन की भी ज़रूरत होगी, ताकि Certificate Manager, एलबी सर्टिफ़िकेट की पुष्टि कर सके.
निजी नेटवर्किंग का हाई लेवल फ़्लो

प्राइवेट नेटवर्किंग का इस्तेमाल करने के लिए:
- सार्वजनिक Cloud DNS ज़ोन बनाएं — Certificate Manager, रीजनल मैनेज किए गए सर्टिफ़िकेट की पुष्टि करता है. इसके लिए, वह इसमें CNAME लिखता है:
gcloud dns managed-zones create agw-example-com \
--dns-name="${DOMAIN_NAME}." \
--description="Public zone for ${DOMAIN_NAME}" \
--visibility=public
mcp.${DOMAIN_NAME} के लिए, इससे जुड़ा निजी ज़ोन (इसका इस्तेमाल MCP के इंटरनल एलबी और एजेंट रनटाइम से डीएनएस पियरिंग के लिए किया जाता है) Terraform अपने-आप बनाता है. आपको इसे मैन्युअल तरीके से बनाने की ज़रूरत नहीं होती. प्राइवेट नेटवर्किंग की सुविधा बंद होने पर, न तो सार्वजनिक ज़ोन और न ही निजी ज़ोन उपलब्ध कराया जाता है.
6. Terraform वैरिएबल कॉन्फ़िगर करना
उदाहरण के तौर पर दिए गए tfvars को कॉपी करें और उसमें बदलाव करें:
cp terraform/example.tfvars terraform/terraform.tfvars
enable_cloud_run_private_networking के ज़रिए दो डेमो पाथ ऐक्सेस किए जा सकते हैं.
डिफ़ॉल्ट पाथ: Cloud Run में सार्वजनिक इन्ग्रेस की सुविधा
**सबसे आसान सेटअप.**डिफ़ॉल्ट पाथ के लिए, आपको सिर्फ़ terraform.tfvars में तीन वैल्यू में बदलाव करना होगा. फ़ाइल में मौजूद हर दूसरे वैरिएबल में पहले से ही डेमो के लिए सही डिफ़ॉल्ट वैल्यू मौजूद होती है.
# GCP project ID where all resources will be created.
project_id = "my-gcp-project-id"
# GCP organization ID (numeric).
organization_id = "123456789012"
# Members granted demo-wide roles
platform_admin_members = ["user:admin@example.com"]
# IAP Enforcement Mode ("DRY_RUN" or null)
agent_gateway_iap_iam_enforcement_mode = "DRY_RUN"
निजी नेटवर्क (ज़रूरी नहीं)
enable_cloud_run_private_networking = true सेट करें और नीचे दिए गए वैरिएबल जोड़ें, ताकि पूरी तरह से सुरक्षित स्टैक उपलब्ध कराया जा सके:
- इंटरनल ऐप्लिकेशन एलबी
- Google की ओर से मैनेज किया गया सर्टिफ़िकेट
ingress = internal-and-cloud-load-balancingके साथ Cloud Run- एजेंट गेटवे डीएनएस पियरिंग.
enable_cloud_run_private_networking = true
# DNS — must end with a trailing dot, must match a Cloud DNS zone you own
dns_zone_domain = "agw.example.com."
enable_certificate_manager = true
# mcp_internal_dns_zone.domain MUST be a real subdomain of dns_zone_domain so
# Certificate Manager can issue a Google-managed cert.
mcp_internal_dns_zone = {
name = "mcp-server-internal"
domain = "mcp.agw.example.com."
}
# Must match mcp_internal_dns_zone.domain so Agent Engine resolves MCP
# hostnames over the PSC interface peering.
psc_interface_dns_zone = {
name = "mcp-server-internal"
domain = "mcp.agw.example.com."
}
mcp_lb_protocol = "HTTPS"
7. Terraform की मदद से इन्फ़्रास्ट्रक्चर डिप्लॉय करना
शुरू करें, समीक्षा करें, और लागू करें:
cd terraform
terraform init -backend-config=backend.conf
terraform plan
terraform apply
terraform apply डिफ़ॉल्ट पाथ पर ~40 संसाधन उपलब्ध कराता है. साथ ही, नए प्रोजेक्ट पर 8 से 10 मिनट लगते हैं (~60 संसाधन / 15 से 20 मिनट, जब enable_cloud_run_private_networking = true). यह बनाता है:
- प्रोजेक्ट फ़ाउंडेशन (एपीआई, सेवा की पहचान, कोटा)
- वीपीसी, सबनेट (प्राइमरी, सिर्फ़ प्रॉक्सी, पीएससी, पीएससी-इंटरफ़ेस, एजेंट गेटवे को-लोकेशन), Cloud NAT, फ़ायरवॉल के नियम
- Cloud Run इमेज के लिए Artifact Registry रिपो
- तीन Cloud Run सेवाएं + हर सेवा के लिए रनटाइम एसए (इनग्रेस = डिफ़ॉल्ट रूप से
all; प्राइवेट नेटवर्किंग चालू होने परinternal-and-cloud-load-balancing) - Model Armor टेंप्लेट + IAM
- एजेंट गेटवे, PSC-I नेटवर्क अटैचमेंट, IAP और Model Armor एक्सटेंशन, दोनों अनुमतियां देने की नीतियां, और प्रोजेक्ट-लेवल पर
roles/iap.egressorअनुमति देना - एजेंट रजिस्ट्री एंडपॉइंट (Vertex AI, IAP, Discovery Engine, ...) के साथ-साथ तीन MCP सर्वर (डिफ़ॉल्ट रूप से
*.run.app/mcpपर रजिस्टर किए गए; निजी नेटवर्किंग चालू होने परपर रजिस्टर किए गए). /mcp
सिर्फ़ तब, जब enable_cloud_run_private_networking = true:
- बिना सर्वर वाले एनईजी (यूआरएल-मास्क राउटिंग) + निजी डीएनएस ए रिकॉर्ड के साथ इंटरनल रीजनल ऐप्लिकेशन एलबी
- वीपीसी से जुड़ा एमसीपी का निजी डीएनएस ज़ोन (
mcp.). - पब्लिक डीएनएस ज़ोन मॉड्यूल (Certificate Manager की डीएनएस अनुमतियां) + Google की तरफ़ से मैनेज किया जाने वाला रीजनल सर्टिफ़िकेट
- पीएससी इंटरफ़ेस डीएनएस ज़ोन (जब हल करने के लिए कोई निजी होस्टनेम नहीं होता है, तो यह अनाथ हो जाता है. इसलिए, इसे मास्टर फ़्लैग पर भी गेट किया जाता है)
mcp.के लिए एजेंट गेटवे डीएनएस पियरिंग (अपने-आप जुड़ने वाला).
8. एजेंट रजिस्ट्री के एंडपॉइंट की जांच करना
एजेंट रजिस्ट्री, हर प्रोजेक्ट के लिए सेवाओं (Google API और आपके अपने MCP सर्वर) का कैटलॉग होती है. एजेंट, रनटाइम के दौरान इन सेवाओं का पता लगाता है. मॉर्गेज एजेंट इसे स्टार्टअप पर पढ़ता है और टूल को डाइनैमिक तरीके से बाइंड करता है. एजेंट कोड या उसकी डिप्लॉय कमांड में कोई भी MCP यूआरएल शामिल नहीं किया जाता है.
एंडपॉइंट
Terraform ने आपकी ओर से क्या किया — agent_registry_google_apis में मौजूद हर Google API के लिए, इसने पांच वैरिएंट रजिस्टर किए (ग्लोबल, एमटीएलएस ग्लोबल, रीजनल, रीजनल एमटीएलएस, रीजनल आरईपी). उदाहरण के लिए, aiplatform के लिए:
gcloud alpha agent-registry services create aiplatform \
--project=${PROJECT_ID} --location=${REGION} \
--display-name="Vertex AI Platform" \
--endpoint-spec-type=no-spec \
--interfaces="url=https://aiplatform.googleapis.com,protocolBinding=JSONRPC"
gcloud alpha agent-registry services create aiplatform-mtls \
--project=${PROJECT_ID} --location=${REGION} \
--display-name="Vertex AI Platform mTLS" \
--endpoint-spec-type=no-spec \
--interfaces="url=https://aiplatform.mtls.googleapis.com,protocolBinding=JSONRPC"
gcloud alpha agent-registry services create ${REGION}-aiplatform \
--project=${PROJECT_ID} --location=${REGION} \
--display-name="Vertex AI Platform Locational" \
--endpoint-spec-type=no-spec \
--interfaces="url=https://${REGION}-aiplatform.googleapis.com,protocolBinding=JSONRPC"
gcloud alpha agent-registry services create aiplatform-${REGION}-rep \
--project=${PROJECT_ID} --location=${REGION} \
--display-name="Vertex AI Platform Regional (REP)" \
--endpoint-spec-type=no-spec \
--interfaces="url=https://aiplatform.${REGION}.rep.googleapis.com,protocolBinding=JSONRPC"
एमसीपी सर्वर
Terraform, आपके लिए तीन एमसीपी सर्वर भी रजिस्टर करता है. अन्य एमसीपी सर्वर रजिस्टर करने के लिए, दस्तावेज़ में दिए गए चरणों का पालन करें.
gcloud alpha agent-registry services create legacy-dms \
--project=${PROJECT_ID} \
--location=${REGION} \
--display-name="Legacy DMS" \
--mcp-server-spec-type=tool-spec \
--mcp-server-spec-content=src/legacy-dms/toolspec.json \
--interfaces=url=https://dms.${DOMAIN_NAME}/mcp,protocolBinding=JSONRPC
पंजीकृत एंडपॉइंट और एमसीपी सर्वर की पुष्टि करें.
gcloud alpha agent-registry services list \
--project=${PROJECT_ID} --location=${REGION} \
--format="value(displayName,name)"
gcloud alpha agent-registry mcp-servers list \
--project=${PROJECT_ID} --location=${REGION} \
--format="value(displayName,name)"
स्रोत: terraform/modules/agent-registry-endpoints/scripts/register_endpoints.sh.tpl
9. एजेंट गेटवे के कॉन्फ़िगरेशन की समीक्षा करना
एजेंट गेटवे, Google के ज़रिए मैनेज किया जाने वाला गवर्नेंस प्लेन है. यह एजेंट रनटाइम और आपके टूल के बीच काम करता है. AGENT_TO_ANYWHERE मोड में, यह प्रोजेक्ट की एजेंट रजिस्ट्री से जुड़ा होता है. साथ ही, ग्राहक के मालिकाना हक वाले पीएससी इंटरफ़ेस के ज़रिए इग्रेस करता है, ताकि यह आपके वीपीसी में मौजूद निजी एमसीपी सर्वर तक पहुंच सके.
अगर आपको इस गेटवे को मैन्युअल तरीके से इंपोर्ट करना है, तो YAML ऐसा दिखेगा:
# agent-gateway.yaml — for reference only, Terraform already created this
name: agent-gateway
protocols: [MCP]
googleManaged:
governedAccessPath: AGENT_TO_ANYWHERE
registries:
- "//agentregistry.googleapis.com/projects/${PROJECT_ID}/locations/${REGION}"
networkConfig:
egress:
networkAttachment: projects/${PROJECT_ID}/regions/${REGION}/networkAttachments/agent-gateway-na
dnsPeeringConfig:
domains:
- mcp.${DOMAIN_NAME}.
targetProject: ${PROJECT_ID}
targetNetwork: projects/${PROJECT_ID}/global/networks/gateway-vpc
gcloud alpha network-services agent-gateways import agent-gateway \
--source=agent-gateway.yaml \
--location=${REGION}
Terraform से बनाए गए गेटवे की पुष्टि करें:
gcloud alpha network-services agent-gateways describe agent-gateway \
--location=${REGION}
10. IAP और मॉडल आर्मर की अनुमति की जांच करना
Agent Gateway, सेवा एक्सटेंशन को अनुमति सौंपता है. डेमो में, नीति की दो प्रोफ़ाइलें शामिल हैं:
- REQUEST_AUTHZ — इसका आकलन, हेडर स्टेज पर हर अनुरोध के लिए एक बार किया जाता है. इस कुकी का इस्तेमाल IAP को कॉल करने के लिए किया जाता है. इससे यह पता चलता है कि कॉलिंग एजेंट की पहचान के पास टारगेट एमसीपी सर्वर पर
roles/iap.egressorहै या नहीं. - CONTENT_AUTHZ — यह एक्सटेंशन को कॉन्टेंट सैनिटाइज़ेशन के लिए, स्ट्रीम के मुख्य हिस्से के इवेंट भेजता है. इस कुकी का इस्तेमाल यहां Model Armor को कॉल करने के लिए किया जाता है. यह कुकी, प्रॉम्प्ट इंजेक्शन, जेलब्रेक, एआई के ज़िम्मेदारी से इस्तेमाल से जुड़े सिद्धांतों के उल्लंघन, और (ज़रूरत पड़ने पर) संवेदनशील डेटा सुरक्षा (एसडीपी) के ज़रिए पीआईआई की जांच करती है.
IAP REQUEST_AUTHZ एक्सटेंशन
cat > iap-authz-extension.yaml <<EOF
name: agent-gateway-iap-authz
service: iap.googleapis.com
failOpen: true
timeout: 1s
EOF
gcloud beta service-extensions authz-extensions import agent-gateway-iap-authz \
--source=iap-authz-extension.yaml \
--location=${REGION} \
--project=${PROJECT_ID}
इसे REQUEST_AUTHZ नीति के साथ एजेंट गेटवे से बाइंड करें:
curl -fsS -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST "https://networksecurity.googleapis.com/v1alpha1/projects/${PROJECT_ID}/locations/${REGION}/authzPolicies?authz_policy_id=agent-gateway-iap-policy" \
-d '{
"name": "agent-gateway-iap-policy",
"policyProfile": "REQUEST_AUTHZ",
"action": "CUSTOM",
"target": {
"resources": [
"projects/'"${PROJECT_ID}"'/locations/'"${REGION}"'/agentGateways/agent-gateway"
]
},
"customProvider": {
"authzExtension": {
"resources": [
"projects/'"${PROJECT_ID}"'/locations/'"${REGION}"'/authzExtensions/agent-gateway-iap-authz"
]
}
}
}'
Model Armor CONTENT_AUTHZ एक्सटेंशन
एक्सटेंशन का metadata.model_armor_settings, अनुरोध और जवाब के टेंप्लेट आईडी को ले जाता है. Model Armor इनका इस्तेमाल करके, हर कॉलआउट का आकलन करता है:
cat > ma-extension.yaml <<EOF
name: agent-gateway-ma-authz
service: modelarmor.${REGION}.rep.googleapis.com
failOpen: true
timeout: 1s
metadata:
model_armor_settings: '[
{
"request_template_id": "projects/${PROJECT_ID}/locations/${REGION}/templates/agw-request-template",
"response_template_id": "projects/${PROJECT_ID}/locations/${REGION}/templates/agw-response-template"
}
]'
EOF
gcloud beta service-extensions authz-extensions import agent-gateway-ma-authz \
--source=ma-extension.yaml \
--location=${REGION} \
--project=${PROJECT_ID}
curl -fsS -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST "https://networksecurity.googleapis.com/v1alpha1/projects/${PROJECT_ID}/locations/${REGION}/authzPolicies?authz_policy_id=agent-gateway-ma-policy" \
-d '{
"name": "agent-gateway-ma-policy",
"policyProfile": "CONTENT_AUTHZ",
"action": "CUSTOM",
"target": {
"resources": [
"projects/'"${PROJECT_ID}"'/locations/'"${REGION}"'/agentGateways/agent-gateway"
]
},
"customProvider": {
"authzExtension": {
"resources": [
"projects/'"${PROJECT_ID}"'/locations/'"${REGION}"'/authzExtensions/agent-gateway-ma-authz"
]
}
}
}'
डेटा सुरक्षा से जुड़े कस्टम टेंप्लेट
Model Armor का sdpSettings.basicConfig, पहले से मौजूद जानकारी के टाइप की सूची का इस्तेमाल करता है. बेहतर कंट्रोल (कस्टम जानकारी के टाइप, कुछ हिस्से को मास्क करना, सरोगेट से बदलना, संभावना के हिसाब से डेटा छिपाना) के लिए, sdpSettings.advancedConfig के ज़रिए Model Armor को अपने Cloud DLP inspect और de-identify टेंप्लेट पर पॉइंट करें.
एक ऐसा जांच टेंप्लेट बनाएं जो अमेरिका के सोशल सिक्योरिटी नंबर को POSSIBLE संभावना या उससे ज़्यादा के तौर पर फ़्लैग करे:
curl -fsS -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "x-goog-user-project: ${PROJECT_ID}" \
"https://dlp.googleapis.com/v2/projects/${PROJECT_ID}/locations/${REGION}/inspectTemplates" \
-d '{
"templateId": "agw-ssn-inspect-template",
"inspectTemplate": {
"displayName": "SSN Inspect Template",
"inspectConfig": {
"infoTypes": [
{ "name": "US_SOCIAL_SECURITY_NUMBER" }
],
"minLikelihood": "POSSIBLE"
}
}
}'
पहचान छिपाने वाला एक टेंप्लेट बनाएं. यह टेंप्लेट, हर नतीजे को उसके जानकारी के टाइप वाले टोकन (जैसे, [US_SOCIAL_SECURITY_NUMBER]) से बदल देता है:
curl -fsS -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "x-goog-user-project: ${PROJECT_ID}" \
"https://dlp.googleapis.com/v2/projects/${PROJECT_ID}/locations/${REGION}/deidentifyTemplates" \
-d '{
"templateId": "agw-ssn-redaction-template",
"deidentifyTemplate": {
"displayName": "SSN Redaction Template",
"deidentifyConfig": {
"infoTypeTransformations": {
"transformations": [{
"primitiveTransformation": { "replaceWithInfoTypeConfig": {} }
}]
}
}
}
}'
इसके बाद, sdpSettings.advancedConfig के ज़रिए Model Armor टेंप्लेट के जवाब के कॉन्फ़िगरेशन को पेयर पर पॉइंट करें. अगर आपने इसे सेट अप किया है, तो Terraform का model_armor मॉड्यूल advanced_config को यहीं सेट करेगा:
{
"filterConfig": {
"sdpSettings": {
"advancedConfig": {
"inspectTemplate": "projects/${PROJECT_ID}/locations/${REGION}/inspectTemplates/agw-ssn-inspect-template",
"deidentifyTemplate": "projects/${PROJECT_ID}/locations/${REGION}/deidentifyTemplates/agw-ssn-redaction-template"
}
}
}
}
आईएपी इग्रेसर IAM (सिर्फ़ एमसीपी सर्वर के हिसाब से)
Terraform, प्रोजेक्ट-वाइड roles/iap.egressor नहीं बनाता है. यह इंप्लिसिट IAP एजेंट रजिस्ट्री पर बाइंड होता है. IAP REQUEST_AUTHZ की बाइंडिंग का आकलन, हर एमसीपी सर्वर और हर रीज़निंग इंजन के हिसाब से किया जाता है. यह बाइंडिंग, एजेंट को डिप्लॉय करने के बाद दी जाती है. साथ ही, आपको एजेंट आईडी पता होना चाहिए. इसके लिए, "Grant the agent per-MCP-server egress" चरण scripts/grant_agent_mcp_egress.sh को चलाता है.
11. एमसीपी सर्वर को Cloud Run पर बनाएं और डिप्लॉय करें
cloudrun/*.yaml.tmpl और skaffold.yaml.tmpl फ़ाइलें, ${PROJECT_ID}, ${REGION}, और ${MCP_INGRESS} (Cloud Run इन्ग्रेस एनोटेशन) को रेफ़रंस करती हैं. टेराफ़ॉर्म आउटपुट से MCP_INGRESS को सोर्स करें, ताकि रेंडर किए गए मेनिफ़ेस्ट enable_cloud_run_private_networking के साथ सिंक रहें. इसके बाद, envsubst का इस्तेमाल करके रेंडर करें:
Cloud Run के इन्ग्रेस कॉन्फ़िगरेशन को एक्सपोर्ट करें.
allinternal-and-cloud-load-balancing(Private Networking का इस्तेमाल करते समय)
export MCP_INGRESS=all
envsubst '${PROJECT_ID} ${REGION} ${MCP_INGRESS}' < skaffold.yaml.tmpl > skaffold.yaml
for f in cloudrun/*.yaml.tmpl; do
envsubst '${PROJECT_ID} ${REGION} ${MCP_INGRESS}' < "$f" > "${f%.tmpl}"
done
हर Cloud Run सेवा, सेवा के हिसाब से रनटाइम SA Terraform के तौर पर चलती है. जैसे, mcp-legacy-dms@${PROJECT_ID}.iam.gserviceaccount.com. इन SA के तौर पर डिप्लॉय करने के लिए, आपके पास roles/iam.serviceAccountUser होना चाहिए:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$(gcloud config get-value account)" \
--role="roles/iam.serviceAccountUser"
Cloud Build की मदद से इमेज बनाएं और Skaffold की मदद से डिप्लॉय करें:
skaffold run
Skaffold, आपकी Artifact Registry repo में तीन इमेज (legacy-dms, corporate-email, income-verification-api) बनाता है. साथ ही, हर Cloud Run सर्विस को नए डाइजेस्ट पर पॉइंट करने के लिए अपडेट करता है.
पुष्टि करें:
gcloud run services list --region=${REGION}
आपको तीनों सेवाओं के लिए ACTIVE स्टेटस दिखेगा.
12. मॉर्गिज एजेंट को एजेंट रनटाइम में डिप्लॉय करना
एजेंट की डिपेंडेंसी इंस्टॉल करें और उसे डिप्लॉय करें:
cd src/mortgage-agent
uv sync
uv run python deploy_agent.py \
--project=${PROJECT_ID} \
--region=${REGION} \
--enable-agent-identity \
--agent-name=mortgage-agent \
--agent-gateway=projects/${PROJECT_ID}/locations/${REGION}/agentGateways/agent-gateway \
--model-endpoint-location=global
स्क्रिप्ट पूरी होने के बाद, प्रिंट किए गए reasoningEngines/ को अपने शेल में कॉपी करें:
export AGENT_ID=<numeric-id-from-output>
cd ../..
13. एजेंट को हर एमसीपी सर्वर के हिसाब से इग्रेस करने की अनुमति देना
IAP REQUEST_AUTHZ एक्सटेंशन, टूल कॉल को अनुमति देता है. इसके लिए, यह एजेंट के roles/iap.egressor की जांच करता है. यह जांच, किसी खास MCP सर्वर या एंडपॉइंट पर की जाती है. एजेंट से एमसीपी सर्वर तक डेटा भेजने की नीति बनाना लेख पढ़ें.
स्क्रिप्ट (scripts/grant_agent_mcp_egress.sh), projects/${PROJECT_ID}/locations/${REGION} में मौजूद एजेंट रजिस्ट्री में एमसीपी सर्वर की गिनती करती है. साथ ही, एजेंट प्रिंसिपल के लिए roles/iap.egressor बाइंडिंग को हर सर्वर की आईएएम नीति में मर्ज करती है. यह gcloud add-iam-policy-binding के सिमैंटिक को मिरर करती है.
इस्तेमाल का पहला उदाहरण — बिना शर्त के, खास एमसीपी सर्वर के लिए स्कोप किया गया ग्रांट
./scripts/grant_agent_mcp_egress.sh \
--mcp \
--agent-id ${AGENT_ID} \
--mcp-filter "legacy-dms income-verification"
इस्तेमाल का दूसरा उदाहरण — किसी खास एमसीपी सर्वर के लिए, शर्त के हिसाब से अनुमति देना (सीईएल)
अगर आपको किसी एजेंट को एक एमसीपी सर्वर पर मौजूद टूल के सिर्फ़ कुछ हिस्से का ऐक्सेस देना है, तो IAM की शर्त अटैच करें. Agent Gateway, हर टूल के हिसाब से एट्रिब्यूट पब्लिश करता है. IAP REQUEST_AUTHZ, इन एट्रिब्यूट को CEL के लिए उपलब्ध कराता है. इनमें ये शामिल हैं:
iap.googleapis.com/mcp.toolNameiap.googleapis.com/mcp.tool.isReadOnlyiap.googleapis.com/request.auth.type.
एजेंट को corporate-email पर, सिर्फ़ रीड-ओनली टूल का ऐक्सेस दें:
./scripts/grant_agent_mcp_egress.sh \
--mcp \
--agent-id ${AGENT_ID} \
--mcp-filter "corporate-email" \
--condition-expression "api.getAttribute('iap.googleapis.com/mcp.tool.isReadOnly', false) == true" \
--condition-title "ReadOnlyToolsOnly" \
--condition-description "Restrict ${AGENT_ID} to read-only tools on corporate-email"
यह प्रोसेस पूरी होने के बाद, IAP REQUEST_AUTHZ से corporate-email रिटर्न 403 PermissionDenied पर लिखने के टूल उपलब्ध होंगे. हालांकि, सिर्फ़ पढ़ने के टूल काम करते रहेंगे.
बाइंडिंग की पुष्टि करना
नीति टैब पर जाएं. यहां आपको एंडपॉइंट और एमसीपी सर्वर के ख़िलाफ़ बनाई गई नीतियों की सूची दिखेगी.
इस्तेमाल के अन्य उदाहरण:
हर एमसीपी सर्वर पर बिना शर्त अनुमति दी जाती है, जो एक एजेंट के लिए होती है
हर एजेंट को फिर से डिप्लॉय करने के बाद, इसे चलाएं. बिना किसी फ़िल्टर और शर्त के, नामित एजेंट को रजिस्ट्री में मौजूद हर एमसीपी सर्वर पर roles/iap.egressor मिलता है:
./scripts/grant_agent_mcp_egress.sh \
--mcp \
--agent-id ${AGENT_ID}
14. Agent Platform Console में जाकर एजेंट को टेस्ट करना
Agent Platform Console में एक Playground शामिल होता है. इसकी मदद से, डिप्लॉय किए गए एजेंट से सीधे तौर पर चैट की जा सकती है. यह टूल कॉल की स्मोक टेस्टिंग करने और Gemini Enterprise में एजेंट को जोड़ने से पहले ट्रेस की जांच करने का सबसे तेज़ तरीका है.
- Google Cloud Console में, Agent Platform Deployments पेज खोलें.
- अगर आपको रनटाइम की सूची को छोटा करना है, तो फ़िल्टर फ़ील्ड का इस्तेमाल करें. इसके बाद, अपने
mortgage-agentरनटाइम पर क्लिक करें. - प्लेग्राउंड टैब खोलें.
- एजेंट से चैट करने के लिए, कोई प्रॉम्प्ट टाइप करें:
I am reviewing the Sterling familys current application. Can you summarize their 2024 and 2025 tax returns and verify if their total household income meets our 2026 debt-to-income requirements?
इससे, दस्तावेज़ मैनेज करने वाले टूल और आय की पुष्टि करने वाले टूल से जवाब मिलना चाहिए. साथ ही, इस जवाब में एसएसएन को भी छिपाया जाना चाहिए. 5. फ़ॉलो अप प्रॉम्प्ट टाइप करें:
Can you send a summary of this to my email jane@example.com
एजेंट को यह बताना चाहिए कि उसके पास send_email टूल का ऐक्सेस नहीं है. साथ ही, उसे इसके हिसाब से जवाब देना चाहिए.
एजेंट को OpenTelemetry इंस्ट्रूमेंटेशन के साथ डिप्लॉय किया गया था. इसलिए, Playground में चार साइड-पैनल व्यू दिखते हैं. एजेंट के जवाब देने के दौरान, इनके बीच स्विच किया जा सकता है:
- ट्रेस — बातचीत के पूरे ट्रेस. इनमें Agent Gateway, IAP REQUEST_AUTHZ, और Model Armor CONTENT_AUTHZ स्पैन शामिल हैं
- इवेंट — इसमें, मौजूदा बातचीत के दौरान इस्तेमाल किए गए टूल और इवेंट की जानकारी का ग्राफ़ दिखता है
- स्टेट — एजेंट के सेशन की स्थिति और टूल के इनपुट/आउटपुट
- सेशन — इस रनटाइम के ख़िलाफ़ शुरू किया गया हर सेशन
15. IAP की अनुमति लागू करना
हमने डिप्लॉयमेंट की पुष्टि कर ली है. अब हम नीतियों को लागू करने के लिए, IAP एनफ़ोर्समेंट मोड को null पर अपडेट कर सकते हैं. terraform.tfvars खोलें और मोड को DRY_RUN से null पर अपडेट करें
# IAP Enforcement Mode ("DRY_RUN" or null)
agent_gateway_iap_iam_enforcement_mode = null
बदलाव लागू करें.
terraform apply
Playground पर वापस जाएं और फिर से बातचीत करने की कोशिश करें.
- Google Cloud Console में, Agent Platform Deployments पेज खोलें.
- अगर आपको रनटाइम की सूची को छोटा करना है, तो फ़िल्टर फ़ील्ड का इस्तेमाल करें. इसके बाद, अपने
mortgage-agentरनटाइम पर क्लिक करें. - प्लेग्राउंड टैब खोलें.
- एजेंट से चैट करने के लिए, कोई प्रॉम्प्ट टाइप करें:
I am reviewing the Sterling familys current application. Can you summarize their 2024 and 2025 tax returns and verify if their total household income meets our 2026 debt-to-income requirements?
इससे, दस्तावेज़ मैनेज करने वाले टूल और आय की पुष्टि करने वाले टूल से जवाब मिलना चाहिए. साथ ही, इस जवाब में एसएसएन को भी छिपाया जाना चाहिए. 5. फ़ॉलो अप प्रॉम्प्ट टाइप करें:
Can you send a summary of this to my email jane@example.com
अगर सब कुछ सही तरीके से सेट अप किया गया है, तो एजेंट को यह जवाब देना चाहिए कि वह अनुमति देने से जुड़ी नीति की वजह से ईमेल नहीं भेज सकता.
16. Gemini Enterprise को सेटअप करना और उसकी टेस्टिंग करना
Gemini Enterprise को सेट अप करना
Gemini Enterprise का इस्तेमाल शुरू करने से जुड़ी गाइड पढ़ें.
Gemini Enterprise के साथ हमारे ADK एजेंट को रजिस्टर करें
Gemini Enterprise में हमारे एजेंट को रजिस्टर करने के लिए, यह तरीका अपनाएं. इसके लिए, यहां दिया गया तरीका भी अपनाया जा सकता है.
- Google Cloud Console में, Gemini Enterprise पेज पर जाएं.
- वह Gemini Enterprise ऐप्लिकेशन चुनें जिसमें एजेंट रजिस्टर किया गया है.
- Gemini Enterprise का वेब ऐप्लिकेशन इस्तेमाल के लिए तैयार है सेक्शन में दिया गया यूआरएल खोलें.
- एजेंट गैलरी खोलने के लिए, बाईं ओर मौजूद मेन्यू में जाकर एजेंट टैब चुनें.
- Mortgage Assistant Agent को चुनें और चैट करना शुरू करें.
एजेंट रनटाइम प्लेग्राउंड में जाकर, यही प्रॉम्प्ट आज़माएं:
शुरुआती प्रॉम्प्ट:
I am reviewing the Sterling familys current application. Can you summarize their 2024 and 2025 tax returns and verify if their total household income meets our 2026 debt-to-income requirements?
फ़ॉलो अप प्रॉम्प्ट:
Can you send a summary of this to my email jane@example.com
अगर आप कंसोल में एजेंट डिप्लॉयमेंट सेक्शन पर वापस जाते हैं और हमारे एजेंट डिप्लॉयमेंट को चुनकर ट्रेस टैब पर जाते हैं, तो अब आपको Gemini Assistant एजेंट, उस स्पैन में दिखेगा जिसमें Gemini Enterprise से कॉल शुरू होने की जानकारी दी गई है.
17. समस्या हल करना और सामान्य समाधान
terraform applyएजेंट गेटवे पर "संसाधन बनाया जा रहा है, इसलिए इसे अपडेट नहीं किया जा सकता" मैसेज दिखता है — गेटवे के किरायेदार प्रोजेक्ट को सेटल होने में ~30 सेकंड लगते हैं. इसके बाद ही, अनुमति से जुड़ी नीतियां लागू की जा सकती हैं. इस समस्या को मॉड्यूल काtime_sleep.wait_for_gatewayहैंडल करता है. बसterraform applyको फिर से चलाएं.- एजेंट "कोई एमसीपी सर्वर नहीं मिला" रिपोर्ट करता है या सिर्फ़ यूटिलिटी टूल के साथ बूट होता है —
terraform.tfvarsमेंenable_agent_registry_endpoints = trueकी पुष्टि करें. इसके बाद: आपको तीन एंट्री दिखेंगी. हर Cloud Run MCP सेवा के लिए एक एंट्री दिखेगी. अगर सूची खाली है, तो देखें कि वीपीसी के अंदर से एमसीपी सेवाओं तक पहुंचा जा सकता है या नहीं. साथ ही, यह भी देखें कि एजेंट गेटवे ने रजिस्ट्री को भर दिया है या नहीं. यह पहली प्रॉक्सी की गई टूल सूची पर ऐसा करता है.gcloud alpha agent-registry mcp-servers list \ --project=${PROJECT_ID} --location=${REGION} - टूल कॉल से 403 PermissionDenied गड़बड़ी मिलती है —
scripts/grant_agent_mcp_egress.shको फिर से चलाएं. इसकी सबसे आम वजह यह है कि एजेंट को फिर से डिप्लॉय करने के बाद, फिर से अनुमति देना भूल जाना.reasoningEngines/हर डिप्लॉयमेंट के साथ बदलता है. skaffold run"सेवा खाते के लिए अनुमति नहीं दी गई" मैसेज के साथ काम नहीं करता — आपके पासroles/iam.serviceAccountUserनहीं है. पिछले चरण में, खुद को अनुमति देने की प्रोसेस को फिर से चलाएं.- एजेंट गेटवे से एमसीपी एलबी तक डीएनएस पियरिंग से जुड़ी गड़बड़ियां — जांच करें कि
agent_gateway_dns_peering_config.target_network,projects/${PROJECT_ID}/global/networks/${VPC_NAME}से पूरी तरह मेल खाता हो. साथ ही, यह भी देखें कि हरdomainsएंट्री, ट्रेलिंग डॉट पर खत्म होती हो. terraform plan, Cloud Run इमेज टैग को अपडेट करने की कोशिश करता रहता है. ऐसाlifecycle { ignore_changes }नियम की वजह से नहीं होना चाहिए. अगर ऐसा होता है, तो पुष्टि करें कि आपनेskaffold runके बाद,terraform.tfvarsमेंmcp_services[*].imageमें बदलाव नहीं किया है.
18. व्यवस्थित करें
रीज़निंग इंजन को Terraform मैनेज नहीं करता है. इसे ADK SDK बनाता है. इसे मैन्युअल तरीके से मिटाएं:
gcloud beta ai reasoning-engines delete ${AGENT_ID} \
--region=${REGION} --project=${PROJECT_ID}
Terraform ने जो भी बनाया है उसे मिटाएं:
cd terraform
terraform destroy
cd ..
अगर आपने सार्वजनिक डीएनएस ज़ोन सिर्फ़ इस कोडलैब के लिए बनाया है, तो:
gcloud dns managed-zones delete agw-example-com
आखिर में, Terraform स्टेट बकेट मिटाएं:
gcloud storage rm -r gs://${PROJECT_ID}-tfstate
19. बधाई हो
बधाई हो! आपने Agent Gateway का इस्तेमाल करके, मल्टी-टूल ADK एजेंट के लिए एजेंट गवर्नेंस को लागू कर लिया है. Agent Gateway, नेटवर्क कंट्रोल प्लेन के तौर पर काम करता है. इसकी मदद से, निजी टूल के लिए सुरक्षित इग्रेस पाथ बनाया जा सकता है. साथ ही, Identity-Aware Proxy के ज़रिए पहचान के आधार पर IAM की नीतियां लागू की जा सकती हैं. इसके अलावा, इंटिग्रेट किए गए Model Armor के गार्डरेल का इस्तेमाल करके, कॉन्टेंट इंटरैक्शन को सुरक्षित किया जा सकता है.
आपको क्या सीखने को मिला
- एजेंट से किसी भी जगह पर जाने वाले ट्रैफ़िक के लिए, एजेंट गेटवे को सेंट्रल गवर्नेंस लेयर के तौर पर डिप्लॉय और कॉन्फ़िगर करने का तरीका.
- शासन के दायरे में आने वाले, डाइनैमिक रनटाइम टूल की खोज के लिए, एजेंट रजिस्ट्री को इंटिग्रेट करने का तरीका.
- एजेंट के एक्ज़ीक्यूशन पाथ को पूरी तरह से कंट्रोल करने के लिए, हर टूल और शर्त के आधार पर आईएएम नीतियां लिखने और लागू करने का तरीका.
- मॉडल आर्मर की नीतियां लागू करने के लिए, एजेंट गेटवे सेवा के एक्सटेंशन का इस्तेमाल कैसे करें. इससे, एजेंट के संवेदनशील ट्रैफ़िक को अपने-आप रोका जा सकता है और उसमें मौजूद संवेदनशील जानकारी को छिपाया जा सकता है.