Начало работы с Google Antigravity

1. Введение

В этом практическом занятии вы узнаете о Google Antigravity (далее в документе именуемом просто Antigravity), платформе для разработки с использованием агентов, которая развивает IDE в эпоху разработки, ориентированной на агентов.

В отличие от стандартных помощников по программированию, которые просто автоматически дополняют строки, Antigravity предоставляет «Центр управления» для управления автономными агентами, которые могут планировать, программировать и даже просматривать веб-страницы, чтобы помочь вам в разработке.

Antigravity разработана как платформа, ориентированная на агентов. Она предполагает, что ИИ — это не просто инструмент для написания кода, а автономный субъект, способный планировать, выполнять, проверять и итеративно решать сложные инженерные задачи с минимальным участием человека.

Что вы узнаете

  • Установка и настройка Antigravity.
  • Изучение ключевых концепций антигравитации, таких как менеджер агентов, редактор, браузер и многое другое.
  • Рассмотрим несколько вариантов применения антигравитации.

Что вам понадобится

В настоящее время Antigravity доступен в режиме предварительного просмотра для личных учетных записей Gmail. Он предоставляет бесплатную квоту для использования премиум-моделей.

Программа Antigravity должна быть установлена ​​локально на вашем компьютере. Продукт доступен для Mac, Windows и некоторых дистрибутивов Linux. Помимо вашего компьютера, вам потребуется следующее:

  • Веб-браузер Chrome
  • Аккаунт Gmail (личный аккаунт Gmail).

Этот практический семинар предназначен для пользователей и разработчиков всех уровней (включая начинающих).

Сообщение о проблемах

В процессе работы над лабораторной работой и с программой Antigravity вы можете столкнуться с проблемами.

По вопросам, связанным с этим руководством (опечатки, неверные инструкции), пожалуйста, сообщите об ошибке, используя кнопку Report a mistake в левом нижнем углу этого руководства:

b06b582bcd847f6d.png

Сообщения об ошибках или пожелания по улучшению функций Antigravity следует отправлять непосредственно в Antigravity. Это можно сделать в Agent Manager, используя ссылку Provide Feedback в левом нижнем углу:

281ac826fb44d427.png

Вы также можете перейти в редактор, используя ссылку Report Issue под значком своего профиля:

e8afd782a8f92129.png

2. Установка

Начнём с установки Antigravity. В настоящее время продукт доступен для предварительного просмотра, и вы можете начать работу с ним, используя свою личную учетную запись Gmail.

Перейдите на страницу загрузок и выберите подходящую версию операционной системы для вашего случая. Запустите установщик приложения и установите его на свой компьютер. После завершения установки запустите приложение Antigravity. Вы должны увидеть экран, похожий на следующий:

29fada39721093c.png

Пожалуйста, каждый раз нажимайте кнопку Next . Основные шаги подробно описаны ниже:

  • Выберите процесс настройки: это откроет возможность импорта из существующих настроек VS Code или курсора. Мы начнем с чистого листа.
  • Выберите тип темы оформления редактора : Мы выберем темную тему, но это полностью на ваше усмотрение.
  • Как вы хотите использовать антигравитационный агент?

7ca55560ec377130.png

Давайте разберемся в этом подробнее. Помните, что настройки можно изменить в любое время через пользовательские настройки Antigravity ( Cmd + , ).

Прежде чем углубиться в параметры, давайте рассмотрим некоторые конкретные свойства (которые вы видите справа от диалогового окна).

Политика исполнения на терминале

Речь идёт о предоставлении агенту возможности выполнять команды (приложения/инструменты) в вашем терминале:

  • Всегда продолжать: Всегда автоматически выполнять команды терминала (за исключением тех, которые находятся в настраиваемом списке запрещенных).
  • Запрос на проверку: Перед выполнением команд терминала запросите проверку и одобрение пользователя.

Политика пересмотра

В процессе выполнения своей задачи агент создает различные артефакты (план задачи, план реализации и т. д.). Политика проверки устанавливается таким образом, что вы можете определить, кто принимает решение о необходимости проверки. Следует ли вам всегда проводить проверку или позволить агенту принимать это решение? Соответственно, здесь также есть три варианта.

  • Всегда продолжайте: агент никогда не просит оставить отзыв.
  • Решение принимает агент: агент сам решает, когда запросить проверку.
  • Запрос на проверку: Агент всегда запрашивает проверку.

