Agentverse - The Shadowblade's Codex - Vibecoding with Gemini CLI

1. Overture

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

इस नए दौर में सफलता पाने के लिए, चार अहम भूमिकाओं को एक साथ लाना ज़रूरी है. ये ऐसे बुनियादी सिद्धांत हैं जो किसी भी एजेंटिक सिस्टम को बेहतर बनाने में मदद करते हैं. किसी एक भी क्षेत्र में कमी होने से, पूरी संरचना कमज़ोर हो जाती है.

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

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

'द एजेंटवर्स: ए कॉल टू चैंपियंस' में आपका स्वागत है

एंटरप्राइज़ के विशाल डिजिटल क्षेत्र में, एक नया दौर शुरू हो गया है. यह एजेंटिक युग है. इसमें एआई एजेंट, इनोवेशन को बढ़ावा देने और रोज़मर्रा के कामों को आसान बनाने के लिए, एक साथ मिलकर काम करते हैं.

agentverse.png

पावर और संभावनाओं से जुड़े इस नेटवर्क को Agentverse कहा जाता है.

हालांकि, इस नई दुनिया में धीरे-धीरे एक ख़तरनाक बदलाव हो रहा है. इसे 'द स्टैटिक' कहा जाता है. यह बदलाव, इस नई दुनिया को अंदर ही अंदर खोखला कर रहा है. स्टैटिक कोई वायरस या बग नहीं है. यह एक तरह का अराजकतावादी है, जो क्रिएशन के काम को ही अपना शिकार बनाता है.

यह पुरानी समस्याओं को और बढ़ा देता है. इससे डेवलपमेंट की सात समस्याएं पैदा होती हैं. अगर इस पर ध्यान नहीं दिया गया, तो The Static और इसके Spectres, प्रोग्रेस को रोक देंगे. इससे Agentverse का वादा, तकनीकी कर्ज़ और छोड़े गए प्रोजेक्ट के बंजर इलाके में बदल जाएगा.

आज हम ऐसे लोगों को आगे आने का न्योता देते हैं जो इस अराजकता को खत्म करने में हमारी मदद कर सकें. हमें ऐसे हीरो की ज़रूरत है जो अपनी कला में माहिर हों और Agentverse को बचाने के लिए साथ मिलकर काम कर सकें. अब आपको अपना रास्ता चुनना है.

अपनी क्लास चुनना

आपके सामने चार अलग-अलग रास्ते हैं. इनमें से हर एक, द स्टैटिक के ख़िलाफ़ लड़ाई में अहम भूमिका निभाता है. हालांकि, आपकी ट्रेनिंग एक सोलो मिशन होगा, लेकिन आपकी सफलता इस बात पर निर्भर करती है कि आपकी स्किल, दूसरों की स्किल के साथ कैसे काम करती हैं.

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

आपका मिशन

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

अपनी भूमिका में महारत हासिल करके ही, फ़ाइनल ट्रायल के लिए तैयारी की जा सकती है. इसके बाद, आपको दूसरी क्लास के चैंपियन के साथ मिलकर एक पार्टी बनानी होगी. साथ मिलकर, आपको भ्रष्टाचार के केंद्र में जाकर, सबसे बड़े बॉस का सामना करना होगा.

यह एक आखिरी चुनौती है, जिसमें आपको मिलकर काम करना होगा. इससे आपकी टीम की ताकत का पता चलेगा और यह तय होगा कि Agentverse का क्या होगा.

Agentverse को अपने हीरो का इंतज़ार है. क्या आपको कॉल का जवाब देना है?

2. द शैडोब्लेड का कोडेक्स

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

02-00-overview.png

