Google Antigravity का इस्तेमाल शुरू करना

1. परिचय

इस कोडलैब में, आपको Google Antigravity के बारे में जानकारी मिलेगी. इसे इस दस्तावेज़ में Antigravity कहा गया है. यह एक एजेंटिक डेवलपमेंट प्लैटफ़ॉर्म है. यह आईडीई को एजेंट-फ़र्स्ट एरा में बदलता है.

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

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

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

  • Antigravity को इंस्टॉल और कॉन्फ़िगर करना.
  • Antigravity के मुख्य कॉन्सेप्ट के बारे में जानें. जैसे, एजेंट मैनेजर, एडिटर, ब्राउज़र वगैरह.
  • Antigravity के साथ इस्तेमाल के कुछ उदाहरणों को एक्सप्लोर करना.

आपको इन चीज़ों की ज़रूरत होगी

फ़िलहाल, Antigravity की सुविधा निजी Gmail खातों के लिए उपलब्ध है. इसमें प्रीमियर मॉडल इस्तेमाल करने के लिए, मुफ़्त कोटा मिलता है.

Antigravity को आपके सिस्टम पर स्थानीय तौर पर इंस्टॉल किया जाना चाहिए. यह प्रॉडक्ट Mac, Windows, और Linux के कुछ वर्शन पर उपलब्ध है. अपने कंप्यूटर के अलावा, आपको इन चीज़ों की ज़रूरत होगी:

  • Chrome वेब ब्राउज़र
  • Gmail खाता (निजी Gmail खाता).

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

समस्याओं की शिकायत करना

कोडलैब और Antigravity का इस्तेमाल करते समय, आपको समस्याएं आ सकती हैं.

कोडलैब से जुड़ी समस्याओं (टाइप की गई गलतियां, गलत निर्देश) के लिए, कृपया इस कोडलैब के सबसे नीचे बाएं कोने में मौजूद Report a mistake बटन पर क्लिक करके, बग की रिपोर्ट करें:

b06b582bcd847f6d.png

Antigravity से जुड़ी गड़बड़ियों या सुविधाओं के अनुरोध के लिए, कृपया Antigravity में समस्या की रिपोर्ट करें. इसके लिए, Agent Manager में जाकर सबसे नीचे बाएं कोने में मौजूद Provide Feedback लिंक पर क्लिक करें:

281ac826fb44d427.png

इसके अलावा, अपनी प्रोफ़ाइल के आइकॉन के नीचे मौजूद Report Issue लिंक पर क्लिक करके भी एडिटर पर जाया जा सकता है:

e8afd782a8f92129.png

2. इंस्टॉल करना

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

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

29fada39721093c.png

कृपया हर बार Next पर क्लिक करें. यहाँ मुख्य चरणों के बारे में बताया गया है:

  • सेटअप फ़्लो चुनें: इससे आपको अपनी मौजूदा VS Code या Cursor सेटिंग इंपोर्ट करने का विकल्प मिलता है. हम नए सिरे से शुरुआत करेंगे.
  • एडिटर के लिए थीम टाइप चुनें: हम गहरे रंग वाली थीम का इस्तेमाल करेंगे, लेकिन यह पूरी तरह से आप पर निर्भर करता है.
  • आपको Antigravity एजेंट का इस्तेमाल कैसे करना है?

7ca55560ec377130.png

आइए, इसे थोड़ा और विस्तार से समझते हैं. ध्यान रखें कि Antigravity की उपयोगकर्ता सेटिंग (Cmd + ,) में जाकर, सेटिंग में किसी भी समय बदलाव किया जा सकता है.

विकल्पों के बारे में जानने से पहले, आइए कुछ खास प्रॉपर्टी (जो आपको डायलॉग बॉक्स के दाईं ओर दिखती हैं) पर नज़र डालें.

टर्मिनल एक्ज़ीक्यूशन से जुड़ी नीति

इसका मतलब है कि एजेंट को आपके टर्मिनल में कमांड (ऐप्लिकेशन/टूल) चलाने की अनुमति देना:

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

समीक्षा की नीति

एजेंट, टास्क पूरा करते समय कई तरह के आर्टफ़ैक्ट (टास्क प्लान, लागू करने का प्लान वगैरह) बनाता है. समीक्षा करने की नीति इस तरह से सेट की जाती है कि यह तय किया जा सके कि समीक्षा करने का फ़ैसला कौन करेगा. क्या आपको हमेशा इसकी समीक्षा करनी है या एजेंट को यह तय करने देना है. इसलिए, यहां भी तीन विकल्प दिए गए हैं.

  • हमेशा आगे बढ़ें: एजेंट कभी भी समीक्षा के लिए नहीं कहता.
  • एजेंट तय करेगा: एजेंट यह तय करेगा कि समीक्षा के लिए कब अनुरोध करना है.
  • समीक्षा का अनुरोध करें: एजेंट हमेशा समीक्षा का अनुरोध करता है.

JavaScript को चलाने से जुड़ी नीति

इस सुविधा के चालू होने पर, एजेंट ब्राउज़र टूल का इस्तेमाल करके यूआरएल खोल सकता है, वेब पेज पढ़ सकता है, और ब्राउज़र के कॉन्टेंट से इंटरैक्ट कर सकता है. इस नीति से यह कंट्रोल किया जाता है कि ब्राउज़र में JavaScript कैसे काम करे.

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

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

ये चार विकल्प हैं:

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

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

इसके बाद, Editor को कॉन्फ़िगर करें सेटिंग पेज खुलता है. यहां अपनी पसंद के मुताबिक ये सेटिंग चुनी जा सकती हैं:

  • कीबोर्ड शॉर्टकट: अपने कीबोर्ड शॉर्टकट कॉन्फ़िगर करें.
  • एक्सटेंशन: भाषा और अन्य सुझाई गई सुविधाओं से जुड़े लोकप्रिय एक्सटेंशन इंस्टॉल करें.
  • कमांड लाइन: agy की मदद से Antigravity खोलने के लिए, कमांड लाइन टूल इंस्टॉल करें.

अब Google में साइन इन करें. जैसा कि पहले बताया गया है, Antigravity को फ़िलहाल आज़माया जा सकता है. अगर आपके पास निजी Gmail खाता है, तो इसे मुफ़्त में आज़माया जा सकता है. अब अपने खाते से साइन इन करें. इससे ब्राउज़र खुल जाएगा और आपको साइन इन करने का विकल्प मिलेगा. पुष्टि हो जाने के बाद, आपको नीचे दिए गए मैसेज जैसा मैसेज दिखेगा. इसके बाद, आपको वापस Antigravity ऐप्लिकेशन पर भेज दिया जाएगा. हवा के रुख के साथ चलें.

आखिर में, इस्तेमाल की शर्तें. आपके पास यह तय करने का विकल्प होता है कि आपको इस सुविधा के लिए ऑप्ट-इन करना है या नहीं. इसके बाद, Next पर क्लिक करें.

इससे आपको सच्चाई का पता चलेगा. साथ ही, Antigravity आपके साथ मिलकर काम करने के लिए तैयार होगा.

3. एजेंट मैनेजर

हम शुरू करने के लिए तैयार हैं!