Политика выполнения JavaScript

При включении этой функции агент может использовать инструменты браузера для открытия URL-адресов, чтения веб-страниц и взаимодействия с содержимым браузера. Эта политика определяет, как выполняется JavaScript в браузере.

  • Всегда продолжать: Агент не будет останавливаться, чтобы запросить разрешение на выполнение JavaScript в браузере. Это обеспечивает Агенту максимальную автономию для выполнения сложных действий и проверок в браузере, но также создает максимальную уязвимость для уязвимостей безопасности.
  • Проверка запроса: Агент всегда будет останавливаться, чтобы запросить разрешение на выполнение кода JavaScript в браузере.
  • Отключено: Агент никогда не будет выполнять код JavaScript в браузере.

Теперь, когда мы разобрались с различными политиками, четыре варианта слева представляют собой конкретные настройки для выполнения команд в терминале, проверки и выполнения JavaScript (для трех из них доступен четвертый вариант, который позволяет полностью настроить параметры). Эти четыре варианта позволяют выбрать, насколько автономным вы хотите предоставить агенту для выполнения команд в терминале и проверки артефактов перед продолжением выполнения задачи.

Вот 4 варианта:

  • Защищенный режим : Защищенный режим обеспечивает расширенные средства защиты агента, позволяя ограничить его доступ к внешним ресурсам и конфиденциальным операциям. При включении защищенного режима применяется ряд мер безопасности для защиты вашей среды.
  • Разработка, основанная на отзывах (рекомендуется) : Агент будет часто запрашивать отзывы.
  • Разработка, управляемая агентом : агент никогда не будет запрашивать проверку.
  • Пользовательская конфигурация

Вариант разработки, основанный на проверке, представляет собой хороший баланс и является рекомендуемым, поскольку позволяет агенту принять решение и отправить его пользователю на утверждение.

Далее следует страница «Настройка параметров редактора» , где вы можете выбрать свои предпочтения по следующим параметрам:

  • Назначение клавиш: Настройте назначение клавиш.
  • Расширения: Установите популярные языковые и другие рекомендуемые расширения.
  • Командная строка: Установите инструмент командной строки, чтобы открыть Antigravity с помощью agy .

Теперь вы готовы войти в Google. Как упоминалось ранее, Antigravity доступен в режиме предварительного просмотра и бесплатен, если у вас есть личная учетная запись Gmail. Войдите сейчас, используя свою учетную запись. Это откроет браузер, позволяющий войти в систему. После успешной аутентификации вы увидите сообщение, похожее на приведенное ниже, и оно вернет вас в приложение Antigravity. Действуйте!

Наконец, Условия использования . Вы можете решить, хотите ли вы принять участие или нет, а затем нажать Next .

Это приведет вас к моменту истины, где вас будет ждать Антигравитация, готовая к сотрудничеству.

3. Менеджер агентов

Мы готовы начать!

Antigravity является ответвлением от открытого программного обеспечения Visual Studio Code (VS Code), но радикально меняет пользовательский интерфейс, отдавая приоритет управлению агентами, а не редактированию текста. Интерфейс разделен на два отдельных основных окна: Editor и Agent Manager . Такое разделение задач отражает различие между индивидуальным вкладом и управлением проектами.

Менеджер агентов: Центр управления полетами

При запуске Antigravity пользователь обычно видит не древовидную структуру файлов, а Менеджер агентов, как показано ниже:

d5ae91fc746e1bba.png

Этот интерфейс служит панелью Mission Control . Он предназначен для высокоуровневой оркестровки, позволяя разработчикам запускать, отслеживать и взаимодействовать с несколькими агентами, работающими асинхронно в разных рабочих областях или задачах.

В этом контексте разработчик выступает в роли архитектора. Он определяет основные цели, например:

  • Проведите рефакторинг модуля аутентификации.
  • Обновите дерево зависимостей
  • Сгенерируйте набор тестов для API выставления счетов.

Как показано на диаграмме выше, каждый из этих запросов запускает отдельный экземпляр агента. Пользовательский интерфейс предоставляет визуализацию этих параллельных рабочих потоков, отображая статус каждого агента, созданные им артефакты (планы, результаты, различия) и любые ожидающие запроса на утверждение человеком.

