شروع کار با گوگل آنتی گراویتی

۱. مقدمه

در این آزمایشگاه کد، شما با Google Antigravity (که در ادامه سند به آن Antigravity گفته می‌شود) آشنا خواهید شد، یک پلتفرم توسعه عامل‌محور که IDE را به دوران عامل‌محوری تکامل می‌دهد.

برخلاف دستیارهای کدنویسی استاندارد که فقط خطوط را به صورت خودکار تکمیل می‌کنند، Antigravity یک «کنترل ماموریت» برای مدیریت عامل‌های خودمختار ارائه می‌دهد که می‌توانند برنامه‌ریزی، کدنویسی و حتی مرور وب را برای کمک به شما در ساخت و ساز انجام دهند.

آنتی‌گراویتی به عنوان یک پلتفرم عامل-محور طراحی شده است. این پلتفرم فرض می‌کند که هوش مصنوعی فقط ابزاری برای نوشتن کد نیست، بلکه یک بازیگر مستقل است که قادر به برنامه‌ریزی، اجرا، اعتبارسنجی و تکرار وظایف مهندسی پیچیده با حداقل دخالت انسان است.

آنچه یاد خواهید گرفت

  • نصب و پیکربندی آنتی گراویتی
  • بررسی مفاهیم کلیدی Antigravity مانند Agent Manager، Editor، Browser و موارد دیگر.
  • بررسی چند مورد استفاده از Antigravity.

آنچه نیاز دارید

در حال حاضر Antigravity به صورت پیش‌نمایش برای حساب‌های جیمیل شخصی در دسترس است. این برنامه با سهمیه رایگان برای استفاده از مدل‌های برتر ارائه می‌شود.

آنتی‌گراویتی باید به صورت محلی روی سیستم شما نصب شود. این محصول روی مک، ویندوز و برخی توزیع‌های لینوکس موجود است. علاوه بر دستگاه خودتان، به موارد زیر نیز نیاز خواهید داشت:

  • مرورگر وب کروم
  • یک حساب جیمیل (حساب جیمیل شخصی).

این آزمایشگاه کد، برای کاربران و توسعه‌دهندگان در تمام سطوح (از جمله مبتدیان) طراحی شده است.

گزارش مشکلات

همانطور که با آزمایشگاه کد و با Antigravity کار می‌کنید، ممکن است با مشکلاتی روبرو شوید.

برای مشکلات مربوط به codelab (غلط املایی، دستورالعمل‌های اشتباه)، لطفاً با استفاده از دکمه Report a mistake در گوشه پایین سمت چپ این codelab، یک اشکال (bug) ایجاد کنید:

b06b582bcd847f6d.png

برای اشکالات یا درخواست‌های مربوط به Antigravity، لطفاً مشکل را در Antigravity گزارش دهید. می‌توانید این کار را در Agent Manager با لینک Provide Feedback در گوشه پایین سمت چپ انجام دهید:

281ac826fb44d427.png

همچنین می‌توانید با لینک Report Issue در زیر آیکون پروفایل خود به ویرایشگر بروید:

e8afd782a8f92129.png

۲. نصب

ما با نصب Antigravity شروع خواهیم کرد. در حال حاضر این محصول برای پیش‌نمایش در دسترس است و می‌توانید از حساب Gmail شخصی خود برای شروع کار با آن استفاده کنید.

به صفحه دانلودها بروید و روی نسخه سیستم عامل مناسب برای سیستم خود کلیک کنید. نصب کننده برنامه را اجرا کنید و آن را روی دستگاه خود نصب کنید. پس از اتمام نصب، برنامه Antigravity را اجرا کنید. باید صفحه‌ای مشابه صفحه زیر مشاهده کنید:

29fada39721093c.png

لطفا هر بار روی Next کلیک کنید. مراحل کلیدی در زیر شرح داده شده است:

  • انتخاب جریان راه‌اندازی: این گزینه، امکان وارد کردن تنظیمات فعلی VS Code یا Cursor را برای شما فراهم می‌کند. ما با یک شروع تازه شروع خواهیم کرد.
  • نوع قالب ویرایشگر را انتخاب کنید : ما قالب تاریک را انتخاب می‌کنیم، اما انتخاب کاملاً به خودتان بستگی دارد.
  • چطور می‌خواهی از عامل ضد جاذبه استفاده کنی؟

7ca55560ec377130.png

بیایید این موضوع را با جزئیات بیشتری بررسی کنیم. به یاد داشته باشید که تنظیمات را می‌توان در هر زمانی از طریق تنظیمات کاربری Antigravity ( Cmd + , ) تغییر داد.

قبل از اینکه به بررسی گزینه‌ها بپردازیم، اجازه دهید نگاهی به برخی از ویژگی‌های خاص (که در سمت راست کادر محاوره‌ای می‌بینید) بیندازیم.

سیاست اجرای ترمینال

این در مورد دادن توانایی به Agent برای اجرای دستورات (برنامه‌ها/ابزارها) در ترمینال شما است:

  • همیشه ادامه دهید: همیشه دستورات ترمینال را به طور خودکار اجرا کنید (به جز مواردی که در یک لیست رد قابل تنظیم هستند).
  • درخواست بررسی: قبل از اجرای دستورات ترمینال، از کاربر درخواست بررسی و تأیید کنید.

سیاست بررسی

همانطور که نماینده وظیفه خود را انجام می‌دهد، مصنوعات مختلفی (طرح وظیفه، طرح اجرا و غیره) ایجاد می‌کند. سیاست بررسی به گونه‌ای تنظیم شده است که می‌توانید تعیین کنید چه کسی تصمیم می‌گیرد که آیا نیاز به بررسی دارد یا خیر. آیا همیشه می‌خواهید آن را بررسی کنید یا اجازه دهید نماینده در این مورد تصمیم بگیرد. بر این اساس، در اینجا نیز سه گزینه وجود دارد.

  • همیشه ادامه دهید: نماینده هرگز درخواست بررسی نمی‌کند.
  • تصمیم نماینده: نماینده تصمیم می‌گیرد چه زمانی درخواست بررسی کند.
  • درخواست بررسی: نماینده همیشه درخواست بررسی می‌کند.

