1. परिचय
Google Antigravity (इसे पूरे दस्तावेज़ में Antigravity कहा गया है) Google का एक एजेंटिक आईडीई है. Antigravity का इस्तेमाल शुरू करने के बारे में जानकारी देने वाले कोडलैब में, Antigravity की बुनियादी बातें सीखी जा सकती हैं. इस कोडलैब में, हम असली ऐप्लिकेशन बनाने के लिए Antigravity का इस्तेमाल करेंगे. हम वेब पर सामान्य रिसर्च से लेकर, फ़ुल-स्टैक ऐप्लिकेशन और एंटरप्राइज़-ग्रेड यूनिट टेस्ट जनरेट करने तक की प्रोसेस के बारे में जानेंगे.
ज़रूरी शर्तें:
- Google Antigravity इंस्टॉल और कॉन्फ़िगर किया गया हो.
- Google Antigravity की बुनियादी जानकारी हो. हमारा सुझाव है कि आप Google Antigravity का इस्तेमाल शुरू करना कोडलैब पूरा करें.
2. इस्तेमाल के उदाहरणों के बारे में जानकारी
Antigravity की बुनियादी जानकारी होने के बाद, आइए इसे ऐक्शन में देखने के लिए, इस्तेमाल के कुछ उदाहरणों पर नज़र डालते हैं. ध्यान दें कि Antigravity, एजेंट-फ़र्स्ट प्लैटफ़ॉर्म है. इसका मतलब है कि ज़्यादातर मामलों में, हम सिर्फ़ एजेंट को निर्देश देते हैं. इसके बाद, एजेंट अपने-आप काम करता है, अपना टास्क पूरा करता है, ज़रूरत पड़ने पर अनुमतियां मांगता है, आर्टफ़ैक्ट जनरेट करता है, और टास्क पूरा होने पर हमें सूचना देता है. इसलिए, हम इस्तेमाल के हर उदाहरण में, एजेंट की बातचीत के हर आउटपुट को नहीं दिखा सकते. हम निर्देश और उम्मीद के मुताबिक नतीजों के कुछ ज़रूरी स्क्रीनशॉट शेयर करेंगे. हालांकि, आपके नतीजे थोड़े अलग हो सकते हैं.
इस्तेमाल के जो उदाहरण हम यहां कवर करेंगे उनमें, बाहरी साइटों की मदद से कुछ टास्क को ऑटोमेट करने से लेकर, किसी प्रोजेक्ट के लिए यूनिट टेस्ट केस जनरेट और उनकी पुष्टि करने और पूरी वेबसाइट का डेवलपमेंट शामिल है. चलिए.
3. मुख्य खबरें
यह इस्तेमाल का एक सामान्य उदाहरण है. हालांकि, इसकी मदद से वेब ब्राउज़र का इस्तेमाल करके वेबसाइटों पर जाया जा सकता है, जानकारी निकाली जा सकती है, कुछ कार्रवाइयां की जा सकती हैं, और फिर उपयोगकर्ता को डेटा वापस भेजा जा सकता है.
इस उदाहरण में, हम Google News की साइट पर जाएंगे और वहां से कुछ जानकारी निकालेंगे. हालांकि, अपनी पसंद की किसी साइट के साथ आसानी से प्रयोग किया जा सकता है और देखा जा सकता है कि यह कैसे काम करता है.
पक्का करें कि आप Agent Manager में हों और आपने Playground को चुना हो, जैसा कि यहां दिखाया गया है:

इसके बाद, यह निर्देश दें: "news.google.com पर जाएं और मुझे अभी की मुख्य खबरें दिखाएं."

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

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

यहां एजेंट के ज़रिए किए गए सैंपल एक्ज़ीक्यूशन को दिखाया गया है:

ध्यान दें कि बाईं ओर, थॉट प्रोसेस है. साथ ही, पॉइंट के ज़रिए स्क्रोल करके, प्लेबैक और अन्य डेटा देखा जा सकता है.
आज़माने के लिए चीज़ें
- इसे समझने के बाद, कोई ऐसी वेबसाइट चुनें जो उपलब्ध हो और जिससे एजेंट को कुछ डेटा पाना/उसका सारांश तैयार करना हो. कोई ऐसी वेबसाइट चुनें जिसमें डैशबोर्ड और चार्ट मौजूद हों. इसके बाद, एजेंट से कुछ वैल्यू चुनने के लिए कहें.
- यह प्रॉम्प्ट आज़माएं:
Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.
4. Python + Flask की मदद से डाइनैमिक वेबसाइट जनरेट करना
अब हम पूरा वेब ऐप्लिकेशन जनरेट करेंगे. हम जिस वेब ऐप्लिकेशन को बनाने जा रहे हैं वह एक ऐसी साइट है जो एक दिन के तकनीकी इवेंट के बारे में जानकारी देती है. इस इवेंट में, दिन भर अलग-अलग स्पीकर के टॉक होते हैं.
एक बार फिर, पक्का करें कि आप Agent Manager में हों और आपने Playground को चुना हो. शुरुआत से काम करने के लिए, Playground में नई चैट शुरू करें और Planning मोड चुनें, ताकि एजेंट, एक्ज़ीक्यूट करने से पहले प्लान करे.
यह प्रॉम्प्ट दें:
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.
ऊपर दिया गया प्रॉम्प्ट देकर बातचीत शुरू की जा सकती है:
एजेंट अपना टास्क पूरा करते समय, आर्टफ़ैक्ट जनरेट करेगा:
- टास्क आर्टफ़ैक्ट
- इम्प्लीमेंटेशन आर्टफ़ैक्ट
- वॉकथ्रू आर्टफ़ैक्ट
यहां दिया गया टास्क आर्टफ़ैक्ट, टास्क की शुरुआती सीक्वेन्स है. एजेंट ने यह तय किया कि उसे दिए गए टास्क के आधार पर यह सीक्वेन्स पूरा करना चाहिए. यहां एक्ज़ीक्यूशन का सैंपल स्क्रीनशॉट दिखाया गया है:

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

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

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

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

अब मान लें कि हमें इवेंट में कुछ और टॉक जोड़ने हैं. हम एडिटर और एजेंट पैनल में बने रह सकते हैं. इसके बाद, Add two more talks to the schedule जैसा निर्देश दिया जा सकता है.
इससे एजेंट, ज़रूरत का विश्लेषण करेगा, टास्क और इम्प्लीमेंटेशन प्लान को अपडेट करेगा. इसके बाद, अपडेट की गई सुविधा की पुष्टि भी करेगा. यहां सैंपल बातचीत दिखाई गई है:

अगर आपको Agent Manager पर वापस जाना है, तो ऐसा किया जा सकता है. इस प्रोसेस से, आपको Agent Manager से एडिटर पर स्विच करने, उसके मुताबिक बदलाव करने वगैरह की प्रोसेस समझने में मदद मिलेगी.
आज़माने के लिए चीज़ें
- ऐप्लिकेशन में कोई ऐसी अतिरिक्त सुविधा जोड़ें जो आपको चाहिए. एजेंट को जानकारी दें और देखें कि वह अपना टास्क कैसे पूरा करता है. इसके लिए, वह सबसे पहले टास्क की सूची में बदलाव करता है. इसके बाद, इम्प्लीमेंटेशन प्लान में बदलाव करता है वगैरह.
- एजेंट से ऐप्लिकेशन के लिए README या ज़्यादा दस्तावेज़ जनरेट करने के लिए कहें.
5. प्रॉडक्टिविटी से जुड़ा कोई सामान्य ऐप्लिकेशन जनरेट करना
अब हम Pomodoro टाइमर का सामान्य वेब ऐप्लिकेशन जनरेट करेंगे.
पक्का करें कि आप Agent Manager में हों और आपने Playground को चुना हो. यह प्रॉम्प्ट दें:
Create a productivity app that features a Pomodoro timer. Give a calm and aesthetic look to the application.
ध्यान दें कि यह टास्क की सूची और इम्प्लीमेंटेशन प्लान कैसे बनाता है. इसके बाद, यह कैसे काम करता है. फ़्लो पर ध्यान देते रहें. ऐसा हो सकता है कि कुछ स्थितियों में, यह आपसे समीक्षा करने के लिए कहे. यहां सैंपल रन दिखाया गया है.

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

क्या हम ऐप्लिकेशन में टाइमर की कोई अच्छी इमेज जोड़ सकते हैं. इसके लिए, हमें बस यहां दिया गया फ़ॉलो-अप निर्देश देना होगा:
Add an image to the application that displays a timer.
इससे एजेंट ने टास्क आर्टफ़ैक्ट में एक नया टास्क जोड़ा:

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

आखिर में, ऐप्लिकेशन में वह इमेज थी जो हमने मांगी थी:

आज़माने के लिए चीज़ें
- ध्यान दें कि ऐप्लिकेशन में, ऑवरग्लास आइकॉन का बैकग्राउंड पारदर्शी नहीं है. एजेंट से उसे पारदर्शी बनाने के लिए कहें.
- अपनी पसंद के किसी ऐप्लिकेशन के कुछ वैरिएंट आज़माएं. स्टाइल और इमेज के साथ एक्सपेरिमेंट करें. साथ ही, बदलाव करने के लिए कहें वगैरह.
6. यूनिट टेस्ट, मॉक स्टब जनरेट करना, और टेस्ट की पुष्टि करना
इस्तेमाल का जो आखिरी उदाहरण हम यहां आज़माएंगे वह यह है कि हमारे पास मौजूद किसी खास कोड फ़ाइल के लिए यूनिट टेस्ट जनरेट किए जाएं. साथ ही, एजेंट उन टेस्ट को एक्ज़ीक्यूट करे और उनकी पुष्टि करे.
इसके लिए, हम एक ऐसा वर्कस्पेस इस्तेमाल करेंगे जिसमें सिर्फ़ एक 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 में वर्कस्पेस के तौर पर लोड किया हो.
यह ऑर्डर की एक सामान्य सेवा है. इसमें checkout फ़ंक्शन में ये मुख्य सुविधाएं मौजूद हैं:
- पुष्टि करता है कि कार्ट खाली नहीं है.
- सभी आइटम के लिए स्टॉक की जांच करता है.
- छूट के बाद की कीमत का हिसाब लगाता है.
- पेमेंट लेता है.
- इन्वेंट्री अपडेट करता है.
हम एजेंट को यूनिट टेस्ट केस जनरेट करने, मॉक इम्प्लीमेंटेशन उपलब्ध कराने, और टेस्ट को एक्ज़ीक्यूट करने का टास्क असाइन करेंगे, ताकि यह पक्का किया जा सके कि वे सफल हों.
हम अपना खास वर्कस्पेस फ़ोल्डर खोलेंगे. आपको दिखेगा कि अब हम फ़ाइल को रेफ़र करने के लिए, @ सिंबल का भी इस्तेमाल कर सकते हैं. उदाहरण के लिए, हम यह कर सकते हैं:

इससे इस फ़ाइल के बारे में कुछ जानकारी मिलती है:

हम प्रॉम्प्ट के ज़रिए, एजेंट से बेहतर विज़ुअलाइज़ेशन जनरेट करने के लिए कह सकते हैं:
Can you visually show this class for better understanding

हमारा अगला चरण, यूनिट टेस्ट जनरेट करना और एजेंट से उसकी टेस्टिंग करने के लिए कहना है. मैं यह प्रॉम्प्ट देता/देती हूं:
generate unit tests for this module and test it out with mock implementations.
एजेंट ने यह टास्क आर्टफ़ैक्ट जनरेट किया और अपना टास्क पूरा किया.

एजेंट ने जो टेस्ट रन किए हैं उनकी जानकारी भी देखी जा सकती है:

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

आज़माने के लिए चीज़ें
अपना कोड लें और देखें कि एजेंट से क्या-क्या करवाया जा सकता है. इसमें, कोड के कुछ हिस्सों को रिफ़ैक्टर करने से लेकर, ज़्यादा सुविधाएं जोड़ने तक के काम शामिल हैं.
7. बधाई हो
बधाई हो! आपने Google Antigravity का इस्तेमाल करके ये काम पूरे कर लिए हैं:
- वेब पर अपने-आप रिसर्च करना.
- फ़ुल-स्टैक वेब ऐप्लिकेशन बनाना और उनमें बदलाव करना.
- ऐसेट जनरेट करना और यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाना.
- मॉक की मदद से, मुश्किल यूनिट टेस्ट लिखना और उनकी पुष्टि करना.
अब अपने प्रोजेक्ट पर मुश्किल काम करने के लिए, Antigravity का इस्तेमाल किया जा सकता है.
रेफ़रंस दस्तावेज़
- कोडलैब : Google Antigravity का इस्तेमाल शुरू करना
- आधिकारिक साइट : https://antigravity.google/
- दस्तावेज़: https://antigravity.google/docs
- इस्तेमाल के उदाहरण : https://antigravity.google/use-cases
- डाउनलोड करें : https://antigravity.google/download
- Google Antigravity का YouTube चैनल : https://www.youtube.com/@googleantigravity