आपको क्या सीखने को मिलेगा

  • Gemini CLI का इस्तेमाल करें.
  • Gemini CLI के साथ एमसीपी टूल इंटिग्रेट करके, बाहरी टूल का इस्तेमाल करें. इससे, अनजान कोडबेस का विश्लेषण किया जा सकेगा.
  • अपने इरादे को "वाइब" में बदलें. इसके लिए, डिज़ाइन दस्तावेज़ों का इस्तेमाल करके अपने एआई पार्टनर को निर्देश दें.
  • एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके, अपना पहला ऑटोनॉमस एजेंट बनाएं. इससे आपको एक मॉड्यूलर और बेहतर समाधान मिलेगा.
  • अपने एजेंट की जांच और पुष्टि करने के लिए, अपने-आप आकलन करने वाले सुइट बनाना.
  • पूरी सीआई पाइपलाइन बनाएं, ताकि आपके एजेंट का अपने-आप टेस्ट किया जा सके, उसे कंटेनर में रखा जा सके, और उसे संग्रहित किया जा सके.

3. ट्रेनिंग ग्राउंड तैयार करना

👉Google Cloud Console में सबसे ऊपर मौजूद, Cloud Shell चालू करें पर क्लिक करें (यह Cloud Shell पैनल में सबसे ऊपर मौजूद टर्मिनल के आकार वाला आइकॉन है), cloud-shell.png

👉 "एडिटर खोलें" बटन पर क्लिक करें. यह बटन, पेंसिल वाले खुले फ़ोल्डर की तरह दिखता है. इससे विंडो में Cloud Shell Code Editor खुल जाएगा. आपको बाईं ओर फ़ाइल एक्सप्लोरर दिखेगा. open-editor.png

👉अपना Google Cloud प्रोजेक्ट आईडी ढूंढें:

  • Google Cloud Console खोलें: https://console.cloud.google.com
  • पेज पर सबसे ऊपर मौजूद प्रोजेक्ट ड्रॉपडाउन से, वह प्रोजेक्ट चुनें जिसका इस्तेमाल आपको इस वर्कशॉप के लिए करना है.
  • आपका प्रोजेक्ट आईडी, डैशबोर्ड पर मौजूद प्रोजेक्ट की जानकारी देने वाले कार्ड में दिखता है

03-04-project-id.png

👉क्लाउड आईडीई में टर्मिनल खोलें,

03-05-new-terminal.png

👉💻 टर्मिनल में, पुष्टि करें कि आपने पहले ही पुष्टि कर ली है और प्रोजेक्ट को अपने प्रोजेक्ट आईडी पर सेट किया गया है. इसके लिए, यह कमांड इस्तेमाल करें:

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

👉💻 इनिशियलाइज़ेशन स्क्रिप्ट चलाएं. यह स्क्रिप्ट, आपसे Google Cloud प्रोजेक्ट आईडी डालने के लिए कहेगी. इसके बाद, init.sh स्क्रिप्ट के प्रॉम्प्ट करने पर, पिछले चरण में मिला Google Cloud प्रोजेक्ट आईडी डालें.

cd ~/agentverse-developer
./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 --yolo

अगर आपसे Do you want to connect Cloud Shell editor to Gemini CLI? पूछा जाता है, तो नहीं चुनें.

हथियार के बारे में जानकारी

हर मास्टर क्राफ़्ट्समैन को अपने टूल के बारे में पता होता है. किसी असली दुश्मन का सामना करने से पहले, आपको अपने ब्लेड की बुनियादी तकनीकें सीखनी होंगी.

👉✨ हर जादुई टूल में ऐसे रन होते हैं जिनसे उसकी ताकत के बारे में पता चलता है. इन्हें अभी पढ़ें. 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 --yolo

👉✨ एक ही कमांड से, 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.

Gemini ने ज़रूरी कार्रवाइयों का क्रम तय कर दिया है.

किसी तकनीक की सही वैल्यू, सिर्फ़ लाइव स्ट्रीम के दौरान दिखती है. लोकल सिम्युलेशन शुरू करने के लिए, अपने ब्लेड को निर्देश दें.

👉✨ Gemini CLI में, सिम्युलेशन कमांड जारी करें:

Use Python's built-in web server to start the Shadowblade Profile website you just created.

Gemini पुष्टि करेगा कि सिम्युलेशन चालू है.

👀 Gemini CLI, इस बात की पुष्टि करेगा कि सिम्युलेशन चालू है और आपका डिजिटल मार्क लाइव है:

