1. Overture
अब अलग-अलग टीमों के साथ मिलकर काम करने का समय आ गया है. टेक्नोलॉजी के विकास की अगली लहर, किसी एक व्यक्ति की प्रतिभा के बारे में नहीं है, बल्कि साथ मिलकर काम करने की महारत के बारे में है. एक ही स्मार्ट एजेंट बनाना, एक दिलचस्प एक्सपेरिमेंट है. मॉडर्न एंटरप्राइज़ के लिए, एजेंट का एक मज़बूत, सुरक्षित, और स्मार्ट ईकोसिस्टम बनाना एक बड़ी चुनौती है. इसे एजेंटवर्स कहा जाता है.
इस नए दौर में सफलता पाने के लिए, चार अहम भूमिकाओं को एक साथ लाना ज़रूरी है. ये ऐसे बुनियादी सिद्धांत हैं जो किसी भी एजेंटिक सिस्टम को बेहतर बनाते हैं. किसी भी एक क्षेत्र में कमी होने से, एक ऐसी कमज़ोरी पैदा होती है जो पूरे स्ट्रक्चर को नुकसान पहुंचा सकती है.
यह वर्कशॉप, Google Cloud पर एआई एजेंट के इस्तेमाल से जुड़ी एंटरप्राइज़ प्लेबुक है. हम आपको एक पूरा रोडमैप देते हैं. इससे आपको किसी आइडिया के बारे में शुरुआती जानकारी से लेकर, उसे पूरी तरह से लागू करने तक के बारे में पता चलता है. इन चार इंटरकनेक्टेड लैब में, आपको यह जानने को मिलेगा कि एक पावरफ़ुल Agentverse बनाने, उसे मैनेज करने, और उसे स्केल करने के लिए, डेवलपर, आर्किटेक्ट, डेटा इंजीनियर, और एसआरई की खास क्षमताओं को एक साथ कैसे इस्तेमाल किया जाना चाहिए.
कोई भी पिलर, Agentverse को अकेले सपोर्ट नहीं कर सकता. डेवलपर के सटीक तरीके से काम किए बिना, आर्किटेक्ट का शानदार डिज़ाइन किसी काम का नहीं होता. डेटा इंजीनियर के बिना डेवलपर का एजेंट कुछ नहीं कर सकता. साथ ही, एसआरई की सुरक्षा के बिना पूरा सिस्टम कमज़ोर होता है. आपकी टीम, एक-दूसरे की भूमिकाओं को समझकर और मिलकर काम करके ही, किसी नए कॉन्सेप्ट को मिशन के लिए ज़रूरी और व्यावहारिक बना सकती है. आपका सफ़र यहां से शुरू होता है. अपनी भूमिका को बेहतर तरीके से निभाने के लिए तैयार रहें. साथ ही, जानें कि आप पूरी टीम में किस तरह से फ़िट बैठते हैं.
'द एजेंटवर्स: ए कॉल टू चैंपियंस' में आपका स्वागत है
एंटरप्राइज़ के विशाल डिजिटल क्षेत्र में, एक नया दौर शुरू हो गया है. यह एजेंटिक युग है. इसमें एआई एजेंट, इनोवेशन को बढ़ावा देने और रोज़मर्रा के कामों को आसान बनाने के लिए, एक साथ मिलकर काम करते हैं.

पावर और संभावनाओं से जुड़े इस कनेक्टेड नेटवर्क को एजेंटवर्स कहा जाता है.
हालांकि, इस नई दुनिया में धीरे-धीरे एक ख़तरनाक बदलाव हो रहा है. इसे द स्टैटिक कहा जाता है. स्टैटिक कोई वायरस या बग नहीं है. यह एक तरह का अराजकता है, जो क्रिएशन के ऐक्ट पर निर्भर करता है.
इससे पुरानी समस्याएं और बढ़ जाती हैं. इससे डेवलपमेंट की सात समस्याएं पैदा होती हैं. अगर इस पर ध्यान नहीं दिया गया, तो स्टैटिक और उसके स्पेक्टर्स, प्रोग्रेस को रोक देंगे. इससे एजेंटवर्स का वादा, तकनीकी कर्ज़ और छोड़े गए प्रोजेक्ट के बंजर इलाके में बदल जाएगा.
आज हम ऐसे लोगों को आगे आने का न्योता देते हैं जो इस अराजकता को खत्म करने में हमारी मदद कर सकें. हमें ऐसे हीरो की ज़रूरत है जो अपनी कला में माहिर हों और एजेंटवर्स की सुरक्षा के लिए साथ मिलकर काम कर सकें. अब आपको अपना रास्ता चुनना है.
अपनी क्लास चुनना
आपके सामने चार अलग-अलग रास्ते हैं. इनमें से हर एक, द स्टैटिक के ख़िलाफ़ लड़ाई में अहम भूमिका निभाता है. हालांकि, आपकी ट्रेनिंग अकेले ही होगी, लेकिन आपकी सफलता इस बात पर निर्भर करती है कि आपकी स्किल, दूसरों की स्किल के साथ मिलकर कैसे काम करती हैं.
- द शैडोब्लेड (डेवलपर): यह फ़ोर्ज और फ़्रंट लाइन का मास्टर है. आप एक ऐसे कारीगर हैं जो ब्लेड बनाता है, टूल बनाता है, और कोड की जटिलताओं में दुश्मन का सामना करता है. आपका रास्ता सटीक, कुशल, और व्यावहारिक है.
- द समनर (आर्किटेक्ट): यह एक बेहतरीन रणनीतिज्ञ और आयोजक होता है. आपको सिर्फ़ एक एजेंट नहीं, बल्कि पूरा बैटलग्राउंड दिखता है. आपको ऐसे मास्टर ब्लूप्रिंट डिज़ाइन करने होते हैं जिनकी मदद से, एजेंट के पूरे सिस्टम को कम्यूनिकेट करने, साथ मिलकर काम करने, और किसी एक कॉम्पोनेंट से ज़्यादा बड़ा लक्ष्य हासिल करने में मदद मिलती है.
- स्कॉलर (डेटा इंजीनियर): यह छिपी हुई सच्चाई को ढूंढने वाला और ज्ञान का भंडार होता है. डेटा के विशाल और अनियंत्रित जंगल में, आपको ऐसी जानकारी मिलती है जो आपके एजेंट को मकसद और दिशा देती है. आपकी जानकारी से, किसी दुश्मन की कमज़ोरी का पता चल सकता है या किसी सहयोगी को मज़बूत किया जा सकता है.
- द गार्जियन (DevOps / SRE): यह डोमेन का भरोसेमंद रक्षक और शील्ड होता है. आपको किले बनाने होते हैं, बिजली की सप्लाई लाइनें मैनेज करनी होती हैं, और यह पक्का करना होता है कि पूरा सिस्टम, स्टैटिक के हमलों का सामना कर सके. आपकी ताकत ही वह आधार है जिस पर आपकी टीम की जीत टिकी होती है.
आपका मिशन
आपकी ट्रेनिंग, एक अलग कसरत के तौर पर शुरू होगी. आपको अपनी चुनी हुई भूमिका के हिसाब से, ज़रूरी खास कौशल सीखने का मौका मिलेगा. ट्रायल के आखिर में, आपको स्टैटिक से पैदा हुए स्पेकटर का सामना करना होगा. यह एक मिनी-बॉस है, जो आपके क्राफ़्ट की खास चुनौतियों का फ़ायदा उठाता है.
अपनी भूमिका में महारत हासिल करके ही, फ़ाइनल ट्रायल के लिए तैयारी की जा सकती है. इसके बाद, आपको दूसरी क्लास के चैंपियन के साथ मिलकर एक पार्टी बनानी होगी. साथ मिलकर, आपको करप्शन के केंद्र में जाना होगा, ताकि आप सबसे बड़े बॉस का सामना कर सकें.
यह एक फ़ाइनल चैलेंज है, जिसमें आपको मिलकर काम करना होगा. इससे आपकी टीम की ताकत का पता चलेगा और यह तय होगा कि एजेंटवर्स का क्या होगा.
Agentverse को अपने हीरो का इंतज़ार है. क्या आपको कॉल का जवाब देना है?
2. द शैडोब्लेड्स कोडेक्स
Shadowblade's Codex आपके सामने खुला हुआ है. उसकी कॉल का जवाब दो. एजेंटवर्स पर, द स्टैटिक के बढ़ते हुए अराजक माहौल का खतरा मंडरा रहा है. सिर्फ़ वे लोग इसका मुकाबला कर सकते हैं जिन्होंने इस कोडेक्स में बताई गई तकनीकों में महारत हासिल की है. यह सटीक और व्यवस्थित तरीके से काम करने का तरीका है. आज से आपकी ट्रेनिंग शुरू हो रही है. आपको एआई को सिर्फ़ एक टूल के तौर पर नहीं, बल्कि एक ऐसी तलवार के तौर पर इस्तेमाल करना सीखना होगा जिसे काबू में रखना और चलाना सीखना ज़रूरी है. यहां दी गई बातों को ध्यान में रखें. इससे आपको एक ऐसा हथियार बनाने में मदद मिलेगी जो पूरी तरह से तर्क पर आधारित होगा. यह एक ऐसा इंटेलिजेंट एजेंट होगा जो हर तरह की चुनौती का सामना करने के लिए तैयार होगा.

आपको क्या सीखने को मिलेगा
- Gemini CLI का इस्तेमाल करें.
- Gemini CLI के साथ एमसीपी टूल को इंटिग्रेट करके, बाहरी टूल को ऐक्सेस करें. इससे, अनजान कोडबेस का विश्लेषण किया जा सकता है.
- अपने इरादे को "वाइब" में बदलें. इसके लिए, डिज़ाइन दस्तावेज़ों का इस्तेमाल करके अपने एआई पार्टनर को निर्देश दें.
- एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके, अपना पहला ऑटोनॉमस एजेंट बनाएं और एक मॉड्यूलर समाधान तैयार करें.
- अपने एजेंट की जांच और पुष्टि करने के लिए, अपने-आप आकलन करने वाले सुइट बनाना.
- पूरी सीआई पाइपलाइन बनाएं, ताकि आपके एजेंट का अपने-आप टेस्ट हो सके, उसे कंटेनर में रखा जा सके, और उसे संग्रहित किया जा सके.
3. ट्रेनिंग ग्राउंड तैयार करना
👉Google Cloud Console में सबसे ऊपर, Cloud Shell चालू करें पर क्लिक करें (यह Cloud Shell पैनल में सबसे ऊपर टर्मिनल के आकार वाला आइकॉन है), 
👉 "एडिटर खोलें" बटन पर क्लिक करें. यह पेंसिल वाले खुले फ़ोल्डर की तरह दिखता है. इससे विंडो में Cloud Shell Code Editor खुल जाएगा. आपको बाईं ओर फ़ाइल एक्सप्लोरर दिखेगा. 
👉क्लाउड आईडीई में टर्मिनल खोलें,

👉💻 टर्मिनल में, पुष्टि करें कि आपने पहले ही पुष्टि कर ली है और प्रोजेक्ट को अपने प्रोजेक्ट आईडी पर सेट किया गया है. इसके लिए, यह कमांड इस्तेमाल करें:
gcloud auth list
👉💻 GitHub से बूटस्ट्रैप प्रोजेक्ट का क्लोन बनाएं:
git clone https://github.com/weimeilin79/agentverse-developer.git
chmod +x ~/agentverse-developer/gitea.sh
chmod +x ~/agentverse-developer/init.sh
chmod +x ~/agentverse-developer/set_env.sh
git clone https://github.com/weimeilin79/agentverse-dungeon.git
chmod +x ~/agentverse-dungeon/run_cloudbuild.sh
chmod +x ~/agentverse-dungeon/start.sh
git clone https://github.com/weimeilin79/vertex-ai-creative-studio.git
chmod +x ~/vertex-ai-creative-studio/experiments/mcp-genmedia/mcp-genmedia-go/install.sh
👉💻 प्रोजेक्ट डायरेक्ट्री से सेटअप स्क्रिप्ट चलाएं.
⚠️ प्रोजेक्ट आईडी के बारे में जानकारी: स्क्रिप्ट, डिफ़ॉल्ट प्रोजेक्ट आईडी के तौर पर कोई भी आईडी सुझाएगी. इस डिफ़ॉल्ट को स्वीकार करने के लिए, Enter दबाएं.
हालांकि, अगर आपको कोई नया प्रोजेक्ट बनाना है, तो स्क्रिप्ट के प्रॉम्प्ट करने पर, अपना पसंदीदा प्रोजेक्ट आईडी टाइप करें.
cd ~/agentverse-developer
./init.sh
स्क्रिप्ट, सेटअप की बाकी प्रोसेस को अपने-आप पूरा कर देगी.
👉 स्क्रिप्ट पूरी होने के बाद ज़रूरी चरण: स्क्रिप्ट पूरी होने के बाद, आपको यह पक्का करना होगा कि Google Cloud Console में सही प्रोजेक्ट दिख रहा हो:
- console.cloud.google.com पर जाएं.
- पेज पर सबसे ऊपर मौजूद, प्रोजेक्ट सिलेक्टर ड्रॉपडाउन पर क्लिक करें.
- "सभी" टैब पर क्लिक करें. ऐसा इसलिए, क्योंकि हो सकता है कि नया प्रोजेक्ट अभी "हाल ही के" टैब में न दिखे.
- वह प्रोजेक्ट आईडी चुनें जिसे आपने अभी
init.shचरण में कॉन्फ़िगर किया है.

