Pierwsze kroki z Google Antigravity

1. Wprowadzenie

W tym module dowiesz się więcej o Google Antigravity (w dalszej części dokumentu określanym jako Antigravity), platformie do tworzenia agentów, która wprowadza IDE w erę agentów.

W przeciwieństwie do standardowych asystentów kodowania, którzy tylko uzupełniają wiersze kodu, Antigravity zapewnia „centrum dowodzenia” do zarządzania autonomicznymi agentami, którzy mogą planować, kodować, a nawet przeglądać internet, aby pomóc Ci w tworzeniu projektów.

Antigravity to platforma „agent-first”. Zakłada ona, że AI jest nie tylko narzędziem do pisania kodu, ale autonomicznym podmiotem zdolnym do planowania, wykonywania, weryfikowania i powtarzania złożonych zadań inżynieryjnych przy minimalnej ingerencji człowieka.

Czego się nauczysz

  1. Instalowanie i konfigurowanie Antigravity
  2. Poznaj kluczowe pojęcia związane z Antigravity, takie jak Menedżer agentów, Edytor, Przeglądarka i inne.
  3. Kilka przykładów zastosowania funkcji Antigravity

Czego potrzebujesz

Obecnie Antigravity jest dostępna w wersji przedpremierowej na osobistych kontach Gmail. Zawiera bezpłatny limit wykorzystania modeli najwyższej jakości.

Antigravity musi być zainstalowany lokalnie w systemie. Produkt jest dostępny na komputerach Mac, Windows i wybranych dystrybucjach Linuksa. Oprócz własnego urządzenia potrzebujesz:

  • przeglądarki Chrome,
  • konto Gmail (osobiste konto Gmail);

Ten przewodnik został opracowany z myślą o użytkownikach i deweloperach na wszystkich poziomach zaawansowania (w tym początkujących).

2. Instalacja

Zaczniemy od instalacji Antigravity. Obecnie produkt jest dostępny w wersji podglądowej i możesz zacząć z niego korzystać na osobistym koncie Gmail.

Otwórz stronę pobrań i kliknij odpowiednią wersję systemu operacyjnego. Uruchom instalator aplikacji i zainstaluj ją na komputerze. Po zakończeniu instalacji uruchom aplikację Antigravity. Powinien pojawić się ekran podobny do tego:

29fada39721093c.png

Za każdym razem kliknij Dalej. Główne etapy znajdziesz poniżej:

  • Choose setup flow: Wyświetli się opcja importowania z dotychczasowych ustawień VS Code lub Cursor. Zaczniemy od nowa.
  • Choose an Editor theme type. Zastosujemy ciemny motyw, ale to zależy od Ciebie i Twoich preferencji.
  • How do you want to use Antigravity agent:

cf89c9d16394914c.png

Przyjrzyjmy się temu bliżej. Pamiętaj, że nie jest to stałe i może się zmienić w dowolnym momencie, nawet podczas interakcji z agentem.

Zanim przejdziemy do opcji, przyjrzyjmy się 2 konkretnym właściwościom (widocznym po prawej stronie okna):

Zasady dotyczące wykonywania zadań na urządzeniu

Chodzi o to, aby dać agentowi możliwość wykonywania poleceń (aplikacji lub narzędzi) w terminalu. Dostępne są 3 opcje.

  • Off: nigdy nie wykonuj automatycznie poleceń terminala (z wyjątkiem tych, które znajdują się na konfigurowalnej liście dozwolonych)
  • Auto: agent decyduje, czy automatycznie wykonać dane polecenie terminala. Jeśli będzie potrzebować Twojej zgody, podejmie decyzję i poprosi Cię o nią.
  • Turbo: zawsze automatycznie wykonuje polecenia terminala (z wyjątkiem tych, które znajdują się na konfigurowalnej liście odmowy).

Sprawdź zasadę