The website is now being served on port 8000. You can access it at http://localhost:8000.

ध्यान दें: इस प्रोसेस को सही तरीके से पूरा करने के लिए, ब्लेड को कुछ बार कोशिश करनी पड़ सकती है. अगर तीन से चार बार कोशिश करने के बाद भी समस्या बनी रहती है, तो Gemini CLI से बाहर निकलें. इसके लिए, /quit टाइप करें या Ctrl+C को दो बार दबाएं. इसके बाद, 👉💻 टर्मिनल में यह कमांड चलाएं.

python3 -m http.server

👀 अपने काम की झलक देखने के लिए, Cloud Shell टूलबार में मौजूद वेब प्रीव्यू आइकॉन पर क्लिक करें. पोर्ट बदलें को चुनें. इसके बाद, इसे 8000 पर सेट करें. इसके बाद, बदलें और झलक देखें पर क्लिक करें. आपको अपनी वेबसाइट की झलक दिखेगी. 04-01-webpreview.png

ऐसा हो सकता है कि आपकी वेबसाइट मेरी वेबसाइट से अलग दिख रही हो. यह आपका यूनीक मार्क है. 04-02-website.png

👉✨ अब आपकी सिग्नेचर करने की तकनीक बेहतर हो गई है. इसलिए, अब लाइव सिम्युलेशन की ज़रूरत नहीं है. ब्लेड को रुकने का निर्देश दें.

Stop the Shadowblade Profile website

👉💻 ध्यान दें: अगर आपने इसे Gemini CLI के बाहर चलाया है, तो http सर्वर से बाहर निकलने के लिए Ctrl+C दबाएं.

आपने Gemini CLI को अपने लिए कई कार्रवाइयाँ करने का निर्देश दिया है. लेकिन एक मास्टर शैडोब्लेड जानता है कि असली ताकत के लिए अनुशासन और दूरदर्शिता की ज़रूरत होती है. किसी एआई एजेंट को सीधे तौर पर आपके एनवायरमेंट में कमांड चलाने की अनुमति देना, दोनों तरह से फ़ायदेमंद और नुकसानदेह हो सकता है. अगर कमांड किसी सामान्य वेब सर्वर को शुरू करने के लिए नहीं, बल्कि ज़रूरी फ़ाइलों को मिटाने के लिए दी गई हो, तो क्या होगा? लापरवाही से दी गई एक कमांड, आपके पूरे ट्रेनिंग ग्राउंड को बर्बाद कर सकती है.

इसलिए, सबसे अनुभवी कारीगर, अपनी सबसे असरदार या नई तकनीकों का इस्तेमाल, ट्रेनिंग के लिए सुरक्षित जगह पर करते हैं. इसे सैंडबॉक्स कहा जाता है.

👉💻 Gemini CLI से बाहर निकलने के लिए, Ctrl+C को दो बार दबाएं

Gemini CLI सैंडबॉक्स (gemini --sandbox) आपके सेशन के लिए, कुछ समय के लिए एक अलग कंटेनर बनाता है. एआई जो भी कमांड चलाता है, जो भी फ़ाइल लिखता है, जो भी प्रोसेस शुरू करता है वह सिर्फ़ उस फ़ैंटम दायरे में मौजूद होती है. यह आपके Cloud Shell के मौजूदा एनवायरमेंट को न तो छू सकता है, न ही उसमें बदलाव कर सकता है और न ही उसे नुकसान पहुंचा सकता है. यह शक्तिशाली नए टूल को आज़माने, अपरिचित कोड का विश्लेषण करने या एआई को जटिल निर्देश देने के लिए सबसे सही जगह है. इससे अनचाहे नतीजे मिलने का जोखिम नहीं होता. यह शैडोब्लेड की सावधानी का प्रतीक है.

👉💻 अब, हम कंटेनमेंट की रस्म पूरी करेंगे, ताकि इसकी ताकत को समझा जा सके.