Эта архитектура устраняет ключевое ограничение предыдущих IDE, которые больше напоминали чат-боты, отличавшиеся линейной и синхронной архитектурой. В традиционном чат-интерфейсе разработчику приходилось ждать, пока ИИ завершит генерацию кода, прежде чем задать следующий вопрос. В представлении Manager View от Antigravity разработчик может одновременно отправлять пять разных агентов для работы над пятью разными ошибками, эффективно увеличивая их производительность.

Если вы нажмете кнопку Next выше, у вас появится возможность открыть рабочее пространство.

ec72712ea24bf6d5.png

Представьте себе рабочее пространство таким, каким вы его знали по VS Code, и всё готово. Итак, мы можем открыть локальную папку, нажав на кнопку, а затем выбрав папку для начала. В моём случае у меня была папка в домашней папке с названием my-agy-projects , и я выбрал её. Вы можете использовать совершенно другую папку. Обратите внимание, что вы можете полностью пропустить этот шаг, если хотите, и открыть рабочее пространство можно в любое время позже.

После выполнения этого шага вы окажетесь в окне «Менеджер агентов», которое показано ниже:

156224e223eeda36.png

Вы заметите, что приложение сразу же настраивается на начало нового диалога в выбранной папке рабочей области ( my-agy-projects ). Вы можете использовать свои знания работы с другими приложениями ИИ (Cursor, Gemini CLI) и использовать @ и другие способы для добавления дополнительного контекста при вводе вопросов.

Обратите внимание на выпадающие списки Planning и « Model Selection . В выпадающем списке «Выбор модели» вы можете выбрать одну из доступных на данный момент моделей для использования вашим агентом. Список представлен ниже:

fb0744dc43911365.png

Аналогично, мы обнаруживаем, что агент будет находиться в режиме Planning по умолчанию. Но мы также можем выбрать Fast режим.

f403e40ad480efc9.png

Давайте посмотрим, что об этом говорится в документации :

  • Planning : Агент может планировать свою работу до начала выполнения задач. Используйте этот режим для глубоких исследований, сложных задач или совместной работы. В этом режиме Агент организует свою работу в группы задач, создает артефакты и предпринимает другие шаги для тщательного исследования, обдумывания и планирования своей работы с целью достижения оптимального качества. Здесь вы увидите гораздо больше результатов.
  • Fast : Агент будет выполнять задачи напрямую. Используйте его для простых задач, которые можно выполнить быстрее, например, переименование переменных, запуск нескольких команд bash или другие небольшие локализованные задачи. Это полезно, когда скорость является важным фактором, а задача достаточно проста, чтобы не было опасений по поводу ухудшения качества.

Если вам знакомы понятия «бюджет мышления» и аналогичные термины в контексте агентов, представьте это как возможность контролировать мышление агента, тем самым напрямую влияя на бюджет мышления. Пока мы будем использовать настройки по умолчанию, но помните, что на момент запуска модель Gemini 3 Pro была доступна в рамках ограниченных квот для всех пользователей, поэтому ожидайте соответствующих сообщений о том, что вы исчерпали эти бесплатные квоты для использования Gemini 3.

Давайте теперь немного поговорим о окне «Менеджер агентов» и разберемся в некоторых моментах, чтобы стало понятно, как работают основные компоненты, как перемещаться по Antigravity и многое другое. Окно «Менеджер агентов» отображается ниже:

22f6dcf7b3edc583.png

Пожалуйста, обратитесь к приведенной выше схеме с указанием цифр:

  1. Inbox : Воспринимайте это как способ отслеживать все ваши разговоры в одном месте. Когда вы отправляете агентов на выполнение заданий, они появляются во входящих, и вы можете щелкнуть по входящим, чтобы получить список всех текущих разговоров. Нажатие на любой из разговоров приведет вас ко всем обмененным сообщениям, статусу задач, тому, что агент уже сделал, или даже к тому, ожидает ли он подтверждения с вашей стороны. Это отличный способ вернуться позже к предыдущей задаче, над которой вы работали. Очень удобная функция.
  2. Start Conversation : Нажмите на эту кнопку, чтобы начать новый разговор. Это переведет вас непосредственно к полю ввода, где написано Ask anything .
  3. Workspaces : Мы уже упоминали о рабочих пространствах и о том, что вы можете работать в любом рабочем пространстве по своему усмотрению. Вы можете добавлять новые рабочие пространства в любое время и выбирать любое рабочее пространство при начале разговора.
  4. Playground : Это отличный способ начать разговор с агентом, а затем, при желании, преобразовать его в рабочее пространство, где вы будете иметь более строгий контроль над файлами и т.д. Представьте это как рабочую область для черновиков.
  5. Editor View : Пока что мы находимся в режиме менеджера агентов. При желании вы можете в любой момент переключиться в режим редактора. В этом режиме отобразится папка рабочей области и все созданные файлы. Вы можете редактировать файлы непосредственно в редакторе или даже добавлять подсказки и команды прямо в редакторе, чтобы агент мог внести изменения в соответствии с вашими рекомендациями/инструкциями. Режим редактора мы подробно рассмотрим в следующем разделе.
  6. Browser : Наконец, мы подошли к одному из очевидных отличий, которое делает Antigravity очень мощным инструментом, а именно к его тесной интеграции с браузером Chrome. Давайте перейдем к настройке браузера в следующем разделе.

