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

۱. مقدمه

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

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

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

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

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

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

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

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

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

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

۲. نصب

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

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

29fada39721093c.png

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

  • Choose setup flow: این گزینه، امکان وارد کردن تنظیمات فعلی VS Code یا Cursor را برای شما فراهم می‌کند. ما با یک شروع تازه شروع خواهیم کرد.
  • Choose an Editor theme type. ما قالب تیره را انتخاب می‌کنیم، اما کاملاً به سلیقه شما بستگی دارد.
  • How do you want to use Antigravity agent :

cf89c9d16394914c.png

بیایید این موضوع را کمی بیشتر با جزئیات بررسی کنیم و به یاد داشته باشیم که این موضوع قطعی نیست و می‌تواند در هر زمانی تغییر کند، حتی زمانی که با نماینده تعامل دارید.

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

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

این در مورد دادن توانایی به عامل برای اجرای دستورات (برنامه‌ها/ابزارها) در ترمینال شما است. در اینجا سه ​​گزینه وجود دارد.

  • Off : هرگز دستورات ترمینال را به طور خودکار اجرا نکنید (به جز مواردی که در لیست مجاز قابل تنظیم هستند)
  • Auto : عامل تصمیم می‌گیرد که آیا هر دستور ترمینال داده شده را به طور خودکار اجرا کند یا خیر. در صورتی که نیاز به اجازه شما داشته باشد، خودش تصمیم می‌گیرد و از شما اجازه می‌گیرد.
  • Turbo : همیشه دستورات ترمینال را به طور خودکار اجرا می‌کند (به جز مواردی که در یک لیست Deny قابل تنظیم قرار دارند)

سیاست بررسی

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

  • Always Proceed : نماینده هرگز درخواست بررسی نمی‌کند
  • Agent Decides : نماینده تصمیم می‌گیرد چه زمانی درخواست بررسی کند.
  • Request Review : نماینده همیشه درخواست بررسی می‌کند

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

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

  • توسعه مبتنی بر عامل
  • توسعه به کمک عامل
  • توسعه مبتنی بر بررسی
  • پیکربندی سفارشی

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

بنابراین گزینه خود را انتخاب کنید و در حالت ایده‌آل، فعلاً رویکرد پیشنهادی را در نظر بگیرید.

  • Configure your Editor : تنظیمات برگزیده خود را انتخاب کنید.
  • Sign in to Google : همانطور که قبلاً ذکر شد، Antigravity در حالت پیش‌نمایش و در صورت داشتن حساب جیمیل شخصی رایگان است. بنابراین اکنون با حساب خود وارد شوید. مطمئن شوید که یک پروفایل کروم جدید برای این کار ایجاد کرده‌اید. این کار مرورگر را باز می‌کند و به شما امکان ورود می‌دهد. در صورت تأیید موفقیت‌آمیز، پیامی مشابه پیام زیر مشاهده خواهید کرد و شما را به برنامه Antigravity هدایت می‌کند. با روند پیش بروید.
  • Terms of Use : می‌توانید تصمیم بگیرید که آیا می‌خواهید در این طرح شرکت کنید یا خیر و سپس روی «بعدی» کلیک کنید.

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

۳. مدیر عامل

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

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

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

d5ae91fc746e1bba.png

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

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

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

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

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

اگر در بالا روی «بعدی» کلیک کنید، می‌توانید یک فضای کاری (Workspace) باز کنید.

ec72712ea24bf6d5.png

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

توجه داشته باشید، در صورت تمایل می‌توانید از این مرحله به طور کامل صرف نظر کنید و بعداً نیز می‌توانید در هر زمانی یک فضای کاری (Workspace) باز کنید.

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

156224e223eeda36.png

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

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

fb0744dc43911365.png

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

f403e40ad480efc9.png

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

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

اگر با بودجه تفکر و اصطلاحات مشابه در Agents آشنا هستید، این را به عنوان توانایی کنترل تفکر Agent در نظر بگیرید، در نتیجه تأثیر مستقیمی بر بودجه تفکر خواهد داشت. فعلاً با پیش‌فرض‌ها پیش می‌رویم، اما به یاد داشته باشید که در زمان عرضه، موجودی مدل 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 به Agent بدهید، همانطور که در زیر نشان داده شده است:

51a373d3da23db56.png

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

e7119f40e093afd2.png

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

9a5a43c17980e46c.png

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

f3468f0e5f3bb075.png

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

7f0367e00ac36d5a.png

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

b9d89e1ebefcfd76.png

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

77fcc38b5fb4ca7c.png