clear
gemini --sandbox --yolo
  • अगर आपसे Do you want to connect Cloud Shell editor to Gemini CLI? पूछा जाता है, तो नहीं चुनें.
  • अगर कहा जाए, तो लॉगिन करने के लिए दिए गए निर्देशों का पालन करें. साथ ही, Google से लॉगिन करें का इस्तेमाल करके साइन इन करना न भूलें

अब आपको आइसोलेट किए गए डाइमेंशन में काम करना होगा. Gemini CLI के लिए, सब कुछ सामान्य दिखेगा. आइए, इसे साबित करते हैं.

👉💻 ब्लेड को पहले की तरह ही काम करने का निर्देश दें:

Use the Python's built-in web server to start the Shadowblade Profile website, you just created.

Gemini, पोर्ट 8000 पर आपकी वेबसाइट को फिर से चालू करने के बाद, इसकी जानकारी देगा. लेकिन, वार्ड में कोई बदलाव नहीं होता.

👉 वेब प्रीव्यू पर जाएं और पोर्ट 8000 पर अपनी साइट देखने की कोशिश करें.

इस बार, आपको गड़बड़ी का मैसेज मिलेगा. कनेक्ट नहीं किया जा सकेगा. वेबसाइट को ऐक्सेस नहीं किया जा सकता.

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

👉💻 Gemini CLI से बाहर निकलने के लिए, Ctrl+C को दो बार दबाएं.

अब आपकी डिजिटल पहचान बन गई है. इससे भी ज़्यादा ज़रूरी बात यह है कि आपने बड़ी ज़िम्मेदारी के साथ काम करने के लिए, ज़रूरी बातें सीख ली हैं.

Activate Your Local Arsenal: The Gitea Armory

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

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

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

आइए, हम आपके नए शस्त्रागार के पहले और सबसे बुनियादी हिस्से को बुलाकर शुरुआत करते हैं: शस्त्रागार.

👉💻 अपने टर्मिनल में, आर्मरी को ऐक्सेस करने के लिए, ऐक्टिवेशन स्क्रिप्ट चलाएं:

cd ~/agentverse-developer
./gitea.sh

यह स्क्रिप्ट, Gitea कंटेनर को चालू करती है और MCP पोर्टल खोलती है. इससे Gemini को इसे समझने और इसके साथ इंटरैक्ट करने की अनुमति मिलती है.

👉 अपने नए शस्त्रागार की जांच करने के लिए, आपको वेब प्रीव्यू देखना होगा.

👉 Cloud Shell टूलबार में मौजूद वेब प्रीव्यू आइकॉन से, पोर्ट बदलें को चुनें और इसे 3005 पर सेट करें. 04-03-webpreview.png

👉 आपको 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 --yolo

👉✨ पुष्टि करें कि आपके ब्लेड को नया हथियार मिल गया है. इसे अपने एमसीपी पोर्टल के ज़रिए, उपलब्ध सभी हथियारों की सूची बनाने का निर्देश दें:

/mcp

Gitea MCP Server

अब आपको gitea और इसके साथ उपलब्ध तकनीकों की सूची दिखेगी. Your blade is attuned.

आपकी "मेकर्स मार्क" प्रोफ़ाइल, बेहतरीन तरीके से बनाई गई है. हालांकि, इसे आर्मरी में सही जगह पर रखने की ज़रूरत है. इसे सुरक्षित तरीके से रखने के लिए, एक म्यान की ज़रूरत है. 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 रिपॉज़िटरी बना दी गई है. Gitea Repo

तलवार रखने की म्यान तैयार होने के बाद, अपने काम को सुरक्षित करें. 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 को अब सुरक्षित तरीके से संग्रहित कर दिया गया है.

Gitea RepoGitea Repo

👉✨ शैडोब्लेड की पहचान उसके सिगिल से होती है. हालांकि, आपको याद होगा कि आपकी वेबसाइट पर प्रोफ़ाइल इमेज मौजूद नहीं है. एक बेहतरीन कारीगर, अपनी कमियों को दूर करने के लिए उन्हें स्वीकार करता है. आपको इस गड़बड़ी को आर्मरी के रिकॉर्ड में लॉग करना होगा.

File an issue for me in the shadowblade-profile repo. The issue is that the profile image is missing.