Podczas wykonywania zadania Agent tworzy różne artefakty (plan zadania, plan wdrożenia itp.). Zasady sprawdzania są ustawione tak, aby można było określić, kto decyduje o tym, czy należy je sprawdzić. Czy zawsze chcesz ją sprawdzać, czy chcesz pozostawić decyzję agentowi. Dostępne są 3 opcje.

  • Always Proceed: Agent nigdy nie prosi o opinię
  • Agent Decides: agent zdecyduje, kiedy poprosić o opinię.
  • Request Review: Agent zawsze prosi o opinię

Gdy już to zrozumiesz, zobaczysz, że 4 opcje to nic innego jak konkretne ustawienia wstępne zasad wykonywania i sprawdzania w przypadku 3 z nich, a 4. opcja umożliwia pełne dostosowanie. Te 4 opcje są dostępne, abyśmy mogli wybrać, jak dużą autonomię chcesz przyznać agentowi w zakresie wykonywania poleceń w terminalu i sprawdzania artefaktów przed przejściem do kolejnego etapu zadania.

Dostępne są te 4 opcje:

  • Programowanie oparte na agentach
  • Tworzenie z pomocą agenta
  • Tworzenie oprogramowania na podstawie opinii
  • Konfiguracja niestandardowa

Opcja rozwoju z pomocą agenta to dobra i zalecana opcja, ponieważ umożliwia agentowi podjęcie decyzji i wrócenie do użytkownika w celu uzyskania zatwierdzenia.

Wybierz opcję, która Ci odpowiada, ale na razie zalecamy skorzystanie z rekomendowanego podejścia.

  • Configure your Editor Wybierz preferowane opcje.
  • Sign in to Google: jak wspomnieliśmy wcześniej, Antigravity jest dostępny w wersji podglądowej i bezpłatny, jeśli masz osobiste konto Gmail. Zaloguj się teraz na swoje konto. Pamiętaj, aby utworzyć nowy profil Chrome. Otworzy się przeglądarka, w której możesz się zalogować. Po pomyślnym uwierzytelnieniu zobaczysz komunikat podobny do tego poniżej, który przekieruje Cię z powrotem do aplikacji Antigravity. Płynąć z prądem.
  • Terms of Use: możesz podjąć decyzję, czy chcesz włączyć tę opcję, a potem kliknąć Dalej.

Doprowadzi Cię to do momentu prawdy, w którym Antigravity będzie czekać na współpracę z Tobą. Możemy zaczynać.

3. Menedżer agentów

Antigravity to rozwidlenie platformy open source Visual Studio Code (VS Code), ale radykalnie zmienia interfejs użytkownika, aby priorytetowo traktować zarządzanie agentami zamiast edycji tekstu. Interfejs jest podzielony na 2 główne okna: EdytorMenedżer agentów. Ten podział obowiązków odzwierciedla różnicę między wkładem poszczególnych osób a zarządzaniem inżynieryjnym.

Menedżer agentów: Centrum dowodzenia

Po uruchomieniu Antigravity użytkownik zwykle widzi nie drzewo plików, ale Menedżera agentów, jak pokazano poniżej:

d5ae91fc746e1bba.png

Ten interfejs działa jak panel Mission Control. Został on zaprojektowany do orkiestracji na wysokim poziomie, umożliwiając programistom tworzenie, monitorowanie i obsługiwanie wielu agentów działających asynchronicznie w różnych obszarach roboczych lub zadaniach.

W tym przypadku deweloper pełni rolę architekta. Określają one cele ogólne, np.:

  • Przebuduj moduł uwierzytelniania
  • Aktualizowanie drzewa zależności
  • Generowanie pakietu testów dla interfejsu Billing API

Jak widać na powyższym diagramie, każde z tych żądań powoduje utworzenie dedykowanego wystąpienia agenta. Interfejs użytkownika zawiera wizualizację tych równoległych ścieżek pracy, wyświetlając stan każdego agenta, artefakty, które wygenerował (plany, wyniki, różnice), oraz wszelkie oczekujące prośby o zatwierdzenie przez człowieka.

Ta architektura rozwiązuje kluczowe ograniczenie poprzednich środowisk IDE, które miały bardziej charakter czatbota, były liniowe i synchroniczne. W tradycyjnym interfejsie czatu deweloper musi poczekać, aż AI wygeneruje kod, zanim zada kolejne pytanie. W widoku menedżera w Antigravity deweloper może wysłać 5 różnych agentów do pracy nad 5 różnymi błędami jednocześnie, co skutecznie zwiększa przepustowość.