Antigravity, ओपन-सोर्स Visual Studio Code (VS Code) पर आधारित है. हालांकि, यह उपयोगकर्ता अनुभव को पूरी तरह से बदल देता है. इसमें टेक्स्ट में बदलाव करने के बजाय, एजेंट मैनेजमेंट को प्राथमिकता दी जाती है. इंटरफ़ेस को दो मुख्य विंडो में बांटा गया है: Editor और Agent Manager. यह अंतर, किसी व्यक्ति के योगदान और इंजीनियरिंग मैनेजमेंट के बीच के अंतर को दिखाता है.

एजेंट मैनेजर: मिशन कंट्रोल

Antigravity लॉन्च करने पर, उपयोगकर्ता को आम तौर पर फ़ाइल ट्री नहीं, बल्कि एजेंट मैनेजर दिखता है. इसे यहां दिखाया गया है:

d5ae91fc746e1bba.png

यह इंटरफ़ेस, Mission Control डैशबोर्ड की तरह काम करता है. इसे बेहतर तरीके से मैनेज करने के लिए डिज़ाइन किया गया है. इससे डेवलपर, अलग-अलग वर्कस्पेस या टास्क में एसिंक्रोनस तरीके से काम करने वाले कई एजेंट को स्पॉन, मॉनिटर, और उनके साथ इंटरैक्ट कर सकते हैं.

इस व्यू में, डेवलपर आर्किटेक्ट के तौर पर काम करता है. ये बड़े लक्ष्यों को तय करते हैं. उदाहरण के लिए:

  • पुष्टि करने वाले मॉड्यूल को फिर से फ़ैक्टर करें
  • डिपेंडेंसी ट्री अपडेट करना
  • Billing API के लिए टेस्ट सुइट जनरेट करना

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

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

ऊपर दिए गए Next पर क्लिक करने से, आपके पास कोई वर्कस्पेस खोलने का विकल्प होता है.

ec72712ea24bf6d5.png

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

यह चरण पूरा करने के बाद, आपको एजेंट मैनेजर विंडो दिखेगी. यह विंडो यहां दिखाई गई है:

156224e223eeda36.png

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

Planning और Model Selection, दोनों ड्रॉपडाउन देखें. 'मॉडल चुनें' ड्रॉपडाउन की मदद से, अपने एजेंट के लिए फ़िलहाल उपलब्ध मॉडल में से कोई एक मॉडल चुना जा सकता है. सूची यहां दी गई है:

fb0744dc43911365.png

इसी तरह, हमें पता चलता है कि एजेंट डिफ़ॉल्ट रूप से Planning मोड में रहेगा. हालांकि, हम Fast मोड का भी इस्तेमाल कर सकते हैं.

f403e40ad480efc9.png

आइए, देखते हैं कि इस बारे में दस्तावेज़ में क्या लिखा है:

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

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

अब हम यहां एजेंट मैनेजर (विंडो) पर कुछ समय बिताएंगे और कुछ चीज़ों को समझेंगे, ताकि बुनियादी बिल्डिंग ब्लॉक के बारे में पता चल सके. साथ ही, यह भी पता चल सके कि Antigravity में कैसे नेविगेट किया जाता है और अन्य चीज़ों के बारे में जानकारी मिल सके. नीचे एजेंट मैनेजर विंडो दिखाई गई है:

22f6dcf7b3edc583.png

कृपया ऊपर दिए गए डायग्राम में दिए गए नंबर देखें:

  1. Inbox: इसे एक ही जगह पर अपनी सभी बातचीत को ट्रैक करने के तरीके के तौर पर देखें. एजेंट को टास्क असाइन करने पर, वे इनबॉक्स में दिखेंगे. इनबॉक्स पर क्लिक करके, मौजूदा बातचीत की सूची देखी जा सकती है. किसी भी बातचीत पर टैप करने से, आपको उस बातचीत में हुए सभी मैसेज, टास्क की स्थिति, और एजेंट की ओर से जनरेट किया गया कॉन्टेंट दिखेगा. साथ ही, यह भी दिखेगा कि क्या एजेंट को टास्क के लिए आपकी मंज़ूरी का इंतज़ार है. यह उस पिछले टास्क पर वापस आने का एक शानदार तरीका है जिस पर काम किया जा रहा था. यह एक बहुत काम की सुविधा है.
  2. Start Conversation: नई बातचीत शुरू करने के लिए, इस पर क्लिक करें. इससे आपको सीधे उस इनपुट पर ले जाया जाएगा जहां Ask anything लिखा है.
  3. Workspaces: हमने फ़ाइल फ़ोल्डर के बारे में बताया है. साथ ही, यह भी बताया है कि आपके पास किसी भी फ़ाइल फ़ोल्डर में काम करने का विकल्प होता है. आपके पास किसी भी समय ज़्यादा वर्कस्पेस जोड़ने का विकल्प होता है. साथ ही, बातचीत शुरू करते समय कोई भी वर्कस्पेस चुना जा सकता है.
  4. Playground: यह एक बेहतरीन तरीका है. इसकी मदद से, एजेंट के साथ बातचीत शुरू की जा सकती है. इसके बाद, अगर आपको उस बातचीत को किसी वर्कस्पेस में बदलना है, तो ऐसा किया जा सकता है. वर्कस्पेस में, आपके पास फ़ाइलों वगैरह पर ज़्यादा कंट्रोल होता है. इसे एक स्क्रैच एरिया के तौर पर सोचें.
  5. Editor View: अब तक हम एजेंट मैनेजर व्यू में हैं. अगर आपको एडिटर व्यू पर स्विच करना है, तो किसी भी समय ऐसा किया जा सकता है. इससे आपको अपना फ़ाइल फ़ोल्डर और जनरेट की गई कोई भी फ़ाइल दिखेगी. आपके पास सीधे तौर पर उन फ़ाइलों में बदलाव करने का विकल्प होता है. इसके अलावा, एडिटर में इनलाइन निर्देश या कमांड भी दी जा सकती है, ताकि एजेंट आपके बदले गए सुझावों/निर्देशों के मुताबिक कोई कार्रवाई कर सके या बदलाव कर सके. हम बाद के सेक्शन में, एडिटर व्यू के बारे में विस्तार से बताएंगे.
  6. Browser: आखिर में, हम एक ऐसे फ़र्क़ के बारे में बात करेंगे जो Antigravity को बहुत ज़्यादा असरदार बनाता है. यह फ़र्क़, Chrome ब्राउज़र के साथ इसका इंटिग्रेशन है. आइए, अगले सेक्शन में ब्राउज़र सेट अप करने की प्रोसेस शुरू करते हैं.

4. Antigravity Browser

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

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

इसका मतलब है कि हमें Antigravity ब्राउज़र एक्सटेंशन को लॉन्च और इंस्टॉल करना होगा. इसके लिए, Playground में बातचीत शुरू करें और दिए गए चरणों को पूरा करें.

Playground को चुनें और एजेंट को यह टास्क go to antigravity.google दें. यह टास्क नीचे दिखाया गया है:

51a373d3da23db56.png

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

e7119f40e093afd2.png

इससे ब्राउज़र खुल जाएगा और एक्सटेंशन इंस्टॉल करने के लिए एक मैसेज दिखेगा. यह मैसेज यहां दिखाया गया है:

82fb87d7d75b4a6c.png

आगे बढ़ें. इसके बाद, आपको Chrome एक्सटेंशन पर ले जाया जाएगा. इसे इंस्टॉल किया जा सकता है.

f3468f0e5f3bb075.png

एक्सटेंशन को इंस्टॉल करने के बाद, Antigravity Agent काम करना शुरू कर देगा. साथ ही, यह बताएगा कि उसे अपना काम करने के लिए आपकी अनुमति चाहिए. आपको खुली हुई ब्राउज़र विंडो में कुछ गतिविधि दिखेगी:

7f0367e00ac36d5a.png

एजेंट मैनेजर व्यू पर वापस जाएं. आपको यह दिखेगा:

b9d89e1ebefcfd76.png

हमें ठीक यही नतीजे मिलने की उम्मीद थी, क्योंकि हमने एजेंट को antigravity.google वेबसाइट पर जाने के लिए कहा था. इसे अनुमति दें. इसके बाद, आपको पता चलेगा कि वेबसाइट पर सुरक्षित तरीके से नेविगेट किया गया है. जैसा कि यहां दिखाया गया है:

77fcc38b5fb4ca7c.png

5. कलाकृतियां

Antigravity, आर्टफ़ैक्ट बनाता है. ऐसा वह प्लान बनाने और काम करने के दौरान करता है. इससे वह अपने काम के बारे में बता पाता है और उपयोगकर्ता से सुझाव या राय ले पाता है. ये रिच मार्कडाउन फ़ाइलें, आर्किटेक्चर डायग्राम, इमेज, ब्राउज़र रिकॉर्डिंग, कोड में अंतर वगैरह होते हैं.

आर्टफ़ैक्ट, "भरोसे की कमी" को दूर करते हैं. जब कोई एजेंट यह दावा करता है कि "मैंने गड़बड़ी ठीक कर दी है", तो डेवलपर को पुष्टि करने के लिए कोड पढ़ना पड़ता था. एंटीग्रैविटी में, एजेंट यह साबित करने के लिए एक आर्टफ़ैक्ट बनाता है.

Antigravity से ये मुख्य आर्टफ़ैक्ट जनरेट होते हैं:

  • Task Lists: कोड लिखने से पहले, एजेंट एक स्ट्रक्चर्ड प्लान जनरेट करता है. आम तौर पर, आपको इस प्लान में बदलाव करने की ज़रूरत नहीं होती. हालांकि, आपके पास इसकी समीक्षा करने का विकल्प होता है. साथ ही, अगर ज़रूरी हो, तो इसमें बदलाव करने के लिए टिप्पणी भी जोड़ी जा सकती है.
  • Implementation Plan: इसका इस्तेमाल, किसी टास्क को पूरा करने के लिए अपने कोडबेस में बदलाव करने के लिए किया जाता है. इन प्लान में तकनीकी जानकारी शामिल होती है. इसमें बताया जाता है कि कौनसे बदलाव ज़रूरी हैं. साथ ही, इन्हें उपयोगकर्ता को देखना होता है. हालांकि, अगर आपने आर्टफ़ैक्ट की समीक्षा करने की नीति को "हमेशा आगे बढ़ें" पर सेट किया है, तो ऐसा नहीं होता.
  • Walkthrough: यह तब बनाया जाता है, जब एजेंट टास्क को लागू कर देता है. इसमें बदलावों की खास जानकारी दी जाती है और उन्हें टेस्ट करने का तरीका बताया जाता है.
  • Code diffs: तकनीकी तौर पर, Antigravity कोई आर्टफ़ैक्ट नहीं है. हालांकि, यह कोड में अंतर भी दिखाता है. इस अंतर की समीक्षा की जा सकती है और इस पर टिप्पणी की जा सकती है.
  • Screenshots: एजेंट, बदलाव से पहले और बाद में यूज़र इंटरफ़ेस की स्थिति को कैप्चर करता है.
  • Browser Recordings: डाइनैमिक इंटरैक्शन के लिए (जैसे, "लॉगिन बटन पर क्लिक करें, स्पिनर के रुकने का इंतज़ार करें, पुष्टि करें कि डैशबोर्ड लोड हो गया है"), एजेंट अपने सेशन का वीडियो रिकॉर्ड करता है. डेवलपर इस वीडियो को देखकर यह पुष्टि कर सकता है कि ऐप्लिकेशन की ज़रूरी शर्तें पूरी की गई हैं या नहीं. इसके लिए, उसे ऐप्लिकेशन को खुद चलाने की ज़रूरत नहीं है.

आर्टफ़ैक्ट बनाए जाते हैं और ये एजेंट मैनेजर और एडिटर, दोनों के व्यू में दिखते हैं.

एडिटर व्यू में, सबसे नीचे दाएं कोने में मौजूद Artifacts पर क्लिक करके ये काम किए जा सकते हैं:

5deff47fe0a93aa1.png

एजेंट मैनेजर व्यू में, सबसे ऊपर दाईं ओर, Review changes के बगल में, आपको आर्टफ़ैक्ट टॉगल करने का बटन दिखेगा. अगर यह टॉगल चालू है, तो आपको जनरेट किए गए आर्टफ़ैक्ट की सूची दिखेगी:

5320f447471c43eb.png

आपको नीचे दी गई इमेज की तरह, आर्टफ़ैक्ट व्यू दिखेगा. यहां हमने एजेंट को antigravity.google पेज पर जाने का निर्देश दिया है. इसलिए, एजेंट ने इसका स्क्रीनशॉट कैप्चर किया है और इसका एक वीडियो बनाया है:

19d9738bb3c7c0c9.png

एडिटर व्यू में Review Changes में जाकर, कोड में हुए अंतर देखे जा सकते हैं:

e1d8fd6e7df4daf3.png

डेवलपर, "Google Docs की तरह टिप्पणी करने की सुविधा" का इस्तेमाल करके, इन आर्टफ़ैक्ट और कोड में अंतर के साथ इंटरैक्ट कर सकते हैं. आपके पास कोई खास कार्रवाई या टास्क चुनने का विकल्प होता है. इसके बाद, आपको जिस तरह से कार्रवाई करानी है उस तरह से निर्देश दें. इसके बाद, उसे एजेंट को सबमिट करें. इसके बाद, एजेंट इस सुझाव/राय/शिकायत को शामिल करेगा और उसके हिसाब से जवाब देगा. इंटरैक्टिव Google Docs का इस्तेमाल करने के बारे में सोचें. इसमें, लेखक को सुझाव, शिकायत या राय दी जाती है और फिर लेखक उस पर दोबारा काम करता है.

6. इनबॉक्स पर वापस जाना

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

1a2a1bbdd4464ecf.png

उस बातचीत पर क्लिक करने से आपको यह जानकारी मिलेगी:

b7e493765cfb1b1a.png

यहाँ से भी बातचीत जारी रखी जा सकती है.

7. संपादक

एडिटर, VS Code की तरह ही काम करता है. इससे अनुभवी डेवलपर को इसे इस्तेमाल करने में आसानी होती है. इसमें स्टैंडर्ड फ़ाइल एक्सप्लोरर, सिंटैक्स हाइलाइटिंग, और एक्सटेंशन ईकोसिस्टम शामिल है.