سیاست اجرای جاوا اسکریپت

وقتی فعال باشد، عامل می‌تواند از ابزارهای مرورگر برای باز کردن URLها، خواندن صفحات وب و تعامل با محتوای مرورگر استفاده کند. این خط‌مشی نحوه اجرای جاوا اسکریپت در مرورگر را کنترل می‌کند.

  • همیشه ادامه دهید: عامل برای درخواست مجوز اجرای جاوا اسکریپت در مرورگر متوقف نمی‌شود. این ویژگی به عامل حداکثر استقلال را برای انجام اقدامات پیچیده و اعتبارسنجی در مرورگر می‌دهد، اما همچنین بیشترین میزان آسیب‌پذیری را در برابر سوءاستفاده‌های امنیتی دارد.
  • درخواست بررسی: عامل همیشه برای درخواست مجوز اجرای کد جاوا اسکریپت در مرورگر، متوقف می‌شود.
  • غیرفعال: عامل هرگز کد جاوا اسکریپت را در مرورگر اجرا نخواهد کرد.

حالا که سیاست‌های مختلف را درک کرده‌ایم، ۴ گزینه سمت چپ چیزی جز تنظیمات خاص برای اجرای ترمینال، بررسی و سیاست‌های اجرای جاوا اسکریپت برای ۳ مورد از آنها نیستند و گزینه چهارم در دسترس است که می‌توانیم آن را کاملاً سفارشی کنترل کنیم. این ۴ گزینه در دسترس هستند تا بتوانیم انتخاب کنیم که چه میزان استقلال می‌خواهید به عامل بدهید تا دستورات را در ترمینال اجرا کند و قبل از ادامه کار، مصنوعات را بررسی کند.

این ۴ گزینه عبارتند از:

  • حالت امن : حالت امن، کنترل‌های امنیتی پیشرفته‌ای را برای عامل فراهم می‌کند و به شما امکان می‌دهد دسترسی آن را به منابع خارجی و عملیات حساس محدود کنید. وقتی حالت امن فعال است، چندین اقدام امنیتی برای محافظت از محیط شما اعمال می‌شود.
  • توسعه مبتنی بر بررسی (توصیه می‌شود) : نماینده مرتباً درخواست بررسی می‌کند.
  • توسعه مبتنی بر عامل : عامل هرگز درخواست بررسی نخواهد کرد.
  • پیکربندی سفارشی

گزینه توسعه مبتنی بر بررسی، تعادل خوبی ایجاد می‌کند و گزینه پیشنهادی است، زیرا به عامل اجازه می‌دهد تا تصمیمی بگیرد و برای تأیید به کاربر مراجعه کند.

صفحه بعدی، صفحه تنظیمات ویرایشگر شماست که در آن می‌توانید تنظیمات برگزیده خود را برای موارد زیر انتخاب کنید:

  • کلیدهای ترکیبی: کلیدهای ترکیبی خود را پیکربندی کنید.
  • افزونه‌ها: افزونه‌های زبان محبوب و سایر افزونه‌های پیشنهادی را نصب کنید.
  • خط فرمان: ابزار خط فرمان را برای باز کردن Antigravity با agy نصب کنید.

اکنون، شما آماده ورود به گوگل هستید. همانطور که قبلاً ذکر شد، Antigravity در حالت پیش‌نمایش و در صورت داشتن حساب کاربری جیمیل شخصی رایگان است. اکنون با حساب کاربری خود وارد شوید. این کار مرورگر را باز می‌کند و به شما امکان ورود می‌دهد. در صورت موفقیت‌آمیز بودن احراز هویت، پیامی مشابه پیام زیر مشاهده خواهید کرد و شما را به برنامه Antigravity هدایت می‌کند. با روند پیش بروید.

در نهایت، شرایط استفاده . می‌توانید تصمیم بگیرید که آیا می‌خواهید عضو شوید یا خیر و سپس روی Next کلیک کنید.

این شما را به لحظه حقیقت هدایت می‌کند، جایی که ضد جاذبه منتظر همکاری با شما خواهد بود.

۳. مدیر عامل

ما آماده‌ایم تا شروع کنیم!

آنتی‌گراویتی (Antigravity) از پایه و اساس متن‌باز ویژوال استودیو کد (VS Code) منشعب شده است، اما تجربه کاربری را به طور اساسی تغییر می‌دهد تا مدیریت عامل را بر ویرایش متن اولویت دهد. رابط کاربری به دو پنجره اصلی مجزا تقسیم شده است: Editor و Agent Manager ). این تفکیک دغدغه‌ها، تمایز بین مشارکت فردی و مدیریت مهندسی را منعکس می‌کند.

مدیر عامل: کنترل ماموریت

پس از اجرای Antigravity، کاربر معمولاً نه با یک درخت فایل، بلکه با Agent Manager، همانطور که در زیر نشان داده شده است، مواجه می‌شود:

d5ae91fc746e1bba.png

این رابط کاربری به عنوان یک داشبورد Mission Control عمل می‌کند. این رابط برای هماهنگی سطح بالا طراحی شده است و به توسعه‌دهندگان اجازه می‌دهد تا چندین عامل را که به صورت غیرهمزمان در فضاهای کاری یا وظایف مختلف کار می‌کنند، ایجاد، نظارت و با آنها تعامل داشته باشند.