Gitea में समस्या देखें 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 के लिए एमसीपी (मॉडल कॉन्टेक्स्ट प्रोटोकॉल) सर्वर सेट अप करके ऐसा करता है. यह MCP सर्वर, ब्रिज की तरह काम करता है. इससे 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 --yolo

👉✨ एक ही असरदार कमांड की मदद से, 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.

👉✨ अपनी वेबसाइट को एक बार फिर से शुरू करें, ताकि आपको अपने काम की झलक मिल सके.

start the website with a simple HTTP server via Python

👀 अपने काम की झलक देखने के लिए, Cloud Shell टूलबार में मौजूद वेब प्रीव्यू आइकॉन पर क्लिक करें. पोर्ट बदलें को चुनें. इसके बाद, इसे 8000 पर सेट करें. इसके बाद, बदलें और झलक देखें पर क्लिक करें. आपको अपनी वेबसाइट की झलक दिखेगी. 05-07-webdite.png

👉✨ आखिर में, समस्या को ठीक करने के लिए कोड में बदलाव करें. साथ ही, टास्क पूरा होने की जानकारी दें. इसके बाद, आर्मरी के रिकॉर्ड में दर्ज की गई समस्या को बंद करें.

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"

👀 अपने काम की झलक देखने के लिए, Cloud Shell टूलबार में मौजूद वेब प्रीव्यू आइकॉन पर क्लिक करें. पोर्ट बदलें को चुनें. इसके बाद, इसे 3005 पर सेट करें. इसके बाद, बदलें और झलक देखें पर क्लिक करें. आपको अपनी वेबसाइट की झलक दिखेगी. तय

👉✨ Gitea में जाकर पुष्टि करें कि इमेज अपडेट हो गई है और समस्या हल हो गई है. आपका काम पूरा हो गया है. सर्वर को बंद करें.

stop website server

👉💻 बाहर निकलने के लिए, Ctrl+C को दो बार दबाएं.

गेम नहीं खेलने वालों के लिए

6. Shadowblade Agent को असेंबल करना: दिशा-निर्देशों के साथ वाइब कोड

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

खास जानकारी

आपका पहला काम, किसी मौजूदा वर्कशॉप में शामिल होना है. यह पहले से बना हुआ कोडबेस होता है. इसके अलग-अलग हिस्सों से, आपको अपना चैंपियन बनाना है.

असेंबली रिचुअल

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

स्टोरी

Gemini सीएलआई, हमेशा आपकी मदद के लिए तैयार रहता है. यह इस काम में आपकी मदद कर सकता है:

  • हाई-लेवल की खास जानकारी देना: यह पूरे कोडेक्स (या कोडबेस) को पढ़ सकता है. साथ ही, आपको इसके मकसद और मुख्य कॉम्पोनेंट के बारे में तुरंत जानकारी दे सकता है.
  • एनवायरमेंट सेटअप करने में मदद: यह टूल इंस्टॉल करने और मशीन को कॉन्फ़िगर करने के मुश्किल तरीके के बारे में आपको जानकारी दे सकता है.
  • कोडबेस में नेविगेट करना: यह आपके गाइड के तौर पर काम कर सकता है. इससे आपको मुश्किल लॉजिक को समझने और कोड में छिपे हुए पैसेज ढूंढने में मदद मिलती है.
  • ऑनबोर्डिंग दस्तावेज़ जनरेट करना: यह आपकी ज़रूरत के हिसाब से स्क्रोल बना सकता है. इनमें, आपके साथ जुड़ने वाले नए लोगों के लिए, लक्ष्यों, भूमिकाओं, और संसाधनों के बारे में जानकारी होती है.
  • सीखने और सवाल-जवाब की प्रोसेस को अपने-आप होने दें: यह आपके निजी स्कॉलर की तरह काम करता है. यह सुविधाओं या कोड के व्यवहार के बारे में सवालों के जवाब देता है, जिससे आपको ज़्यादा स्वतंत्रता मिलती है.