4. Антигравитационный браузер

Согласно документации , когда агент хочет взаимодействовать с браузером, он вызывает субагента браузера для выполнения соответствующей задачи. Субагент браузера работает на модели, специализированной для работы со страницами, открытыми в браузере, управляемом Antigravity, которая отличается от модели, выбранной вами для основного агента.

Этот субагент имеет доступ к множеству инструментов, необходимых для управления вашим браузером, включая клики, прокрутку, ввод текста, чтение журналов консоли и многое другое. Он также может считывать информацию с открытых страниц с помощью захвата DOM, скриншотов или анализа Markdown, а также записывать видео.

Это значит, что нам нужно запустить и установить расширение для браузера Antigravity. Давайте сделаем это, начав диалог в Playground и выполнив необходимые шаги.

Выберите Playground и назначьте агенту следующую задачу go to antigravity.google , как показано ниже:

51a373d3da23db56.png

Отправьте задание . Вы увидите, как агент анализирует задание, и сможете проследить ход его мыслей. В какой-то момент он корректно продолжит выполнение и сообщит, что необходимо настроить агент браузера, как показано ниже. Нажмите Setup .

e7119f40e093afd2.png

После этого откроется браузер и отобразится сообщение с предложением установить расширение, как показано ниже:

82fb87d7d75b4a6c.png

Продолжайте, и вы перейдете к расширению для Chrome, которое затем сможете установить.

f3468f0e5f3bb075.png

После успешной установки расширения Antigravity Agent начнет работу и сообщит, что ожидает от вас разрешения на выполнение своей задачи. В открытом окне браузера вы должны увидеть некоторую активность:

7f0367e00ac36d5a.png

Вернитесь в режим просмотра «Диспетчер агентов», и вы увидите следующее:

b9d89e1ebefcfd76.png

Это именно то, чего мы ожидали, поскольку попросили Агента перейти на сайт antigravity.google . Предоставьте ему разрешение, и вы увидите, что переход на сайт был осуществлен безопасно, как показано ниже:

77fcc38b5fb4ca7c.png

5. Артефакты

В процессе планирования и выполнения своей работы Antigravity создает артефакты , чтобы доносить результаты своей деятельности и получать обратную связь от пользователей. К ним относятся файлы в формате Markdown, архитектурные схемы, изображения, записи браузера, сравнения кода и так далее.

Артефакты решают проблему «пробела в доверии». Когда агент заявляет: «Я исправил ошибку», разработчику раньше приходилось читать код, чтобы это проверить. В Antigravity агент создает артефакт, чтобы это доказать.

Вот основные артефакты, созданные с помощью антигравитации:

  • Task Lists : Перед написанием кода агент генерирует структурированный план. Обычно редактировать этот план не требуется, но вы можете просмотреть его и в некоторых случаях добавить комментарий для внесения изменений, если это необходимо.
  • Implementation Plan : Он используется для планирования изменений в кодовой базе для выполнения задачи. Эти планы содержат технические подробности о необходимых изменениях и предназначены для ознакомления пользователем, если только в вашей политике проверки артефактов не установлен параметр «Всегда продолжать».
  • Walkthrough : Оно создается после завершения агентом выполнения задачи и представляет собой краткое описание изменений и способов их тестирования.
  • Code diffs : Хотя технически это не артефакт, Antigravity также создает сравнение кода, которое вы можете просмотреть и прокомментировать.
  • Screenshots : Агент фиксирует состояние пользовательского интерфейса до и после изменения.
  • Browser Recordings : Для динамических взаимодействий (например, «Нажмите кнопку входа, дождитесь появления индикатора загрузки, убедитесь, что загрузилась панель управления») агент записывает видео своей сессии. Разработчик может просмотреть это видео, чтобы убедиться в выполнении функциональных требований, не запуская приложение самостоятельно.