در این دیدگاه، توسعه‌دهنده به عنوان یک معمار عمل می‌کند. او اهداف سطح بالا را تعریف می‌کند، مثال‌ها می‌توانند موارد زیر باشند:

  • ماژول احراز هویت را بازسازی کنید
  • درخت وابستگی را به‌روزرسانی کنید
  • ایجاد یک مجموعه آزمایشی برای API صورتحساب

همانطور که نمودار بالا نشان می‌دهد، هر یک از این درخواست‌ها یک نمونه عامل اختصاصی ایجاد می‌کند. رابط کاربری، تجسمی از این جریان‌های کاری موازی را ارائه می‌دهد و وضعیت هر عامل، مصنوعاتی که تولید کرده‌اند (طرح‌ها، نتایج، تفاوت‌ها) و هرگونه درخواست در انتظار تأیید انسانی را نمایش می‌دهد.

این معماری، محدودیت کلیدی IDEهای قبلی را که بیشتر تجربه چت‌بات داشتند و خطی و همزمان بودند، برطرف می‌کند. در یک رابط چت سنتی، توسعه‌دهنده باید منتظر بماند تا هوش مصنوعی تولید کد را تمام کند و سپس سوال بعدی را بپرسد. در نمای مدیر Antigravity، یک توسعه‌دهنده می‌تواند پنج عامل مختلف را برای کار بر روی پنج اشکال مختلف به طور همزمان اعزام کند و به طور مؤثر توان عملیاتی خود را چند برابر کند.

اگر روی Next در بالا کلیک کنید، می‌توانید یک فضای کاری باز کنید.

ec72712ea24bf6d5.png

فضای کاری را همانطور که از VS Code می‌دانستید در نظر بگیرید و کار تمام است. بنابراین می‌توانیم با کلیک روی دکمه و سپس انتخاب یک پوشه برای شروع، یک پوشه محلی را باز کنیم. در مورد من، پوشه‌ای در پوشه خانه‌ام به نام my-agy-projects داشتم و آن را انتخاب کردم. شما می‌توانید از یک پوشه کاملاً متفاوت استفاده کنید. توجه داشته باشید، در صورت تمایل می‌توانید این مرحله را کاملاً نادیده بگیرید و می‌توانید بعداً هر زمان که خواستید یک فضای کاری باز کنید.

پس از تکمیل این مرحله، در پنجره Agent Manager قرار خواهید گرفت که در زیر نشان داده شده است:

156224e223eeda36.png

متوجه خواهید شد که برنامه بلافاصله برای شروع یک مکالمه جدید در پوشه فضای کاری ( my-agy-projects ) که انتخاب شده است، آماده می‌شود. می‌توانید از دانش موجود خود در مورد کار با سایر برنامه‌های هوش مصنوعی (Cursor، Gemini CLI) استفاده کنید و @ و روش‌های دیگر برای افزودن زمینه اضافی هنگام درخواست استفاده کنید.

به هر دو منوی کشویی Planning و Model Selection نگاهی بیندازید. منوی کشویی انتخاب مدل به شما امکان می‌دهد یکی از مدل‌های موجود در حال حاضر را برای استفاده نماینده خود انتخاب کنید. لیست در زیر نشان داده شده است:

fb0744dc43911365.png

به طور مشابه، متوجه می‌شویم که عامل در حالت Planning پیش‌فرض قرار دارد. اما می‌توانیم حالت Fast ) را نیز انتخاب کنیم.

f403e40ad480efc9.png

بیایید ببینیم اسناد در این مورد چه می‌گویند:

  • Planning : یک عامل می‌تواند قبل از اجرای وظایف، برنامه‌ریزی کند. برای تحقیقات عمیق، وظایف پیچیده یا کار مشارکتی استفاده می‌شود. در این حالت، عامل کار خود را در گروه‌های کاری سازماندهی می‌کند، مصنوعات تولید می‌کند و مراحل دیگری را برای تحقیق کامل، تفکر و برنامه‌ریزی کار خود برای کیفیت مطلوب انجام می‌دهد. در اینجا خروجی بسیار بیشتری خواهید دید.
  • Fast : یک عامل وظایف را مستقیماً اجرا می‌کند. برای وظایف ساده‌ای که می‌توانند سریع‌تر انجام شوند، مانند تغییر نام متغیرها، شروع چند دستور bash یا سایر وظایف کوچک‌تر و محلی، استفاده می‌شود. این برای زمانی مفید است که سرعت یک عامل مهم است و وظیفه به اندازه کافی ساده است که نگرانی کمی از کیفیت پایین وجود دارد.

اگر با بودجه تفکر و اصطلاحات مشابه در نمایندگان آشنا هستید، این را به عنوان توانایی کنترل تفکر نماینده در نظر بگیرید، در نتیجه تأثیر مستقیمی بر بودجه تفکر خواهد داشت. فعلاً با پیش‌فرض‌ها پیش می‌رویم، اما به یاد داشته باشید که در زمان عرضه، موجودی مدل Gemini 3 Pro برای همه محدود است، بنابراین انتظار پیام‌های مناسبی را داشته باشید که نشان می‌دهد آیا سهمیه‌های رایگان برای استفاده از Gemini 3 را تمام کرده‌اید یا خیر.

بیایید کمی وقت صرف بررسی پنجره‌ی Agent Manager کنیم و چند نکته را بررسی کنیم تا اجزای اصلی، نحوه‌ی پیمایش در Antigravity و موارد دیگر برایتان روشن شود. پنجره‌ی Agent Manager در زیر نمایش داده شده است:

۲۲f6dcf7b3edc583.png