بازرسی آثار باستانی

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

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

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

  • Task Lists & Plans : قبل از نوشتن کد، عامل یک برنامه ساختاریافته ایجاد می‌کند. کاربر می‌تواند این برنامه را بررسی، ویرایش و تأیید کند.
  • Code Diffs : نماهای استاندارد تفاوت که دقیقاً نشان می‌دهند کدام خطوط تغییر خواهند کرد.
  • Screenshots : عامل، وضعیت رابط کاربری را قبل و بعد از تغییر ثبت می‌کند.
  • Browser Recordings : برای تعاملات پویا (مثلاً «روی دکمه ورود کلیک کنید، منتظر چرخنده باشید، بارگذاری داشبورد را تأیید کنید»)، عامل ویدئویی از جلسه خود ضبط می‌کند. توسعه‌دهنده می‌تواند این ویدئو را تماشا کند تا تأیید کند که نیاز عملکردی بدون اجرای خود برنامه برآورده شده است.
  • Test Results : گزارش‌های ساختاریافته از آزمون‌های موفق/ناموفق که توسط عامل تولید و اجرا می‌شوند.

در بالا سمت راست، کنار «بررسی تغییرات در نمای مدیر عامل»، باید بتوانید دکمه‌ای را برای تغییر وضعیت مصنوعات ببینید یا اینکه آن را روشن کنید، می‌توانید لیست مصنوعات تولید شده را مشاهده کنید:

5320f447471c43eb.png

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

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

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

۵. صندوق ورودی ایمیل‌ها را دوباره بررسی کنید

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

1a2a1bbdd4464ecf.png

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

b7e493765cfb1b1a.png

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

۶. ویراستار

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

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

۹۱f3c96b81d993b9.png

ویرایشگر با «آگاهی عامل» تقویت شده است.

  • Inline Command : این ویرایشگر از کدنویسی vibe و دستورالعمل درون‌خطی پشتیبانی می‌کند، که در آن کاربران می‌توانند کد را هایلایت کرده و به عامل دستور دهند که "Make this more efficient" یا "Add comments explaining this logic" .
  • Agent Side Panel : از پنل سمت راست ویرایشگر برای کار مستقیم با نماینده استفاده کنید. می‌توانید از اینجا مکالمات جدید را شروع کنید یا دستورالعمل‌هایی برای تغییر کد خود ارائه دهید.

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

۷. تغییر وضعیت بین ویرایشگر و مدیر عامل

به خاطر داشته باشید که Antigravity در این واقعیت که ویرایشگر و مدیر عامل هر دو پنجره‌های جداگانه‌ای هستند، قاطع است و نیاز مبرمی به هر دو وجود دارد. شما می‌توانید از طریق دکمه Open Agent Manager در بالا سمت راست وقتی در ویرایشگر هستید یا با کلیک بر روی دکمه Open Editor در بالا سمت راست وقتی در مدیر عامل هستید، از یکی به دیگری تغییر دهید.

همچنین، می‌توانید از میانبر صفحه‌کلید زیر برای تغییر بین این دو حالت استفاده کنید: Cmd + E

۸. موارد استفاده

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

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

اخبار مهم

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

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

مطمئن شوید که در قسمت Agent Manager هستید و مطابق شکل زیر، Playground انتخاب کرده‌اید:

cffa12c98a68cb6c.png

سپس دستور زیر را بدهید:

8513d489eea0b014.png

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

9d594588f2ffe6bc.png

وقتی کارش تمام شد، باید همانطور که در زیر نشان داده شده است، شاهد تولید Artifacts نیز باشید:

d6cf4e7d8425df8.png

نمونه‌ای از اجرای برنامه توسط Agent در زیر نشان داده شده است:

fb7397cd2cce0682.png

توجه کنید که در سمت چپ، فرآیند تفکر را داریم، همچنین می‌توانید نقاط را پیمایش کرده و پخش و سایر داده‌ها را مشاهده کنید.

چیزهایی که باید امتحان کنید

  • وقتی این را فهمیدید، وب‌سایتی را انتخاب کنید که در دسترس است و می‌خواهید نماینده به آن مراجعه کند و برخی داده‌ها را از آن دریافت/خلاصه کند. وب‌سایتی را در نظر بگیرید که می‌دانید داشبورد و نمودار دارد و از آن بخواهید چند مقدار را انتخاب کند.
  • دستور زیر را امتحان کنید: Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.

ایجاد یک وب‌سایت پویا با پایتون + فلسک

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

یک بار دیگر، مطمئن شوید که در قسمت 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

و در نهایت، شما مصنوع Walkthrough را دارید. این شامل تمام کارهایی است که مامور انجام داده است، همانطور که در زیر نشان داده شده است:

e3f6152d6f54d4f9.png

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

abf879f2ce53d055.png

اگر به ویرایشگر بروم، متوجه خواهید شد که پوشه‌ای که برنامه پایتون فلاسک در آن تولید می‌شود در آن قرار دارد. همچنین متوجه خواهید شد که Agent mode در سمت راست برچسب‌گذاری شده است و می‌توانید مکالمه را در آنجا نیز ادامه دهید.

b0fea8aa65c3a1c5.png