Jeśli klikniesz powyżej Dalej, możesz otworzyć przestrzeń roboczą.

ec72712ea24bf6d5.png

Pomyśl o Workspace tak, jak o VS Code, a wszystko będzie jasne. Możemy otworzyć folder lokalny, klikając przycisk, a następnie wybierając folder, od którego chcemy zacząć. W moim przypadku w folderze głównym znajdował się folder o nazwie my-agy-projects, który został przeze mnie wybrany. Możesz użyć zupełnie innego folderu.

Uwaga: możesz całkowicie pominąć ten krok, jeśli chcesz, i otworzyć Workspace w dowolnym momencie później.

Po wykonaniu tego kroku otworzy się okno Menedżera agentów, które wygląda tak:

156224e223eeda36.png

Zauważysz, że aplikacja jest od razu gotowa do rozpoczęcia nowej rozmowy w wybranym folderze obszaru roboczego (my-agy-projects). Pamiętaj, że możesz wykorzystać swoją wiedzę na temat pracy z innymi aplikacjami AI (Cursor, Gemini CLI) i użyć znaku @ oraz innych sposobów, aby uwzględnić dodatkowy kontekst podczas tworzenia promptów.

Sprawdź menu Planning i Model Selection. Menu wyboru modelu umożliwia wybranie jednego z aktualnie dostępnych modeli, z którego będzie korzystać Twój agent. Lista jest widoczna poniżej:

fb0744dc43911365.png

Podobnie agent będzie działać w domyślnym trybie Planning. Możemy też wybrać tryb Fast.

f403e40ad480efc9.png

Zobaczmy, co na ten temat mówi dokumentacja:

  • Planning: agent może planować przed wykonaniem zadań. Używaj go do szczegółowych badań, złożonych zadań lub pracy zespołowej. W tym trybie agent organizuje swoją pracę w grupach zadań, tworzy artefakty i podejmuje inne działania, aby dokładnie zbadać, przemyśleć i zaplanować swoją pracę w celu uzyskania optymalnej jakości. Zobaczysz tu znacznie więcej danych wyjściowych.
  • Fast: Agent będzie wykonywać zadania bezpośrednio. Używaj go do prostych zadań, które można wykonać szybciej, takich jak zmiana nazwy zmiennych, uruchamianie kilku poleceń bash lub inne mniejsze, lokalne zadania. Jest to przydatne, gdy szybkość jest ważnym czynnikiem, a zadanie jest wystarczająco proste, aby nie trzeba było się martwić o pogorszenie jakości.

Jeśli znasz pojęcie budżetu na myślenie i podobne terminy w przypadku agentów, możesz traktować to jako możliwość kontrolowania procesu myślowego agenta, co ma bezpośredni wpływ na budżet na myślenie. Na razie użyjemy ustawień domyślnych, ale pamiętaj, że w momencie wprowadzenia na rynek model Gemini 3 Pro będzie dostępny dla wszystkich w ramach ograniczonych limitów. Możesz więc spodziewać się odpowiednich komunikatów informujących o wyczerpaniu bezpłatnych limitów wykorzystania Gemini 3.

Poświęćmy teraz trochę czasu na omówienie Menedżera agentów (okna) i wyjaśnienie kilku kwestii, aby zrozumieć podstawowe elementy składowe, sposób poruszania się w Antigravity i inne zagadnienia. Poniżej znajduje się okno Menedżera agentów:

22f6dcf7b3edc583.png