لطفاً به نمودار بالا با اعداد مراجعه کنید:

  1. Inbox : این را به عنوان راهی برای پیگیری تمام مکالمات خود در یک مکان در نظر بگیرید. وقتی شما مامورین را برای انجام وظایفشان اعزام می‌کنید، این وظایف در صندوق ورودی ظاهر می‌شوند و می‌توانید روی صندوق ورودی کلیک کنید تا لیستی از تمام مکالمات فعلی را مشاهده کنید. ضربه زدن روی هر یک از مکالمات، شما را به تمام پیام‌های رد و بدل شده، وضعیت وظایف، آنچه مامور تولید کرده است یا حتی اینکه آیا منتظر تأیید شما برای وظایف است یا خیر، هدایت می‌کند. این یک راه عالی برای بازگشت به وظیفه قبلی است که روی آن کار می‌کردید. یک ویژگی بسیار مفید.
  2. Start Conversation : برای شروع مکالمه جدید روی این کلیک کنید. این کار شما را مستقیماً به ورودی هدایت می‌کند که در آن نوشته شده است Ask anything .
  3. Workspaces : ما در مورد فضاهای کاری و اینکه می‌توانید در هر فضای کاری که می‌خواهید کار کنید، اشاره کردیم. می‌توانید در هر زمانی فضاهای کاری بیشتری اضافه کنید و هنگام شروع مکالمه، هر فضای کاری را انتخاب کنید.
  4. Playground : این یک روش عالی است که می‌توانید به سادگی با نماینده گفتگو کنید و سپس اگر مایلید آن را به یک فضای کاری تبدیل کنید، جایی که کنترل دقیق‌تری روی فایل‌ها و غیره دارید. این را به عنوان یک منطقه آزمایشی در نظر بگیرید.
  5. Editor View : تاکنون در نمای مدیر عامل هستیم. در صورت تمایل می‌توانید هر زمان که خواستید به نمای ویرایشگر بروید. این به شما پوشه فضای کاری و هر فایل تولید شده را نشان می‌دهد. می‌توانید مستقیماً فایل‌ها را در آنجا ویرایش کنید، یا حتی راهنمایی‌های درون خطی، دستور را در ویرایشگر ارائه دهید تا عامل بتواند طبق توصیه‌ها/دستورالعمل‌های اصلاح شده شما کاری انجام دهد یا تغییر دهد. نمای ویرایشگر را در بخش بعدی به تفصیل پوشش خواهیم داد.
  6. Browser : در نهایت، به یکی از وجوه تمایز آشکاری می‌رسیم که Antigravity را بسیار قدرتمند می‌کند و آن ادغام نزدیک آن با مرورگر کروم است. بیایید در بخش بعدی به تنظیمات مرورگر بپردازیم.

۴. مرورگر ضد جاذبه

طبق مستندات ، وقتی عامل می‌خواهد با مرورگر تعامل داشته باشد، یک زیرعامل مرورگر را برای انجام وظیفه مورد نظر فراخوانی می‌کند. زیرعامل مرورگر مدلی را اجرا می‌کند که مخصوص کار روی صفحاتی است که در مرورگر مدیریت‌شده توسط Antigravity باز هستند، که با مدلی که برای عامل اصلی انتخاب کرده‌اید متفاوت است.

این subagent به ابزارهای متنوعی که برای کنترل مرورگر شما ضروری هستند، از جمله کلیک کردن، اسکرول کردن، تایپ کردن، خواندن لاگ‌های کنسول و موارد دیگر، دسترسی دارد. همچنین می‌تواند صفحات باز شما را از طریق ضبط DOM، اسکرین‌شات یا تجزیه markdown و همچنین فیلم‌برداری بخواند.

این یعنی باید افزونه مرورگر Antigravity را اجرا و نصب کنیم. بیایید این کار را با شروع یک مکالمه در Playground و طی کردن مراحل انجام دهیم.

Playground انتخاب کنید و وظیفه زیر go to antigravity.google مامور بدهید، همانطور که در زیر نشان داده شده است:

51a373d3da23db56.png

وظیفه را ارسال کنید . خواهید دید که عامل، وظیفه را تجزیه و تحلیل می‌کند و می‌توانید روند کار را بررسی کنید. در مقطعی، به درستی ادامه می‌دهد و ذکر می‌کند که باید عامل مرورگر را مطابق شکل زیر تنظیم کند. روی Setup کلیک کنید.

e7119f40e093afd2.png

این کار مرورگر را باز می‌کند و پیامی برای نصب افزونه نمایش می‌دهد، همانطور که در زیر نشان داده شده است:

82fb87d7d75b4a6c.png

ادامه دهید و به افزونه کروم هدایت خواهید شد که می‌توانید آن را نصب کنید.

f3468f0e5f3bb075.png

پس از نصب موفقیت‌آمیز افزونه، Antigravity Agent شروع به کار می‌کند و اعلام می‌کند که از شما اجازه انجام وظیفه‌اش را می‌خواهد. باید در پنجره مرورگر باز شده، فعالیت‌هایی را مشاهده کنید:

7f0367e00ac36d5a.png

نمای Agent Manager را به حالت قبل برگردانید و باید موارد زیر را ببینید:

b9d89e1ebefcfd76.png

این دقیقاً همان چیزی بود که انتظار داشتیم اتفاق بیفتد، زیرا از مامور خواستیم که به وب‌سایت antigravity.google مراجعه کند. به او اجازه دهید و خواهید دید که وب‌سایت به طور ایمن، همانطور که در زیر نشان داده شده است، هدایت می‌شود:

77fcc38b5fb4ca7c.png

۵. مصنوعات

آنتی‌گراویتی همزمان با برنامه‌ریزی و انجام کار خود، مصنوعاتی (Artifacts) ایجاد می‌کند تا از این طریق بتواند کارش را به کاربر انسانی منتقل کند و از او بازخورد بگیرد. این مصنوعات شامل فایل‌های نشانه‌گذاری غنی، نمودارهای معماری، تصاویر، ضبط‌های مرورگر، تفاوت‌های کد و غیره هستند.

