1. परिचय

इस कोडलैब में, Antigravity में पैरलल मल्टी-एजेंट ऑर्केस्ट्रेशन का इस्तेमाल करके, कई भाषाओं में कोड की क्वालिटी ऑडिट करने और अपने-आप ठीक होने वाला सिस्टम बनाने का तरीका बताया गया है. कई अलग-अलग सर्विस डायरेक्ट्री की परंपरागत, मैन्युअल और लीनियर समीक्षा करने के बजाय, आप अलग-अलग भाषा स्टैक की एक साथ जांच करने के लिए एआई के खास सब-एजेंट डिप्लॉय करेंगे.
आपको एक कोऑर्डिनेटर एजेंट बनाना होगा. यह एजेंट, प्रोजेक्ट के लेआउट का पता लगाएगा, यूनिट टेस्टिंग करने के लिए सब-एजेंट मैनेज करेगा, ऑडिट प्लान बनाएगा, नियमों का पालन करने के लिए स्कैन करेगा, ऑडिट रिपोर्ट बनाएगा, और कोडबेस में कोडिंग से जुड़ी ज़्यादा प्राथमिकता वाली समस्याओं को अपने-आप ठीक करेगा.
आपको क्या सीखने को मिलेगा
- प्रोजेक्ट की खोज: मुश्किल माइक्रोसेवा आर्किटेक्चर में, डायरेक्ट्री को मैप करने और प्रोग्रामिंग भाषाओं का पता लगाने के लिए, कोऑर्डिनेटर एजेंट को कैसे डिप्लॉय करें.
- ऑर्केस्ट्रेटेड पैरललिज़्म: कोड ऑडिट और यूनिट टेस्टिंग को एक साथ, भाषा के हिसाब से एआई के अलग-अलग सब-एजेंट में कैसे बांटा जाए.
- ह्यूमन-इन-द-लूप सुपरविज़न: ऑडिट प्लान बनाने के लिए, कोऑर्डिनेटर एजेंट को निर्देश कैसे दें. साथ ही, प्लान को लागू करने से पहले, उसकी समीक्षा करने और उसे मंज़ूरी देने के लिए, एजेंट को सुरक्षित तरीके से कैसे रोकें.
- अपने-आप ठीक होने की सुविधा: डेवलपर के खास सब-एजेंट को अपने-आप कोड को फिर से व्यवस्थित करने और कोडिंग और नियमों के पालन से जुड़ी ज़्यादा प्राथमिकता वाली समस्याओं को हल करने के लिए कैसे डिप्लॉय करें.
- पुष्टि करने की प्रोसेस: एआई से जनरेट किए गए कोड में हुए बदलावों की पुष्टि कैसे करें. इसके लिए, टेस्ट सुइट को अपने-आप फिर से चलाएं, ताकि यह पक्का किया जा सके कि कोई रिग्रेशन नहीं हुआ है.
आपको किन चीज़ों की ज़रूरत होगी
इस कोडलैब के लिए, आपको ये टूल स्थानीय तौर पर इंस्टॉल करने होंगे:
- Google Antigravity
- Git
- आपके एनवायरमेंट में इनमें से एक या उससे ज़्यादा भाषाएँ सेट अप हों: Go, Python, C# / .NET, NodeJS, Java
आइए, शुरू करें!
2. एनवायरमेंट सेटअप करना
सबसे पहले, पक्का करें कि आपने Antigravity इंस्टॉल किया हो.
इसके बाद, क्लाउड माइक्रोसेवाओं के डेमो ऐप्लिकेशन Online Boutique को क्लोन करें:
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
कोड की मदद से, Antigravity में नया प्रोजेक्ट बनाएं. Antigravity में, बाईं ओर मौजूद Projects में जाकर, Create New Project चुनें:

डेटा स्टोर करने की जगह का फ़ोल्डर चुनें:

Agent Security Settings के लिए Default मोड चुना जा सकता है. साथ ही, प्रोजेक्ट के लिए microservices-demo उसी नाम का इस्तेमाल किया जा सकता है.
3. खोज
माइक्रोसर्विसेज़ आर्किटेक्चर में, कोडबेस में आम तौर पर कई सेवाएं शामिल होती हैं. ये सेवाएं, कई फ़ोल्डर या रिपॉज़िटरी और प्रोग्रामिंग स्टैक में फैली होती हैं. Online Boutique डेमो ऐप्लिकेशन के लिए भी यही बात लागू होती है.
एजेंट लॉन्च करने से पहले, आइए प्रोजेक्ट के लेआउट के बारे में जानते हैं. पहले चरण में, Antigravity के साथ कोऑर्डिनेटर एजेंट को डिप्लॉय किया जाएगा. यह src/ के तहत अलग-अलग भाषाओं में कई माइक्रोसेवाओं का पता लगाता है. साथ ही, यह भाषा के हिसाब से सब-एजेंट को कोऑर्डिनेट करता है, ताकि बाद के चरणों में हर माइक्रोसेवा पर काम किया जा सके.
सबसे पहले, कोऑर्डिनेटर एजेंट से कोडबेस एक्सप्लोर करने के लिए कहें. साथ ही, यह पता लगाने के लिए कहें कि कौनसी सेवाएं किस डायरेक्ट्री में मौजूद हैं और वे कौनसी भाषाएं इस्तेमाल करती हैं.
Antigravity में, microservices-demo प्रोजेक्ट में नई बातचीत शुरू करें. मॉडल के लिए, Gemini के नए मॉडल का इस्तेमाल किया जा सकता है. इसमें सोचने का लेवल मीडियम होता है:

यह प्रॉम्प्ट आज़माएँ:
Identify all the microservices located under the src/ directory,
detect which programming language each service is written in, and
output the list as a clean markdown table showing: Service Name,
Directory, and Primary Language.
आखिर में, Antigravity को सेवाओं और उनकी मुख्य भाषा की एक अच्छी टेबल दिखानी चाहिए. यह टेबल कुछ इस तरह की होनी चाहिए:

4. भाषाएं चुनें
कोडबेस को मैप करने के बाद, आपको वे भाषाएं चुननी होंगी जिनमें आपको काम करना है. आपको यह पक्का करना होगा कि आपके पास चुनी गई भाषाओं के लिए ज़रूरी कंपाइलर/टूल हों. उदाहरण के लिए, C# के लिए dotnet टूल, Java के लिए javac वगैरह.
अपनी पसंद की भाषाएं चुनने के बाद, यह ज़रूरी है कि आप मौजूदा कोडबेस की जांच करें. इसके लिए, उस भाषा के लिए यूनिट टेस्ट चलाएं.
हर भाषा में टेस्ट सुइट चलाने के लिए, खास तौर पर तैयार किए गए, समानांतर सब-एजेंट का इस्तेमाल किया जा सकता है. इससे मल्टी-एजेंट वर्कफ़्लो की मुख्य क्षमता के बारे में पता चलता है: अलग-अलग भाषाओं के हिसाब से बनाए गए वर्कस्पेस में, एक साथ अलग-अलग टेस्ट चलाना.
अपने एनवायरमेंट के हिसाब से, इस प्रॉम्प्ट में बदलाव करें और इसे चलाएं:
I have [C#, Python, Go, Java, Node.js] setup locally.
Run the unit tests for services in these languages
in parallel subagents and report back in a clean markdown
on their pass/fail status.
आपको हर भाषा में, कई एजेंट के टेस्ट दिखेंगे. हर सब-एजेंट की समीक्षा करना न भूलें, क्योंकि वे टूल चलाने की अनुमतियां मांगते हैं. जैसा कि यहां दिखाया गया है:

सभी सब-एजेंट के काम पूरा करने के बाद, आपको यूनिट टेस्ट की एक रिपोर्ट मिलेगी. यह रिपोर्ट कुछ इस तरह की होगी:

5. ऑडिट प्लान करना
प्लान
मुश्किल वर्कफ़्लो में, बिना किसी प्लान के कोड में बदलाव करने से समस्याएं आ सकती हैं. हम यह तय करना चाहते हैं कि हमें किस चीज़ का ऑडिट करना है. इसके लिए, हम एक स्ट्रक्चर्ड और पारदर्शी ब्लूप्रिंट तैयार करना चाहते हैं. आपको कोऑर्डिनेटर एजेंट से, ऑडिट प्लान बनाने के लिए कहना होगा. इस प्लान में कोड की क्वालिटी की जांच, अपवाद हैंडलिंग, क्वेरी की जांच वगैरह शामिल होनी चाहिए.
यह पक्का करने के लिए कि प्लान को मैन्युअल तरीके से बनाया गया है, कोऑर्डिनेटर प्लान को किसी आर्टफ़ैक्ट में लिखेगा और आपकी समीक्षा के लिए तुरंत रोक देगा.
ऑडिट प्लान बनाने के लिए, इस प्रॉम्प्ट को आज़माएं:
We want to audit these microservices for code quality,
exception handling and database query formatting standards
for the languages I have set up locally. Design an audit plan
detailing what you will check and save it as an Audit Plan artifact.
Do not execute the audit yet. Stop after writing the plan and wait
for my instructions.
आपको चैट में ऑडिट प्लान का आर्टफ़ैक्ट दिखेगा:

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

ज़रूरी नहीं: अगर आपको प्लान में बदलाव करने हैं, तो उसमें टिप्पणियां जोड़ी जा सकती हैं.उदाहरण के लिए, "पक्का करें कि सभी सार्वजनिक तरीकों के बारे में अच्छी तरह से बताया गया हो". इसके बाद, जब तक आपको प्लान पसंद न आ जाए, तब तक उसमें बदलाव किए जा सकते हैं.
6. ऑडिट करना
एक्ज़ीक्यूट करने की अनुमति
ऑडिट प्लान को मंज़ूरी मिलने के बाद, आइए ऑडिट शुरू करें. कोऑर्डिनेटर एजेंट, हर भाषा स्टैक के लिए स्वतंत्र पैरलल सब-एजेंट बनाएगा. हर एजेंट, अपनी सेवा से जुड़े फ़ोल्डर में एक साथ काम करता है. इससे फ़ाइल के टकराव को रोका जा सकता है. साथ ही, स्कैनिंग की प्रोसेस को तेज़ किया जा सकता है. कोऑर्डिनेटर एजेंट, नतीजों को एक ही क्वालिटी डैशबोर्ड में मर्ज करेगा.
यहां दिया गया प्रॉम्प्ट आज़माकर देखें:
Execute the audit plan by spawning the parallel language subagents.
Once they finish scanning, collect their findings into an audit
report artifact, sorted by language and then priority. Include the
file paths, line ranges, snippets, and explanation of why it is a
finding. Stop after writing the report.
आपको कई एजेंट फिर से दिखने चाहिए:

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

समीक्षा करें
ऑडिट रिपोर्ट खोलने के बाद, आपको हर भाषा के लिए ज़्यादा जानकारी भी दिखेगी. उदाहरण के लिए, यहां C# में cartservice से जुड़ी ज़्यादा प्राथमिकता वाली समस्या दी गई है:

नतीजे देखने के लिए, ऑडिट रिपोर्ट का बाकी हिस्सा देखें.
7. बचा हुआ डेटा एक्सपोर्ट करना
कोड की क्वालिटी से जुड़ी समस्याओं का पता लगाना, सिर्फ़ आधी लड़ाई है. अब हम समस्याओं को हल करने के लिए, एजेंट का इस्तेमाल करेंगे. कोड को मैन्युअल तरीके से लिखने के बजाय, हम उसे भाषा के हिसाब से काम करने वाले डेवलपर सब-एजेंट को सौंप सकते हैं. ये सब-एजेंट, कोड को फिर से लिखकर सबसे सही तरीकों के मुताबिक बना सकते हैं.
इसे अलग-अलग तरीकों से किया जा सकता है:
- हर भाषा के लिए एक एजेंट बनाया जा सकता है. साथ ही, सभी एजेंट को एक साथ सभी समस्याओं को ठीक करने के लिए कहा जा सकता है. ऐसा करने से समस्याएं ठीक हो सकती हैं. हालांकि, एक साथ कई एजेंट को मैनेज करना और उनकी समीक्षा करना मुश्किल हो सकता है.
- एक बार में, एक भाषा के लिए एक एजेंट बनाया जा सकता है. साथ ही, उसे उस भाषा से जुड़ी समस्याओं को हल करने की अनुमति दी जा सकती है. इससे, एजेंट को मैनेज करना आसान हो जाएगा. हालांकि, आपको यह भरोसा होना चाहिए कि एजेंट, कई फ़ाइलों में कई बदलाव कर सकता है.
- एक समय में एक एजेंट, एक समस्या को हल कर सकता है. इससे आपको अगली समस्या पर जाने से पहले, नतीजे की जांच करने का समय मिल जाता है. यह ज़्यादा सुरक्षित तरीका है. हालांकि, इससे यह भी पक्का होता है कि आपको हर बदलाव के बारे में जानकारी मिलती रहे.
हम तीसरे प्रॉम्प्ट का इस्तेमाल करेंगे, जो ज़्यादा सुरक्षित है. यह प्रॉम्प्ट इस तरह है:
Select the top high-priority finding in [pick a language, e.g., C#]
and remediate the finding. Show me the code changes once complete.
कुछ सेकंड बाद, आपको दिखेगा कि एजेंट आपकी चुनी गई भाषा में सबसे ज़रूरी समस्या पर काम कर रहा है और उसे ठीक कर रहा है.
आखिर में, आपको वॉक्थ्रू आर्टफ़ैक्ट भी मिल सकता है. इससे आपको पता चलेगा कि एजेंट ने क्या बदलाव किया है:

ज़रूरी नहीं: इस चरण में, एजेंट से लागू करने के तरीके में बदलाव करने के लिए कहा जा सकता है. अगर आपको बदलावों से कोई समस्या नहीं है, तो एजेंट से बदलावों को शामिल करने के लिए नया यूनिट टेस्ट जोड़ने के लिए कहा जा सकता है.
8. पुष्टि
सॉफ़्टवेयर डेवलपमेंट में, किसी समस्या को तब तक ठीक नहीं माना जाता, जब तक उसकी पुष्टि न हो जाए. इस आखिरी चरण में, हम एजेंट से टेस्ट सुइट चलाने के लिए कह सकते हैं. इससे यह पक्का किया जा सकेगा कि कोड में किए गए बदलावों की वजह से, कोई समस्या तो नहीं आई है. साथ ही, हम ऑडिट स्कैनर को फिर से चलाकर यह पुष्टि कर सकते हैं कि समस्या पूरी तरह से ठीक हो गई है.
इस चरण में, प्लानिंग, स्कैनिंग, ठीक करने, और पुष्टि करने की पूरी ऑटोमेटेड प्रोसेस दिखाई गई है.
यह प्रॉम्प्ट सबमिट करें:
Rerun the unit tests for the changed language. If they pass, rerun
the relevant audit agent to check if the finding is resolved. If it
is resolved, mark the issue as resolved in the audit report.
आपको टेस्ट रनर सब-एजेंट को स्पिन अप करते हुए और टेस्ट चलाते हुए दिखना चाहिए. इसके बाद, आपको ऑडिटर सब-एजेंट को ऑडिट रिपोर्ट अपडेट करते हुए दिखना चाहिए. आखिर में, आपको ऑडिट रिपोर्ट में मौजूदा स्थिति के साथ यह अपडेट दिखेगा:

एक समस्या हल हो गई! अब, बाकी समस्याओं को हल किया जा सकता है. इस बार, हो सकता है कि आपको कम समय में ज़्यादा काम करने का तरीका अपनाना पड़े. इसमें एजेंट को ज़्यादा काम करने की अनुमति दी जाती है, ताकि आप समीक्षा कर सकें.
9. बधाई हो
बधाई हो! आपने Antigravity का इस्तेमाल करके, कई भाषाओं में लिखे गए कोड की समीक्षा और अपने-आप ठीक होने वाले वर्कफ़्लो की प्रोसेस पूरी कर ली है.
Antigravity के मल्टी-एजेंट आर्किटेक्चर का इस्तेमाल करके, आपने सिर्फ़ स्टैटिक जांचों को अपने-आप होने की सुविधा के साथ नहीं जोड़ा है. आपने क्वालिटी अश्योरेंस की एक ऐसी टीम बनाई है जो अपने-आप काम करती है. भाषा से जुड़े एजेंट, भाषा से जुड़ी समस्याओं पर एक साथ काम कर रहे थे. वहीं, आपका कोऑर्डिनेटर एजेंट, एक प्लान और रिपोर्ट तैयार कर रहा था. इसके बाद, उसने कोड को फिर से व्यवस्थित करने का काम मैनेज किया.
अहम जानकारी
- ऑर्केस्ट्रेटेड पैरललिज़्म: आपने यह सीखा कि ऑडिट और टेस्ट को, भाषा के हिसाब से अलग-अलग सब-एजेंट में कैसे बांटा जाता है. ये सब-एजेंट एक साथ काम करते हैं, ताकि समीक्षा में होने वाली रुकावटों से बचा जा सके.
- Human-in-the-Loop: आपने ऑडिट प्लान को लागू करने से पहले, उसकी समीक्षा की और उसमें एनोटेशन जोड़े. इससे, आपको स्वायत्त रूप से होने वाले ऑपरेशनों की निगरानी करने में मदद मिली.
- अपने-आप ठीक होने की सुविधा और पुष्टि करने की सुविधा: आपने देखा कि एआई एजेंट, कोड की क्वालिटी में मौजूद अंतर का पता लगाने के साथ-साथ कोड को फिर से व्यवस्थित भी कर सकते हैं. साथ ही, लोकल टेस्ट सुइट के हिसाब से अपने किए गए बदलावों की पुष्टि भी कर सकते हैं.