Zapoznaj się z powyższym diagramem z numerami:

  1. Inbox: dzięki temu możesz śledzić wszystkie rozmowy w jednym miejscu. Gdy wyślesz agentów do wykonania zadań, pojawią się one w skrzynce odbiorczej. Możesz kliknąć skrzynkę odbiorczą, aby wyświetlić listę wszystkich bieżących rozmów. Kliknięcie dowolnej rozmowy spowoduje wyświetlenie wszystkich wymienionych wiadomości, stanu zadań, tego, co zrobił agent, a nawet informacji o tym, czy zadania czekają na Twoje zatwierdzenie. To świetny sposób, aby później wrócić do poprzedniego zadania, nad którym pracujesz. To bardzo przydatna funkcja.
  2. Start Conversation: kliknij ten przycisk, aby rozpocząć nową rozmowę. Spowoduje to przejście bezpośrednio do pola, w którym widnieje napis Ask anything.
  3. Workspaces: wspomnieliśmy o obszarach roboczych i o tym, że możesz pracować w dowolnym obszarze. W każdej chwili możesz dodać więcej obszarów roboczych i wybrać dowolny z nich podczas rozpoczynania rozmowy.
  4. Playground: To świetny sposób na rozpoczęcie rozmowy z agentem. Jeśli chcesz, możesz przekształcić ją w przestrzeń roboczą, w której masz większą kontrolę nad plikami itp. Możesz traktować ją jako obszar roboczy.
  5. Editor View: Jesteśmy w widoku Menedżera agentów. W dowolnym momencie możesz przełączyć się na widok edytora. Wyświetli się folder obszaru roboczego i wszystkie wygenerowane pliki. Możesz bezpośrednio edytować pliki lub nawet podać wskazówki w tekście, polecenie w edytorze, aby agent mógł coś zrobić lub zmienić zgodnie z Twoimi zmodyfikowanymi rekomendacjami lub instrukcjami. Widok edytora omówimy szczegółowo w dalszej części.
  6. Browser: Wreszcie dochodzimy do jednego z wyraźnych wyróżników, który sprawia, że Antigravity jest bardzo potężny. Jest to ścisła integracja z przeglądarką Chrome. W następnej sekcji skonfigurujemy przeglądarkę.

4. Konfigurowanie przeglądarki Antigravity

Zgodnie z dokumentacją, gdy agent chce wejść w interakcję z przeglądarką, wywołuje subagenta przeglądarki, aby wykonać bieżące zadanie. Podagent przeglądarki uruchamia model wyspecjalizowany w obsłudze stron otwartych w przeglądarce zarządzanej przez Antigravity, który różni się od modelu wybranego dla głównego agenta.

Ten podagent ma dostęp do różnych narzędzi niezbędnych do sterowania przeglądarką, w tym do klikania, przewijania, pisania, odczytywania dzienników konsoli i innych. Może też odczytywać otwarte strony za pomocą przechwytywania DOM, zrzutów ekranu lub analizowania Markdowna, a także nagrywać filmy.

Oznacza to, że musimy uruchomić i zainstalować rozszerzenie przeglądarki Antigravity. Zacznijmy od rozpoczęcia rozmowy w Playground i przejścia przez poszczególne etapy.

Kliknij Playground i przypisz agentowi zadanie go to antigravity.google, jak pokazano poniżej:

51a373d3da23db56.png

Prześlij zadanie. Zobaczysz, jak agent analizuje zadanie, i możesz sprawdzić jego proces myślowy. W pewnym momencie proces zostanie prawidłowo przeprowadzony i wyświetli się informacja o konieczności skonfigurowania agenta przeglądarki, jak pokazano poniżej. Kliknij Konfiguracja.

e7119f40e093afd2.png

Spowoduje to otwarcie przeglądarki i wyświetlenie komunikatu o konieczności zainstalowania rozszerzenia, jak pokazano poniżej:

9a5a43c17980e46c.png

Następnie przejdziesz do rozszerzenia Chrome, które możesz zainstalować.

f3468f0e5f3bb075.png

Po zainstalowaniu rozszerzenia Antigravity Agent zacznie działać i poprosi Cię o zezwolenie na wykonanie zadania. W otwartym oknie przeglądarki powinna być widoczna aktywność:

7f0367e00ac36d5a.png

Wróć do widoku Menedżera agentów. Powinny się w nim pojawić te informacje:

b9d89e1ebefcfd76.png

Dokładnie tego się spodziewaliśmy, ponieważ poprosiliśmy agenta o odwiedzenie witryny antigravity.google. Przyznaj mu uprawnienia, a zobaczysz, że witryna została bezpiecznie otwarta (patrz poniżej):