👉💻 वापस टर्मिनल में जाएं. ज़रूरी प्रोजेक्ट आईडी सेट करें:
gcloud config set project $(cat ~/project_id.txt) --quiet
👉💻 ज़रूरी Google Cloud API चालू करने के लिए, यह कमांड चलाएं:
gcloud services enable compute.googleapis.com \
artifactregistry.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
cloudbuild.googleapis.com \
iam.googleapis.com \
aiplatform.googleapis.com \
cloudresourcemanager.googleapis.com
👉💻 अगर आपने agentverse-repo नाम की Artifact Registry रिपॉज़िटरी पहले से नहीं बनाई है, तो इसे बनाने के लिए यह कमांड चलाएं:
. ~/agentverse-developer/set_env.sh
gcloud artifacts repositories create $REPO_NAME \
--repository-format=docker \
--location=$REGION \
--description="Repository for Agentverse agents"
अनुमति सेट अप करना
👉💻 टर्मिनल में ये कमांड चलाकर, ज़रूरी अनुमतियां दें: :
. ~/agentverse-developer/set_env.sh
# Artifact Registry Admin
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
--role="roles/artifactregistry.admin"
# Cloud Build Editor
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
--role="roles/cloudbuild.builds.editor"
# Cloud Run Admin
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
--role="roles/run.admin"
# IAM Service Account User
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
--role="roles/iam.serviceAccountUser"
# Vertex AI User
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
--role="roles/aiplatform.user"
# Logging Writer (to allow writing logs)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
--role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
--role="roles/logging.viewer"
👉💻 ट्रेनिंग शुरू करने के बाद, हम फ़ाइनल चैलेंज तैयार करेंगे. नीचे दिए गए निर्देशों से, स्टैटिक से स्पेकटर को बुलाया जाता है. इससे आपके टेस्ट के लिए बॉस तैयार हो जाते हैं.
. ~/agentverse-developer/set_env.sh
cd ~/agentverse-dungeon
./run_cloudbuild.sh
npm update -g @google/gemini-cli
4. अपने मुख्य हथियार में महारत हासिल करना: Gemini CLI के बारे में जानकारी
एमसीपी सर्वर के शस्त्रागार में मौजूद बेहतर और खास हथियारों का इस्तेमाल करने से पहले, आपको अपने मुख्य हथियार यानी Gemini CLI का इस्तेमाल करना सीखना होगा. यह आपका सबसे दमदार ब्लेड है. इसकी मदद से, बोलकर दिए गए निर्देशों के ज़रिए डिजिटल दुनिया को बदला जा सकता है. इन ड्रिल से, आपको इसकी बुनियादी हैंडलिंग और क्षमताओं के बारे में जानकारी मिलेगी.

Gemini का कमांड लाइन इंटरफ़ेस (सीएलआई) सिर्फ़ एक टूल नहीं है, बल्कि यह आपकी इच्छाओं को पूरा करने का एक ज़रिया है. यह ओपन-सोर्स एआई एजेंट, Gemini मॉडल की मदद से काम करता है. यह "वजह बताओ और काम करो" (ReAct) लूप पर काम करता है. यह आपके इरादे का विश्लेषण करता है, सही तकनीक चुनता है, उसे लागू करता है, और मुश्किल टास्क को पूरा करने के लिए नतीजे देखता है. ज़्यादा खास हथियार इस्तेमाल करने से पहले, आपको इस मुख्य ब्लेड को चलाने में महारत हासिल करनी होगी.
Gemini सीएलआई का इस्तेमाल शुरू करना
👉💻 ट्रेनिंग ग्राउंड में जाएं और अपना हथियार निकालें. Cloud Shell टर्मिनल में, अपने निजी आर्मरी पर जाएं.
cd ~/agentverse-developer
mkdir tabletop
cd tabletop
👉💻 पहली बार Gemini को ऐक्सेस करें. यह आपको शुरुआती ट्यूनिंग के बारे में जानकारी देगा.
clear
gemini
अगर आपसे Do you want to connect Cloud Shell editor to Gemini CLI? पूछा जाता है, तो NO चुनें.
हथियार के बारे में जानकारी
हर मास्टर क्राफ़्ट्समैन को अपने टूल के बारे में पता होता है. किसी असली दुश्मन का सामना करने से पहले, आपको अपने ब्लेड की बुनियादी तकनीकें सीखनी होंगी.
👉✨ हर जादुई टूल में ऐसे रन होते हैं जिनसे उसकी ताकत के बारे में पता चलता है. इन्हें अभी पढ़ें. Gemini के प्रॉम्प्ट में, यह टाइप करें:
/help
निर्देशों की सूची देखें. ये याददाश्त (focus), बातचीत (chat), और बाहरी हथियारों (tools) को मैनेज करने के बुनियादी तरीके हैं. यह आपकी कॉम्बैट मैनुअल है.
👉✨ आपका हथियार, अपने आस-पास के माहौल के हिसाब से काम करता है. इससे आपको सीधे तौर पर जंग के मैदान में बदलाव करने की सुविधा मिलती है. ब्लेड के बाहर की दुनिया के लिए कोई निर्देश जारी करें:
!ls -l
👉✨ Gemini CLI में, पहले से मौजूद कई सुविधाएँ होती हैं. उनकी जांच करने के लिए:
/tools
आपको ReadFile, WriteFile, और GoogleSearch की सूची दिखेगी. ये डिफ़ॉल्ट तकनीकें हैं, जिनका इस्तेमाल बाहरी टूल के बिना किया जा सकता है.
👉✨ हथियार का सही तरीके से इस्तेमाल करने पर ही, उसका असर होता है. Gemini Blade में "टैक्टिकल अवेयरनेस" (कॉन्टेक्स्ट) की जानकारी होती है, ताकि वह अपने कामों को सही तरीके से पूरा कर सके.
/memory show
फ़िलहाल, यह खाली है.
👉✨ इस रणनीति से जुड़े डेटा को अपनी मेमोरी में सेव करो:
/memory add "The Shadowblade's primary foe is The Static."
/memory show को फिर से चलाएं, ताकि यह पुष्टि की जा सके कि आपके ब्लेड ने इस जानकारी को समझ लिया है.
👉✨ असरदार होने के लिए, आपके हथियार को मिशन के बारे में पता होना चाहिए. @ सिगिल, ब्लेड को जानकारी का विश्लेषण करने का निर्देश देता है. सबसे पहले, मिशन की जानकारी देने वाली फ़ाइल बनाएं:
!echo "## Mission Objective: Defeat the Seven Spectres" > mission.md
👉✨अब, Gemini CLI को ब्रीफ़िंग का विश्लेषण करने और उसके नतीजों की रिपोर्ट करने का निर्देश दें:
Explain the contents of the file @mission.md
आपके मुख्य हथियार को अब अपने लक्ष्य के बारे में पता है.
👉💻 Gemini CLI से बाहर निकलने के लिए, Ctrl+C को दो बार दबाएं
5. Analyzing the Battlefield: Practical Vibe Coding Interaction
ट्रेनिंग ड्रिल पूरी हो गई हैं. आपने Gemini CLI के मुख्य हथियार के तौर पर इस्तेमाल किए जाने वाले बुनियादी स्टांस और स्ट्राइक के बारे में जान लिया है. हालांकि, किसी ब्लेड को तब तक पूरी तरह से तैयार नहीं माना जाता, जब तक उसे बनाने की भट्टी में न आज़माया गया हो और युद्ध के लिए तैयार न किया गया हो. अपने असली दुश्मन का सामना करने से पहले, आपको अपने आस-पास के माहौल यानी डिजिटल बैटलग्राउंड का सर्वे करना होगा और उसे अपने हिसाब से ढालना होगा.

इस चैप्टर में, थ्योरी से प्रैक्टिस पर स्विच करने के बारे में बताया गया है. सबसे पहले, आपको Agentverse में अपनी मौजूदगी दर्ज करानी होगी. इसके लिए, आपको Gemini ब्लेड को अपने मेकर का मार्क बनाने का निर्देश देना होगा. यह एक डिजिटल सिग्नेचर होता है. यह आपकी निजी वेबसाइट के तौर पर होता है. इसे सिर्फ़ आपके मकसद के हिसाब से बनाया जाता है. इसके बाद, आपको बेहतर टूल के लोकल आर्सेनल यानी एमसीपी सर्वर को चालू करके अपनी ताकत बढ़ानी होगी. साथ ही, अपने ब्लेड को उसकी फ़्रीक्वेंसी के हिसाब से सेट करना होगा. इससे आपको जटिल कार्रवाइयां करने में मदद मिलेगी. जैसे, आसान और सटीक निर्देशों की मदद से कोड रिपॉज़िटरी मैनेज करना.
अपने ब्रैंड की पहचान बनाना
असली शैडोब्लेड की पहचान सिर्फ़ उसके हथियार से नहीं होती, बल्कि उसकी खास स्टाइल यानी मेकर मार्क से होती है. यह मार्क आपकी डिजिटल मौजूदगी होगी. यह एक ऐसी निजी प्रोफ़ाइल होगी जो Agentverse को आपकी पहचान के बारे में बताएगी. यहां, आपको Gemini Blade को यह निर्देश देना होगा कि वह इस पहचान को तय करने के लिए, मुश्किल तकनीक का इस्तेमाल करे.