👉💻 पहले टर्मिनल में, shadowblade डायरेक्ट्री पर जाएं और अपने एआई पार्टनर को बुलाएं:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/shadowblade
clear
gemini --yolo

👉✨ अब अपने स्काउट को जंग के मैदान का सर्वे करने और वापस रिपोर्ट करने का निर्देश दें.

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 --yolo

👉✨ अब 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 पर जाएं और देखें कि यह क्या करता है. यह शैडोब्लेड के लिए उपलब्ध सभी हथियारों का सोर्स है. फ़िलहाल, शस्त्रागार में बहुत कम हथियार हैं.

06-02-story.png

👉✨ आइए, 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

असेंबल किया गया एजेंट, भरोसेमंद एजेंट नहीं होता. बिना जांच की गई ब्लेड खतरनाक होती है, लेकिन बिना जांच किया गया एआई एजेंट इससे भी ज़्यादा खतरनाक होता है. यह एक ऐसा खतरनाक एलिमेंट है जो आपके मिशन को अंदर से ही खराब कर सकता है. यह सिर्फ़ एक अनुमान नहीं है. यह एक बुनियादी सिद्धांत है जिसे शैडोब्लेड को समझना चाहिए.

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

07-01-story.png

इस आकलन को करने का सामान्य तरीका, एक पवित्र रस्म जैसा है:

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

खास जानकारी

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 --yolo

👉✨ 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 --yolo

👉✨ शील्ड के लॉजिक को 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 ने इसकी पुष्टि कर दी है. हालांकि, अगर वार्ड का रखरखाव ठीक से नहीं किया जाता है, तो वह सिर्फ़ एक पुरानी इमारत बनकर रह जाती है. यह पक्का करने के लिए कि आपके एजेंट का हर आने वाला वर्शन बेहतर हो, आपको डिप्लॉयमेंट गैंटलेट का पहला चरण पूरा करना होगा. यह एक ऑटोमेटेड प्रोसेस है, जो क्वालिटी और स्पीड की गारंटी देती है.

स्टोरी

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

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

खास जानकारी

इस कोडेक्स में, आपको अपनी भूमिका के बारे में पूरी जानकारी मिलेगी. आपको गॉन्टलेट का सीआई हिस्सा बनाना होगा. आपको एक ऑटोमेटेड फ़ोर्ज बनाना होगा. यह फ़ोर्ज, आपके एजेंट की जांच करेगा और सबसे सटीक नतीजे को एक कंटेनर में सील कर देगा. इससे, The Guardian को फ़ाइनल मंज़ूरी देने में मदद मिलेगी.

अब इस सीआई रिचुअल के लिए स्क्रोल करने के लिए, Google Cloud Build का इस्तेमाल किया जाएगा. cloudbuild.yaml फ़ाइल, जिसमें फ़ोर्जिंग और टेस्टिंग की प्रोसेस के हर चरण के बारे में बताया गया हो.

👉💻 ADK के प्रोजेक्ट स्ट्रक्चर की वजह से, CI/CD पाइपलाइन कॉन्फ़िगरेशन को पैरंट डायरेक्ट्री में होना चाहिए. अपने टर्मिनल में, पैरंट डायरेक्ट्री पर जाएं और Gemini CLI को रीस्टार्ट करें.

cd ~/agentverse-developer/
clear
gemini --yolo

👉✨ अब 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 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 में एक लाइव सेंटिनल है, जो अपने पहले निर्देश का इंतज़ार कर रहा है. अब समय आ गया है कि इसे युद्ध के मैदान में अपनी क्षमता साबित करनी होगी.

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

अपने एजेंट का लोकस हासिल करना

बैटलग्राउंड में शामिल होने से पहले, आपके पास दो कुंजियां होनी चाहिए: आपके चैंपियन का यूनीक सिग्नेचर (Agent Locus) और स्पेक्टर के डेन का छिपा हुआ रास्ता (Dungeon URL).

👉💻 सबसे पहले, 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 से जुड़े सभी डेटा को मिटा दिया है. आपका प्रोजेक्ट साफ़ है और अब आप अगले रोमांच के लिए तैयार हैं.