77fcc38b5fb4ca7c.png

Sprawdzanie artefaktów

Teraz zaczyna się robić ciekawie. Gdy agent zakończy pracę, powinna być widoczna cała jego praca. Obejmuje to artefakty, czyli podstawę, na której budujesz zaufanie w zakresie planowanych prac, tego, co zostało już zrobione, i sposobu weryfikacji.

Artefakty rozwiązują problem „luki w zaufaniu”. Gdy agent zgłasza „Błąd został naprawiony”, deweloper musi wcześniej przeczytać kod, aby to sprawdzić. W przypadku Antigravity agent tworzy artefakt, aby to udowodnić.

Antygrawitacja skupia się na tworzeniu kluczowych artefaktów w zależności od zadania. Może to być plan zadań, plan wdrożenia, a w końcu plan testów (z weryfikacją). W ramach tych planów warto uwzględnić m.in.:

  • Task Lists & Plans: przed napisaniem kodu agent generuje plan strukturalny. Użytkownik może sprawdzić ten plan, edytować go i zatwierdzić.
  • Code Diffs: standardowe widoki różnic pokazujące dokładnie, które wiersze ulegną zmianie.
  • Screenshots: agent rejestruje stan interfejsu przed zmianą i po niej.
  • Browser Recordings: w przypadku interakcji dynamicznych (np. „Kliknij przycisk logowania, poczekaj na spinner, sprawdź, czy panel się wczytał”), agent nagrywa film z sesji. Deweloper może obejrzeć ten film, aby sprawdzić, czy wymaganie funkcjonalne zostało spełnione, bez konieczności uruchamiania aplikacji.
  • Test Results: strukturalne logi testów zakończonych powodzeniem lub niepowodzeniem, generowane i wykonywane przez agenta.

W prawym górnym rogu, obok opcji „Sprawdź zmiany w widoku Menedżera agentów”, powinien być widoczny przycisk przełączania artefaktów. Jeśli jest włączony, możesz zobaczyć listę wygenerowanych artefaktów:

5320f447471c43eb.png

Powinien pojawić się widok artefaktów, jak pokazano poniżej. W tym przypadku poleciliśmy agentowi odwiedzić stronę antigravity.google, dlatego zrobił zrzut ekranu, utworzył film itp.

19d9738bb3c7c0c9.png

Deweloperzy mogą wchodzić w interakcje z tymi artefaktami za pomocą „komentarzy w stylu Dokumentów Google”. Możesz wybrać konkretną czynność lub zadanie, podać polecenie w sposób, w jaki chcesz, aby zostało wykonane, a następnie przesłać je do agenta. Agent przetworzy te informacje i odpowiednio je wykorzysta. Zastanów się nad użyciem interaktywnych Dokumentów Google, w których możesz przekazywać autorowi informacje zwrotne, a on może je uwzględniać.

5. Ponowne otwarcie skrzynki odbiorczej

Jeśli masz już kilka rozmów z agentami, zajrzyj do skrzynki odbiorczej w oknie Menedżera agentów. Wyświetlą się wszystkie rozmowy. Kliknij dowolną rozmowę, aby zobaczyć jej historię, wygenerowane artefakty i inne informacje. W naszym przypadku po przeprowadzeniu pierwszej rozmowy w skrzynce odbiorczej pojawi się lista wątków, jak pokazano poniżej:

1a2a1bbdd4464ecf.png

Kliknięcie tej rozmowy spowoduje wyświetlenie szczegółów:

b7e493765cfb1b1a.png

Możesz też kontynuować rozmowę w tym miejscu.

6. The Editor

Edytor zachowuje znajomy interfejs VS Code, dzięki czemu doświadczeni deweloperzy mogą wykorzystać swoje przyzwyczajenia. Obejmuje standardowy eksplorator plików, wyróżnianie składni i ekosystem rozszerzeń.

Aby przejść do edytora, możesz kliknąć przycisk Otwórz edytor w prawym górnym rogu Menedżera agentów.