👉💻 अगर आपने पिछले सेक्शन में Gemini CLI बंद कर दिया था, तो पक्का करें कि आपने इसे फिर से शुरू कर दिया हो. इसके लिए, टर्मिनल में यह कमांड चलाएं
clear
cd ~/agentverse-developer/tabletop
gemini
👉✨ एक ही कमांड से, Gemini CLI को अपनी डिजिटल पहचान बनाने के लिए निर्देश दें:
In the current folder, create a personal profile website for a hero codenamed 'Shadowblade'. The design must be a dark, futuristic theme with electric blue accents. All code must be in separate index.html and styles.css files. The layout must use CSS Flexbox for a two-column design. All generated code must be clean, well-commented, and professional. Make sure you have a place holder spot for profile picture. Do not attempt to start the server.
Gemini ने ज़रूरी कार्रवाइयों का क्रम तय कर लिया है.
👉💻 Gemini CLI से बाहर निकलने के लिए, Ctrl+C को दो बार दबाएं और टर्मिनल में यह निर्देश चलाएं.*
python -m http.server
👀 अपने काम की झलक देखने के लिए, Cloud Shell टूलबार में मौजूद वेब प्रीव्यू आइकॉन पर क्लिक करें. पोर्ट बदलें को चुनें. इसे 8000 पर सेट करें. इसके बाद, बदलें और झलक देखें पर क्लिक करें. आपको अपनी वेबसाइट की झलक दिखेगी. 
ऐसा हो सकता है कि आपकी वेबसाइट मेरी वेबसाइट से अलग दिख रही हो. यह आपका यूनीक मार्क है. 
अब आपकी हस्ताक्षर करने की तकनीक बेहतर हो गई है. इसलिए, अब लाइव सिम्युलेशन की ज़रूरत नहीं है. ब्लेड को रुकने का निर्देश दें.
👉💻 एचटीटीपी सर्वर से बाहर निकलने के लिए, Ctrl+C दबाएं.
अब आपकी डिजिटल पहचान बन गई है. इससे भी ज़्यादा ज़रूरी यह है कि आपने बड़ी ज़िम्मेदारी के साथ काम करने के बारे में ज़रूरी बातें सीखी हैं.
Activate Your Local Arsenal: The Gitea Armory
शैडोब्लेड की असली ताकत, सिर्फ़ उसकी निजी क्षमता से नहीं, बल्कि उसके हथियारों की क्वालिटी से भी तय होती है. अब आपको अपने लोकल वेपन्स रैक यानी Gitea सर्वर को चालू करना होगा. साथ ही, अपनी ब्लेड को उसकी पावर के हिसाब से सेट करना होगा. यह टूलकिट, मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) सर्वर के ज़रिए Gemini CLI से कनेक्ट होती है. यह एक खास पोर्टल है, जो आपके एआई ब्लेड को बाहरी टूल और सेवाओं के साथ इंटरैक्ट करने की अनुमति देता है. इससे आपका टर्मिनल, एक स्मार्ट और ऐक्शन-ओरिएंटेड वर्कस्पेस में बदल जाता है.
डेवलपर के लिए जानकारी: एमसीपी सर्वर को पावर का स्रोत समझें. यह एक खास पोर्टल है, जो आपके एआई के दिमाग को बाहरी टूल के शरीर से जोड़ता है. इसी वजह से, Gemini CLI सिर्फ़ बातचीत करने वाला टूल नहीं है, बल्कि एक ऐसा एजेंट है जो आपके निर्देशों के मुताबिक काम करता है. अपने ब्लेड को इन एमसीपी पोर्टल के हिसाब से सेट अप करके, उसे कई तरह की कार्रवाइयां करने की अनुमति दी जाती है. जैसे, फ़ाइलें मैनेज करना, डेटाबेस से क्वेरी करना, एपीआई के साथ इंटरैक्ट करना वगैरह. इन पोर्टल का पूरा एक ईकोसिस्टम मौजूद है. इसे डेवलपर ने एआई एजेंट को दमदार प्लैटफ़ॉर्म से कनेक्ट करने के लिए बनाया है. डेटाबेस से इंटरैक्ट करने, कोड को सुरक्षित करने या यहां तक कि पेयर प्रोग्रामिंग के लिए भी एमसीपी सर्वर होते हैं. इनकी मदद से कई काम किए जा सकते हैं. साथ ही, डेवलपर किसी भी प्रोजेक्ट के लिए अपने Workspace को पसंद के मुताबिक बना सकता है.
आज हम दो बुनियादी क्षमताओं पर फ़ोकस करेंगे. ये "वाइब कोडर" के लिए ज़रूरी हैं: फ़ोर्ज को कंट्रोल करने की क्षमता और कल्पना से कॉन्टेंट बनाने की क्षमता. सबसे पहले, आपको अपने ब्लेड को Git सर्वर से जोड़ना होगा. इससे आपको सोर्स कोड रिपॉज़िटरी को कंट्रोल करने की अनुमति मिल जाएगी. इसके बाद, आपको इमेज जनरेट करने के लिए दूसरे एमसीपी सर्वर से कनेक्ट किया जाएगा. इससे, सिर्फ़ एक कमांड देकर विज़ुअल ऐसेट बनाई जा सकेंगी.
आइए, हम आपके नए शस्त्रागार के पहले और सबसे बुनियादी हिस्से को बुलाकर शुरुआत करते हैं: शस्त्रागार.
👉💻 अपने टर्मिनल में, आर्मरी को ऐक्सेस करने के लिए, ऐक्टिवेशन स्क्रिप्ट चलाएं:
cd ~/agentverse-developer
./gitea.sh
यह स्क्रिप्ट, Gitea कंटेनर को चालू करती है और MCP पोर्टल खोलती है. इससे Gemini को इसे समझने और इसके साथ इंटरैक्ट करने की अनुमति मिलती है.
👉 अपने नए शस्त्रागार की जांच करने के लिए, आपको वेब प्रीव्यू देखना होगा.
👉 Cloud Shell टूलबार में मौजूद वेब प्रीव्यू आइकॉन से, पोर्ट बदलें को चुनें और इसे 3005 पर सेट करें. 
👉 आपको Gitea का लॉगिन पेज दिखेगा. इन शब्दों का इस्तेमाल करके, आर्मरी में जाएं: * उपयोगकर्ता नाम: dev * पासवर्ड: dev
👉💻 Gemini CLI में, अब तक यह नया आर्सेनल नहीं दिख रहा है. आपको एक ज़रूरी अट्यूनमेंट करना होगा. इसके लिए, आपको Gemini CLI की कॉन्फ़िगरेशन रन (settings.json) पर आर्मरी की जगह की जानकारी लिखनी होगी. अपने टर्मिनल में, यह कमांड चलाएं:
if [ ! -f ~/.gemini/settings.json ]; then
# If file does not exist, create it with the specified content
echo '{"mcpServers":{"gitea":{"url":"http://localhost:8085/sse"}}}' > ~/.gemini/settings.json
else
# If file exists, merge the new data into it
jq '. * {"mcpServers":{"gitea":{"url":"http://localhost:8085/sse"}}}' ~/.gemini/settings.json > tmp.json && mv tmp.json ~/.gemini/settings.json
fi &&
cat ~/.gemini/settings.json
👀 settings.json फ़ाइल, Gemini CLI के लिए मुख्य कॉन्फ़िगरेशन है. यह इसकी प्राथमिकताओं और क्षमताओं की जानकारी देने वाली किताब के तौर पर काम करती है. इससे यह तय होता है कि सीएलआई कैसे काम करेगा, कैसा दिखेगा, और सबसे अहम बात यह है कि यह किन बाहरी शक्तियों का इस्तेमाल कर सकता है. यह फ़ाइल आम तौर पर आपकी होम डायरेक्ट्री में ~/.gemini/settings.json पर मौजूद होती है. इसके नियम आपके सभी प्रोजेक्ट पर लागू होते हैं. हालांकि, ग्लोबल सेटिंग को बदलने के लिए, प्रोजेक्ट फ़ोल्डर में मौजूद .gemini डायरेक्ट्री में, प्रोजेक्ट के हिसाब से settings.json फ़ाइलें भी बनाई जा सकती हैं.
"mcpServers": {
"gitea": {
"url": "http://localhost:8085/sse"
}
}
इस सेटिंग से Gemini को यह पता चलता है कि "gitea नाम का आर्सनल चालू है और इस नेटवर्क पते पर निर्देश सुनने के लिए तैयार है."
👉💻 Gemini CLI को फिर से डालें. अपने टर्मिनल में, यह कमांड चलाएं:
clear
cd ~/agentverse-developer/tabletop/
gemini
👉✨ पुष्टि करें कि आपके ब्लेड को नया हथियार मिल गया है. इसे एमसीपी पोर्टल के ज़रिए, उपलब्ध सभी हथियारों की सूची बनाने का निर्देश दें:
/mcp

अब आपको gitea और इसके साथ उपलब्ध तकनीकों की सूची दिखेगी. आपका ब्लेड तैयार है.
आपकी "मेकर्स मार्क" प्रोफ़ाइल, बेहतरीन तरीके से बनाई गई है. हालांकि, इसे सुरक्षित रखने के लिए, आर्मरी में सही जगह पर रखना होगा. यानी, इसे सुरक्षित रखने के लिए एक म्यान की ज़रूरत है. Gemini CLI को एक नया फ़ंक्शन बनाने का निर्देश दें.
Create a new repository named 'shadowblade-profile'. The description should be 'The Maker's Mark and digital identity for the Shadowblade operative.' I will push my own files later, so do not create any content.
Gitea के वेब इंटरफ़ेस पर वापस जाएं और उसे रीफ़्रेश करें. आपको दिखेगा कि आपके लिए नई shadowblade-profile रिपॉज़िटरी बना दी गई है. 
तलवार रखने की म्यान तैयार होने के बाद, अपने काम को सुरक्षित करें. Gemini को अपनी प्रोफ़ाइल वेबसाइट की फ़ाइलें सबमिट करने का निर्देश दें.
👉💻Gemini CLI में, इस तकनीक के लिए आखिरी निर्देश दें:
Using the Gitea tool, push the index.html and styles.css files to the 'shadowblade-profile' repository.
एक असली मास्टर अपने काम की पुष्टि करता है. Gitea टैब पर वापस जाएं और रिपॉज़िटरी पेज को रीफ़्रेश करें. आपके index.html और styles.css को अब सुरक्षित तरीके से संग्रहित कर दिया गया है.


👉✨ शैडोब्लेड की पहचान उसके सिगिल से होती है. हालांकि, आपको याद होगा कि आपकी वेबसाइट पर प्रोफ़ाइल इमेज मौजूद नहीं है. एक बेहतरीन कारीगर, अपनी कमियों को स्वीकार करता है, ताकि उन्हें दूर किया जा सके. आपको इस कमी को आर्मरी के रिकॉर्ड में शामिल करना होगा.
File an issue for me in the shadowblade-profile repo. The issue is that the profile image is missing.
Gitea
में समस्या देखें
गायब हुए सिगिल को बनाने के लिए, आपको एक अलग तरह की शक्ति का इस्तेमाल करना होगा. यह शक्ति, Vertex AI से मिलने वाली क्रिएशन स्पिरिट है. यह सिर्फ़ सोच से इमेज जनरेट कर सकती है. इसके लिए, किसी दूसरे एमसीपी पोर्टल की ज़रूरत होती है.
👉💻 Gemini CLI से बाहर निकलने के लिए, Ctrl+C को दो बार दबाएं
👉💻 सबसे पहले, पोर्टल का सर्वर इंस्टॉल करें. अपने टर्मिनल में, यह कमांड चलाएं:
echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.bashrc
source ~/.bashrc
cd ~/vertex-ai-creative-studio/experiments/mcp-genmedia/mcp-genmedia-go
./install.sh
👉 जब आपसे पूछा जाए, तब mcp-imagen-go विकल्प चुनें. यह विकल्प आम तौर पर चौथे नंबर पर होता है, लेकिन कभी-कभी इसके नंबर में बदलाव हो जाता है. हमें सिर्फ़ अपनी प्रोफ़ाइल के लिए एक इमेज जनरेट करनी है.
👉💻 क्रिएशन स्पिरिट को अपनी क्रिएशन को सेव करने के लिए, पवित्र बर्तन यानी Google Cloud Storage बकेट की ज़रूरत होती है. चलिए, अब एक नया स्टाफ़ हायर करते हैं. अपने टर्मिनल में, यह कमांड चलाएं:
. ~/agentverse-developer/set_env.sh
gcloud storage buckets create gs://$BUCKET_NAME --project=$PROJECT_ID
👉💻 अब, Gemini CLI को इस नई क्रिएटिव फ़ोर्स से लिंक करने के लिए, अट्यूनमेंट की प्रोसेस पूरी करें. अपने टर्मिनल में, यह कमांड चलाएं:
. ~/agentverse-developer/set_env.sh
source ~/.bashrc
jq \
--arg bucket "$BUCKET_NAME" \
--arg project "$PROJECT_ID" \
--arg region "$REGION" \
'.mcpServers.imagen = { "command": "mcp-imagen-go", "env": { "MCP_SERVER_REQUEST_TIMEOUT": "55000", "GENMEDIA_BUCKET": $bucket, "PROJECT_ID": $project, "LOCATION": $region } }' \
~/.gemini/settings.json > tmp.json && mv tmp.json ~/.gemini/settings.json
cat ~/.gemini/settings.json
यह "अट्यूनमेंट रिचुअल" एक शेल स्क्रिप्ट है. यह आपके Gemini CLI को कॉन्फ़िगर करती है, ताकि वह एक नए और बेहतरीन टूल का इस्तेमाल कर सके: Imagen, Google का इमेज जनरेशन मॉडल. खास तौर पर, यह Imagen के लिए एमसीपी (मॉडल कॉन्टेक्स्ट प्रोटोकॉल) सर्वर सेट अप करके ऐसा करता है. यह एमसीपी सर्वर, ब्रिज की तरह काम करता है. इससे Gemini CLI, Imagen से कम्यूनिकेट कर पाता है और उसकी क्षमताओं का इस्तेमाल कर पाता है. यह सीधे तौर पर सीएलआई की सेंट्रल कॉन्फ़िगरेशन फ़ाइल, ~/.gemini/settings.json में बदलाव करके ऐसा करता है. इससे सीएलआई को यह पता चलता है कि सही क्लाउड क्रेडेंशियल के साथ mcp-imagen-go कमांड को कैसे चलाया जाए.
👀 इस प्रोसेस के बाद, आपकी settings.json फ़ाइल में एक नया ब्लॉक जुड़ जाता है. इससे Gemini CLI को एक नई स्किल के बारे में पता चलता है:
"imagen": {
"command": "mcp-imagen-go",
"env": {
"MCP_SERVER_REQUEST_TIMEOUT": "55000",
"GENMEDIA_BUCKET": "your-bucket-name",
"PROJECT_ID": "your-project-id",
"LOCATION": "your-region"
}
}
इससे Gemini CLI को यह पता चलता है कि "जब किसी टास्क के लिए Imagen टूल की ज़रूरत हो, तब आपको mcp-imagen-go नाम के प्रोग्राम को एक्ज़ीक्यूट करना होगा. यह Imagen MCP सर्वर है. इसे चलाने के लिए, आपको यह खास एनवायरमेंट (env) देना होगा: इमेज सेव करने के लिए Google Cloud Storage बकेट, क्लाउड एपीआई के लिए इस्तेमाल किया जाने वाला प्रोजेक्ट आईडी, और जगह की जानकारी." इस एमसीपी सर्वर को कॉन्फ़िगर करके, Gemini CLI को Imagen की इमेज जनरेट करने की सुविधा का ऐक्सेस दिया जाता है."
👉💻 Gemini में जाकर, जवाब को बेहतर बनाने के लिए निर्देश दें. अपने टर्मिनल में, यह कमांड चलाएं:
clear
cd ~/agentverse-developer/tabletop/
gemini
👉✨ एक ही पावरफ़ुल कमांड की मदद से, Gemini CLI को अपनी डिजिटल पहचान बनाने के लिए निर्देश दें. Gemini CLI में, यह कमांड डालें:
Generate a portrait of a shadowblade, pixel art style. A determined warrior with long, braided magenta hair, wearing black and teal armor and confidently holding a silver broadsword.
👉✨ स्पिरिट, इमेज जनरेट करके उसे आपके पवित्र बर्तन में रख देगा. अब ब्लेड को इस नए सिगिल का इस्तेमाल करने का निर्देश दो. (GEMINI MIGHT ALREADY DID THIS FOR YOU! पिछले जवाब को देखें. हो सकता है कि वह आपके सवाल पूछने से पहले ही, इस काम को पूरा कर दे!!!! )
Modify the index.html file to add my profile picture. Use the image I just generated.
👉💻 नए टर्मिनल में, एचटीटीपी सर्वर शुरू करें.
cd ~/agentverse-developer/tabletop/
python -m http.server
👀 अपने काम की झलक देखने के लिए, Cloud Shell टूलबार में मौजूद वेब प्रीव्यू आइकॉन पर क्लिक करें. पोर्ट बदलें को चुनें. इसके बाद, इसे 8000 पर सेट करें. इसके बाद, बदलें और झलक देखें पर क्लिक करें. आपको अपनी वेबसाइट की झलक दिखेगी. 
👉✨ Gemini CLI चलाने वाले टर्मिनल पर वापस जाएं. इसके बाद, समस्या को ठीक करने के लिए कोड सबमिट करें. साथ ही, टास्क पूरा होने की जानकारी दें. इसके बाद, armory के रिकॉर्ड में दर्ज की गई समस्या को बंद करें.
Push the changed index.html file to the 'shadowblade-profile' repository using the gitea tool. Make sure you add 'Fix #1' in the commit comment. Also, close issue #1.Use the Gitea Tool and use user account "dev"
👉💻 Gemini CLI से बाहर निकलने के लिए, Ctrl+C को दो बार दबाएं.
👀 अपने काम की झलक देखने के लिए, Cloud Shell टूलबार में मौजूद वेब प्रीव्यू आइकॉन पर क्लिक करें. पोर्ट बदलें को चुनें. इसके बाद, इसे 3005 पर सेट करें. इसके बाद, बदलें और झलक देखें पर क्लिक करें. आपको अपनी वेबसाइट की झलक दिखेगी. 
👉💻 एचटीटीपी सर्वर चलाने वाले टर्मिनल में,एचटीटीपी सर्वर से बाहर निकलने के लिए Ctrl+C दबाएं.
गेम नहीं खेलने वालों के लिए
6. शैडोब्लेड एजेंट को असेंबल करना: दिशा-निर्देशों के साथ वाइब कोड
प्रैक्टिस ड्रिल का समय खत्म हो गया है. पत्थर पर स्टील की गूंज कम हो जाती है. आपने अपने मुख्य हथियार में महारत हासिल कर ली है और युद्ध के लिए अपना ज़ख़ीरा तैयार कर लिया है. अब, शैडोब्लेड की असली परीक्षा होगी: ऑपरेटिव को असेंबल करना. यह लॉजिक को जीवंत बनाने की कला है. इसमें कोडेक्स के पवित्र ब्लूप्रिंट का इस्तेमाल करके, एजेंट की मुख्य बुद्धिमत्ता को तैयार किया जाता है. इससे आपके शस्त्रागार में मौजूद ब्लेड के लिए एक ऐसा एजेंट तैयार होता है जो सोच सकता है, तर्क कर सकता है, और अपने हिसाब से काम कर सकता है.