حالا، فرض کنید می‌خواهیم چند سخنرانی دیگر به رویداد اضافه کنیم. می‌توانیم در ویرایشگر بمانیم و در پنل Agent، دستوری مانند Add two more talks to the schedule را بدهیم.

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

ba8455e6f68973e9.png

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

توجه: هنگام اجرای این وظیفه، عامل (Agent) سعی کرد سرور Flask را روی پورت ۵۰۰۰ که در دستگاه فعلی در حال استفاده بود، راه‌اندازی کند. او به تلاش برای یافتن پورت آزاد بعدی ادامه داد تا اینکه تصمیم گرفت از ۸۰۸۰ استفاده کند و توانست سرور را راه‌اندازی کند.

چیزهایی که باید امتحان کنید

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

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

اکنون قصد داریم یک برنامه وب تایمر پومودورو ساده ایجاد کنیم.

مطمئن شوید که در قسمت Agent Manager هستید و Playground انتخاب کرده‌اید. دستور زیر را اجرا کنید:

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

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

5be0a668e5a67d85.png

در این حالت، باید مرورگر Antigravity را نیز اجرا کند، آزمایش‌های خود را انجام دهد و سپس تأیید کند که آزمایش‌ها با موفقیت انجام شده‌اند. یکی از چیزهایی که ایجاد کرد، یک Media Artifact بود که شامل ویدیوی تأیید آن است. این یک روش عالی برای دیدن آنچه آزمایش شده است، می‌باشد. من همچنین برخی تغییرات سبک را پیشنهاد دادم، زیرا این تغییرات اعمال نشد و توانست این کار را انجام دهد.

برنامه نهایی شبیه به برنامه زیر بود و ظاهر بسیار خوبی دارد.

c9ab6bca97a51a8c.png

چطور است که یک تصویر تایمر زیبا به برنامه اضافه کنیم؟ تنها کاری که باید انجام دهیم این است که دستورالعمل تکمیلی را مانند زیر صادر کنیم:

Add an image to the application that displays a timer.

این منجر به اضافه شدن یک وظیفه جدید توسط عامل به مصنوع وظیفه شد:

498dd946d4e9ae55.png

سپس همزمان با انجام وظیفه خود، تصویری تولید کرد:

c291da9bdb37ff96.png

در نهایت، برنامه تصویر مورد نظر ما را داشت:

de8f418ba8e4600d.png

چیزهایی که باید امتحان کنید

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

تولید تست‌های واحد، نمونه‌های آزمایشی (Mock Stubs) و اعتبارسنجی تست‌ها

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

برای این کار، ما یک فضای کاری خواهیم داشت که یک فایل پایتون واحد دارد، همانطور که در زیر نشان داده شده است:

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}

مطمئن شوید که فایل پایتون فوق را به صورت محلی در یک پوشه دارید و آن را به عنوان یک فضای کاری در Antigravity بارگذاری می‌کنید.

این یک سرویس سفارش ساده است که قابلیت‌های کلیدی زیر را در بخش checkout دارد:

  1. اعتبارسنجی می‌کند که سبد خرید خالی نیست.
  2. موجودی همه اقلام را بررسی کنید.
  3. قیمت نهایی را محاسبه می‌کند.
  4. هزینه‌ها را پرداخت می‌کند.
  5. موجودی را به‌روزرسانی می‌کند.

ما قصد داریم وظیفه تولید موارد تست واحد، ارائه پیاده‌سازی‌های Mock و اجرای تست‌ها را برای اطمینان از موفقیت آنها به Agent واگذار کنیم.

ما پوشه فضای کاری خاص خود را باز خواهیم کرد و متوجه خواهید شد که اکنون می‌توانیم از نماد @ نیز برای ارجاع به فایل استفاده کنیم. به عنوان مثال، می‌توانیم موارد زیر را انجام دهیم:

۸۳۶۸۸۵۶e۵۱a۷۵۶۱a.png

این توضیحاتی در مورد ماهیت این فایل ارائه می‌دهد:

b69c217d3372d802.png

می‌توانیم از آن بخواهیم که از طریق اعلان، تجسم بهتری ایجاد کند:

Can you visually show this class for better understanding

da5bd701323818d4.png

مرحله بعدی من تولید تست‌های واحد و درخواست از Agent برای آزمایش آن است. من دستور زیر را می‌دهم:

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

مصنوع وظیفه زیر را تولید کرد و به وظیفه خود عمل کرد.

۲۱۴۲۵۳۷۹db336dc6.png

همچنین می‌توانید جزئیات آزمایش‌های انجام شده را مشاهده کنید:

48f3320cd76b5cd8.png

یکی از فایل‌هایی که تولید کرد، فایل آزمایشی نیز بود. تصویری از آن در زیر نشان داده شده است:

8ee68905942825d.png

چیزهایی که باید امتحان کنید

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

۹. تبریک

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

اسناد مرجع