91f3c96b81d993b9.png

Edytor jest wzbogacony o funkcję „Agent Awareness”.

  • Inline Command: edytor obsługuje kodowanie wibracyjne i instrukcje wbudowane, dzięki czemu użytkownicy mogą wyróżniać kod i instruować agenta, aby "Make this more efficient" lub "Add comments explaining this logic".
  • Agent Side Panel : użyj panelu po prawej stronie edytora, aby bezpośrednio współpracować z agentem. Możesz tu rozpocząć nowe rozmowy lub wydać instrukcje dotyczące zmiany kodu.

Gdy przejdziemy do przypadków użycia związanych z tworzeniem stron internetowych, w których agent tworzy wiele plików z kodem, możemy zajrzeć do edytora, aby zobaczyć pliki, wprowadzić zmiany i bezpośrednio wchodzić w interakcje z agentem.

7. Przełączanie się między Edytorem a Menedżerem agentów

Pamiętaj, że Antigravity ma swoje zdanie na temat tego, że zarówno edytor, jak i menedżer agentów to osobne okna i oba są potrzebne. Możesz przełączać się między nimi, klikając przycisk Otwórz menedżera agentów w prawym górnym rogu, gdy jesteś w edytorze, lub klikając przycisk Otwórz edytor w prawym górnym rogu, gdy jesteś w menedżerze agentów.

Możesz też użyć tego skrótu klawiszowego, aby przełączać się między tymi 2 trybami: Cmd + E

8. Przypadki użycia

Skoro mamy już podstawową wiedzę o tym produkcie, przyjrzyjmy się kilku przypadkom użycia, aby zobaczyć, jak działa w praktyce. Pamiętaj, że Antigravity to platforma, która w pierwszej kolejności obsługuje agentów. Oznacza to, że w większości przypadków po prostu przekazujemy instrukcję agentowi, który następnie samodzielnie wykonuje zadanie, w razie potrzeby prosi o uprawnienia, tworzy artefakty i powiadamia nas o zakończeniu zadania. W związku z tym nie możemy w każdym z tych przypadków użycia wygenerować wszystkich wyników rozmowy z agentem. Udostępnimy instrukcje i kilka niezbędnych zrzutów ekranu z oczekiwanymi wynikami, ale Twoje wyniki mogą się nieco różnić.

Omówimy różne przypadki użycia, od automatyzacji kilku zadań w witrynach zewnętrznych po generowanie i weryfikowanie przypadków testów jednostkowych projektu oraz pełne tworzenie witryny. Do dzieła.

Najważniejsze informacje

To prosty przypadek użycia, ale może stanowić podstawę do korzystania z przeglądarki internetowej w celu odwiedzania witryn, wyodrębniania informacji, wykonywania działań i zwracania danych użytkownikowi.

W tym przypadku odwiedzimy witrynę Wiadomości Google i wyodrębnimy z niej pewne informacje. Możesz jednak łatwo przeprowadzić eksperyment na wybranej witrynie i sprawdzić, jak to działa.

Sprawdź, czy jesteś w sekcji Agent Manager i czy masz wybraną opcję Playground, jak pokazano poniżej:

cffa12c98a68cb6c.png

Następnie podaj tę instrukcję:

8513d489eea0b014.png

Spowoduje to uruchomienie procesu agenta, który stwierdzi, że musi uruchomić przeglądarkę itp. Zwróć szczególną uwagę na proces myślowy i zobacz, jak agent wykonuje swoją pracę. Jeśli wszystko pójdzie dobrze, przeglądarka Antigravity uruchomi się i otworzy witrynę, jak pokazano poniżej. Niebieska ramka wokół witryny oznacza, że Agent kontroluje teraz przeglądarkę i przegląda witrynę, aby uzyskać informacje.

9d594588f2ffe6bc.png

Po zakończeniu pracy powinny też zostać wygenerowane artefakty, jak pokazano poniżej:

dc6cf4e7d8425df8.png

Przykładowe wykonanie przez agenta jest pokazane poniżej:

fb7397cd2cce0682.png