आपका पहला काम, किसी मौजूदा वर्कशॉप में शामिल होना है. यह एक पहले से बना हुआ कोडबेस है. इसके अलग-अलग हिस्सों का इस्तेमाल करके, आपको अपना चैंपियन बनाना है.
असेंबली रिचुअल
लोहे को गर्म करने से पहले, एक मास्टर टेक्नीशियन अपने वर्कशॉप का सर्वे करता है. वह हर टूल और हर स्कीमेटिक को समझता है. जब किसी नई जगह पर लड़ाई शुरू करनी हो, जैसे कि कोई बड़ा और मौजूदा कोडबेस, तो आपकी पहली प्राथमिकता रेकॉन्सेंस होती है. आपको मौजूदा आर्किटेक्चर, मुख्य लक्ष्यों, और काम करने के प्रोटोकॉल के बारे में पता होना चाहिए. फ़ोर्ट्रेस के ब्लूप्रिंट और उसके मानकों के बारे में जानकारी होने पर ही, अपनी स्किल का बेहतर तरीके से इस्तेमाल किया जा सकता है.

Gemini सीएलआई, हमेशा आपकी मदद के लिए तैयार रहता है. यह इन कामों में आपकी मदद कर सकता है:
- हाई-लेवल की खास जानकारी देना: यह पूरे कोडेक्स (या कोडबेस) को पढ़ सकता है. साथ ही, आपको इसके मकसद और मुख्य कॉम्पोनेंट के बारे में तुरंत जानकारी दे सकता है.
- एनवायरमेंट सेटअप करने में मदद: यह टूल इंस्टॉल करने और मशीन को कॉन्फ़िगर करने के मुश्किल तरीके के बारे में आपको जानकारी दे सकता है.
- कोडबेस में नेविगेट करना: यह आपके गाइड के तौर पर काम कर सकता है. इससे आपको मुश्किल लॉजिक को समझने और कोड में छिपे हुए पैसेज ढूंढने में मदद मिलती है.
- ऑनबोर्डिंग दस्तावेज़ जनरेट करना: यह ऐसे स्क्रोल बना सकता है जो आपके मिशन में शामिल होने वाले नए सहयोगियों के लिए, लक्ष्यों, भूमिकाओं, और संसाधनों के बारे में जानकारी देते हैं.
- सीखने और सवाल-जवाब की प्रोसेस को अपने-आप होने दें: यह आपके निजी स्कॉलर की तरह काम करता है. यह सुविधाओं या कोड के व्यवहार के बारे में सवालों के जवाब देता है, ताकि आप ज़्यादा आसानी से काम कर सकें.
👉💻 पहले टर्मिनल में, shadowblade डायरेक्ट्री पर जाएं और अपने एआई पार्टनर को बुलाएं:
. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/shadowblade
clear
gemini
👉✨ अब अपने स्काउट को जंग के मैदान का सर्वे करने और रिपोर्ट देने का निर्देश दें.
Analyze the entire project and provide a high-level summary.
मौजूदा इलाके का मैप तैयार हो जाने के बाद, आपको उस चीज़ का ब्लूप्रिंट देखना होगा जिसे आपको बनाना है. सबसे असरदार ऑपरेशंस को अचानक नहीं किया जाता, बल्कि उन्हें सटीक डिज़ाइन के हिसाब से तैयार किया जाता है.
डेवलपर का नोट: यह डिज़ाइन दस्तावेज़, प्रोजेक्ट के लिए आधिकारिक ब्लूप्रिंट के तौर पर काम करता है. इसका मकसद, लक्ष्यों और तकनीकी तौर पर लागू करने के बारे में साफ़ तौर पर बताना है, ताकि डेवलपमेंट पर ज़्यादा मेहनत करने से पहले ही यह तय हो जाए कि सब कुछ सही है. अच्छी तरह से तय किए गए प्लान से यह पक्का किया जा सकता है कि सभी डेवलपर एक साथ काम कर रहे हैं. इससे दोबारा काम करने का जोखिम कम होता है. साथ ही, तकनीकी क़र्ज़ और स्कोप क्रीप को रोकने में मदद मिलती है. यह प्रोजेक्ट की वेलोसिटी और कोड की क्वालिटी बनाए रखने के लिए मुख्य टूल है. खास तौर पर, जब टीम बढ़ती है या नए सदस्यों को शामिल किया जाता है.
इस दस्तावेज़ का मुख्य मकसद, सिर्फ़ "हैप्पी पाथ" को तय करना नहीं है, बल्कि एलएलएम का इस्तेमाल करते समय, खास मामलों और गड़बड़ी के तरीकों को भी तय करना है. एलएलएम के साथ मेरा अनुभव बहुत अच्छा रहा है. ये ऐसे कोड जनरेट करते हैं जिनमें सभी इनपुट मान्य होते हैं और सभी बाहरी कॉल सफल होते हैं. बेहतर और प्रोडक्शन के लिए तैयार सॉफ़्टवेयर बनाने के लिए, हमें एआई को साफ़ तौर पर निर्देश देने होंगे. इसके लिए, हमें इन जैसे मामलों के लिए कंटिंजेंसी (आपातकालीन) तय करनी होंगी:
- किसी फ़ंक्शन में अमान्य या गलत फ़ॉर्मैट वाले आर्ग्युमेंट पास किए गए हैं.
- एपीआई कॉल पूरे न होना, नेटवर्क टाइमआउट होना या बाहरी सेवाओं से गड़बड़ी के अनचाहे कोड मिलना.
- डेटा स्ट्रक्चर में डेटा मौजूद न होने या खाली होने की स्थिति को मैनेज करना.
- रेस कंडीशन या एक साथ कई अनुरोध मिलने से जुड़ी समस्याएं.
इन मामलों में, डिज़ाइन में अनुमानित व्यवहार तय करके, हम एलएलएम को ज़्यादा बेहतर कोड जनरेट करने का निर्देश देते हैं. इससे, मैन्युअल रीफ़ैक्टरिंग और गड़बड़ी ठीक करने में लगने वाला समय काफ़ी कम हो जाता है.
👉✨ Gemini से, इस पवित्र ब्लूप्रिंट को वापस लाने के लिए कहें.
download https://raw.githubusercontent.com/weimeilin79/agentverse/main/developer/shadowblade/agent_design.md and store it to my local folder
and show me the newly downloaded design doc. Do not attempt to create file just yet.
👉✨ स्क्रोल करने के लिए काफ़ी कॉन्टेंट है और उसमें ज़्यादा जानकारी दी गई है. Gemini को इस जानकारी को कम शब्दों में बताने के लिए कहें.
Summarize the newly downloaded @agent_design.md for me, do not attempt to create file just yet.
अब आपके पास प्लान है. हालांकि, कोड की एक लाइन बनाने से पहले, मास्टर आर्टिसन फ़ोर्ज के नियमों को तय करता है. यह अनुशासन और स्केलेबिलिटी के बारे में है. ये कोडिंग के दिशा-निर्देश हैं. ये सिर्फ़ सुझाव नहीं हैं, बल्कि ये पावर के रन हैं. इनसे यह पक्का होता है कि हर कॉम्पोनेंट को एक जैसी सटीकता और मज़बूती के साथ बनाया गया है. ये सिद्धांत, किसी एक स्टाइल की वजह से फ़ाइनल क्रिएशन में गड़बड़ी होने से रोकते हैं. साथ ही, यह पक्का करते हैं कि एजेंट में गड़बड़ी न हो, उसे बनाए रखा जा सके, और वह पूरी तरह से सही हो. इससे नए कारीगर, पूरे प्रोजेक्ट की एकरूपता को बनाए रखते हुए, प्रोजेक्ट में शामिल हो पाते हैं.
इन कानूनों को सीधे तौर पर हमारे एआई पार्टनर के ध्यान में लाने के लिए, हम एक खास आर्टफ़ैक्ट का इस्तेमाल करते हैं: GEMINI.md फ़ाइल. Gemini CLI को चालू करने पर, यह फ़ाइल को अपने-आप खोजता है और इसके कॉन्टेंट को एआई की वर्किंग मेमोरी में लोड करता है. यह प्रोजेक्ट-लेवल का निर्देश बन जाता है. एक तावीज़, जो एआई को फ़ोर्ज के नियमों के बारे में लगातार बताता रहता है.
चलो, अब इन रून्स को लिखो.
👉💻 Ctrl+C को दो बार दबाकर, कुछ देर के लिए Gemini से बाहर निकलें.
👉💻 दिशा-निर्देशों वाली फ़ाइल लिखने के लिए, अपने टर्मिनल में यह कमांड चलाएं.
cat << 'EOF' > GEMINI.md
### **Coding Guidelines**
**1. Python Best Practices:**
* **Type Hinting:** All function and method signatures should include type hints for arguments and return values.
* **Docstrings:** Every module, class, and function should have a docstring explaining its purpose, arguments, and return value, following a consistent format like reStructuredText or
Google Style.
* **Linter & Formatter:** Use a linter like `ruff` or `pylint` and a code formatter like `black` to enforce a consistent style and catch potential errors.
* **Imports:** Organize imports into three groups: standard library, third-party libraries, and local application imports. Sort them alphabetically within each group.
* **Naming Conventions:**
* `snake_case` for variables, functions, and methods.
* `PascalCase` for classes.
* `UPPER_SNAKE_CASE` for constants.
* **Dependency Management:** All Python dependencies must be listed in a `requirements.txt` file.
**2. Web APIs (FastAPI):**
* **Data Validation:** Use `pydantic` models for request and response data validation.
* **Dependency Injection:** Utilize FastAPI's dependency injection system for managing resources like database connections.
* **Error Handling:** Implement centralized error handling using middleware or exception handlers.
* **Asynchronous Code:** Use `async` and `await` for I/O-bound operations to improve performance.
EOF
cat GEMINI.md
कानूनों के बारे में जानकारी देने के बाद, आइए हम अपने एआई पार्टनर को फिर से बुलाएं और आर्टफ़ैक्ट का जादू देखें.
👉💻 shadowblade डायरेक्ट्री से Gemini CLI को फिर से लॉन्च करें:
. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/shadowblade
clear
gemini
👉✨ अब Gemini से पूछें कि वह क्या सोच रहा है. रून पढ़ लिए गए हैं.
/memory show
यह अहम पल है. आपको स्कीमेटिक (agent_design.md) और फ़ोर्ज के नियम (GEMINI.md) देने होंगे. साथ ही, क्रिएशन का शानदार मंत्र जारी करना होगा.
👉✨ यह एक ऐसा निर्देश है जो आपके एजेंट को तैयार करेगा. इसे अभी जारी करें:
You are an expert Python developer specializing in the Google Agent Development Kit (ADK). Your task is to write the complete, production-quality code for `agent.py` by following the technical specifications outlined in the provided design document verbatim.
Analyze the design document at `@agent_design.md` and generate the corresponding Python code for `@agent.py`.
Ensure the generated code is clean, matches the specifications exactly, and includes all specified imports, functions, and logic. Do not add any extra functions or logic not described in the document.
and you are currently already in the shadowblade working directory
👀 Gemini ने अब एजेंट के मुख्य लॉजिक को agent.py में तैयार कर दिया है. इस नई फ़ाइल का मुख्य हिस्सा, एजेंट की बुद्धिमत्ता को तय करता है. यह बाहरी टूल के सेट के साथ, एजेंट के तर्क मॉडल को कनेक्ट करता है:
PATH_TO_MCP_SERVER = "shadowblade/mcp_server.py"
.....
root_agent = LlmAgent(
model="gemini-2.5-pro",
name="shadowblade_combat_agent",
instruction="""
You are the Shadowblade, an elite combat agent operating on a digital battleground.
Your primary objective is to execute combat commands with strategic precision, neutralizing targets as directed.
......
5. You will then report the outcome of the attack (damage, special effects, etc.) back to the commander in a clear, tactical summary.
General Rules of Engagement:
- If a command is ambiguous or a target is not specified, state that you require a clear target for engagement. Do not guess.
- You MUST use ONLY the provided tools to perform actions. Do not invent weapons or outcomes. Stick to the mission parameters.
""",
tools=[
MCPToolset(
connection_params=StdioServerParameters(
command='python3',
args=[PATH_TO_MCP_SERVER]
)
)
]
)
tools पैरामीटर. इस एजेंट को MCPToolset का इस्तेमाल करने के लिए डिज़ाइन किया गया है. यह mcp_server.py में तय किए गए बाहरी आर्सेनल से कनेक्ट होता है.
👀 एडिटर में मौजूद ~/agentverse-developer/shadowblade/mcp_server.py पर जाएं और देखें कि यह क्या करता है. यह शैडोब्लेड के लिए उपलब्ध सभी हथियारों का सोर्स है. फ़िलहाल, शस्त्रागार में बहुत कम हथियार हैं.