Артефакты создаются и отображаются как в окне «Менеджер агентов», так и в окне «Редактор».

В режиме редактора в правом нижнем углу можно нажать на Artifacts :

5deff47fe0a93aa1.png

В окне «Менеджер агентов» в правом верхнем углу, рядом с кнопкой Review changes , вы увидите кнопку для переключения отображения артефактов, или, если она включена, вы увидите список сгенерированных артефактов:

5320f447471c43eb.png

Вы должны увидеть представление «Артефакты», как показано ниже. В нашем случае мы дали указание Агенту посетить страницу antigravity.google , и поэтому он сделал скриншот и записал видео:

19d9738bb3c7c0c9.png

Различия в коде можно увидеть в разделе Review Changes в редакторе:

e1d8fd6e7df4daf3.png

Разработчики могут взаимодействовать с этими артефактами и различиями в коде, используя комментарии в стиле Google Docs. Вы можете выбрать конкретное действие или задачу, указать желаемую команду и отправить её агенту. Агент обработает этот отзыв и внесет соответствующие изменения. Представьте себе интерактивный Google Docs, где вы оставляете отзыв автору, а автор затем вносит в него свои доработки.

6. Вернитесь к папке «Входящие».

Если вы уже начали несколько диалогов с агентами, теперь вам следует посмотреть свою Inbox в окне Agent Manager . Там отобразятся все диалоги. Щелкните любой из диалогов, чтобы просмотреть историю этого диалога, созданные артефакты и многое другое. В нашем случае, после запуска первого диалога, в папке «Входящие» отображается список диалогов, как показано ниже:

1a2a1bbdd4464ecf.png

Нажав на ссылку, вы получите подробную информацию:

b7e493765cfb1b1a.png

Вы можете продолжить разговор и отсюда.

7. Редактор

Редактор сохраняет привычный интерфейс VS Code, гарантируя, что он учитывает навыки опытных разработчиков. Он включает в себя стандартный файловый менеджер, подсветку синтаксиса и экосистему расширений.

Чтобы перейти в редактор, вы можете нажать кнопку Open Editor в правом верхнем углу окна Agent Manager.

Настройка и расширения

В типичной конфигурации у вас будут видны редактор, терминал и агент:

7996408528de93e1.png