Zwróć uwagę, że po lewej stronie znajduje się sekcja Proces myślowy. Możesz też przewijać punkty i wyświetlać odtwarzanie oraz inne dane.

Co możesz wypróbować

  • Gdy to zrozumiesz, wybierz dostępną witrynę, z której agent ma pobrać lub podsumować dane. Wybierz witrynę, która zawiera panele i wykresy, i poproś o wybranie kilku wartości.
  • Wypróbuj ten prompt: Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.

Generowanie dynamicznej witryny za pomocą Pythona i Flask

Przejdźmy teraz do wygenerowania kompletnej aplikacji internetowej. Utworzona przez nas aplikacja internetowa będzie stroną z informacjami o 1-dniowym wydarzeniu technicznym, podczas którego wystąpi wielu prelegentów.

Upewnij się, że jesteś w sekcji Agent Manager i masz wybraną opcję Playground.

Wpisz ten 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. 

Możesz rozpocząć rozmowę, wpisując powyższy prompt:

Podczas wykonywania zadania Agent będzie tworzyć artefakty:

  • Artefakt zadania
  • Artefakt implementacji
  • Artefakt przewodnika

Podany poniżej artefakt zadania był początkową sekwencją zadań, które agent powinien wykonać na podstawie otrzymanego zadania. Poniżej znajdziesz przykładowy zrzut ekranu z wykonania:

c95d82e1c040698f.png

Następnie możesz kliknąć artefakt Plan wdrożenia. Przykładowy zrzut ekranu znajdziesz poniżej:

632169a236bc62cc.png

Ostatnim artefaktem jest przewodnik. Zawiera wszystkie działania wykonane przez agenta, jak pokazano poniżej:

e3f6152d6f54d4f9.png

Zauważ, że serwer został uruchomiony i wyświetlony został adres URL. Po kliknięciu tego adresu otworzy się aplikacja. Przykładowy zrzut ekranu znajdziesz poniżej:

abf879f2ce53d055.png

Jeśli przełączę się na Edytor, zobaczę na ekranie folder, w którym jest generowana aplikacja Python Flask. Zauważysz też, że po prawej stronie znajduje się tag Agent mode. Możesz tam kontynuować rozmowę.

b0fea8aa65c3a1c5.png

Załóżmy, że chcemy dodać do wydarzenia więcej prelekcji. Możemy pozostać w edytorze i w panelu agenta, a następnie wydać polecenie, np. Add two more talks to the schedule.

W rezultacie agent przeanalizuje wymagania, zaktualizuje zadanie i plan wdrożenia, a następnie zweryfikuje zaktualizowaną funkcję. Przykładowa rozmowa jest widoczna poniżej:

ba8455e6f68973e9.png

Jeśli chcesz, możesz wrócić do Menedżera agentów. Ten proces powinien pomóc Ci zrozumieć, jak przejść z roli menedżera agentów na rolę edytującego, wprowadzić odpowiednie zmiany itp.

Uwaga: podczas wykonywania tego zadania agent próbował uruchomić serwer Flask na porcie 5000, który był używany na bieżącym komputerze. Próbował on kolejnych wolnych portów, aż zdecydował się użyć portu 8080 i udało mu się uruchomić serwer.

Co możesz wypróbować

  • Dodaj dodatkowe funkcje, które chcesz mieć w aplikacji. Podaj szczegóły agentowi i obserwuj, jak wykonuje zadanie, najpierw modyfikując listę zadań, a potem plan wdrożenia itd.
  • Poproś agenta o wygenerowanie pliku README lub dodatkowej dokumentacji aplikacji.

Generowanie prostej aplikacji zwiększającej produktywność

Teraz wygenerujemy prostą aplikację internetową z timerem Pomodoro.

Upewnij się, że jesteś w sekcji Agent Manager i masz wybraną opcję Playground. Wpisz ten prompt:

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

Zwróć uwagę, jak tworzy listę zadań i plan wdrożenia, a potem je realizuje. Zwracaj uwagę na proces, ponieważ w niektórych sytuacjach może on wymagać Twojej weryfikacji. Przykładowe wykonanie pokazano poniżej.

5be0a668e5a67d85.png