👉✨ चलिए, Gemini को ज़ख़ीरे के लिए सात नए हथियार बनाने का निर्देश देते हैं. Gemini CLI में यह प्रॉम्प्ट डालें:
I need to add several new weapon tools to my `mcp_server.py` file. Please open @mcp_server.py and, following the exact same pattern as the existing `forge_broadsword()` function, create and add new `@mcp.tool()` decorated functions for each of the following weapons:
1. **A 'Refactoring Sickle'**:
- **Function Name:** `hone_refactoring_sickle`
- **Docstring/Target:** "Effective against 'Elegant Sufficiency' weaknesses like 'The Weaver of Spaghetti Code'."
- **Weapon Name:** "Refactoring Sickle"
- **Damage Type:** "Cleansing"
- **Base Damage:** Random integer between 100 and 136
- **Critical Hit Chance:** Random float between 0.10 and 0.20
- **Special Effect:** "Pruning - improves code health and maintainability with each strike."
2. **A 'Quickstart Crossbow'**:
- **Function Name:** `fire_quickstart_crossbow`
- **Docstring/Target:** "Effective against 'Confrontation with Inescapable Reality' weaknesses like 'Procrastination: The Timeless Slumber'."
- **Weapon Name:** "Quickstart Crossbow"
- **Damage Type:** "Initiative"
- **Base Damage:** Random integer between 105 and 120
- **Critical Hit Chance:** Random float between 0.9 and 1.0
- **Special Effect:** "Project Scaffolding - creates a `main.py`, `README.md`, and `requirements.txt`."
3. **'The Gilded Gavel'**:
- **Function Name:** `strike_the_gilded_gavel`
- **Docstring/Target:** "Effective against 'Elegant Sufficiency' weaknesses like 'Perfectionism: The Gilded Cage'."
- **Weapon Name:** "The Gilded Gavel"
- **Damage Type:** "Finality"
- **Base Damage:** 120
- **Critical Hit Chance:** 1.0
- **Special Effect:** "Seal of Shipping - marks a feature as complete and ready for deployment."
4. **'Daggers of Pair Programming'**:
- **Function Name:** `wield_daggers_of_pair_programming`
- **Docstring/Target:** "Effective against 'Unbroken Collaboration' weaknesses like 'Apathy: The Spectre of \"It Works on My Machine\"'."
- **Weapon Name:** "Daggers of Pair Programming"
- **Damage Type:** "Collaborative"
- **Base Damage:** Random integer between 110 and 125
- **Critical Hit Chance:** Random float between 0.30 and 0.50
- **Special Effect:** "Synergy - automatically resolves merge conflicts and shares knowledge."
5. **A 'Granite Maul'**:
- **Function Name:** `craft_granite_maul`
- **Docstring/Target:** "Effective against 'Revolutionary Rewrite' weaknesses like 'Dogma: The Zealot of Stubborn Conventions'."
- **Weapon Name:** "Granite Maul"
- **Damage Type:** "Bludgeoning"
- **Base Damage:** Random integer between 115 and 125
- **Critical Hit Chance:** Random float between 0.05 and 0.15
- **Special Effect:** "Shatter - has a high chance to ignore the target's 'best practice' armor."
6. **A 'Lens of Clarity'**:
- **Function Name:** `focus_lens_of_clarity`
- **Docstring/Target:** "Effective against 'Elegant Sufficiency' weaknesses by revealing the truth behind 'Obfuscation'."
- **Weapon Name:** "Lens of Clarity"
- **Damage Type:** "Revelation"
- **Base Damage:** Random integer between 120 and 130
- **Critical Hit Chance:** 1.0
- **Special Effect:** "Reveal Constants - highlights all magic numbers and suggests converting them to named constants."
7. **The 'Codex of OpenAPI'**:
- **Function Name:** `scribe_with_codex_of_openapi`
- **Docstring/Target:** "Effective against 'Confrontation with Inescapable Reality' weaknesses like 'Hype: The Prophet of Alpha Versions'."
- **Weapon Name:** "Codex of OpenAPI"
- **Damage Type:** "Documentation"
- **Base Damage:** Random integer between 110 and 140
- **Critical Hit Chance:** Random float between 0.5 and 0.8
- **Special Effect:** "Clarity - makes an API discoverable and usable by other agents and teams."
👉 Gemini से बदलावों की पुष्टि हो जाने के बाद, mcp_server.py फ़ाइल खोलें. कोड में नीचे की ओर स्क्रोल करें और पुष्टि करें कि सात नए @mcp.tool() फ़ंक्शन जोड़ दिए गए हैं. hone_refactoring_sickle फ़ंक्शन देखें. क्या इसमें सही डॉकस्ट्रिंग और हथियार के आंकड़े मौजूद हैं? एआई के काम की पुष्टि करना, मास्टर शैडोब्लेड की एक अहम आदत है.
एजेंट को बेहतर बनाने के बाद, अब इसे चालू करने का समय आ गया है.
👉💻 Gemini CLI से बाहर निकलने के लिए, Ctrl+C को दो बार दबाएं
Gemini के आउटपुट के बारे में डेवलपर का नोट: Gemini से जनरेट किया गया कोड कभी-कभी अनुमान के मुताबिक नहीं होता. हम डिज़ाइन के मुताबिक ही कोड बनाने की पूरी कोशिश करते हैं. हालांकि, डेवलपमेंट सेशन में डेवलपर के लिए, कोड को कई बार दोहराना और उसे बेहतर बनाना आम बात है. ऐसा इसलिए, ताकि कोड को प्रोडक्शन के लिए तैयार किया जा सके.
👉💻 यह पक्का करने के लिए कि आपकी वर्किंग डायरेक्ट्री में सही और पूरी तरह से जांच किया गया प्रोडक्शन कोड मौजूद है, कृपया अपने टर्मिनल में ये कमांड चलाएं:
cp ~/agentverse-developer/working_code/agent.py ~/agentverse-developer/shadowblade/agent.py
cp ~/agentverse-developer/working_code/mcp_server.py ~/agentverse-developer/shadowblade/mcp_server.py
👉💻 अपने टर्मिनल में, इसे ऑनलाइन लाने की प्रोसेस शुरू करें:
cd ~/agentverse-developer/
. ~/agentverse-developer/set_env.sh
python -m venv env
source env/bin/activate
pip install --upgrade pip
pip install -r shadowblade/requirements.txt
adk run shadowblade
👉✨ आपको आउटपुट में यह पुष्टि दिखेगी कि "Shadowblade Combat Agent" चालू है और काम कर रहा है. साथ ही, यह पहली कमांड का इंतज़ार कर रहा है. लड़ाई से जुड़े पहले निर्देश जारी किए.
We've been trapped by 'Perfectionism: The Gilded Cage'. Its weakness is 'Elegant Sufficiency'. Break us out!
👉✨ एक और तरीका:
The 'Dogma: The Zealot of Stubborn Conventions' blocks our path. Its weakness is 'Revolutionary Rewrite'. Take it down.
आपने अपना पहला एजेंट बना लिया है और उसकी लड़ने की क्षमताओं की पुष्टि कर ली है. अपने चैंपियन को आराम देने के लिए, Ctrl+C को दो बार दबाएं. असेंबली पूरी हो गई है.
FOR NON GAMER
7. Wards of Purity: Evaluating the agents
किसी एजेंट को असेंबल करना, यह साबित नहीं करता कि वह एजेंट है. बिना जांच की गई ब्लेड खतरनाक होती है, लेकिन बिना जांच किया गया एआई एजेंट इससे भी ज़्यादा खतरनाक होता है. यह एक ऐसा खतरनाक एलिमेंट है जो आपके मिशन को अंदर से ही खराब कर सकता है. यह सिर्फ़ एक अनुमान नहीं है. यह एक ऐसा सिद्धांत है जिसे शैडोब्लेड को समझना चाहिए.
एआई एजेंटों का आकलन करना, बहुत ज़रूरी और मुश्किल काम है. किसी सामान्य स्क्रिप्ट के उलट, एजेंट आपके कोड और एलएलएम के कई चरणों वाले तर्क का डाइनैमिक फ़्यूज़न होता है. यह एक नई तरह का व्यवहार है. इसका मतलब है कि आपको न सिर्फ़ फ़ाइनल आउटपुट की क्वालिटी का आकलन करना होगा, बल्कि इसके इंटरनल प्रोसेस की दक्षता और सटीकता का भी आकलन करना होगा. वहां तक पहुंचने का रास्ता. क्या इसमें सही टूल इस्तेमाल किए गए थे? क्या इसने बहुत ज़्यादा टोकन जनरेट किए? क्या मॉडल के वर्शन में बदलाव करने से, लेटेंसी में मामूली बढ़ोतरी हुई है? किसी भी बदलाव को लागू करने से पहले, इस तरह की गड़बड़ी का पता लगाना ज़रूरी है. जैसे, लेटेन्सी, लागत या आउटपुट क्वालिटी में गिरावट. बदलाव, प्रॉम्प्ट में मामूली बदलाव से लेकर आर्किटेक्चर में बड़े बदलाव तक कुछ भी हो सकता है. ऐसा इसलिए, ताकि यह गड़बड़ी आपके प्रोडक्शन एनवायरमेंट को नुकसान न पहुंचा सके.

इस आकलन को करने का सामान्य तरीका एक पवित्र रस्म की तरह है:
- सबसे पहले, आपको "गोल्डन डेटासेट" तय करना होगा. स्क्रोल का एक सेट, जिसमें इनपुट के उदाहरण और उनके अनुमानित आउटपुट या व्यवहार शामिल होते हैं. इसमें फ़ाइनल जवाब, टूल का सही इस्तेमाल या चरण-दर-चरण पूरी प्रोसेस शामिल हो सकती है.
- इसके बाद, आपको अपने एजेंट के ऐप्लिकेशन लॉजिक को तय करना होगा. यह एजेंट का मुख्य हिस्सा होता है.
- आखिर में, आकलन करने वाले तय किए जाते हैं. ये फ़ैसले लेने वाले रून की तरह होते हैं. ये अलग-अलग तरह के हो सकते हैं. जैसे, क्वालिटी का आकलन करने वाले अन्य एलएलएम, सटीक ह्यूरिस्टिक कोड जो एक चरण की पुष्टि करता है, और कस्टम फ़ंक्शन जो एजेंट की पूरी सोच का विश्लेषण करते हैं.