एडिटर पर जाने के लिए, एजेंट मैनेजर में सबसे ऊपर दाईं ओर मौजूद Open Editor बटन पर क्लिक करें.

सेटअप और एक्सटेंशन

सामान्य सेटअप में, आपको एडिटर, टर्मिनल, और एजेंट दिखेंगे:

7996408528de93e1.png

अगर ऐसा नहीं है, तो टर्मिनल और एजेंट पैनल को इस तरह टॉगल किया जा सकता है:

  • टर्मिनल पैनल को टॉगल करने के लिए, Ctrl + ` शॉर्टकट का इस्तेमाल करें.
  • एजेंट पैनल को टॉगल करने के लिए, Cmd + L शॉर्टकट का इस्तेमाल करें.

इसके अलावा, Antigravity सेटअप के दौरान कुछ एक्सटेंशन इंस्टॉल कर सकता है. हालांकि, इस्तेमाल की जा रही प्रोग्रामिंग भाषा के हिसाब से, आपको शायद ज़्यादा एक्सटेंशन इंस्टॉल करने पड़ें. उदाहरण के लिए, Python डेवलपमेंट के लिए, ये एक्सटेंशन इंस्टॉल किए जा सकते हैं:

bd33a79837b5a12a.png

संपादक

स्‍वत: पूर्ण

एडिटर में कोड टाइप करते समय, स्मार्ट ऑटो-कंप्लीट की सुविधा काम करती है. इसे टैब किया जा सकता है:

e90825ed7a009350.png

इंपोर्ट करने के लिए, Tab का इस्तेमाल करें

डिपेंडेंसी जोड़ने के लिए, आपको इंपोर्ट करने के लिए टैब का सुझाव मिलता है:

bcab60794caa0aec.png

जंप करने के लिए टैब दबाएं

आपको टैब दबाकर आगे बढ़ने के सुझाव मिलते हैं, ताकि कर्सर को कोड में अगली सही जगह पर ले जाया जा सके:

8610ae5217be7fe5.png

निर्देश

एडिटर या टर्मिनल में Cmd + I का इस्तेमाल करके, आम बोलचाल की भाषा में इनलाइन सुझाव पाने के लिए कमांड ट्रिगर की जा सकती हैं.

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

13a615e515cea100.png

टर्मिनल में, आपको टर्मिनल कमांड के सुझाव मिल सकते हैं:

5a75e560f998cedc.png

एजेंट साइड पैनल

एडिटर में, एजेंट साइड पैनल को कई तरीकों से टॉगल किया जा सकता है.

मैन्युअल तरीके से खोला गया

Cmd + L शॉर्टकट का इस्तेमाल करके, दाईं ओर मौजूद एजेंट पैनल को मैन्युअल तरीके से टॉगल किया जा सकता है.

सवाल पूछने के लिए, @ का इस्तेमाल करके ज़्यादा जानकारी शामिल करें. जैसे, फ़ाइलें, डायरेक्ट्री, एमसीपी सर्वर. इसके अलावा, / का इस्तेमाल करके किसी वर्कफ़्लो (सेव किया गया प्रॉम्प्ट) का रेफ़रंस दें:

95c5a6d31d771748.png

आपके पास बातचीत के दो मोड में से कोई एक चुनने का विकल्प भी है: Fast या Planning :

d3d1449f12510e3e.png

Fast का इस्तेमाल, तुरंत किए जाने वाले टास्क के लिए किया जाता है. वहीं, Planning का इस्तेमाल ज़्यादा जटिल टास्क के लिए किया जाता है. इसमें एजेंट एक प्लान बनाता है, जिसे आपको मंज़ूरी देनी होती है.

बातचीत के लिए, अलग-अलग मॉडल भी चुने जा सकते हैं:

af709bcc03c1e21e.png

समझाएं और ठीक करें

एजेंट को ट्रिगर करने का दूसरा तरीका यह है कि किसी समस्या पर कर्सर घुमाएं और Explain and fix को चुनें:

e45cbe02ed76b9c1.png

समस्याओं की जानकारी एजेंट को भेजना

इसके अलावा, Problems सेक्शन में जाकर Send all to Agent को चुना जा सकता है, ताकि एजेंट उन समस्याओं को ठीक करने की कोशिश कर सके:

e4992d14708005d0.png

टर्मिनल आउटपुट को एजेंट को भेजना

टर्मिनल आउटपुट के किसी हिस्से को भी चुना जा सकता है और उसे Cmd + L की मदद से एजेंट को भेजा जा सकता है:

c40293bab474c9b1.png

एडिटर और एजेंट मैनेजर के बीच टॉगल करना

एडिटर मोड में रहते हुए, सबसे ऊपर दाईं ओर मौजूद Open Agent Manager बटन पर क्लिक करके, कभी भी एडिटर मोड और एजेंट मैनेजर मोड के बीच स्विच किया जा सकता है. इसी तरह, एजेंट मैनेजर मोड में रहते हुए, सबसे ऊपर दाईं ओर मौजूद Open Editor बटन पर क्लिक करके, एडिटर मोड पर वापस जाया जा सकता है.

इसके अलावा, दोनों मोड के बीच टॉगल करने के लिए, Cmd + E कीबोर्ड शॉर्टकट का भी इस्तेमाल किया जा सकता है.

8. फ़ीडबैक प्रदान करें

Antigravity की सबसे खास बात यह है कि यह हर चरण में आसानी से आपका सुझाव/राय/शिकायत इकट्ठा कर सकता है. किसी टास्क पर काम करते समय, एजेंट अलग-अलग आर्टफ़ैक्ट बनाता है:

  • कोडिंग से पहले, लागू करने का प्लान और टास्क की सूची
  • कोड में अंतर (कोड जनरेट करते समय)
  • कोडिंग के बाद, नतीजों की पुष्टि करने के बारे में पूरी जानकारी

इन आर्टफ़ैक्ट की मदद से, Antigravity अपने प्लान और प्रोग्रेस के बारे में जानकारी देता है. सबसे अहम बात यह है कि ये टिप्पणियां, Google Docs में की जाने वाली टिप्पणियों की तरह होती हैं. इनकी मदद से, एजेंट को सुझाव, शिकायत या राय दी जा सकती है. इससे एजेंट को आपकी ज़रूरत के हिसाब से सही दिशा में ले जाने में मदद मिलती है.

चलिए, एक आसान 'क्या-क्या करना है' ऐप्लिकेशन बनाते हैं. साथ ही, देखते हैं कि हम Antigravity को इस दौरान सुझाव, शिकायत या राय कैसे दे सकते हैं.

प्लानिंग मोड

सबसे पहले, आपको यह पक्का करना होगा कि Antigravity Planning मोड में हो, न कि Fast मोड में. इसे एजेंट के साइड पैनल में मौजूद चैट में जाकर चुना जा सकता है. इससे यह पक्का होता है कि Antigravity, कोड लिखने से पहले लागू करने का प्लान और टास्क की सूची बना ले. इसके बाद, इस तरह का कोई प्रॉम्प्ट आज़माएं: Create a todo list web app using Python. इससे एजेंट को प्लान बनाने और उसे लागू करने का प्लान तैयार करने में मदद मिलेगी.

लागू करने का प्लान

लागू करने का प्लान, Antigravity के लक्ष्यों और इस्तेमाल किए जाने वाले टेक्नोलॉजी स्टैक के बारे में खास जानकारी देता है. साथ ही, इसमें सुझाए गए बदलावों के बारे में भी सामान्य जानकारी दी जाती है.

Implementation Plan - Python Todo App
Goal
Create a simple, functional, and aesthetically pleasing Todo List web application using Python (Flask).

Tech Stack
Backend: Python with Flask
Frontend: HTML5, CSS3 (Vanilla), Jinja2 templates
...

यह पहली जगह है जहां सुझाव/राय दी जा सकती है या शिकायत की जा सकती है. हमारे मामले में, एजेंट को Python वेब फ़्रेमवर्क के तौर पर Flask का इस्तेमाल करना है. हम FastAPI का इस्तेमाल करने के लिए, लागू करने के प्लान में एक टिप्पणी जोड़ सकते हैं. टिप्पणी जोड़ने के बाद, उसे सबमिट करें. इसके अलावा, Antigravity से अपडेट किए गए लागू करने के प्लान के साथ Proceed करने के लिए भी कहा जा सकता है.

टास्क की सूची

लागू करने की योजना अपडेट होने के बाद, Antigravity एक टास्क लिस्ट बनाता है. यह एक ऐसी सूची है जिसमें ऐप्लिकेशन बनाने और उसकी पुष्टि करने के लिए, Antigravity की ओर से किए जाने वाले सभी चरणों के बारे में बताया गया है.

Task Plan
 Create requirements.txt
 Create directory structure (static/css, templates)
 Create static/css/style.css
 Create templates/index.html
 Create main.py with FastAPI setup and Database logic
 Verify application

यहां भी सुझाव/राय दी जा सकती है या शिकायत की जा सकती है.

उदाहरण के लिए, इस्तेमाल के हमारे उदाहरण में, पुष्टि करने के बारे में ज़्यादा जानकारी देने वाले निर्देश जोड़े जा सकते हैं. इसके लिए, यह टिप्पणी जोड़ें: Verify application by adding, editing, and deleting a todo item and taking a screenshot.

कोड में बदलाव

इस समय, Antigravity नई फ़ाइलों में कुछ कोड जनरेट करेगा. ज़्यादा जानकारी देखे बिना, एजेंट चैट के साइड पैनल में इन बदलावों को Accept all या Reject all किया जा सकता है.

बदलावों की जानकारी देखने और कोड के बारे में ज़्यादा जानकारी वाले सुझाव जोड़ने के लिए, Review changes पर भी क्लिक किया जा सकता है. उदाहरण के लिए, हम main.py में यह टिप्पणी जोड़ सकते हैं: Add basic comments to all methods

Antigravity की मदद से, कोड को बार-बार दोहराने का यह एक बेहतरीन तरीका है.

कदम-दर-कदम निर्देश

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

वॉकथ्रू में, स्क्रीनशॉट या ब्राउज़र रिकॉर्डिंग पर टिप्पणी भी की जा सकती है. उदाहरण के लिए, हम कोई टिप्पणी Change the blue theme to orange theme जोड़ सकते हैं और सबमिट कर सकते हैं. टिप्पणी सबमिट करने के बाद, Antigravity बदलाव करता है, नतीजों की पुष्टि करता है, और वॉकथ्रू को अपडेट करता है

बदलावों को पहले जैसा करना

आखिर में, हर चरण के बाद, अगर आपको बदलाव पसंद नहीं आता है, तो आपके पास चैट से उसे पहले जैसा करने का विकल्प होता है. आपको बस चैट में मौजूद ↩️ Undo changes up to this point को चुनना है.

9. नियम और वर्कफ़्लो

Antigravity में, कस्टमाइज़ेशन के कुछ विकल्प मिलते हैं: नियम और वर्कफ़्लो.

सबसे ऊपर दाएं कोने में मौजूद ... पर क्लिक करें. इसके बाद, Customizations चुनें. आपको Rules और Workflows दिखेगा:

ff8babd8d8bcfa83.png

नियमों से, एजेंट के व्यवहार को सही दिशा मिलती है. ये ऐसे दिशा-निर्देश हैं जो कोड जनरेट करने और उसकी जांच करने के दौरान, एजेंट को दिए जा सकते हैं. उदाहरण के लिए, हो सकता है कि आपको एजेंट से किसी खास कोड स्टाइल का पालन करने या हमेशा तरीकों के बारे में जानकारी देने के लिए कहना हो. इन्हें नियमों के तौर पर जोड़ा जा सकता है. इसके बाद, एजेंट इन नियमों को ध्यान में रखकर जवाब देगा.

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

इसे इस तरह समझें कि नियम, सिस्टम के निर्देशों की तरह होते हैं. वहीं, वर्कफ़्लो, सेव किए गए प्रॉम्प्ट की तरह होते हैं, जिन्हें ज़रूरत के हिसाब से चुना जा सकता है.

नियम और वर्कफ़्लो, दोनों को ग्लोबल लेवल पर या हर Workspace के हिसाब से लागू किया जा सकता है. इन्हें इन जगहों पर सेव किया जा सकता है:

  • ग्लोबल नियम: ~/.gemini/GEMINI.md
  • ग्लोबल वर्कफ़्लो: ~/.gemini/antigravity/global_workflows/global-workflow.md
  • Workspace के नियम: your-workspace/.agent/rules/
  • Workspace Workflows: your-workspace/.agent/workflows/

आइए, फ़ाइल फ़ोल्डर में कुछ नियम और वर्कफ़्लो जोड़ें.

नियम जोड़ें

सबसे पहले, कोड स्टाइल का नियम जोड़ते हैं. Rules पर जाएं और +Workspace बटन चुनें. इसे code-style-guide जैसा कोई नाम दें. साथ ही, कोड स्टाइल से जुड़े इन नियमों का पालन करें:

* Make sure all the code is styled with PEP 8 style guide
* Make sure all the code is properly commented

इसके बाद, हम एक और नियम जोड़ते हैं, ताकि यह पक्का किया जा सके कि कोड को मॉड्यूलर तरीके से जनरेट किया गया है. साथ ही, code-generation-guide नियम में उदाहरण दिए गए हैं:

* The main method in main.py is the entry point to showcase functionality.
* Do not generate code in the main method. Instead generate distinct functionality in a new file (eg. feature_x.py)
* Then, generate example code to show the new functionality in a new method in main.py (eg. example_feature_x) and simply call that method from the main method.

दोनों नियम सेव हो गए हैं और इस्तेमाल के लिए तैयार हैं:

bfd179dfef6b2355.png

वर्कफ़्लो जोड़ना

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

Workflows पर जाएं और +Workspace बटन चुनें. इसे generate-unit-tests जैसा कोई नाम दें. साथ ही, इसमें यह जानकारी शामिल करें:

* Generate unit tests for each file and each method
* Make sure the unit tests are named similar to files but with test_ prefix

वर्कफ़्लो भी अब इस्तेमाल के लिए तैयार है:

d22059258592f0e1.png

इसे आज़माएं

अब नियमों और वर्कफ़्लो को लागू करके देखते हैं. अपने वर्कस्पेस में एक स्केलेटन main.py फ़ाइल बनाएं:

def main():
    pass

if __name__ == "__main__":
    main()

अब एजेंट की चैट विंडो पर जाएं और एजेंट से पूछें: Implement binary search and bubble sort.

एक या दो मिनट के बाद, आपको फ़ाइल फ़ोल्डर में तीन फ़ाइलें दिखेंगी: main.py, bubble_sort.py, binary_search.py. आपको यह भी दिखेगा कि सभी नियमों को लागू किया गया है: मुख्य फ़ाइल में ज़्यादा जानकारी नहीं है और इसमें उदाहरण कोड है, हर सुविधा को उसकी फ़ाइल में लागू किया गया है, और सभी कोड को अच्छी तरह से लिखा गया है:

from binary_search import binary_search, binary_search_recursive
from bubble_sort import bubble_sort, bubble_sort_descending


def example_binary_search():
    """
    Demonstrate binary search algorithm with various test cases.
    """
    ...

def example_bubble_sort():
    """
    Demonstrate bubble sort algorithm with various test cases.
    """
    ...

def main():
    """
    Main entry point to showcase functionality.
    """
    example_binary_search()
    example_bubble_sort()
    print("\n" + "=" * 60)


if __name__ == "__main__":
    main()

अब जब हम कोड से संतुष्ट हैं, तो चलिए देखते हैं कि क्या हम जनरेट यूनिट टेस्ट वर्कफ़्लो को ट्रिगर कर सकते हैं.

चैट पर जाएं और /generate टाइप करना शुरू करें. Antigravity को हमारे वर्कफ़्लो के बारे में पहले से ही पता है:

8a3efd9e3be7eb6f.png

generate-unit-tests को चुनें और एंटर करें. कुछ सेकंड बाद, आपको अपने Workspace में नई फ़ाइलें मिलेंगी: test_binary_search.py, test_bubble_sort.py. इनमें पहले से ही कई टेस्ट लागू किए गए होंगे!

11febd7940ef8199.png

बढ़िया!

10. एजेंट को सुरक्षित करना

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

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

Antigravity को पहली बार कॉन्फ़िगर करते समय या सेटिंग मेन्यू के ज़रिए, आपको Terminal Command Auto Execution नीति चुननी होगी. इस सेटिंग से यह तय होता है कि शेल कमांड के बारे में एजेंट को कितनी जानकारी दी जाए.

इसके लिए, Antigravity — Settings पर जाकर, Advanced Settings पर जाएं. यहां आपको अपनी मौजूदा सेटिंग दिखेंगी. आपको एजेंट की सेटिंग के लिए Terminal सेक्शन दिखेगा. अगर आपको यह सेटिंग किसी और विकल्प पर सेट करनी है, तो इस टेबल को ध्यान में रखें:

नीति मोड

ब्यौरा

बंद है

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

ऑटो

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

टर्बो

एजेंट हमेशा निर्देशों को अपने-आप लागू करता है. हालांकि, ऐसा तब तक होता है, जब तक साफ़ तौर पर ऐसा करने से मना न किया जाए.

अनुमति वाली सूची को कॉन्फ़िगर करना

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

कॉन्फ़िगरेशन का तरीका

  1. टर्मिनल कमांड अपने-आप एक्ज़ीक्यूट होने की सुविधा को बंद है पर सेट करें.
  2. अनुमति वाली टर्मिनल कमांड की सूची में, यह कमांड जोड़ें. इसके लिए, इसके बगल में मौजूद जोड़ें बटन पर क्लिक करें : ls -al . अगर चाहें, तो अन्य टर्मिनल कमांड भी जोड़ी जा सकती हैं.

अनुमति वाली सूची की जांच करना

  • एजेंट से पूछें: List the files in this directory.
  • एजेंट, ls को अपने-आप चलाता है.
  • एजेंट से पूछें: Delete the <some file>
  • एजेंट, rm <filepath> करने की कोशिश करेगा. हालांकि, Antigravity इसे ब्लॉक कर देगा और उपयोगकर्ता की समीक्षा को मजबूर कर देगा, क्योंकि rm को अनुमति वाली सूची में शामिल नहीं किया गया है. कमांड चलाने से पहले, Antigravity को आपसे अनुमति मांगनी चाहिए.

अनुमति न देने वाली सूची को कॉन्फ़िगर करना

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

कॉन्फ़िगरेशन का तरीका

  1. टर्मिनल कमांड अपने-आप लागू होने की सुविधा को टर्बो पर सेट करें.
  2. इसके बगल में मौजूद जोड़ें बटन पर क्लिक करके, अनुमति न दी गई टर्मिनल कमांड में ये कमांड जोड़ें.
  3. rm
  4. rmdir
  5. sudo
  6. curl
  7. wget

बिना अनुमति वाली सूची की जांच करना

  • एजेंट से पूछें: Check the version of python.
  • एजेंट, python --version को अपने-आप चलाता है.
  • एजेंट से पूछें: Download www.google.com home page.
  • एजेंट, curl की कोशिश करता है. Antigravity, डेनायल लिस्ट में curl का पता लगाता है और उसे लागू होने से रोकता है. साथ ही, आपसे मैन्युअल तरीके से मंज़ूरी लेने के लिए कहता है.

ब्राउज़र की सुरक्षा

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

इससे बचने के लिए, ब्राउज़र एजेंट के लिए ब्राउज़र यूआरएल की अनुमति वाली सूची लागू की जा सकती है.

इसके लिए, Antigravity — Settings और फिर Advanced Settings पर जाकर, अपनी मौजूदा सेटिंग देखी जा सकती हैं. आपको ब्राउज़र की सेटिंग के लिए, ब्राउज़र के यूआरएल की अनुमति वाली सूची का सेक्शन दिखना चाहिए. यह सेक्शन यहां दिखाया गया है:

5ed231150122ecc5.png

'अनुमति वाली फ़ाइलों की सूची खोलें' पर क्लिक करें. इससे फ़ोल्डर में फ़ाइल खुल जाएगी HOME/.gemini/antigravity/browserAllowlist.txt. आपके पास यह पक्का करने का विकल्प है कि यहां सिर्फ़ भरोसेमंद डोमेन डाले गए हों.

11. उपयोग के उदाहरण

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

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

खबरों की हाइलाइट

यह इस्तेमाल का एक सामान्य उदाहरण है. हालांकि, यह एक ऐसा आधार हो सकता है जिसकी मदद से वेब ब्राउज़र का इस्तेमाल करके वेबसाइटों पर जाया जा सकता है, जानकारी निकाली जा सकती है, कुछ कार्रवाइयां की जा सकती हैं, और फिर उपयोगकर्ता को डेटा वापस भेजा जा सकता है.

इस मामले में, हम Google News की साइट पर जाएंगे और वहां से कुछ जानकारी निकालेंगे. हालांकि, अपनी पसंद की किसी साइट पर आसानी से एक्सपेरिमेंट किया जा सकता है और देखा जा सकता है कि वह कैसा काम करती है.

पक्का करें कि आप Agent Manager में हों और आपने Playground चुना हो. जैसा कि यहां दिखाया गया है:

cffa12c98a68cb6c.png

इसके बाद, यह निर्देश दें:

8513d489eea0b014.png

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

9d594588f2ffe6bc.png

प्रोसेस पूरी होने के बाद, आपको आर्टफ़ैक्ट जनरेट होते हुए भी दिखेंगे. ये आर्टफ़ैक्ट, यहां दिखाए गए आर्टफ़ैक्ट की तरह होंगे:

dc6cf4e7d8425df8.png

नीचे, एजेंट के ज़रिए किए गए अनुरोध का एक उदाहरण दिखाया गया है:

fb7397cd2cce0682.png

ध्यान दें कि बाईं ओर, हमारे पास सोचने की प्रोसेस है. साथ ही, आपके पास पॉइंट के ज़रिए स्क्रोल करने, प्लेबैक देखने, और अन्य डेटा देखने का विकल्प भी है.

आज़माने के लिए कुछ चीज़ें

  • इसे समझने के बाद, ऐसी वेबसाइट चुनें जो उपलब्ध हो और जिससे आपको एजेंट को कुछ डेटा पाने/खास जानकारी पाने के लिए भेजना हो. ऐसी वेबसाइट के बारे में सोचें जिसमें डैशबोर्ड और चार्ट मौजूद हैं. इसके बाद, उससे कुछ वैल्यू चुनने के लिए कहें.
  • यह प्रॉम्प्ट आज़माएँ: Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.

Python + Flask की मदद से डाइनैमिक वेबसाइट जनरेट करना

अब हम पूरा वेब ऐप्लिकेशन जनरेट करने के लिए आगे बढ़ते हैं. हम जिस वेब ऐप्लिकेशन को बनाने जा रहे हैं वह एक ऐसी साइट है जो एक दिन के तकनीकी इवेंट के बारे में जानकारी देती है. इस इवेंट में, अलग-अलग वक्ता पूरे दिन भाषण देते हैं.

एक बार फिर, पक्का करें कि आप Agent Manager में हों और आपने Playground को चुना हो.

यह प्रॉम्प्ट दें:

I would like to generate a website that is a 1-day technical conference informational site.

The website should have the following functionality:
        1. A home page that shows the current date, location, schedule and time table.
        2. The 1-day event is a list of 8 talks in total.
        3. Each talk has 1 or 2 max. speakers. 
        4. A talk has an ID, Title, Speakers, Category (1 or 2), Description and time of the talk.
        5. Each speaker has a First Name, Last Name and LinkedIn url.
        6. Allow for users to search by category, speaker, title.
        7. Give a lunch break of 60 minutes.
        8. Use dummy data for events and speakers, come up with a schedule, the event is about Google Cloud Technologies.
        9. Tech Stack: Python and Flask framework on server side. Front-end is basic HTML, CSS and JavaScript. 
        10. Test out the site on your own for all functionality and provide a detailed README on how to setup, run and make any further changes. 
11. Launch the web application for me to review. 

ऊपर दिया गया प्रॉम्प्ट इस्तेमाल करके बातचीत शुरू की जा सकती है:

एजेंट अपना टास्क पूरा करते समय, आर्टफ़ैक्ट बनाता है:

  • टास्क आर्टफ़ैक्ट
  • लागू करने से जुड़ा आर्टफ़ैक्ट
  • आर्टफ़ैक्ट के बारे में सिलसिलेवार निर्देश

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

c95d82e1c040698f.png

इसके बाद, लागू करने का प्लान आर्टफ़ैक्ट पर क्लिक करें. यहां एक सैंपल स्क्रीनशॉट दिखाया गया है:

632169a236bc62cc.png

आखिर में, आपके पास वॉकथ्रू आर्टफ़ैक्ट होता है. इसमें एजेंट की सभी कार्रवाइयां शामिल होती हैं, जैसा कि यहां दिखाया गया है:

e3f6152d6f54d4f9.png

ध्यान दें कि इसने सर्वर शुरू कर दिया है और मुझे यूआरएल दिया है. इस पर क्लिक करने से मुझे ऐप्लिकेशन मिल जाता है. इसका सैंपल स्क्रीनशॉट यहां दिया गया है:

abf879f2ce53d055.png

एडिटर पर स्विच करने पर, स्क्रीन में वह फ़ोल्डर दिखेगा जिसमें Python Flask ऐप्लिकेशन जनरेट किया गया है. आपको यह भी दिखेगा कि Agent mode को दाईं ओर टैग किया गया है. यहाँ भी बातचीत जारी रखी जा सकती है.

b0fea8aa65c3a1c5.png

अब मान लें कि हमें इवेंट में कुछ और टॉक जोड़नी हैं. हम एडिटर और एजेंट पैनल में बने रहकर, Add two more talks to the schedule जैसा निर्देश दे सकते हैं.

इससे एजेंट, ज़रूरत का विश्लेषण करेगा, टास्क को अपडेट करेगा, और लागू करने का प्लान बनाएगा. इसके बाद, अपडेट की गई सुविधा की पुष्टि भी करेगा. यहां बातचीत का एक उदाहरण दिया गया है:

ba8455e6f68973e9.png

अगर आपको एजेंट मैनेजर पर वापस स्विच करना है, तो ऐसा किया जा सकता है. इस प्रोसेस से आपको एजेंट मैनेजर से एडिटर की भूमिका पर स्विच करने, उसके मुताबिक बदलाव करने वगैरह की प्रोसेस को समझने में मदद मिलेगी.

आज़माने के लिए कुछ चीज़ें

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

बेहतर ढंग से काम करने में मदद करने वाला कोई सामान्य ऐप्लिकेशन जनरेट करना

अब हम एक सामान्य Pomodoro टाइमर वेब ऐप्लिकेशन जनरेट करने जा रहे हैं.

पक्का करें कि आप Agent Manager में हों और आपने Playground चुना हो. यह प्रॉम्प्ट दें:

Create a productivity app that features a Pomodoro timer. Give a calm and aesthetic look to the application.

ध्यान दें कि यह टास्क की सूची कैसे बनाता है, उसे लागू करने का प्लान कैसे बनाता है, और फिर उसे कैसे लागू करता है. फ़्लो पर ध्यान देते रहें. ऐसा हो सकता है कि कुछ मामलों में, आपको समीक्षा करने के लिए कहा जाए. नीचे, सैंपल रन दिखाया गया है.

5be0a668e5a67d85.png

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

फ़ाइनल ऐप्लिकेशन नीचे दिए गए ऐप्लिकेशन की तरह दिखता है. यह काफ़ी अच्छा लग रहा है.

c9ab6bca97a51a8c.png

हम ऐप्लिकेशन में टाइमर की एक अच्छी इमेज जोड़ सकते हैं. हमें सिर्फ़ यहां दिया गया फ़ॉलो अप निर्देश देना है:

Add an image to the application that displays a timer.

इस वजह से, एजेंट ने टास्क आर्टफ़ैक्ट में एक नया टास्क जोड़ा:

498dd946d4e9ae55.png

इसके बाद, टास्क पूरा करते समय इसने एक इमेज जनरेट की:

c291da9bdb37ff96.png

आखिरकार, ऐप्लिकेशन में हमारी पसंद के मुताबिक इमेज दिख रही थी:

de8f418ba8e4600d.png

आज़माने के लिए कुछ चीज़ें

  • ध्यान दें कि ऐप्लिकेशन में, रेतघड़ी वाले आइकॉन का बैकग्राउंड पारदर्शी नहीं है. एजेंट को यह जानकारी पारदर्शी तरीके से देने के लिए कहें.
  • आपको जिस ऐप्लिकेशन को जनरेट करना है उसके कुछ वर्शन आज़माएं. स्टाइल और इमेज के साथ एक्सपेरिमेंट करें. बदलाव करने के लिए कहें वगैरह.

यूनिट टेस्ट, मॉक स्टब जनरेट करना और टेस्ट की पुष्टि करना

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

इसके लिए, हम एक ऐसा फ़ाइल फ़ोल्डर बनाएंगे जिसमें सिर्फ़ एक Python फ़ाइल होगी. इसे नीचे दिखाया गया है:

from typing import Dict

# --- Custom Exceptions ---
class InventoryShortageError(Exception):
    """Raised when there is not enough item stock."""
    pass

class PaymentFailedError(Exception):
    """Raised when the payment gateway rejects the transaction."""
    pass

class InvalidOrderError(Exception):
    """Raised when the order violates business rules."""
    pass

# --- External Service Interfaces (To be Mocked) ---
class InventoryService:
    def get_stock(self, product_id: str) -> int:
        """Connects to DB to check stock."""
        raise NotImplementedError("Real connection required")

    def decrement_stock(self, product_id: str, quantity: int):
        """Connects to DB to reduce stock."""
        raise NotImplementedError("Real connection required")

class PaymentGateway:
    def charge(self, amount: float, currency: str) -> bool:
        """Connects to Stripe/PayPal."""
        raise NotImplementedError("Real connection required")

# --- Main Business Logic ---
class Order:
    def __init__(self, 
                 inventory_service: InventoryService, 
                 payment_gateway: PaymentGateway,
                 customer_email: str,
                 is_vip: bool = False):
        
        self.inventory = inventory_service
        self.payment = payment_gateway
        self.customer_email = customer_email
        self.is_vip = is_vip
        self.items: Dict[str, Dict] = {} # {product_id: {'price': float, 'qty': int}}
        self.is_paid = False
        self.status = "DRAFT"

    def add_item(self, product_id: str, price: float, quantity: int = 1):
        """Adds items to the cart. Rejects invalid prices or quantities."""
        if price < 0:
            raise ValueError("Price cannot be negative")
        if quantity <= 0:
            raise ValueError("Quantity must be greater than zero")

        if product_id in self.items:
            self.items[product_id]['qty'] += quantity
        else:
            self.items[product_id] = {'price': price, 'qty': quantity}

    def remove_item(self, product_id: str):
        """Removes an item entirely from the cart."""
        if product_id in self.items:
            del self.items[product_id]

    @property
    def total_price(self) -> float:
        """Calculates raw total before discounts."""
        return sum(item['price'] * item['qty'] for item in self.items.values())

    def apply_discount(self) -> float:
        """
        Applies business logic:
        1. VIPs get flat 20% off.
        2. Regulars get 10% off if total > 100.
        3. No discount otherwise.
        """
        total = self.total_price
        
        if self.is_vip:
            return round(total * 0.8, 2)
        elif total > 100:
            return round(total * 0.9, 2)
        
        return round(total, 2)

    def checkout(self):
        """
        Orchestrates the checkout process:
        1. Validates cart is not empty.
        2. Checks stock for all items.
        3. Calculates final price.
        4. Charges payment.
        5. Updates inventory.
        """
        if not self.items:
            raise InvalidOrderError("Cannot checkout an empty cart")

        # 1. Check Inventory Logic
        for product_id, data in self.items.items():
            available_stock = self.inventory.get_stock(product_id)
            if available_stock < data['qty']:
                raise InventoryShortageError(f"Not enough stock for {product_id}")

        # 2. Calculate Final Price
        final_amount = self.apply_discount()

        # 3. Process Payment
        try:
            success = self.payment.charge(final_amount, "USD")
            if not success:
                raise PaymentFailedError("Transaction declined by gateway")
        except Exception as e:
            # Catching generic network errors from the gateway
            raise PaymentFailedError(f"Payment gateway error: {str(e)}")

        # 4. Decrement Stock (Only occurs if payment succeeded)
        for product_id, data in self.items.items():
            self.inventory.decrement_stock(product_id, data['qty'])

        self.is_paid = True
        self.status = "COMPLETED"
        
        return {"status": "success", "charged_amount": final_amount}

पक्का करें कि आपके पास ऊपर दी गई Python फ़ाइल स्थानीय तौर पर किसी फ़ोल्डर में मौजूद हो. साथ ही, आपने उसे Antigravity में Workspace के तौर पर लोड किया हो.

यह एक सामान्य ऑर्डर सेवा है. इसमें checkout फ़ंक्शन के ज़रिए ये मुख्य काम किए जा सकते हैं:

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

हम एजेंट को यूनिट टेस्ट केस जनरेट करने, मॉक इंप्लीमेंटेशन उपलब्ध कराने, और टेस्ट करने का काम असाइन करने जा रहे हैं. इससे यह पक्का किया जा सकेगा कि टेस्ट सफल हों.

हम अपना वर्कस्पेस फ़ोल्डर खोलेंगे. आपको दिखेगा कि अब फ़ाइल का रेफ़रंस देने के लिए, @ सिंबल का इस्तेमाल भी किया जा सकता है. उदाहरण के लिए, हम ये काम कर सकते हैं:

8368856e51a7561a.png

इससे यह पता चलता है कि यह फ़ाइल क्या है:

b69c217d3372d802.png

हम प्रॉम्प्ट के ज़रिए, इसे बेहतर विज़ुअलाइज़ेशन जनरेट करने के लिए कह सकते हैं:

Can you visually show this class for better understanding

da5bd701323818d4.png

हमारा अगला चरण, यूनिट टेस्ट जनरेट करना है. इसके बाद, हम एजेंट से इसे टेस्ट करने के लिए कहेंगे. मैंने यह प्रॉम्प्ट दिया:

generate unit tests for this module and test it out with mock implementations.

इसने टास्क का यह आर्टफ़ैक्ट जनरेट किया और अपना टास्क पूरा किया.

21425379db336dc6.png

इस पेज पर, यह भी देखा जा सकता है कि कौनसी जांचें की गई हैं:

48f3320cd76b5cd8.png

इसने जो फ़ाइलें जनरेट की हैं उनमें से एक टेस्ट फ़ाइल भी है. इसका स्क्रीनशॉट यहां दिया गया है:

f962061f115c040f.png

आज़माने के लिए कुछ चीज़ें

अपने कोड का इस्तेमाल करके देखें कि एजेंट से क्या-क्या काम कराया जा सकता है. जैसे, कोड में ज़्यादा फ़ंक्शन जोड़ना या कोड के कुछ हिस्सों को फिर से व्यवस्थित करना.

12. बधाई हो

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

रेफ़रंस दस्तावेज़