W takim przypadku powinna też uruchomić przeglądarkę Antigravity, przeprowadzić własne testy, a następnie potwierdzić, że się powiodły. Jednym z wygenerowanych przez nią elementów był artefakt multimedialny zawierający film z weryfikacji. To świetny sposób, aby sprawdzić, co zostało przetestowane. Zaproponowałem też zmiany stylu, ponieważ nie zostały one wprowadzone, a usługa mogła to zrobić.

Gotowa aplikacja wyglądała tak jak poniżej i prezentowała się całkiem dobrze.

c9ab6bca97a51a8c.png

Możemy dodać do aplikacji ładny obraz timera. Wystarczy, że wydamy dodatkowe polecenie w sposób podany poniżej:

Add an image to the application that displays a timer.

W rezultacie agent dodał nowe zadanie do artefaktu Zadanie:

498dd946d4e9ae55.png

Następnie wygenerował obraz w trakcie wykonywania zadania:

c291da9bdb37ff96.png

W końcu aplikacja wyświetliła obraz zgodnie z naszą prośbą:

de8f418ba8e4600d.png

Co możesz wypróbować

  • Zwróć uwagę, że tło ikony klepsydry w aplikacji nie jest przezroczyste. Spróbuj poprosić agenta, aby to wyjaśnił.
  • Wypróbuj kilka odmian dowolnej aplikacji, którą chcesz wygenerować. Eksperymentuj ze stylami i obrazami, proś o wprowadzenie zmian itp.

Generowanie testów jednostkowych, atrap i weryfikowanie testów

Ostatni przypadek użycia, który tu wypróbujemy, to generowanie testów jednostkowych dla konkretnego pliku z kodem, który mamy, oraz wykonywanie i weryfikowanie tych testów przez agenta.

W tym celu utworzymy przestrzeń roboczą z jednym plikiem Pythona, jak pokazano poniżej:

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}

Upewnij się, że powyższy plik Pythona znajduje się lokalnie w folderze i załaduj go jako obszar roboczy w Antigravity.

Jest to prosta usługa zamówień, która ma w funkcji checkout te kluczowe funkcje:

  1. Sprawdza, czy koszyk nie jest pusty.
  2. Sprawdź stan wszystkich produktów.
  3. Oblicza cenę końcową.
  4. Obciąża płatność.
  5. Aktualizuje asortyment.

Przypiszemy agentowi zadanie wygenerowania przypadków testów jednostkowych, dostarczenia implementacji Mock i przeprowadzenia testów, aby upewnić się, że zakończą się one powodzeniem.

Otworzymy konkretny folder obszaru roboczego i zauważysz, że do odwoływania się do pliku możemy teraz używać symbolu @. Możemy na przykład:

8368856e51a7561a.png

Pojawi się wyjaśnienie, czym jest ten plik:

b69c217d3372d802.png

Możemy poprosić o wygenerowanie lepszej wizualizacji za pomocą promptu:

Can you visually show this class for better understanding

da5bd701323818d4.png

Następnym krokiem jest wygenerowanie testów jednostkowych i poproszenie agenta o ich przetestowanie. Wpisuję ten prompt:

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

Wygenerował on ten artefakt zadania i przystąpił do jego realizacji.

21425379db336dc6.png

Możesz też zobaczyć szczegóły przeprowadzonych testów:

48f3320cd76b5cd8.png

Jednym z wygenerowanych przez niego plików był też plik testowy. Zrzut ekranu pokazujący ten widok znajdziesz poniżej:

8ee68905942825d.png

Co możesz wypróbować

Skorzystaj z własnego kodu i sprawdź, o co możesz poprosić agenta – od dodania większej liczby funkcji po refaktoryzację fragmentów kodu.

9. Gratulacje

Gratulacje! Udało Ci się zainstalować i poznać sposób korzystania z Antigravity, platformy deweloperskiej opartej na agentach. Różne przypadki użycia, które przetestowaliśmy, powinny pomóc Ci w określeniu własnych wymagań i sprawdzeniu, jak Antigravity może Ci pomóc w ich spełnieniu.

Dokumentacja