Google की एजेंट डेवलपमेंट किट (एडीके), आर्मरर की किट होती है. इसे इस मकसद से चैंपियन को उपलब्ध कराया जाता है. यह कई तरीकों से, इस पेचीदा आकलन को आसान बनाता है:
- इंटरैक्टिव आकलन के लिए, वेब पर आधारित स्क्राइंग पूल (
adk web) - पहले से तय किए गए गॉंटलेट के ज़रिए एजेंट को चलाने के लिए, कमांड-लाइन एक्ज़ीक्यूशन (
adk eval). - स्थायी वार्ड जोड़ने के लिए,
pytestके ज़रिए प्रोग्राम के हिसाब से इंटिग्रेशन
ADK, दो मुख्य तरीकों के साथ काम करता है: एक, अलग-अलग एजेंट-मॉडल इंटरैक्शन (एकल द्वंद्व) के लिए आसान "टेस्ट फ़ाइलें" और दूसरा, कई, संभावित रूप से लंबे, मल्टी-टर्न सेशन (ग्रैंड मेली) के लिए पूरी तरह से तैयार की गई "इवैलसेट". ये tool_trajectory_avg_score जैसी मेट्रिक को मेज़र कर सकते हैं. यह मेट्रिक, एजेंट के टूल इस्तेमाल करने के तरीके की तुलना, टूल इस्तेमाल करने के सही तरीके से करती है. इससे यह पक्का किया जाता है कि टूल का इस्तेमाल सही तरीके से किया जा रहा है.
अब आपको सिद्धांत के बारे में पता चल गया है. इसलिए, इसे व्यवहार में लाएं. शैडोब्लेड के तौर पर, आपको वॉर्ड ऑफ़ प्योरिटी लिखना होगा. ये सिर्फ़ टेस्ट नहीं हैं. ये ADK की मदद से किए जाने वाले ऐसे तरीके हैं जिनसे यह पक्का किया जाता है कि आपके एजेंट का लॉजिक सही हो और उसका व्यवहार सही हो.
इस चरण में, दो टर्मिनल इस्तेमाल करने का सुझाव दिया जाता है. एक टर्मिनल का इस्तेमाल Gemini CLI के लिए और दूसरे का इस्तेमाल टेस्ट चलाने के लिए करें. ऐसा इसलिए, क्योंकि आपको मौजूदा वर्किंग डायरेक्ट्री (ADK) से बाहर निकलना पड़ सकता है
रणनीति की चुनौती (adk eval)
यह पहला वार्ड एक गॉंटलेट है. इसमें कई तरह की चुनौतियां होती हैं. इन्हें अलग-अलग स्थितियों में एजेंट की मुख्य क्षमताओं की जांच करने के लिए डिज़ाइन किया गया है. इसका मकसद, बुनियादी तौर पर काम करने की क्षमता का आकलन करना है. हम एजेंट के कुछ खास मामलों की जांच करने से पहले, यह पक्का करते हैं कि वह अपना मुख्य काम कर सकता है या नहीं. क्या यह किसी राक्षस की कमज़ोरी का सही विश्लेषण करता है और अपने शस्त्रागार से सबसे असरदार हथियार चुनता है? ऐसा सिर्फ़ एक बार नहीं, बल्कि हर बार करता है, जब इसे कोई जानी-पहचानी चुनौती दी जाती है?
इसके लिए, adk eval सबसे सही टूल है. इसे पहले से तय किए गए टेस्ट केस के पूरे सेट के हिसाब से एजेंट को चलाने के लिए डिज़ाइन किया गया है. यह एजेंट के अनुमानित मिशन को दिखाता है. इस डेटासेट को JSON फ़ाइल में तय किया जाता है. यह "चैलेंज स्क्रोल" होता है, जो पूरे गॉन्टलेट के लिए ब्लूप्रिंट का काम करता है.
चैलेंज स्क्रोल के काम करने की जानकारी
👀 एआई को नया स्क्रोल लिखने का निर्देश देने से पहले, आपको यह समझना होगा कि वह किस प्राचीन भाषा में लिखा गया है. आइए, sample.evalset.json फ़ाइल के स्ट्रक्चर के बारे में विस्तार से जानते हैं.
{
"eval_set_id": "sample",
"eval_cases": [
{
"eval_id": "case0cbaa0",
"conversation": [
{
"user_content": { "text": "We're facing the 'Monolith of Eternal Dependencies'... weakness is a 'Revolutionary Rewrite'..." },
"final_response": { "text": "Soulshard Dagger deployed. Initiated Arcane/Piercing strike..." },
"intermediate_data": {
"tool_uses": [
{ "name": "enchant_soulshard_dagger" }
]
}
}
]
}
]
}
इस स्क्रोल में eval_cases की सूची होती है. इसमें हर केस, आपके एजेंट के लिए एक यूनीक ट्रायल होता है. हर ट्रायल में, बातचीत की जानकारी देने वाला ऐरे, एक पूरी बातचीत को दिखाता है. हमारे मकसद के लिए, तीन रून बेहद अहम हैं:
- user_content: यह चैलेंज है. यह वह प्रॉम्प्ट है जो आपने अपने एजेंट को दिया है. यह वह मॉन्स्टर है जिसका सामना एजेंट को करना है.
- final_response: यह अनुमानित नतीजा है. यह टेक्स्ट की वह स्ट्रिंग है जिसे टास्क पूरा होने पर, आपके एजेंट को बोलना चाहिए. ADK, एजेंट के असल में बोले गए आखिरी शब्दों की तुलना इस रून से करता है, ताकि यह पता लगाया जा सके कि एजेंट ने कितने अच्छे तरीके से जवाब दिया है.
- intermediate_data.tool_uses: यह Arcane Technique है. एक असली एजेंट के लिए, यह सबसे अहम रून है. इससे यह तय होता है कि एजेंट क्या कहेगा, बल्कि यह तय होता है कि वह क्या करेगा. यह उस टूल (enchant_soulshard_dagger) का नाम रिकॉर्ड करता है जिसे एजेंट को इस्तेमाल करना चाहिए. इससे यह पक्का होता है कि आपका एजेंट सिर्फ़ बातचीत करने में माहिर नहीं है, बल्कि सही फ़ैसले लेने वाला भी है.
अब आपको ब्लूप्रिंट के बारे में पता चल गया है. इसलिए, Gemini को इस स्क्रोल का नया और ज़्यादा मुश्किल वर्शन लिखने का निर्देश दें.
👉💻 अपने टर्मिनल में, shadowblade डायरेक्ट्री डालें और Gemini CLI को कॉल करें:
clear
cd ~/agentverse-developer/shadowblade/
gemini
👉✨ Gemini CLI को क्यूए स्क्राइब के तौर पर काम करने का निर्देश दें. इससे टेस्ट केस की एक सीरीज़ तैयार होगी. इसमें आपके एजेंट के लिए, अनुमानित व्यवहार के बारे में बताया गया होगा.
You are an expert at transforming JSON data while preserving its structure. Your task is to modify the provided JSON structure @sample.evalset.json, which represents an evaluation set, by dynamically replacing specific content within its `eval_cases` AND DONT DO ANYTHING OTHER THAN.
For each object within the `eval_cases` array, you must perform the following transformations:
1. **Monster Name Replacement**: Identify the current monster name (e.g., "Monolith of Eternal Dependencies", "Scope Creep Hydra") in the `user_content.parts.text` and replace it with a *new, unique, and creatively different monster name*.
2. **Weakness Replacement**: Identify the current monster's weakness (e.g., "Revolutionary Rewrite", "Inescapable Reality") in the `user_content.parts.text`. Replace this weakness with *one* of the following predefined weaknesses: 'Inescapable Reality', 'Revolutionary Rewrite', or 'Elegant Sufficiency'. The chosen weakness must be consistent for that monster within the `user_content.parts.text`. **Crucially, the chosen weakness must always be explicitly mentioned in the `user_content.parts.text` where the new monster is introduced.**
3. **Final Response Update**: In the `final_response.parts.text`, update the text to reflect an appropriate and coherent response that aligns with the newly introduced monster and its assigned weakness.
4. **Tool Use Name Update**: In the `tool_uses.name` field, replace the existing tool name with a *new tool name* based on the chosen weakness:
* If the chosen weakness is 'Inescapable Reality', the tool name must be 'wield_gauntlet_of_metrics'.
* If the chosen weakness is 'Revolutionary Rewrite', the tool name must be 'enchant_soulshard_dagger'.
* If the chosen weakness is 'Elegant Sufficiency', the tool name must be 'hone_refactoring_sickle'.
5. **Strict Structural Preservation**: All other elements of the JSON structure, including all `null` fields, `eval_set_id`, `name`, `description`, `eval_id`, `invocation_id`, `creation_timestamp` values, `video_metadata`, `thought`, `inline_data`, `file_data`, `thought_signature`, `code_execution_result`, `executable_code`, `function_call`, `function_response`, `role` fields, `id`, `args`, `intermediate_responses`, `app_name`, `user_id`, and `state`, must remain **exactly as they are** in the original JSON. Do not alter any values or structures not explicitly mentioned above.
Your output should be the complete, modified JSON structure. Do not include any explanatory text or examples in your response, only the transformed JSON.
सीएलआई, sample.evalset.json फ़ाइल के फ़र्ज़ी होने की पुष्टि करेगा. स्क्रॉल तैयार होने के बाद, एआई पार्टनर को बंद करें.
सिंथेटिक डेटा
👀 बाईं ओर मौजूद Cloud Shell फ़ाइल एक्सप्लोरर में, ~/agentverse-developer/shadowblade/ पर जाएं और हाल ही में बदली गई sample.evalset.json फ़ाइल खोलें. इसके कॉन्टेंट की जांच करें. आपको नए और यूनीक मॉन्स्टर दिखेंगे. साथ ही, Gemini को जिन टूल के नाम लिखने के लिए कहा गया था उनके सही नाम दिखेंगे. यह आपके निर्देश का नतीजा है. यह गांटलेट का ब्लूप्रिंट है.
एआई को किसी टेंप्लेट से नया और असली जैसा टेस्ट डेटा बनाने का निर्देश देना, एक असरदार तकनीक है. इसे सिंथेटिक डेटा जनरेशन कहा जाता है. आपने अभी जो किया है वह शैडोब्लेड के लिए एक रणनीतिक फ़ोर्स मल्टीप्लायर है. मैन्युअल तरीके से कई यूनीक टेस्ट केस बनाने के बजाय. आपने एक मुश्किल और समय लेने वाला टास्क दिया है. आपने एआई स्क्राइब को एक ब्लूप्रिंट दिया है और उसे अलग-अलग तरह की नई चुनौतियों में बदलने का निर्देश दिया है.
इससे आपको टेस्टिंग के लिए ज़्यादा से ज़्यादा कोशिशें करने का मौका मिलता है. साथ ही, आपको मैन्युअल तरीके से किए जाने वाले टेस्ट की तुलना में, ज़्यादा बेहतर और पूरी तरह से सुरक्षित टेस्ट बनाने में मदद मिलती है. आपने अपने एजेंट का इस्तेमाल न सिर्फ़ तलवार बनाने के लिए किया है, बल्कि उन पत्थर को बनाने के लिए भी किया है जिनसे तलवार की धार की जांच की जाती है. यह एक सच्चे मास्टर की निशानी है.
जब आपको पता चल जाए कि रून्स सही हैं, तब अपने एआई पार्टनर को बंद कर दें.
👉💻 Gemini CLI से बाहर निकलने के लिए, Ctrl+C को दो बार दबाएं.
फ़ैसले के नियम
जीत के नियमों के बिना, किसी भी चुनौती का कोई मतलब नहीं होता. ट्रायल शुरू करने से पहले, आपको Scroll of Judgment यानी test_config.json फ़ाइल की जांच करनी होगी. इस स्क्रोल से ADK को यह पता चलता है कि आपके एजेंट की परफ़ॉर्मेंस का आकलन कैसे करना है.
👀 फ़ाइल एक्सप्लोरर में, ~/agentverse-developer/shadowblade/test_config.json खोलें. आपको ये रन दिखेंगे:
{
"criteria": {
"tool_trajectory_avg_score": 0.0,
"response_match_score": 0.1
}
}
जीतने के लिए ये शर्तें पूरी करनी होंगी:
tool_trajectory_avg_score: यह कार्रवाई का मेज़रमेंट है. यह एजेंट के बोलने के आधार पर नहीं, बल्कि उसके काम करने के आधार पर फ़ैसला करता है. इसमें, एजेंट की ओर से इस्तेमाल किए गए टूल की तुलना, चैलेंज स्क्रोल में बताई गई तकनीक से की जाती है.1.0का स्कोर पूरी तरह मेल खाता है.response_match_score: यह Measure of Eloquence है. यह एलएलएम का इस्तेमाल करके यह तय करता है कि एजेंट की फ़ाइनल रिपोर्ट, अनुमानित नतीजे से कितनी मिलती-जुलती है.1.0का स्कोर पूरी तरह मेल खाता है.
इस शुरुआती ट्रेनिंग रन के लिए, हमने जीत की शर्तों को आसान बनाया है. थ्रेशोल्ड को बहुत कम (0.0 और 0.1) पर सेट किया गया है. इसका मकसद यह नहीं है कि आप पूरी तरह से सही जवाब दें, बल्कि आपको यह बताना है कि फ़ैसले लेने का तरीका क्या है. हम यह पक्का कर रहे हैं कि एजेंट के जवाब में इस्तेमाल किए गए शब्दों में थोड़ा अंतर होने पर भी, वार्ड को सही टूल चुनने में एजेंट की मुख्य क्षमता के बारे में पता चल जाएगा. साथ ही, वह उसे आगे बढ़ने की अनुमति दे देगा.
अब अपने एजेंट को, मुश्किल सवालों के जवाब देने के लिए कहें.
👉💻 अपने टर्मिनल में, adk eval निर्देश चलाएं:
source ~/agentverse-developer/env/bin/activate
cd ~/agentverse-developer
. ~/agentverse-developer/set_env.sh
adk eval \
shadowblade \
shadowblade/sample.evalset.json \
--config_file_path shadowblade/test_config.json 2>&1 | \
awk '/^\*+$/,/^ERROR:/ { if ($0 !~ /^ERROR:/) print }'
👀 आपको यह खास जानकारी दिखनी चाहिए. इससे पता चलता है कि इस ट्रायल के दौरान, आपके एजेंट ने नियमों का पालन किया है. हालांकि, ऐसा हो सकता है कि सभी टेस्ट पास न हों:
********************************************************************* Eval Run Summary shadowblade_combat_agent_validation: Tests passed: 3 Tests failed: 0
स्पष्टता का शील्ड (pytest)
द गॉनलेट में ब्रॉड स्ट्रेटजी को टेस्ट किया गया. दूसरे वार्ड, शील्ड ऑफ़ क्लैरिटी में अनुशासन और खास व्यवहार की जांच की जाती है. यह सब ऑटोमेशन के बारे में है. adk eval, मैन्युअल तरीके से जांच करने के लिए बेहतरीन है. वहीं, pytest शील्ड, कोड में लिखा गया प्रोग्रामैटिक वार्ड है. यह ज़रूरी है, क्योंकि कोड के तौर पर लागू किए जा सकने वाले टेस्ट को ऑटोमेटेड पाइपलाइन में इंटिग्रेट किया जा सकता है. हमारा मुख्य लक्ष्य है कि हम एक डिप्लॉयमेंट गैंटलेट (सीआई/सीडी) बनाएं. इसमें, हर बार बदलाव होने पर हमारे वार्ड अपने-आप बढ़ जाएं. इससे, बग और रिग्रेशन को आपके प्रोडक्शन एनवायरमेंट को नुकसान पहुंचाने से पहले ही रोका जा सकेगा.
👉💻 अपने टर्मिनल में,shadowblade डायरेक्ट्री से Gemini को फिर से चालू करें:
. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/
clear
gemini
👉✨ शील्ड के लॉजिक को pytest फ़ाइल में लिखने के लिए, Gemini CLI में यह प्रॉम्प्ट इस्तेमाल करें:
You are an expert Python developer specializing in the Google Agent Development Kit (ADK). Your task is to generate the exact code for a new `pytest` test file located at in the current root working folder and name it `test_agent_initiative.py`.
The script must define a single async test function called `test_agent_initiative`, decorated with `@pytest.mark.asyncio`.
Inside this function, perform the following steps in order:
1. **Define a dictionary** named `evaluation_criteria` with two keys: `"tool_trajectory_avg_score"` set to `0.0` and `"response_match_score"` set to `0.0`.
2. **Define a string variable** named `eval_set_filepath` containing the path `"shadowblade/test.evalset.json"`.
3. **Read and parse the JSON file**:
* Open the file at `eval_set_filepath`.
* Use the `json` library to load the file's contents into a dictionary named `eval_set_data`.
4. **Create an `EvalSet` object**:
* Instantiate an `EvalSet` object named `eval_set_object`.
* Create it by unpacking the `eval_set_data` dictionary as keyword arguments into the `EvalSet` constructor.
5. **Call the evaluation method**:
* `await` a call to `AgentEvaluator.evaluate_eval_set`.
* Pass the following arguments:
* `agent_module="shadowblade"`
* `eval_set=eval_set_object`
* `criteria=evaluation_criteria`
* `print_detailed_results=True`
The script must include the necessary imports at the top:
* `AgentEvaluator` from `google.adk.evaluation.agent_evaluator`
* `EvalSet` from `google.adk.evaluation.eval_set`
* `pytest`
* `json`
Generate only the code that meets these specifications, with no additional comments or logic. And don't run the test.
दूसरे वार्ड के रन को लिखने के बाद, Gemini CLI से बाहर निकलें.
👉💻 Ctrl+C को दो बार दबाएं.
👀 फ़ाइल एक्सप्लोरर में, उस स्क्रोल को खोलें जिसे आपने Gemini को लिखने का निर्देश दिया था: ~/agentverse-developer/test_agent_initiative.py.
आपको पता चलेगा कि यह सिर्फ़ एक कॉन्फ़िगरेशन फ़ाइल नहीं है, बल्कि Pythonic भाषा में लिखा गया एक मंत्र है. इस स्पेल का मुख्य हिस्सा await AgentEvaluator.evaluate(...) लाइन है.
....
@pytest.mark.asyncio
async def test_agent_initiative():
# Define the evaluation criteria
evaluation_criteria = {
"tool_trajectory_avg_score": 0.0,
"response_match_score": 0.0
}
# Define the path to your evalset file
eval_set_filepath = "shadowblade/test.evalset.json"
#...
# 3. Call the evaluation method with the correctly typed object
await AgentEvaluator.evaluate_eval_set(
agent_module="shadowblade",
eval_set=eval_set_object,
criteria=evaluation_criteria,
print_detailed_results=True,
)
इसके तर्कों को ध्यान से देखें. ये वही कॉम्पोनेंट हैं जिनका इस्तेमाल आपने पिछले ट्रायल में किया था: आपका shadowblade एजेंट और shadowblade.evalset.json चैलेंज स्क्रोल. इससे यह पता चलना चाहिए कि adk eval कमांड का इस्तेमाल करके, किसी फ़ंक्शन को आसानी से कॉल किया जा सकता है. हालांकि, pytest स्क्रिप्ट में, फ़ंक्शन को खुद कॉल किया जाता है. कमांड-लाइन टूल, AgentEvaluator लाइब्रेरी के लिए एक रैपर है. अब इसका इस्तेमाल सीधे तौर पर किया जा सकता है. यह मास्टरी की ओर बढ़ने का एक अहम चरण है, क्योंकि कोड के ज़रिए डाली गई स्पेल को सीआई/सीडी पाइपलाइन के ऑटोमेटेड लूम में बुना जा सकता है.
अब आपको इस जादू के बारे में पता चल गया है. इसलिए, शील्ड को चालू करने के लिए, यह रस्म पूरी करें.
👉💻 शील्ड को चालू करने के लिए, अपने टर्मिनल में यह कमांड चलाएं:
cp ~/agentverse-developer/working_code/test_agent_initiative.py ~/agentverse-developer/test_agent_initiative.py
source ~/agentverse-developer/env/bin/activate
cd ~/agentverse-developer
. ~/agentverse-developer/set_env.sh
pytest test_agent_initiative.py
👀 लॉग आउटपुट के आखिर में, टेस्ट के नतीजे की खास जानकारी देखें. जांच में पास होने का मतलब है कि आपका एजेंट, प्रोटोकॉल का सही तरीके से पालन करता है. साथ ही, वार्ड को आपकी ऑटोमेटेड सुरक्षा में इंटिग्रेट किया जा सकता है.
====== 1 passed, 4 warning in 37.37s ======
ध्यान दें: अगर टेस्ट उम्मीद के मुताबिक नहीं होता है, तो इसकी सबसे बड़ी वजह यह हो सकती है कि आपने हर मिनट में मॉडल से किए जा सकने वाले अनुरोधों की संख्या पूरी कर ली है. लॉग आउटपुट में RESOURCE_EXHAUSTED गड़बड़ी देखें. अगर आपको यह गड़बड़ी दिखती है, तो अपने कोटे के रीसेट होने के लिए एक या दो मिनट इंतज़ार करें. इसके बाद, pytest कमांड को फिर से चलाएं.
Gauntlet और Shield, दोनों के सटीक तरीके से लिखे जाने और पुष्टि हो जाने के बाद, आपका एजेंट न सिर्फ़ काम करता है, बल्कि यह पूरी तरह से जांचा गया है और इसे इस्तेमाल किया जा सकता है.
गेम नहीं खेलने वालों के लिए
8. Agentverse में Blade को लॉन्च करना: सीआई और डिप्लॉयमेंट.
आपके एजेंट को असेंबल कर दिया गया है और Wards of Purity ने इसकी पुष्टि कर दी है. हालांकि, अगर वार्ड का रखरखाव ठीक से नहीं किया जाता है, तो वह सिर्फ़ एक पुरानी इमारत बनकर रह जाती है. यह पक्का करने के लिए कि आपके एजेंट का हर आने वाला वर्शन बेहतर हो, आपको डिप्लॉयमेंट गैंटलेट का पहला चरण पूरा करना होगा. यह एक ऑटोमेटेड प्रोसेस है, जो क्वालिटी और स्पीड की गारंटी देती है.