مصنوعات «شکاف اعتماد» را حل می‌کنند. وقتی یک عامل ادعا می‌کند «من اشکال را برطرف کرده‌ام» توسعه‌دهنده قبلاً مجبور بود کد را برای تأیید بخواند. در Antigravity، عامل یک مصنوع تولید می‌کند تا آن را اثبات کند.

اینها مصنوعات اصلی تولید شده توسط Antigravity هستند:

  • Task Lists : قبل از نوشتن کد، عامل یک طرح ساختاریافته ایجاد می‌کند. معمولاً نیازی به ویرایش این طرح نیست، اما می‌توانید آن را بررسی کنید و در برخی موارد، در صورت نیاز، برای تغییر آن، نظر اضافه کنید.
  • Implementation Plan : این طرح برای معماری تغییرات در کدبیس شما برای انجام یک کار استفاده می‌شود. این طرح‌ها حاوی جزئیات فنی در مورد اصلاحات لازم هستند و قرار است توسط کاربر بررسی شوند، مگر اینکه سیاست بررسی مصنوعات خود را روی «همیشه ادامه دهید» تنظیم کرده باشید.
  • Walkthrough : این راهنما پس از تکمیل پیاده‌سازی وظیفه توسط عامل، به عنوان خلاصه‌ای از تغییرات و نحوه آزمایش آنها ایجاد می‌شود.
  • Code diffs : اگرچه از نظر فنی یک مصنوع محسوب نمی‌شوند، اما Antigravity تفاوت‌های کدی نیز تولید می‌کند که می‌توانید آنها را بررسی کرده و در موردشان نظر دهید.
  • Screenshots : عامل، وضعیت رابط کاربری را قبل و بعد از تغییر ثبت می‌کند.
  • Browser Recordings : برای تعاملات پویا (مثلاً «روی دکمه ورود کلیک کنید، منتظر چرخنده باشید، بارگذاری داشبورد را تأیید کنید»)، عامل ویدئویی از جلسه خود ضبط می‌کند. توسعه‌دهنده می‌تواند این ویدئو را تماشا کند تا تأیید کند که نیاز عملکردی بدون اجرای خود برنامه برآورده شده است.

مصنوعات تولید می‌شوند و در هر دو نمای مدیر عامل و ویرایشگر ظاهر می‌شوند.

در نمای ویرایشگر، در گوشه پایین سمت راست، می‌توانید روی Artifacts کلیک کنید:

5deff47fe0a93aa1.png

در نمای مدیر عامل، در بالا سمت راست، کنار Review changes ، باید بتوانید دکمه‌ای را برای تغییر وضعیت مصنوعات ببینید یا اگر روشن باشد، می‌توانید لیست مصنوعات تولید شده را مشاهده کنید:

5320f447471c43eb.png

شما باید نمای Artifacts را مطابق شکل زیر ببینید. در مورد ما، ما به Agent دستور دادیم که از صفحه antigravity.google بازدید کند و از این رو، از صفحه عکس گرفته و ویدیویی از آن ساخته است:

۱۹d۹۷۳۸bb۳c۷c۰c۹.png

می‌توانید تفاوت‌های کد را در بخش Review Changes در نمای ویرایشگر مشاهده کنید:

e1d8fd6e7df4daf3.png

توسعه‌دهندگان می‌توانند با استفاده از «نظرات به سبک Google Docs» با این مصنوعات و تفاوت‌های کد تعامل داشته باشند. شما می‌توانید یک اقدام یا وظیفه خاص را انتخاب کنید، دستوری را به روشی که می‌خواهید ارائه دهید و سپس آن را به عامل ارسال کنید. سپس عامل این بازخورد را دریافت کرده و بر اساس آن تکرار می‌کند. به استفاده از Google Docs تعاملی فکر کنید، جایی که شما بازخورد را به نویسنده ارائه می‌دهید و نویسنده سپس آن را تکرار می‌کند.

۶. صندوق ورودی را دوباره بررسی کنید

اگر چند مکالمه با نمایندگان شروع کرده‌اید، اکنون باید نگاهی به Inbox خود در پنجره Agent Manager بیندازید. این همه مکالمات را به شما نشان می‌دهد. برای مشاهده تاریخچه آن مکالمه، مصنوعات تولید شده و موارد دیگر، روی هر یک از مکالمات کلیک کنید. در مورد ما، پس از اجرای اولین مکالمه، صندوق ورودی ما مکالمه فهرست شده را نشان می‌دهد، همانطور که در زیر نشان داده شده است:

1a2a1bbdd4464ecf.png

با کلیک بر روی آن مکالمه، جزئیات آن را مشاهده خواهید کرد:

b7e493765cfb1b1a.png

از اینجا هم می‌توانید بحث را ادامه دهید.

۷. ویرایشگر

این ویرایشگر، حس آشنایی با VS Code را حفظ کرده و تضمین می‌کند که از حافظه‌ی توسعه‌دهندگان باتجربه استفاده شود. این ویرایشگر شامل مرورگر فایل استاندارد، هایلایت سینتکس و اکوسیستم افزونه‌ها می‌شود.

شما می‌توانید روی دکمه‌ی Open Editor که در بالا سمت راست در «مدیر عامل» قرار دارد کلیک کنید تا به ویرایشگر بروید.

راه‌اندازی و افزونه‌ها

در یک تنظیم معمولی، ویرایشگر، ترمینال و عامل را در معرض دید خواهید داشت:

7996408528de93e1.png