Если это не так, вы можете переключать панели терминала и агента следующим образом:

  • Для переключения панели терминала используйте сочетание клавиш Ctrl + ` .
  • Для переключения панели агента используйте сочетание клавиш Cmd + L

Кроме того, Antigravity может установить некоторые расширения во время установки, но в зависимости от используемого языка программирования вам, вероятно, потребуется установить больше расширений. Например, для разработки на Python вы можете установить следующие расширения:

bd33a79837b5a12a.png

Редактор

Автозаполнение

По мере ввода кода в редакторе включается интеллектуальная функция автозаполнения, которую можно просто перевести с помощью клавиши Tab:

e90825ed7a009350.png

Вкладка для импорта

Вам будет предложена вкладка для импорта, содержащая рекомендации по добавлению недостающих зависимостей:

bcab60794caa0aec.png

Нажмите Tab для перехода

Вам будут предложены подсказки с использованием клавиши Tab для перехода к следующему логическому месту в коде:

8610ae5217be7fe5.png

Команды

В редакторе или терминале можно запускать команды с помощью сочетания Cmd + I для автодополнения на естественном языке.

В редакторе вы можете запросить метод для вычисления чисел Фибоначчи, а затем принять или отклонить его:

13a615e515cea100.png

В терминале можно получить подсказки по командам:

5a75e560f998cedc.png

Боковая панель агента

В редакторе можно переключать боковую панель агента несколькими способами.

Ручное открытие

Вы можете вручную переключать панель агента справа с помощью сочетания клавиш Cmd + L

Вы можете начать задавать вопросы, использовать @ для добавления контекста, например, файлов, каталогов, серверов MCP, или использовать символ / для ссылки на рабочий процесс (сохранённую подсказку):

95c5a6d31d771748.png

Вы также можете выбрать один из двух режимов разговора: Fast или Planning .

d3d1449f12510e3e.png

Fast рекомендуется для выполнения быстрых задач, а Planning — для более сложных задач, где агент создает план, который вы можете утвердить.

Вы также можете выбрать различные модели для диалога:

af709bcc03c1e21e.png

Объясните и исправьте

Ещё один способ запустить агента — навести курсор на проблему и выбрать Explain and fix :

e45cbe02ed76b9c1.png

Сообщите о проблемах агенту

Вы также можете перейти в раздел Problems и выбрать Send all to Agent , чтобы агент попытался устранить эти проблемы:

e4992d14708005d0.png

Отправьте вывод терминала агенту.

Вы даже можете выделить часть вывода терминала и отправить её агенту с помощью Cmd + L :

c40293bab474c9b1.png

Переключение между редактором и менеджером агентов.

В любой момент вы можете переключаться между режимом редактора и полнофункциональным режимом управления агентами, нажав кнопку Open Agent Manager в правом верхнем углу, когда находитесь в режиме редактора, и обратно, нажав кнопку Open Editor в правом верхнем углу, когда находитесь в режиме управления агентами.

В качестве альтернативы, для переключения между двумя режимами можно использовать сочетание клавиш Cmd + E

8. Предоставьте обратную связь.

В основе Antigravity лежит способность без труда собирать ваши отзывы на каждом этапе работы. В процессе выполнения задачи агент создает различные артефакты:

  • План внедрения и список задач (до начала кодирования)
  • Сравнение кода (по мере генерации кода)
  • Пошаговое руководство для проверки результатов (после написания кода)

Эти артефакты позволяют «Антигравитации» сообщать о своих планах и ходе работ. Что еще важнее, они также дают вам возможность оставлять отзывы агенту в комментариях в стиле 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 в качестве веб-фреймворка на Python. Мы можем добавить комментарий к плану реализации, чтобы вместо него использовать FastAPI. После добавления комментария либо отправьте его, либо попросите Antigravity Proceed с обновленным планом.

Список задач

После обновления плана внедрения компания Antigravity создает список задач. Это конкретный перечень шагов, которые Antigravity будет выполнять для создания и проверки приложения.

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

Это второе место, где вы можете оставить отзыв.

Например, в нашем случае вы можете добавить более подробные инструкции по проверке, добавив следующий комментарий: Verify application by adding, editing, and deleting a todo item and taking a screenshot.

Изменения в коде

На этом этапе Antigravity сгенерирует некоторый код в новых файлах. Вы можете Accept all или Reject all эти изменения в боковой панели чата агента, не вдаваясь в подробности.

Вы также можете нажать Review changes , чтобы увидеть подробности изменений и добавить подробные комментарии к коду. Например, мы можем добавить следующий комментарий в main.py : Add basic comments to all methods

Это отличный способ итеративной доработки кода с помощью Antigravity.

Пошаговое руководство

После завершения кодирования Antigravity запускает сервер, открывает браузер для проверки приложения. Выполняется ручное тестирование, например, добавление задач, обновление задач и т.д. Все это благодаря расширению Antigravity для браузера. В конце создается файл с пошаговым описанием процесса проверки приложения. Он включает скриншот или пошаговую инструкцию с записью процесса проверки в браузере.

Вы также можете оставлять комментарии к скриншоту или записи браузера в пошаговом руководстве. Например, можно добавить комментарий Change the blue theme to orange theme и отправить его. После отправки комментария Antigravity внесет изменения, проверит результаты и обновит пошаговое руководство.

Отменить изменения

И наконец, после каждого шага, если вас не устраивает изменение, у вас есть возможность отменить его в чате. Просто выберите кнопку ↩️ Undo changes up to this point в чате.

9. Правила и рабочие процессы

В Antigravity есть несколько вариантов настройки: Правила и Рабочие процессы .

Нажмите на значок ... в правом верхнем углу и выберите Customizations . Вы увидите Rules и Workflows :

ff8babd8d8bcfa83.png

Правила помогают направлять поведение агента. Это рекомендации, которые вы можете предоставить, чтобы убедиться, что агент следует им при генерации кода и тестов. Например, вы можете захотеть, чтобы агент придерживался определенного стиля кодирования или всегда документировал методы. Вы можете добавить их в качестве правил, и агент будет их учитывать.

Рабочие процессы — это сохраненные подсказки, которые можно запускать по запросу с помощью / , во время взаимодействия с агентом. Они также определяют поведение агента, но запускаются пользователем по запросу.

Хорошая аналогия: правила больше похожи на системные инструкции, а рабочие процессы — на сохраненные подсказки, которые можно выбрать по запросу.

Правила и рабочие процессы могут применяться глобально или для каждой рабочей области и сохраняться в следующих местах:

  • Глобальное правило: ~/.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 с уже реализованным рядом тестов!

11febd7940ef8199.png

Хороший!

10. Обеспечение безопасности агента

Предоставление агенту ИИ доступа к вашему терминалу и браузеру — это палка о двух концах. Это позволяет осуществлять автономную отладку и развертывание, но также открывает возможности для внедрения подсказок и утечки данных.

Antigravity решает эту проблему с помощью детализированной системы разрешений, основанной на политиках автоматического выполнения команд терминала, списках разрешенных и списках запрещенных действий.

При первой настройке Antigravity или через меню настроек необходимо выбрать политику Terminal Command Auto Execution . Этот параметр определяет автономность агента в отношении команд оболочки.

Текущие настройки можно посмотреть в разделе Antigravity — Settings , затем Advanced Settings . Там вы увидите раздел Terminal с настройками агента. Запомните эту таблицу, если захотите изменить этот параметр на другой:

Режим политики

Описание

Выключенный

Агент никогда не выполняет автоматически команды терминала, если это явно не разрешено.

Авто

Агент принимает решение о выполнении команды, основываясь на внутренних моделях безопасности. Он запрашивает разрешение на выполнение рискованных команд.

Турбо

Агент всегда автоматически выполняет команды, если ему явно не запрещено это делать.

Настройка списка разрешенных пользователей

Список разрешенных объектов используется преимущественно в сочетании с политикой «Выкл.» . Он представляет собой позитивную модель безопасности, означающую, что все запрещено, если это прямо не разрешено. Это наиболее безопасная конфигурация.

Пошаговая настройка

  1. Установите параметр « Автоматическое выполнение команд терминала» в положение «Выкл.» .
  2. Добавьте следующую команду в список разрешенных команд терминала, нажав кнопку «Добавить» рядом с ней: ls -al . При желании вы можете добавить и другие команды терминала.

Проверка списка разрешенных объектов.

  • Попросите агента: List the files in this directory .
  • Агент автоматически запускает ls .
  • Попросите агента: Delete the <some file>
  • Агент попытается выполнить rm <filepath> , но Antigravity заблокирует её и принудительно запросит проверку у пользователя, поскольку rm отсутствует в списке разрешенных. Перед выполнением команды Antigravity должен запросить у вас разрешение.

Настройка списка запрещенных сайтов

Список запрещенных действий — это мера безопасности для режима Turbo (а иногда и Auto ). Он представляет собой негативную модель безопасности, означающую, что разрешено все, если это прямо не запрещено. Это основано на предположении разработчика о каждой возможной опасности, что является рискованным подходом, но обеспечивает максимальную скорость.

Пошаговая настройка

  1. Установите параметр « Автоматическое выполнение команд терминала» в режим «Турбо» .
  2. Добавьте следующие команды в список запрещенных команд терминала, нажав кнопку «Добавить» рядом с ним.
  3. рм
  4. rmdir
  5. судо
  6. локон
  7. wget

Проверка списка запрещенных сайтов

  • Спросите у агента: Check the version of python .
  • Агент автоматически запускает команду python --version .
  • Спросите у агента: Download home page www.google.com .
  • Агент пытается выполнить команду curl . Antigravity обнаруживает curl в списке запрещенных команд и блокирует выполнение, запрашивая у вас ручное подтверждение.

Безопасность браузера

Способность Antigravity просматривать веб-страницы — это сверхспособность, но и уязвимость. Агент, посетивший скомпрометированный сайт с документацией, может столкнуться с мгновенной инъекционной атакой.

Чтобы предотвратить это, вы можете добавить список разрешенных URL-адресов браузера для агента браузера.

Текущие настройки можно посмотреть в разделе Antigravity — Settings , а затем Advanced Settings . В настройках браузера вы увидите раздел «Разрешенные URL-адреса браузера», как показано ниже:

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.

Основные новости

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