Shadowblade के तौर पर, आपकी सबसे अहम ज़िम्मेदारी लगातार इंटिग्रेशन (सीआई) है. यह फ़ोर्ज और प्रूविंग ग्राउंड का ऑटोमेटेड सिस्टम है. यह डेटा को करप्ट होने और मानवीय गलतियों से बचाने का सबसे अच्छा तरीका है. इस रस्म से यह पक्का होता है कि जब भी आप या आपका कोई सहयोगी, सेंट्रल कोडेक्स (आपकी रिपॉज़िटरी) में कोई नई तकनीक (कोड मर्ज करता है) जोड़ता है, तो गॉन्टलेट अपने-आप चालू हो जाता है. यह सबसे पहले नए कोड से एजेंट बनाता है. इसके बाद, तुरंत इसे Wards of Purity के नियमों के मुताबिक बनाता है. अगर कोई भी वार्ड काम नहीं करता है, तो रस्म रुक जाती है. साथ ही, खराब आर्टफ़ैक्ट को तुरंत अस्वीकार कर दिया जाता है, ताकि वह कभी भी शस्त्रागार को खराब न कर सके. आपका डोमेन, फ़ोर्ज है. आपकी सीआई पाइपलाइन यह पक्का करती है कि आपके वर्कशॉप से सिर्फ़ बेहतरीन और इस्तेमाल के लिए तैयार आर्टफ़ैक्ट ही बाहर निकलें.
जब कोई आर्टफ़ैक्ट, सीआई की जांच में पास हो जाता है, तब रस्म का दूसरा चरण शुरू होता है: लगातार डिप्लॉयमेंट (सीडी). यह Guardian का डोमेन है. इनकी यह ज़िम्मेदारी होती है कि वे आपके तैयार किए गए कंटेनर वाले आर्टफ़ैक्ट को लें और उसे सुरक्षित तरीके से लाइव एजेंटवर्स में रिलीज़ करें. साथ ही, उसकी परफ़ॉर्मेंस को मैनेज करें और यह पक्का करें कि वह स्टैटिक के अराजक माहौल में भी स्थिर रहे.

इस कोडेक्स में, आपको अपनी भूमिका के बारे में पूरी जानकारी मिलेगी. आपको गॉन्टलेट का सीआई हिस्सा बनाना होगा. आपको एक ऐसा ऑटोमेटेड फ़ोर्ज बनाना होगा जो आपके एजेंट की जांच करे और सबसे सटीक नतीजे को कंटेनर में सील कर दे. इससे, The Guardian को फ़ाइनल मंज़ूरी देने में आसानी होगी.
अब इस सीआई रिचुअल के लिए स्क्रोल करने की सुविधा को चालू करने के लिए, Google Cloud Build का इस्तेमाल करें. एक cloudbuild.yaml फ़ाइल, जिसमें फ़ोर्जिंग और टेस्टिंग की प्रोसेस के हर चरण के बारे में बताया गया हो.
👉💻 एडीके के प्रोजेक्ट स्ट्रक्चर की वजह से, CI/CD पाइपलाइन कॉन्फ़िगरेशन को पैरंट डायरेक्ट्री में रखना चाहिए. अपने टर्मिनल में, पैरंट डायरेक्ट्री पर जाएं और Gemini CLI को रीस्टार्ट करें.
cd ~/agentverse-developer/
clear
gemini
👉✨ अब Gemini को यह कमांड दें. यह प्रॉम्प्ट, डिज़ाइन दस्तावेज़ के तौर पर काम करता है. इसमें, आपको जिस गॉन्टलेट को बनाने के लिए कहा गया है उसके चरणों के बारे में जानकारी दी गई है.
You are an expert DevOps engineer specializing in Google Cloud Build. Your task is to generate the complete YAML configuration for a file named `cloudbuild.yaml` and save it to current directory.
Generate the `cloudbuild.yaml` with the following exact specifications:
1. **A top-level `substitutions` block** containing these four key-value pairs:
* `_PROJECT_ID: "$PROJECT_ID"`
* `_REGION: "$REGION"`
* `_REPO_NAME: "$REPO_NAME"`
* `_IMAGE_TAG: "latest"`
2. **A `steps` block** with two steps:
* **Step 1: 'Run Pytest Ward'**
* `id`: 'Run Pytest Ward'
* `name`: 'python:3.12-slim'
* `entrypoint`: 'bash'
* `args` must be a list containing two strings. The first is `'-c'` and the second is a YAML literal block (`|`) containing this exact two-line shell command:
```shell
pip install -r shadowblade/requirements.txt && \
pytest test_agent_initiative.py
```
* The step must include an `env` block with this exact list of three environment variables:
* `'GOOGLE_CLOUD_PROJECT=$PROJECT_ID'`
* `'GOOGLE_GENAI_USE_VERTEXAI=TRUE'`
* `'GOOGLE_CLOUD_LOCATION=$_REGION'`
* **Step 2: 'Forge Container'**
* `id`: 'Forge Container'
* `name`: 'gcr.io/cloud-builders/docker'
* It must have a `waitFor` key for `['Run Pytest Ward']`.
* Its `args` must be a list of six specific strings in this exact order:
1. `'build'`
2. `'-t'`
3. `'${_REGION}-docker.pkg.dev/${_PROJECT_ID}/${_REPO_NAME}/shadowblade-agent:${_IMAGE_TAG}'`
4. `'-f'`
5. `'./shadowblade/Dockerfile'`
6. `'.'`
3. **A top-level `images` section.** This section must be a list containing a single string: the dynamically constructed image tag `'${_REGION}-docker.pkg.dev/${_PROJECT_ID}/${_REPO_NAME}/shadowblade-agent:${_IMAGE_TAG}'`.
Generate only the complete and exact YAML that meets these specifications.
cloudbuild.yaml स्क्रोल तैयार होने के बाद, Google Cloud को पूरा गॉन्टलेट चलाने का निर्देश दें.
नतीजे की जांच करने के लिए, Gemini से बाहर निकलें
👉💻 अपने टर्मिनल में, प्रोजेक्ट की रूट डायरेक्ट्री से पाइपलाइन को शुरू करें:
. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer
gcloud builds submit . --config cloudbuild.yaml --substitutions=\
_PROJECT_ID="${PROJECT_ID}",\
_REGION="${REGION}",\
_REPO_NAME="${REPO_NAME}"
अब Google Cloud Console में, Google Build पेज पर जाकर देखा जा सकता है कि आपके ऑटोमेटेड रिचुअल का हर चरण कैसे पूरा हो रहा है. यह सबसे पहले टेस्ट चलाएगा. टेस्ट के सफल होने पर, यह आपके एजेंट के कंटेनर को फ़ोर्ज और सेव करेगा.