اگر اینطور نیست، می‌توانید پنل‌های ترمینال و عامل را به صورت زیر تغییر دهید:

  • برای تغییر وضعیت پنل ترمینال، از میانبر Ctrl + ` استفاده کنید.
  • برای تغییر وضعیت پنل اپراتور، از میانبر Cmd + L استفاده کنید.

علاوه بر این، Antigravity می‌تواند برخی افزونه‌ها را در طول راه‌اندازی نصب کند، اما بسته به زبان برنامه‌نویسی که استفاده می‌کنید، احتمالاً باید افزونه‌های بیشتری نصب کنید. به عنوان مثال، برای توسعه پایتون، این افزونه‌هایی هستند که می‌توانید نصب کنید:

bd33a79837b5a12a.png

ویرایشگر

تکمیل خودکار

همانطور که کد را در ویرایشگر تایپ می‌کنید، یک تکمیل خودکار هوشمند فعال می‌شود که می‌توانید به سادگی با کلیک کردن روی آن، کد را وارد کنید:

e90825ed7a009350.png

تب برای وارد کردن

شما تبی برای وارد کردن پیشنهاد برای اضافه کردن وابستگی‌های از دست رفته دریافت می‌کنید:

bcab60794caa0aec.png

برای پرش، تب بزنید

شما با استفاده از تب، پیشنهادهایی برای پرش دریافت می‌کنید تا مکان‌نما را به مکان منطقی بعدی در کد ببرید:

8610ae5217be7fe5.png

دستورات

شما می‌توانید با استفاده از Cmd + I در ویرایشگر یا ترمینال، دستورات را برای تکمیل درون‌خطی با استفاده از زبان طبیعی اجرا کنید.

در ویرایشگر، می‌توانید روشی برای محاسبه اعداد فیبوناچی درخواست کنید و سپس آن را بپذیرید یا رد کنید:

۱۳a۶۱۵e۵۱۵cea۱۰۰.png

در ترمینال، می‌توانید پیشنهادهای دستور ترمینال را دریافت کنید:

5a75e560f998cedc.png

پنل کناری نماینده

از ویرایشگر، می‌توانید پنل کناری نماینده را به روش‌های مختلف تغییر دهید.

باز شدن دستی

شما می‌توانید با استفاده از میانبر Cmd + L پنل اپراتور را در سمت راست به صورت دستی تغییر دهید.

می‌توانید شروع به پرسیدن سوال کنید، از @ برای اضافه کردن زمینه‌های بیشتر مانند فایل‌ها، دایرکتوری‌ها، سرورهای MCP استفاده کنید، یا از / برای ارجاع به یک گردش کار (یک اعلان ذخیره شده) استفاده کنید:

۹۵c5a6d31d771748.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 برای تغییر بین این دو حالت استفاده کنید.

۸. بازخورد ارائه دهید

در قلب 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
...

این همچنین اولین جایی است که می‌توانید بازخورد خود را ارائه دهید. در مورد ما، عامل می‌خواهد از 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 تعدادی کد در فایل‌های جدید تولید می‌کند. شما می‌توانید بدون بررسی جزئیات، Reject all این تغییرات را در پنل کناری چت اپراتور Accept 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 .

۹. قوانین و گردش‌های کاری

آنتی‌گراویتی با چند گزینه سفارشی‌سازی ارائه می‌شود: قوانین و گردش‌های کاری .

روی ... در گوشه بالا سمت راست کلیک کنید و Customizations را انتخاب کنید، Rules و Workflows مشاهده خواهید کرد:

ff8babd8d8bcfa83.png

قوانین به هدایت رفتار عامل کمک می‌کنند. این‌ها دستورالعمل‌هایی هستند که می‌توانید ارائه دهید تا مطمئن شوید عامل هنگام تولید کد و آزمایش‌ها از آن‌ها پیروی می‌کند. به عنوان مثال، ممکن است بخواهید عامل از یک سبک کد خاص پیروی کند یا همیشه روش‌ها را مستند کند. می‌توانید این موارد را به عنوان قوانین اضافه کنید و عامل آن‌ها را در نظر می‌گیرد.

گردش‌های کاری، اعلان‌های ذخیره‌شده‌ای هستند که می‌توانید در صورت نیاز با / ، هنگام تعامل با عامل، آنها را فعال کنید. آنها همچنین رفتار عامل را هدایت می‌کنند، اما توسط کاربر در صورت نیاز فعال می‌شوند.

یک قیاس خوب این است که قوانین بیشتر شبیه دستورالعمل‌های سیستمی هستند در حالی که گردش‌های کاری بیشتر شبیه اعلان‌های ذخیره‌شده‌ای هستند که می‌توانید بنا به تقاضا انتخاب کنید.

هر دوی قوانین و گردش‌های کاری می‌توانند به صورت سراسری یا برای هر فضای کاری اعمال شوند و در مکان‌های زیر ذخیره شوند:

  • قانون سراسری: ~/.gemini/GEMINI.md
  • گردش کار سراسری: ~/.gemini/antigravity/global_workflows/global-workflow.md
  • قوانین فضای کاری: your-workspace/.agent/rules/
  • گردش‌های کاری فضای کاری: 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 انتخاب کرده و enter را بزنید. پس از چند ثانیه، فایل‌های جدیدی در فضای کاری خود دریافت خواهید کرد: test_binary_search.py ​​، test_bubble_sort.py با تعدادی تست که از قبل پیاده‌سازی شده‌اند!

۱۱febd7940ef8199.png

قشنگه!

۱۰. ایمن‌سازی عامل

دادن دسترسی به یک عامل هوش مصنوعی به ترمینال و مرورگر شما یک شمشیر دولبه است. این کار امکان اشکال‌زدایی و استقرار خودکار را فراهم می‌کند، اما همچنین مسیرهایی را برای تزریق سریع و استخراج داده‌ها باز می‌کند.

آنتی‌گراویتی این مشکل را از طریق یک سیستم مجوزدهی جزئی که حول سیاست‌های اجرای خودکار دستورات ترمینال، لیست‌های مجاز و لیست‌های ممنوعه می‌چرخد، برطرف می‌کند.

وقتی برای اولین بار Antigravity را پیکربندی می‌کنید، یا از طریق منوی تنظیمات، باید یک سیاست Terminal Command Auto Execution را انتخاب کنید. این تنظیم، استقلال عامل (agent) را در مورد دستورات پوسته (shell commands) تعیین می‌کند.

می‌توانید تنظیمات فعلی خود را برای این مورد با رفتن به Antigravity — Settings و سپس Advanced Settings مشاهده کنید. باید بخش Terminal را برای تنظیمات Agent ببینید. اگر می‌خواهید این تنظیم را به چیز دیگری تغییر دهید، این جدول را در نظر داشته باشید:

حالت سیاست

توضیحات

خاموش

عامل هرگز دستورات ترمینال را به طور خودکار اجرا نمی‌کند، مگر اینکه صریحاً مجاز باشد.

خودکار

عامل بر اساس مدل‌های ایمنی داخلی تصمیم می‌گیرد که آیا اجرا شود یا خیر. برای دستورات پرخطر درخواست مجوز می‌کند.

توربو

عامل همیشه دستورات را به طور خودکار اجرا می‌کند، مگر اینکه صریحاً رد شود.

پیکربندی لیست مجاز

فهرست مجاز (Allow List) عمدتاً با سیاست خاموش (Off ) استفاده می‌شود. این یک مدل امنیتی مثبت را نشان می‌دهد، به این معنی که همه چیز ممنوع است مگر اینکه صریحاً مجاز باشد. این امن‌ترین پیکربندی است.

پیکربندی گام به گام

  1. تنظیمات اجرای خودکار دستورات ترمینال را روی خاموش (Off) تنظیم کنید.
  2. با کلیک روی دکمه‌ی Add در کنار دستور، آن را به Allow List Terminal Commands اضافه کنید: ls -al . در صورت تمایل می‌توانید دستورات ترمینال دیگری را نیز اضافه کنید.

آزمایش لیست مجاز

  • از نماینده بپرسید: List the files in this directory .
  • عامل به طور خودکار ls را اجرا می‌کند.
  • از نماینده بپرسید: Delete the <some file>
  • عامل rm <filepath> امتحان می‌کند، اما Antigravity آن را مسدود کرده و کاربر را مجبور به بررسی می‌کند زیرا rm در لیست مجاز نیست. شما باید Antigravity را وادار کنید که قبل از اجرای دستور، از شما اجازه بگیرد.

پیکربندی لیست رد درخواست‌ها

فهرست ممنوعه ، محافظی برای سیاست توربو (و گاهی اوقات خودکار ) است. این یک مدل امنیتی منفی را نشان می‌دهد، به این معنی که همه چیز مجاز است مگر اینکه صریحاً ممنوع شده باشد. این امر به توسعه‌دهنده بستگی دارد که هر خطر احتمالی را پیش‌بینی کند، که یک پیشنهاد پرخطر است، اما حداکثر سرعت را ارائه می‌دهد.

پیکربندی گام به گام

  1. تنظیمات اجرای خودکار دستورات ترمینال را روی Turbo تنظیم کنید.
  2. با کلیک روی دکمه‌ی «افزودن» در کنار دستورات ترمینال Deny List ، دستورات زیر را اضافه کنید.
  3. رم
  4. مدیر آر ام
  5. سودو
  6. حلقه زدن
  7. دستور wget

آزمایش لیست رد صلاحیت‌ها

  • از نماینده بپرسید: Check the version of python .
  • عامل به طور خودکار python --version اجرا می‌کند.
  • از نماینده بپرسید: home page www.google.com Download .
  • عامل تلاش می‌کند تا curl را اجرا کند. آنتی‌گراویتی curl در لیست ممنوعه‌ها شناسایی کرده و اجرا را مسدود می‌کند و از شما می‌خواهد که به صورت دستی آن را تأیید کنید.

امنیت مرورگر

توانایی Antigravity در مرور وب یک قدرت فوق‌العاده است، اما در عین حال یک آسیب‌پذیری نیز محسوب می‌شود. عاملی که از یک سایت اسناد آسیب‌پذیر بازدید می‌کند، می‌تواند با حمله تزریق سریع مواجه شود.

برای جلوگیری از این امر، می‌توانید یک فهرست مجاز URL مرورگر برای مرورگر ایجنت (Browser URL Allowlist ) پیاده‌سازی کنید.

شما می‌توانید تنظیمات فعلی خود را برای این مورد با رفتن به Antigravity — Settings و سپس Advanced Settings مشاهده کنید. شما باید بخش Browser URL Allowlist را برای تنظیمات مرورگر، مطابق شکل زیر مشاهده کنید:

5ed231150122ecc5.png

Click on the Open Allowlist File and that opens up the file in the folder HOME/.gemini/antigravity/browserAllowlist.txt. You can ensure that only trusted domains are entered over here.

11. Use Cases

Now that we have a basic understanding of the product, let's dive into a few use cases to see it in action. Note that Antigravity is an Agent first platform. This means that in most cases, we are simply giving an instruction to the Agent and the Agent then goes off on its own, does its task, asks permissions if needed, produces the artifacts and then notifies us if the task is done. As a result of that, we cannot produce every single output of the Agent conversation in each of the following use cases. We will share the instructions and a few necessary screenshots of the expected results but your results might differ a bit.

The use cases that we will cover range from automating a few tasks with external sites, to generating and verifying unit test cases for a project, to a full web site development. Let's go.

News Highlights

This is a simple use case but it can be the basis via which you can use the web browser to visit web sites, extract information, do some actions and then return data to the user.

In this case, we are going to visit the Google News site and extract some information from there. But you can easily experiment with a site of your choice and see how it goes.

Ensure that you are in the Agent Manager and have selected the Playground , as shown below:

cffa12c98a68cb6c.png

Then give the following instruction:

8513d489eea0b014.png

This will kick off the Agent process and it will determine that it needs to launch the browser, etc. You should pay close attention to the Thinking process and see how the Agent goes about its work. If all goes well, it should launch the Antigravity browser and visit the site as shown below. The blue border around the site shows that the Agent is now controlling the browser and navigating the site to get the information.

9d594588f2ffe6bc.png

Once it's done with its work, you should also see the Artifacts getting generated, as shown below:

dc6cf4e7d8425df8.png

A sample execution by the Agent is shown below:

fb7397cd2cce0682.png

Notice that on the left, we have the Thought process, you can also scroll through the points and view the playback and other data.

Things to try out

  • Once you understand this, pick a website that is available and which you would like the Agent to go and get/summarize some data from. Consider some website that you know has Dashboards and charts and ask it to pick a few values.
  • Try the following prompt: Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.

Generate a Dynamic Website with Python + Flask

Let's move now to generate a complete web application. The web application that we are going to create is a site which provides information on a 1-day technical event, which has talks across the day by multiple speakers.

Once again, ensure that you are in the Agent Manager and have selected the Playground .

Give the following prompt:

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. 

You can begin the conversation by giving the above prompt:

As the Agent goes about its task, it will proceed with creating the artifacts:

  • Task Artifact
  • Implementation Artifact
  • Walkthrough Artifact

The Task Artifact given below was the initial sequence of tasks that the Agent deciphered it should do based on the task given to it. A sample screenshot from the execution is shown below:

c95d82e1c040698f.png

You can then click on the Implementation Plan artifact. A sample screenshot is shown below:

632169a236bc62cc.png

And finally, you have the Walkthrough artifact. It contains all that the Agent did as shown below:

e3f6152d6f54d4f9.png

Notice that it has started the server and has provided me the URL, which I click and I have the application, a sample screenshot is shown below:

abf879f2ce53d055.png

If I switch to the Editor , notice in the screen that it contains the folder where the Python Flask application is generated. You will also notice that the Agent mode is tagged to the right and you can continue the conversation over there too.

b0fea8aa65c3a1c5.png

Now, let's say that we want to add some more talks to the event. We can stay in the Editor and in the Agent panel, give an instruction like Add two more talks to the schedule .

This will result in the Agent analyzing the requirement, updating the Task, Implementation Plan and then validating the updated functionality too. A sample conversation is shown below:

ba8455e6f68973e9.png

You can switch back to the Agent Manager if you'd like. This process should help you understand the process between shifting from Agent Manager to Editor, making changes accordingly and so on.

Things to try out

  • Add additional functionality that you would like to the application. Provide the details to the Agent and notice how it goes about its task by first modifying the task list, then implementation plan and so on.
  • Ask the Agent to generate a README or more documentation for the application.

Generate a simple productivity app

We are going to now generate a simple Pomodoro timer web application.

Ensure that you are in the Agent Manager and have selected the Playground . Give the following prompt:

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

Notice how it goes about creating the Task list, implementation plan and then goes about that. Keep paying attention to the flow, there might be situations in which it will prompt for your review. A sample run is shown below.

5be0a668e5a67d85.png

In this case, it should also launch the Antigravity browser , do its own testing and then confirm that the tests succeeded. One of the things that it generated was a Media Artifact that contains the video of its verification. This is a great way to see what it tested. I also suggested some style changes since it didn't take effect and it was able to do that.

The final app looked like the one below and it looks quite good.

c9ab6bca97a51a8c.png

How about we can add a nice timer image to the application. All we need to do is issue a follow up instruction as given below:

Add an image to the application that displays a timer.

This resulted in the agent adding a new task to the Task artifact:

498dd946d4e9ae55.png

It then generated an image as it went through its task:

c291da9bdb37ff96.png

Finally, the app had the image as we requested:

de8f418ba8e4600d.png

Things to try out

  • Notice the background for the hourglass icon in the application is not transparent. Try telling the agent to make that transparent.
  • Try out a few variations of any application that you would like to generate. Play with the styles, images, ask for changes, etc.

Generate Unit Tests, Mock Stubs and Validate Tests

The final use case that we will try here is that of generating unit tests for a specific code file that we have and for the Agent to also execute the tests and validate them.

For this, we are going to have a workspace that has a single Python file as shown below:

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}

Ensure that you have the above Python file locally in a folder and you load that as a Workspace in Antigravity.

This is a simple Order service that has the following key functionality in the checkout function:

  1. Validates cart is not empty.
  2. Check stock for all items.
  3. Calculates final price.
  4. Charges payment.
  5. Updates inventory.

We are going to assign the Agent the task of generating unit test cases, providing Mock implementations and executing the tests to make sure that they succeed.

We will open our specific workspace folder and you will notice that we can now use the @ symbol too to reference the file. For example, we could do the following:

8368856e51a7561a.png

This comes up with some explanation of what this file is:

b69c217d3372d802.png

We can ask it to generate a better visualization via the prompt:

Can you visually show this class for better understanding

da5bd701323818d4.png

Our next step is to generate the unit tests and ask the Agent to test it out. I give the following prompt:

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

It generated the following Task artifact and went about its task.

21425379db336dc6.png

You can also see the details of the tests that it ran:

48f3320cd76b5cd8.png

One of the files that it generated was the test file too. A screenshot of which is shown below:

f962061f115c040f.png

Things to try out

Take your own code and see what you can ask the Agent to do, right from adding more functionality to refactoring parts of your code.

12. Congratulations

Congratulations, you've successfully installed and understood how to use Antigravity, the Agent-first development platform. The different use cases that we tried should help you take your own requirements and explore how Antigravity can collaborate with you to complete them.

Reference docs