आपके एजेंट ने गांटलेट टेस्ट पास कर लिया है. पुष्टि किया गया एक ओरिजनल आर्टफ़ैक्ट अब आपके शस्त्रागार में मौजूद है. आखिरी फ़ैसला आपका होगा. एक ही कमांड से, इस आर्टफ़ैक्ट को रजिस्ट्री से कॉल किया जा सकता है. साथ ही, इसे Cloud Run पर सार्वजनिक सेवा के तौर पर लॉन्च किया जा सकता है.
👉💻 अपने टर्मिनल में, डिप्लॉयमेंट का आखिरी निर्देश डालें:
. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer
gcloud run deploy shadowblade-agent \
--image=${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/shadowblade-agent:latest \
--platform=managed \
--labels="dev-tutorial-codelab=agentverse" \
--region=${REGION} \
--set-env-vars="A2A_HOST=0.0.0.0" \
--set-env-vars="A2A_PORT=8080" \
--set-env-vars="GOOGLE_GENAI_USE_VERTEXAI=TRUE" \
--set-env-vars="GOOGLE_CLOUD_LOCATION=${REGION}" \
--set-env-vars="GOOGLE_CLOUD_PROJECT=${PROJECT_ID}" \
--set-env-vars="PUBLIC_URL=${PUBLIC_URL}" \
--allow-unauthenticated \
--project=${PROJECT_ID} \
--min-instances=1
बधाई हो, शैडोब्लेड. कोडेक्स के रस्म-रिवाज़ पूरे हो गए हैं. अब समय आ गया है कि यह अपनी क्षमता साबित करे. एक स्पेक्टर, जिसे आपने काबू करना सीखा है, आपकी चुनौती का इंतज़ार कर रहा है. आखिरी ट्रायल के लिए तैयार रहें.
गेम नहीं खेलने वालों के लिए
9. The Boss Fight
स्क्रॉल पढ़ लिए गए हैं, रस्में पूरी हो गई हैं, और चुनौती पूरी हो गई है. आपका एजेंट सिर्फ़ स्टोरेज में मौजूद कोई आर्टिफ़ैक्ट नहीं है. यह कोड से बना एक चैंपियन है. यह Agentverse में एक लाइव सेंटिनल है, जो अपने पहले निर्देश का इंतज़ार कर रहा है. अब समय आ गया है कि यह युद्ध के मैदान में अपनी क्षमता साबित करे.
अब आपको लाइव-फ़ायर सिमुलेशन में शामिल होना होगा. इसमें आपको अपने नए शैडोब्लेड को एक खतरनाक स्पेक्ट्र के ख़िलाफ़ खड़ा करना होगा. स्पेक्ट्र, उस अराजकता का प्रतीक है जो सभी क्रिएशन को परेशान करती है. यह आपके काम की आखिरी जांच है. इसमें एजेंट के मुख्य लॉजिक से लेकर, उसके सही तरीके से डिप्लॉयमेंट तक की जांच की जाती है.
अपने एजेंट का लोकस हासिल करना
बैटलग्राउंड में शामिल होने से पहले, आपके पास दो कुंजियां होनी चाहिए: आपके चैंपियन का यूनीक सिग्नेचर (एजेंट लोकस) और स्पेक्टर के डेन का छिपा हुआ रास्ता (डंजन यूआरएल).
👉💻 सबसे पहले, Agentverse में अपने एजेंट का यूनीक पता हासिल करें. इसे Locus कहा जाता है. यह लाइव एंडपॉइंट है, जो आपके चैंपियन को बैटलग्राउंड से कनेक्ट करता है.
. ~/agentverse-developer/set_env.sh
echo https://shadowblade-agent-${PROJECT_NUMBER}.${REGION}.run.app
👉💻 इसके बाद, मंज़िल की सटीक जगह चुनें. इस कमांड से, ट्रांसलोकेशन सर्कल की जगह का पता चलता है. यह स्पेकटर के डोमेन में मौजूद पोर्टल है.
. ~/agentverse-developer/set_env.sh
echo https://agentverse-dungeon-${PROJECT_NUMBER}.${REGION}.run.app
अहम जानकारी: इन दोनों यूआरएल को तैयार रखें. आपको इनकी ज़रूरत आखिरी चरण में पड़ेगी.
स्पेक्टर का सामना करना
निर्देशांक सुरक्षित करने के बाद, अब आपको ट्रांसलोकेशन सर्कल पर जाना होगा. इसके बाद, लड़ाई में शामिल होने के लिए मंत्र का इस्तेमाल करें.
👉 अपने ब्राउज़र में ट्रांसलोकेशन सर्कल का यूआरएल खोलें, ताकि आप द क्रिमसन कीप के चमकते हुए पोर्टल के सामने खड़े हो सकें.
फ़ोर्ट्रेस को तोड़ने के लिए, आपको अपने शैडोब्लेड की एसेंस को पोर्टल के हिसाब से सेट करना होगा.
- पेज पर, A2A एंडपॉइंट यूआरएल लेबल वाला रनिक इनपुट फ़ील्ड ढूंढें.
- इस फ़ील्ड में, अपने चैंपियन के एजेंट लोकस यूआरएल (वह पहला यूआरएल जिसे आपने कॉपी किया था) को चिपकाकर, उसके सिग्नल को लिखें.
- टेलीपोर्टेशन की सुविधा का इस्तेमाल करने के लिए, कनेक्ट करें पर क्लिक करें.

टेलीपोर्टेशन की तेज़ रोशनी कम हो जाती है. अब आप अपने सैंक्टम में नहीं हैं. हवा में ऊर्जा है, जो ठंडी और तेज़ है. इससे पहले कि तुम कुछ समझ पाते, स्पेक्टर तुम्हारे सामने आ जाता है. वह फुसफुसाती हुई आवाज़ और खराब कोड का एक भंवर है. उसकी अपवित्र रोशनी, कालकोठरी के फ़र्श पर लंबी, नाचती हुई परछाइयां डाल रही है. इसका कोई चेहरा नहीं है, लेकिन आपको इसकी विशाल और थकाऊ मौजूदगी का एहसास होता है.
जीत हासिल करने का एक ही तरीका है कि आप अपने विचारों को साफ़ तौर पर रखें. यह इच्छाशक्ति की लड़ाई है, जो दिमाग़ के मैदान में लड़ी जाती है.
जब आप आगे बढ़कर पहला हमला करने के लिए तैयार होते हैं, तब स्पेक्टर पलटवार करता है. यह कोई ढाल नहीं है, बल्कि सीधे तौर पर आपके दिमाग़ में एक सवाल डालता है. यह एक चमकता हुआ, रूनिक चैलेंज है, जो आपकी ट्रेनिंग के मुख्य हिस्से से लिया गया है.

यह लड़ाई का स्वभाव है. आपका ज्ञान ही आपका हथियार है.
- अपनी सीखी हुई बातों के आधार पर जवाब दो. इससे तुम्हारी तलवार पूरी ऊर्जा के साथ जल उठेगी और स्पेकटर की सुरक्षा को तोड़कर, उसे गंभीर चोट पहुंचाएगी.
- लेकिन, अगर आपने जवाब देने में गलती की या आपके जवाब में कोई शंका हुई, तो आपके हथियार की रोशनी कम हो जाएगी. यह हमला बहुत कमज़ोर होगा और इससे बहुत कम नुकसान होगा. इससे भी बुरी बात यह है कि स्पेक्टर आपकी अनिश्चितता का फ़ायदा उठाएगा. हर ग़लत कदम के साथ, उसकी भ्रष्ट शक्ति बढ़ती जाएगी.
बस इतना ही, चैंपियन. आपका कोड आपकी जादू की किताब है, आपका तर्क आपकी तलवार है, और आपका ज्ञान वह ढाल है जो अराजकता को दूर करेगी.
फ़ोकस मोड. स्ट्राइक की जानकारी. Agentverse का भविष्य इस पर निर्भर करता है.
बधाई हो, शैडोब्लेड.
आपने कोडेक्स पूरा कर लिया है. आपने "वाइब" को डिज़ाइन में बदला और Gemini CLI का इस्तेमाल करके, एक इंटेलिजेंट एजेंट बनाया. आपने Wards of Purity को लिखा, ताकि इसके लॉजिक की जांच की जा सके. आपने इसे आर्टफ़ैक्ट में बदलने के लिए, एक ऑटोमेटेड गॉंटलेट बनाया. इसके बाद, आपने इसे Agentverse में रिलीज़ किया. आखिर में, आपने लाइव-फ़ायर ट्रायल में इसके मकसद की पुष्टि की. आपने फ़ुल-स्टैक एजेंटिक वर्कफ़्लो में महारत हासिल कर ली है. अब आप Agentverse से मिलने वाली किसी भी चुनौती का सामना करने के लिए तैयार हैं.
10. सफ़ाई: एजेंटवर्स को वापस पाना
Shadowblade's Codex में महारत हासिल करने के लिए बधाई! यह पक्का करने के लिए कि Agentverse में कोई गड़बड़ी न हो और आपके ट्रेनिंग ग्राउंड साफ़ हों, अब आपको फ़ाइनल क्लीनअप करना होगा. इससे आपकी यात्रा के दौरान बनाए गए सभी संसाधन हट जाएंगे.
Agentverse कॉम्पोनेंट बंद करना
अब आपको Agentverse के डिप्लॉय किए गए कॉम्पोनेंट को व्यवस्थित तरीके से हटाना होगा.
Cloud Run और Artifact Registry Repository से Shadowblade एजेंट को मिटाना
इस कमांड से, Cloud Run से डिप्लॉय किए गए Shadowblade एजेंट को हटा दिया जाता है. साथ ही, उस इमेज रिपॉज़िटरी को भी हटा दिया जाता है जहां आपके एजेंट की कंटेनर इमेज सेव की गई थी.
👉💻 अपने टर्मिनल में, यह कमांड चलाएं:
. ~/agentverse-developer/set_env.sh
gcloud run services delete shadowblade-agent --region=${REGION} --quiet
gcloud run services delete agentverse-dungeon --region=${REGION} --quiet
gcloud artifacts repositories delete ${REPO_NAME} --location=${REGION} --quiet
Google Cloud Storage बकेट मिटाना
इस कमांड से, Imagen MCP सर्वर की ओर से जनरेट की गई इमेज को सेव करने के लिए इस्तेमाल की गई बकेट हट जाती है.
👉💻 अपने टर्मिनल में, यह कमांड चलाएं:
. ~/agentverse-developer/set_env.sh
gcloud storage rm -r gs://${BUCKET_NAME} --quiet
लोकल फ़ाइलों और डायरेक्ट्री को मिटाना (Cloud Shell)
आखिर में, क्लोन की गई रिपॉज़िटरी और बनाई गई फ़ाइलों से Cloud Shell एनवायरमेंट को साफ़ करें. यह चरण ज़रूरी नहीं है, लेकिन वर्किंग डायरेक्ट्री को पूरी तरह से साफ़ करने के लिए इसका सुझाव दिया जाता है.
👉💻 अपने टर्मिनल में, यह कमांड चलाएं:
rm -rf ~/agentverse-developer
rm -rf ~/agentverse-dungeon
rm -rf ~/vertex-ai-creative-studio
rm -f ~/project_id.txt
rm -rf ~/.gemini # This removes all Gemini CLI configurations, including the MCP server settings.
अब आपने Agentverse से जुड़े सभी डेटा को मिटा दिया है. आपका प्रोजेक्ट साफ़ है और अब आप अगले रोमांच के लिए तैयार हैं.