Premiers pas avec Google Antigravity

1. Introduction

Dans cet atelier de programmation, vous allez découvrir Google Antigravity (appelé Antigravity dans le reste du document), une plate-forme de développement agentique qui fait évoluer l'IDE vers l'ère de l'agent-first.

Contrairement aux assistants de codage standards qui ne font que compléter les lignes, Antigravity fournit un "centre de contrôle" pour gérer les agents autonomes capables de planifier, de coder et même de naviguer sur le Web pour vous aider à créer.

Antigravity est conçu comme une plate-forme "agent-first". Cela suppose que l'IA n'est pas seulement un outil d'écriture de code, mais un acteur autonome capable de planifier, d'exécuter, de valider et d'itérer des tâches d'ingénierie complexes avec un minimum d'intervention humaine.

Points abordés

  • Installer et configurer Antigravity
  • Découvrez les concepts clés d'Antigravity, comme le gestionnaire d'agents, l'éditeur, le navigateur et plus encore.
  • Explorer quelques cas d'utilisation avec Antigravity

Prérequis

Antigravity est actuellement disponible en aperçu pour les comptes Gmail personnels. Il est fourni avec un quota sans frais pour utiliser les modèles de premier plan.

Antigravity doit être installé localement sur votre système. Le produit est disponible sur Mac, Windows et certaines distributions Linux. En plus de votre propre machine, vous aurez besoin des éléments suivants :

  • Navigateur Web Chrome
  • Un compte Gmail (compte Gmail personnel).

Cet atelier de programmation s'adresse aux utilisateurs et aux développeurs de tous niveaux (y compris aux débutants).

Problèmes liés aux rapports

À mesure que vous progressez dans l'atelier de programmation et avec Antigravity, vous pouvez rencontrer des problèmes.

Pour les problèmes liés à l'atelier de programmation (fautes de frappe, instructions incorrectes), veuillez signaler un bug à l'aide du bouton Report a mistake en bas à gauche de cet atelier de programmation :

b06b582bcd847f6d.png

Pour les bugs ou les demandes de fonctionnalités liés à Antigravity, veuillez signaler le problème dans Antigravity. Vous pouvez le faire dans Agent Manager en cliquant sur le lien Provide Feedback en bas à gauche :

281ac826fb44d427.png

Vous pouvez également accéder à l'éditeur en cliquant sur le lien Report Issue sous l'icône de votre profil :

e8afd782a8f92129.png

2. Installation

Nous allons commencer par installer Antigravity. Le produit est actuellement disponible en aperçu. Vous pouvez utiliser votre compte Gmail personnel pour commencer à l'utiliser.

Accédez à la page Téléchargements et cliquez sur la version du système d'exploitation qui s'applique à votre cas. Lancez le programme d'installation de l'application et installez-la sur votre ordinateur. Une fois l'installation terminée, lancez l'application Antigravity. Un écran semblable à celui-ci doit s'afficher :

29fada39721093c.png

Veuillez cliquer sur Next à chaque fois. Les étapes clés sont détaillées ci-dessous :

  • Choisir le flux de configuration : cette option vous permet d'importer vos paramètres VS Code ou Cursor existants. Nous allons repartir à zéro.
  • Choisissez un type de thème pour l'éditeur : nous allons choisir le thème sombre, mais c'est à vous de décider.
  • Comment souhaitez-vous utiliser l'agent Antigravity ?

7ca55560ec377130.png

Examinons cela de plus près. N'oubliez pas que vous pouvez modifier les paramètres à tout moment dans les paramètres utilisateur Antigravity (Cmd + ,).

Avant d'examiner les options, regardons quelques propriétés spécifiques (que vous voyez à droite de la boîte de dialogue).

Règles d'exécution du terminal

Il s'agit de donner à l'agent la possibilité d'exécuter des commandes (applications/outils) dans votre terminal :

  • Toujours continuer : exécute toujours automatiquement les commandes du terminal (sauf celles figurant dans une liste de refus configurable).
  • Demander un examen : demandez à l'utilisateur d'examiner et d'approuver les commandes du terminal avant de les exécuter.

Examiner les règles

Au fur et à mesure que l'agent effectue sa tâche, il crée différents artefacts (plan de tâches, plan d'implémentation, etc.). La règle d'examen est définie de manière à ce que vous puissiez déterminer qui décide si un examen est nécessaire. Vous pouvez choisir de toujours l'examiner ou de laisser l'agent décider. Par conséquent, trois options sont également disponibles ici.

  • Toujours continuer : l'agent ne demande jamais d'examen.
  • L'agent décide : l'agent décide quand demander un avis.
  • Demander un avis : l'agent demande toujours un avis.

Règles d'exécution JavaScript

Lorsqu'elle est activée, l'IA peut utiliser les outils du navigateur pour ouvrir des URL, lire des pages Web et interagir avec le contenu du navigateur. Cette règle contrôle l'exécution de JavaScript dans le navigateur.

  • Toujours continuer : l'agent ne s'arrêtera pas pour demander l'autorisation d'exécuter JavaScript dans le navigateur. Cela offre à l'agent une autonomie maximale pour effectuer des actions et des validations complexes dans le navigateur, mais l'expose également le plus aux failles de sécurité.
  • Demander un examen : l'agent s'arrête toujours pour demander l'autorisation d'exécuter du code JavaScript dans le navigateur.
  • Désactivé : l'agent n'exécutera jamais de code JavaScript dans le navigateur.

Maintenant que nous avons compris les différentes règles, les quatre options de gauche ne sont que des paramètres spécifiques pour les règles d'exécution, d'examen et d'exécution JavaScript du terminal pour trois d'entre elles, et une quatrième option disponible où nous pouvons les contrôler de manière entièrement personnalisée. Ces quatre options sont disponibles pour que vous puissiez choisir le degré d'autonomie que vous souhaitez accorder à l'agent pour exécuter des commandes dans le terminal et faire examiner les artefacts avant de passer à la tâche suivante.

Voici les quatre options disponibles :

  • Mode sécurisé : le mode sécurisé offre des contrôles de sécurité renforcés pour l'agent, ce qui vous permet de limiter son accès aux ressources externes et aux opérations sensibles. Lorsque le mode sécurisé est activé, plusieurs mesures de sécurité sont appliquées pour protéger votre environnement.
  • Développement axé sur l'examen (recommandé) : l'agent demandera fréquemment un examen.
  • Développement piloté par l'agent : l'agent ne demandera jamais d'examen.
  • Configuration personnalisée

L'option Développement axé sur l'examen est un bon équilibre et est recommandée, car elle permet à l'agent de prendre une décision et de revenir vers l'utilisateur pour approbation.

La page de paramètres Configurer votre éditeur s'affiche ensuite. Vous pouvez y choisir vos préférences pour les éléments suivants :

  • Associations de touches : configurez vos associations de touches.
  • Extensions : installez les extensions de langage populaires et d'autres extensions recommandées.
  • Ligne de commande : installez l'outil de ligne de commande pour ouvrir Antigravity avec agy.

Vous êtes maintenant prêt à vous connecter à Google. Comme indiqué précédemment, Antigravity est disponible en mode Aperçu et sans frais si vous possédez un compte Gmail personnel. Connectez-vous à votre compte. Le navigateur s'ouvre et vous permet de vous connecter. Si l'authentification réussit, un message semblable à celui ci-dessous s'affiche et vous redirige vers l'application Antigravity. Laissez-vous porter par le mouvement.

Enfin, les Conditions d'utilisation. Vous pouvez décider d'activer ou non cette fonctionnalité, puis cliquer sur Next.

Vous arriverez alors au moment de vérité, où Antigravity vous attendra pour collaborer avec vous.

3. Responsable d'agence

Nous sommes prêts à commencer !

Antigravity s'appuie sur la base Open Source de Visual Studio Code (VS Code), mais modifie radicalement l'expérience utilisateur pour donner la priorité à la gestion des agents plutôt qu'à l'édition de texte. L'interface est divisée en deux fenêtres principales distinctes : Editor et Agent Manager. Cette séparation des responsabilités reflète la distinction entre la contribution individuelle et la gestion de l'ingénierie.

Gestionnaire d'agents : centre de pilotage

Lorsqu'il lance Antigravity, l'utilisateur n'est généralement pas accueilli par une arborescence de fichiers, mais par le Gestionnaire d'agents, comme illustré ci-dessous :

d5ae91fc746e1bba.png

Cette interface fait office de tableau de bord Mission Control. Il est conçu pour l'orchestration de haut niveau, permettant aux développeurs de générer, de surveiller et d'interagir avec plusieurs agents fonctionnant de manière asynchrone dans différents espaces de travail ou tâches.

Dans cette vue, le développeur agit en tant qu'architecte. Ils définissent des objectifs généraux. Voici quelques exemples :

  • Refactoriser le module d'authentification
  • Mettre à jour l'arborescence des dépendances
  • Générer une suite de tests pour l'API Billing

Comme l'indique le diagramme ci-dessus, chacune de ces requêtes génère une instance d'agent dédiée. L'UI fournit une visualisation de ces flux de travail parallèles, affichant l'état de chaque agent, les artefacts qu'ils ont produits (plans, résultats, différences) et les demandes d'approbation humaine en attente.

Cette architecture répond à une limite clé des IDE précédents, qui offraient une expérience de type chatbot, linéaire et synchrone. Dans une interface de chat traditionnelle, le développeur doit attendre que l'IA ait fini de générer du code avant de poser la question suivante. Dans la vue Gestionnaire d'Antigravity, un développeur peut envoyer cinq agents différents travailler sur cinq bugs différents simultanément, ce qui multiplie efficacement son débit.

Si vous cliquez sur Next ci-dessus, vous pouvez ouvrir un espace de travail.

ec72712ea24bf6d5.png

Pensez à l'espace de travail tel que vous le connaissiez dans VS Code, et le tour est joué. Nous pouvons ouvrir un dossier local en cliquant sur le bouton, puis en sélectionnant un dossier pour commencer. Dans mon cas, j'avais un dossier nommé my-agy-projects dans mon dossier personnel, que j'ai sélectionné. Vous pouvez utiliser un dossier complètement différent. Notez que vous pouvez ignorer complètement cette étape si vous le souhaitez et que vous pourrez ouvrir un espace de travail à tout moment par la suite.

Une fois cette étape terminée, vous serez dans la fenêtre "Agent Manager" (Gestionnaire d'agents), comme indiqué ci-dessous :

156224e223eeda36.png

Vous remarquerez que l'application est immédiatement configurée pour démarrer une nouvelle conversation dans le dossier de l'espace de travail (my-agy-projects) sélectionné. Vous pouvez utiliser vos connaissances existantes sur l'utilisation d'autres applications d'IA (Cursor, Gemini CLI) et utiliser @ ainsi que d'autres méthodes pour inclure du contexte supplémentaire lors de la création de requêtes.

Examinez les menus déroulants Planning et Model Selection. Le menu déroulant "Sélection du modèle" vous permet de choisir l'un des modèles disponibles pour votre agent. La liste est présentée ci-dessous :

fb0744dc43911365.png

De même, nous constatons que l'agent sera en mode Planning par défaut. Mais nous pouvons aussi opter pour le mode Fast.

f403e40ad480efc9.png

Voyons ce que dit la documentation à ce sujet :

  • Planning : un agent peut planifier avant d'exécuter des tâches. Utilisez-le pour effectuer des recherches approfondies, des tâches complexes ou des travaux collaboratifs. Dans ce mode, l'agent organise son travail en groupes de tâches, produit des artefacts et prend d'autres mesures pour rechercher, réfléchir et planifier son travail de manière approfondie afin d'obtenir une qualité optimale. Vous verrez beaucoup plus de résultats ici.
  • Fast : un agent exécute les tâches directement. Utilisez-le pour les tâches simples qui peuvent être effectuées plus rapidement, comme renommer des variables, lancer quelques commandes Bash ou d'autres tâches plus petites et localisées. Cela peut être utile lorsque la rapidité est un facteur important et que la tâche est suffisamment simple pour que la qualité ne soit pas un problème.

Si vous connaissez le budget de réflexion et les termes similaires dans les agents, considérez qu'il s'agit de la capacité à contrôler la réflexion de l'agent, ce qui a un impact direct sur le budget de réflexion. Nous allons utiliser les paramètres par défaut pour le moment, mais n'oubliez pas qu'au moment du lancement, le modèle Gemini 3 Pro sera disponible pour tous selon des quotas limités. Vous verrez donc des messages appropriés si vous avez épuisé ces quotas sans frais pour l'utilisation de Gemini 3.

Passons maintenant un peu de temps sur le gestionnaire d'agents (fenêtre) ici et comprenons quelques éléments, afin de clarifier les éléments de base, la façon de naviguer dans Antigravity et plus encore. La fenêtre du gestionnaire d'agents est présentée ci-dessous :

22f6dcf7b3edc583.png

Veuillez vous référer au schéma ci-dessus avec les numéros :

  1. Inbox : considérez-le comme un moyen de suivre toutes vos conversations au même endroit. Lorsque vous envoyez des agents effectuer des tâches, celles-ci apparaissent dans la boîte de réception. Vous pouvez cliquer sur la boîte de réception pour obtenir la liste de toutes les conversations en cours. En appuyant sur l'une des conversations, vous accédez à tous les messages échangés, à l'état des tâches, à ce que l'agent a produit ou même si une tâche est en attente de votre approbation. C'est un excellent moyen de revenir plus tard à une tâche précédente sur laquelle vous travailliez. Une fonctionnalité très pratique.
  2. Start Conversation : cliquez dessus pour démarrer une nouvelle conversation. Vous serez alors directement redirigé vers le champ de saisie Ask anything.
  3. Workspaces : nous avons mentionné les espaces de travail et le fait que vous pouvez travailler dans l'espace de travail de votre choix. Vous pouvez ajouter d'autres espaces de travail à tout moment et en sélectionner un au début de la conversation.
  4. Playground : c'est un excellent moyen de simplement commencer une conversation avec l'agent, puis de la convertir en espace de travail si vous souhaitez avoir un contrôle plus strict sur les fichiers, etc. Considérez-le comme une zone de brouillon.
  5. Editor View : pour l'instant, nous sommes dans la vue "Gestionnaire d'agents". Si vous le souhaitez, vous pouvez à tout moment passer à la vue Éditeur. Le dossier de votre espace de travail et tous les fichiers générés s'affichent. Vous pouvez modifier directement les fichiers ou même fournir des conseils et des commandes intégrés dans l'éditeur pour que l'agent puisse effectuer une action ou apporter des modifications en fonction de vos recommandations ou instructions. Nous aborderons la vue Éditeur en détail dans une section ultérieure.
  6. Browser : Enfin, nous arrivons à l'un des éléments différenciateurs qui rendent Antigravity très puissant : son intégration étroite au navigateur Chrome. Passons à la configuration du navigateur dans la section suivante.

4. Navigateur Antigravity

Comme indiqué dans la documentation, lorsque l'agent souhaite interagir avec le navigateur, il appelle un sous-agent de navigateur pour gérer la tâche à accomplir. Le sous-agent de navigateur exécute un modèle spécialisé pour fonctionner sur les pages ouvertes dans le navigateur géré par Antigravity, qui est différent du modèle que vous avez sélectionné pour l'agent principal.

Ce sous-agent a accès à divers outils nécessaires pour contrôler votre navigateur, y compris pour cliquer, faire défiler, taper, lire les journaux de la console et plus encore. Il peut également lire vos pages ouvertes grâce à la capture DOM, aux captures d'écran ou à l'analyse Markdown, et prendre des vidéos.

Cela signifie que nous devons lancer et installer l'extension de navigateur Antigravity. Pour ce faire, nous allons commencer une conversation dans l'atelier et suivre les étapes.

Sélectionnez Playground et attribuez la tâche go to antigravity.google à l'agent, comme indiqué ci-dessous :

51a373d3da23db56.png

Envoyez la tâche. Vous verrez l'agent analyser la tâche et vous pourrez examiner son processus de réflexion. À un moment donné, il procédera correctement et mentionnera qu'il doit configurer l'agent de navigateur, comme indiqué ci-dessous. Cliquez sur Setup.

e7119f40e093afd2.png

Le navigateur s'ouvre et affiche un message vous invitant à installer l'extension, comme indiqué ci-dessous :

82fb87d7d75b4a6c.png

Vous serez alors redirigé vers l'extension Chrome que vous pourrez installer.

f3468f0e5f3bb075.png

Une fois l'extension installée, Antigravity Agent se met au travail et indique qu'il attend que vous l'autorisiez à effectuer sa tâche. Vous devriez voir une activité dans la fenêtre de navigateur qui s'est ouverte :

7f0367e00ac36d5a.png

Revenez à la vue Gestionnaire d'agents. Vous devriez voir ce qui suit :

b9d89e1ebefcfd76.png

C'est exactement ce à quoi nous nous attendions, car nous avons demandé à l'agent de consulter le site Web antigravity.google. Accordez-lui l'autorisation. Vous constaterez que le site Web a été consulté de manière sécurisée, comme indiqué ci-dessous :

77fcc38b5fb4ca7c.png

5. Artefacts

Antigravity crée des artefacts lorsqu'il planifie et effectue son travail, afin de communiquer sur ce qu'il fait et d'obtenir des commentaires de l'utilisateur humain. Il s'agit de fichiers Markdown enrichis, de schémas d'architecture, d'images, d'enregistrements de navigateur, de différences de code, etc.

Les artefacts comblent le manque de confiance. Auparavant, lorsqu'un agent affirmait avoir corrigé le bug, le développeur devait lire le code pour le vérifier. Dans Antigravity, l'agent produit un artefact pour le prouver.

Voici les principaux artefacts produits par Antigravity :

  • Task Lists : avant d'écrire du code, l'agent génère un plan structuré. Vous n'avez généralement pas besoin de modifier ce plan, mais vous pouvez l'examiner et, dans certains cas, ajouter un commentaire pour le modifier si nécessaire.
  • Implementation Plan : utilisé pour concevoir des modifications dans votre code afin d'accomplir une tâche. Ces plans contiennent des informations techniques sur les révisions nécessaires et sont destinés à être examinés par l'utilisateur, sauf si votre règlement sur l'examen des artefacts est défini sur "Toujours continuer".
  • Walkthrough : ce fichier est créé une fois que l'agent a terminé l'implémentation de la tâche. Il résume les modifications et explique comment les tester.
  • Code diffs : Bien qu'il ne s'agisse pas techniquement d'un artefact, Antigravity produit également des diffs de code que vous pouvez examiner et commenter.
  • Screenshots : l'agent capture l'état de l'UI avant et après une modification.
  • Browser Recordings : pour les interactions dynamiques (par exemple, "Clique sur le bouton de connexion, attends que le spinner disparaisse, vérifie que le tableau de bord se charge"), l'agent enregistre une vidéo de sa session. Le développeur peut regarder cette vidéo pour vérifier que l'exigence fonctionnelle est respectée sans avoir à exécuter l'application lui-même.

Les artefacts sont produits et apparaissent dans les vues "Gestionnaire d'agents" et "Éditeur".

Dans la vue Éditeur, en bas à droite, vous pouvez cliquer sur Artifacts :

5deff47fe0a93aa1.png

Dans la vue "Gestionnaire d'agents", en haut à droite, à côté de Review changes, vous devriez voir un bouton permettant d'activer ou de désactiver les artefacts. Si les artefacts sont activés, vous pouvez voir la liste des artefacts générés :

5320f447471c43eb.png

La vue "Artifacts" (Artefacts) devrait s'afficher, comme illustré ci-dessous. Dans notre cas, nous avons demandé à l'agent de visiter la page antigravity.google. Il a donc capturé la capture d'écran et créé une vidéo de la même page :

19d9738bb3c7c0c9.png

Vous pouvez afficher les différences de code dans Review Changes dans la vue Éditeur :

e1d8fd6e7df4daf3.png

Les développeurs peuvent interagir avec ces artefacts et ces différences de code à l'aide de "commentaires de type Google Docs". Vous pouvez sélectionner une action ou une tâche spécifique, fournir une commande comme vous le souhaitez, puis l'envoyer à l'agent. L'agent ingérera ensuite ces commentaires et itérera en conséquence. Pensez à utiliser des documents Google Docs interactifs, dans lesquels vous fournissez des commentaires à l'auteur, qui les prend ensuite en compte.

6. Revoir la boîte de réception

Si vous avez commencé quelques conversations avec les agents, vous devriez maintenant consulter votre Inbox dans la fenêtre Agent Manager. Toutes les conversations s'affichent. Cliquez sur l'une des conversations pour afficher son historique, les artefacts produits et plus encore. Dans notre cas, après avoir exécuté la première conversation, notre boîte de réception affiche la conversation, comme indiqué ci-dessous :

1a2a1bbdd4464ecf.png

Cliquez sur cette conversation pour afficher les détails :

b7e493765cfb1b1a.png

Vous pouvez également poursuivre la conversation à partir de là.

7. Éditeur

L'éditeur conserve la familiarité de VS Code, ce qui garantit que la mémoire musculaire des développeurs expérimentés est respectée. Il inclut l'explorateur de fichiers standard, la mise en surbrillance de la syntaxe et l'écosystème d'extensions.

Vous pouvez cliquer sur le bouton Open Editor en haut à droite de l'Agent Manager pour accéder à l'éditeur.

Configuration et extensions

Dans une configuration typique, l'éditeur, le terminal et l'agent sont visibles :

7996408528de93e1.png

Si ce n'est pas le cas, vous pouvez activer ou désactiver les panneaux de terminal et d'agent comme suit :

  • Pour activer ou désactiver le panneau du terminal, utilisez le raccourci Ctrl + `.
  • Pour activer ou désactiver le panneau de l'agent, utilisez le raccourci Cmd + L.

De plus, Antigravity peut installer certaines extensions lors de la configuration, mais selon le langage de programmation que vous utilisez, vous devrez probablement installer d'autres extensions. Par exemple, pour le développement Python, voici les extensions que vous pouvez choisir d'installer :

bd33a79837b5a12a.png

Éditeur

Saisie semi-automatique

Lorsque vous saisissez du code dans l'éditeur, une saisie semi-automatique intelligente se déclenche et vous pouvez simplement appuyer sur la touche de tabulation :

e90825ed7a009350.png

Appuyez sur Tab pour importer

La suggestion Appuyez sur Tabulation pour importer s'affiche pour vous aider à ajouter les dépendances manquantes :

bcab60794caa0aec.png

Appuyez sur la touche Tab pour sauter

Vous obtenez des suggestions de tabulation pour passer à l'emplacement suivant afin de déplacer le curseur vers l'emplacement logique suivant dans le code :

8610ae5217be7fe5.png

Commandes

Vous pouvez déclencher des commandes avec Cmd + I dans l'éditeur ou le terminal pour obtenir des suggestions de saisie en langage naturel.

Dans l'éditeur, vous pouvez demander une méthode pour calculer les nombres de Fibonacci, puis l'accepter ou la refuser :

13a615e515cea100.png

Dans le terminal, vous pouvez obtenir des suggestions de commandes :

5a75e560f998cedc.png

Panneau latéral de l'agent

Dans l'éditeur, vous pouvez activer ou désactiver le panneau latéral de l'agent de plusieurs manières.

Ouverture manuelle

Vous pouvez activer ou désactiver manuellement le panneau de l'agent sur la droite à l'aide du raccourci Cmd + L.

Vous pouvez commencer à poser des questions, utiliser @ pour inclure plus de contexte, comme des fichiers, des répertoires ou des serveurs MCP, ou utiliser / pour faire référence à un workflow (une requête enregistrée) :

95c5a6d31d771748.png

Vous pouvez également choisir entre deux modes de conversation : Fast ou Planning :

d3d1449f12510e3e.png

Fast est recommandé pour les tâches rapides, tandis que Planning est recommandé pour les tâches plus complexes où l'agent crée un plan que vous pouvez approuver.

Vous pouvez également choisir différents modèles pour la conversation :

af709bcc03c1e21e.png

Expliquer et corriger

Une autre façon de déclencher l'agent consiste à pointer sur un problème et à sélectionner Explain and fix :

e45cbe02ed76b9c1.png

Envoyer les problèmes à l'agent

Vous pouvez également accéder à la section Problems et sélectionner Send all to Agent pour que l'agent tente de résoudre ces problèmes :

e4992d14708005d0.png

Envoyer la sortie du terminal à l'agent

Vous pouvez même sélectionner une partie de la sortie du terminal et l'envoyer à l'agent avec Cmd + L :

c40293bab474c9b1.png

Basculer entre l'éditeur et le gestionnaire d'agents

À tout moment, vous pouvez basculer entre le mode Éditeur et le mode Gestionnaire d'agents complet en cliquant sur le bouton Open Agent Manager en haut à droite lorsque vous êtes en mode Éditeur, et inversement en cliquant sur le bouton Open Editor en haut à droite lorsque vous êtes en mode Gestionnaire d'agents.

Vous pouvez également utiliser le raccourci clavier Cmd + E pour basculer entre les deux modes.

8. Envoyer des commentaires

Antigravity repose sur sa capacité à recueillir facilement vos commentaires à chaque étape de l'expérience. Au fur et à mesure qu'il travaille sur une tâche, l'agent crée différents artefacts :

  • Un plan d'implémentation et une liste de tâches (avant le codage)
  • Diffs de code (lorsqu'il génère du code)
  • Procédure pas à pas pour vérifier les résultats (après le codage)

Ces artefacts permettent à Antigravity de communiquer ses plans et ses progrès. Plus important encore, ils vous permettent de fournir des commentaires à l'agent sous forme de commentaires Google Docs. Cela est très utile pour orienter efficacement l'agent dans la direction souhaitée.

Essayons de créer une application de liste de tâches simple et voyons comment fournir des commentaires à Antigravity tout au long du processus.

Mode de planification

Tout d'abord, assurez-vous qu'Antigravity est en mode Planning (et non en mode Fast).Vous pouvez le sélectionner dans le chat du panneau latéral de l'agent. Cela permet à Antigravity de créer un plan d'implémentation et une liste de tâches avant de se lancer dans le code. Ensuite, essayez un prompt, par exemple : Create a todo list web app using Python. Cela permettra à l'agent de commencer à planifier et à produire un plan d'implémentation.

Plan de mise en œuvre

Un plan d'implémentation est une présentation de ce qu'Antigravity prévoit de faire, de la pile technologique qu'il utilisera et une description générale des modifications proposées.

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

C'est également le premier endroit où vous pouvez nous faire part de vos commentaires. Dans notre cas, l'agent souhaite utiliser Flask comme framework Web Python. Nous pouvons ajouter un commentaire au plan d'implémentation pour utiliser FastAPI à la place. Une fois le commentaire ajouté, envoyez-le ou demandez à Antigravity de Proceed avec le plan d'implémentation mis à jour.

Liste de tâches

Une fois le plan d'implémentation mis à jour, Antigravity crée une liste de tâches. Il s'agit d'une liste concrète des étapes qu'Antigravity suivra pour créer et valider l'application.

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

Il s'agit du deuxième endroit où vous pouvez envoyer des commentaires.

Par exemple, dans notre cas d'utilisation, vous pouvez ajouter des instructions de validation plus détaillées en ajoutant le commentaire suivant : Verify application by adding, editing, and deleting a todo item and taking a screenshot.

Modifications du code

À ce stade, Antigravity génère du code dans de nouveaux fichiers. Vous pouvez Accept all ou Reject all ces modifications dans le panneau latéral de chat de l'agent sans avoir à examiner les détails.

Vous pouvez également cliquer sur Review changes pour afficher les détails des modifications et ajouter des commentaires détaillés sur le code. Par exemple, nous pouvons ajouter le commentaire suivant dans main.py : Add basic comments to all methods

C'est un excellent moyen d'itérer sur le code avec Antigravity.

Tutoriel

Une fois le codage terminé, Antigravity démarre le serveur et ouvre un navigateur pour vérifier l'application. Il effectue des tests manuels, comme l'ajout et la modification de tâches, grâce à l'extension de navigateur Antigravity. À la fin, il crée un fichier de procédure pas à pas pour résumer ce qu'il a fait pour valider l'application. Cela inclut une capture d'écran ou un flux de validation avec un enregistrement du navigateur.

Vous pouvez également commenter la capture d'écran ou l'enregistrement du navigateur dans le tutoriel. Par exemple, nous pouvons ajouter un commentaire Change the blue theme to orange theme et l'envoyer. Une fois le commentaire envoyé, Antigravity effectue les modifications, vérifie les résultats et met à jour le tutoriel.

Annuler les modifications

Enfin, après chaque étape, si vous n'êtes pas satisfait du résultat, vous pouvez annuler la modification depuis le chat. Il vous suffit de sélectionner ↩️ Undo changes up to this point dans le chat.

9. Règles et workflows

Antigravity propose deux options de personnalisation : Règles et Workflows.

Cliquez sur ... en haut à droite, puis sélectionnez Customizations. Vous verrez alors Rules et Workflows :

ff8babd8d8bcfa83.png

Les règles permettent de guider le comportement de l'agent. Il s'agit de consignes que vous pouvez fournir pour vous assurer que l'agent les respecte lorsqu'il génère du code et des tests. Par exemple, vous pouvez demander à l'agent de suivre un certain style de code ou de toujours documenter les méthodes. Vous pouvez les ajouter en tant que règles, et l'agent en tiendra compte.

Les workflows sont des requêtes enregistrées que vous pouvez déclencher à la demande avec / lorsque vous interagissez avec l'agent. Elles guident également le comportement de l'agent, mais sont déclenchées par l'utilisateur à la demande.

Une bonne analogie est que les Règles ressemblent davantage à des instructions système, tandis que les workflows sont plutôt des requêtes enregistrées que vous pouvez choisir à la demande.

Les règles et les workflows peuvent être appliqués de manière globale ou par espace de travail, et enregistrés aux emplacements suivants :

  • Règle globale : ~/.gemini/GEMINI.md
  • Workflow global : ~/.gemini/antigravity/global_workflows/global-workflow.md
  • Règles de l'espace de travail : your-workspace/.agent/rules/
  • Workflows Workspace : your-workspace/.agent/workflows/

Ajoutons des règles et des workflows dans l'espace de travail.

Ajouter une règle

Commençons par ajouter une règle de style de code. Accédez à Rules, puis sélectionnez le bouton +Workspace. Donnez-lui un nom tel que code-style-guide avec les règles de style de code suivantes :

* Make sure all the code is styled with PEP 8 style guide
* Make sure all the code is properly commented

Ensuite, ajoutons une autre règle pour nous assurer que le code est généré de manière modulaire avec des exemples dans une règle 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.

Les deux règles sont enregistrées et prêtes à l'emploi :

bfd179dfef6b2355.png

Ajouter un workflow

Définissons également un workflow pour générer des tests unitaires. Cela nous permettra de déclencher des tests unitaires une fois que nous serons satisfaits du code (plutôt que l'agent génère des tests unitaires en permanence).

Accédez à Workflows, puis sélectionnez le bouton +Workspace. Attribuez-lui un nom, tel que generate-unit-tests, avec les éléments suivants :

* Generate unit tests for each file and each method
* Make sure the unit tests are named similar to files but with test_ prefix

Le workflow est également prêt à être exécuté :

d22059258592f0e1.png

Essayer

Voyons maintenant les règles et les workflows en action. Créez un fichier main.py squelette dans votre espace de travail :

def main():
    pass

if __name__ == "__main__":
    main()

Accédez à la fenêtre de chat de l'agent et posez-lui la question suivante : Implement binary search and bubble sort.

Au bout d'une ou deux minutes, vous devriez obtenir trois fichiers dans l'espace de travail : main.py, bubble_sort.py et binary_search.py. Vous remarquerez également que toutes les règles sont implémentées : le fichier principal n'est pas encombré et contient l'exemple de code, chaque fonctionnalité est implémentée dans son propre fichier, tout le code est documenté et bien structuré :

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()

Maintenant que nous sommes satisfaits du code, voyons si nous pouvons déclencher le workflow de génération de tests unitaires.

Accédez au chat et commencez à saisir /generate. Antigravity connaît déjà notre workflow :

8a3efd9e3be7eb6f.png

Sélectionnez generate-unit-tests, puis appuyez sur la touche Entrée. Au bout de quelques secondes, de nouveaux fichiers s'affichent dans votre espace de travail : test_binary_search.py et test_bubble_sort.py, avec un certain nombre de tests déjà implémentés.

11febd7940ef8199.png

Bravo !

10. Sécuriser l'agent

Donner accès à un agent d'IA à votre terminal et à votre navigateur est une arme à double tranchant. Il permet le débogage et le déploiement autonomes, mais ouvre également des vecteurs pour l'injection de requêtes et l'exfiltration de données.

Antigravity résout ce problème grâce à un système d'autorisations précises qui s'articule autour des règles d'exécution automatique des commandes de terminal, des listes d'autorisation et des listes de refus.

Lorsque vous configurez Antigravity pour la première fois ou via le menu des paramètres, vous devez sélectionner une règle Terminal Command Auto Execution. Ce paramètre détermine l'autonomie de l'agent concernant les commandes shell.

Pour afficher vos paramètres actuels, accédez à Antigravity — Settings, puis à Advanced Settings. La section Terminal des paramètres de l'agent devrait s'afficher. Gardez ce tableau à l'esprit si vous souhaitez modifier ce paramètre :

Mode Règles

Description

Désactivé

L'agent n'exécute jamais automatiquement les commandes de terminal, sauf si cela est explicitement autorisé.

Auto

L'agent décide d'exécuter ou non l'action en fonction de modèles de sécurité internes. Il demande l'autorisation pour les commandes à risque.

Turbo

L'agent exécute toujours automatiquement les commandes, sauf si cela lui est explicitement interdit.

Configurer la liste d'autorisation

La liste d'autorisation est principalement utilisée avec la règle Désactivé. Il s'agit d'un modèle de sécurité positif, ce qui signifie que tout est interdit, sauf si cela est expressément autorisé. Il s'agit de la configuration la plus sécurisée.

Configuration détaillée

  1. Définissez le paramètre Exécution automatique des commandes du terminal sur Désactivé.
  2. Ajoutez la commande suivante dans Allow List Terminal Commands (Commandes de terminal de la liste d'autorisation) en cliquant sur le bouton Add (Ajouter) à côté : ls -al . Vous pouvez également ajouter d'autres commandes de terminal si vous le souhaitez.

Tester la liste d'autorisation

  • Demandez à l'agent : List the files in this directory.
  • L'agent exécute ls automatiquement.
  • Demander à l'agent : Delete the <some file>
  • L'agent tentera rm <filepath>, mais Antigravity le bloquera et forcera un examen par un utilisateur, car rm ne figure pas dans la liste d'autorisation. Antigravity devrait vous demander l'autorisation avant d'exécuter la commande.

Configurer la liste de refus

La liste de refus est la protection de la règle Turbo (et parfois Auto). Il s'agit d'un modèle de sécurité négatif, ce qui signifie que tout est autorisé, sauf ce qui est expressément interdit. Cette approche repose sur l'anticipation par le développeur de tous les dangers possibles, ce qui est risqué, mais offre une vitesse maximale.

Configuration détaillée

  1. Définissez le paramètre Exécution automatique des commandes du terminal sur Turbo.
  2. Ajoutez les commandes suivantes dans Deny List Terminal Commands (Commandes du terminal de la liste de refus) en cliquant sur le bouton Add (Ajouter) à côté.
  3. rm
  4. rmdir
  5. sudo
  6. curl
  7. wget

Tester la liste de refus

  • Demandez à l'agent : Check the version of python.
  • L'agent exécute python --version automatiquement.
  • Demandez à l'agent : Download www.google.com home page.
  • L'agent tente de curl. Antigravity détecte curl dans la liste de refus et bloque l'exécution, en vous demandant une approbation manuelle.

Sécurité du navigateur

La capacité d'Antigravity à naviguer sur le Web est un superpouvoir, mais aussi une vulnérabilité. Un agent qui consulte un site de documentation compromis peut être victime d'une attaque par injection de code dans l'invite.

Pour éviter cela, vous pouvez implémenter une liste d'autorisation des URL de navigateur pour l'agent de navigateur.

Pour consulter vos paramètres actuels, accédez à Antigravity — Settings, puis à Advanced Settings. La section "Liste d'autorisation des URL de navigateur" devrait s'afficher dans les paramètres du navigateur, comme indiqué ci-dessous :

5ed231150122ecc5.png

Cliquez sur "Ouvrir le fichier de liste d'autorisation", ce qui ouvre le fichier dans le dossier HOME/.gemini/antigravity/browserAllowlist.txt.. Vous pouvez vous assurer que seuls les domaines de confiance sont saisis ici.

11. Cas d'utilisation

Maintenant que nous avons une compréhension de base du produit, examinons quelques cas d'utilisation pour le voir en action. Notez qu'Antigravity est une plate-forme Agent-first. Cela signifie que, dans la plupart des cas, nous donnons simplement une instruction à l'agent, qui s'en va ensuite de son côté, effectue sa tâche, demande des autorisations si nécessaire, produit les artefacts, puis nous informe si la tâche est terminée. Par conséquent, nous ne pouvons pas produire chaque résultat de la conversation de l'agent dans chacun des cas d'utilisation suivants. Nous vous fournirons les instructions et quelques captures d'écran nécessaires des résultats attendus, mais vos résultats peuvent être légèrement différents.

Les cas d'utilisation que nous allons aborder vont de l'automatisation de quelques tâches avec des sites externes à la génération et à la vérification de cas de tests unitaires pour un projet, en passant par le développement complet d'un site Web. Commençons.

Actualités en bref

Il s'agit d'un cas d'utilisation simple, mais il peut servir de base pour utiliser le navigateur Web afin de visiter des sites Web, d'extraire des informations, d'effectuer des actions, puis de renvoyer des données à l'utilisateur.

Dans ce cas, nous allons accéder au site Google Actualités et en extraire des informations. Toutefois, vous pouvez facilement tester un site de votre choix et voir ce qu'il se passe.

Assurez-vous d'être dans Agent Manager et d'avoir sélectionné Playground, comme indiqué ci-dessous :

cffa12c98a68cb6c.png

Donnez ensuite l'instruction suivante :

8513d489eea0b014.png

Cela lancera le processus de l'agent et déterminera qu'il doit lancer le navigateur, etc. Vous devez porter une attention particulière au processus de réflexion et voir comment l'agent effectue son travail. Si tout se passe bien, le navigateur Antigravity devrait se lancer et accéder au site, comme illustré ci-dessous. La bordure bleue autour du site indique que l'agent contrôle désormais le navigateur et navigue sur le site pour obtenir les informations.

9d594588f2ffe6bc.png

Une fois l'opération terminée, vous devriez également voir les artefacts générés, comme indiqué ci-dessous :

dc6cf4e7d8425df8.png

Voici un exemple d'exécution par l'agent :

fb7397cd2cce0682.png

Notez qu'à gauche, nous avons le processus de réflexion. Vous pouvez également parcourir les points et afficher la lecture et d'autres données.

À essayer

  • Une fois que vous avez compris cela, choisissez un site Web disponible à partir duquel vous souhaitez que l'agent obtienne ou résume des données. Pensez à un site Web qui contient des tableaux de bord et des graphiques, et demandez-lui de choisir quelques valeurs.
  • Essayez le prompt suivant : Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.

Générer un site Web dynamique avec Python et Flask

Passons maintenant à la génération d'une application Web complète. L'application Web que nous allons créer est un site qui fournit des informations sur un événement technique d'une journée, avec des conférences tout au long de la journée par plusieurs intervenants.

Une fois de plus, assurez-vous d'être dans Agent Manager et d'avoir sélectionné Playground.

Fournissez le prompt suivant :

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. 

Vous pouvez commencer la conversation en saisissant la requête ci-dessus :

Au fur et à mesure que l'agent effectue sa tâche, il crée les artefacts :

  • Artefact de tâche
  • Artefact d'implémentation
  • Artefact du tutoriel

L'artefact de tâche ci-dessous correspond à la séquence initiale de tâches que l'agent a déchiffrée et qu'il doit effectuer en fonction de la tâche qui lui a été confiée. Voici un exemple de capture d'écran de l'exécution :

c95d82e1c040698f.png

Vous pouvez ensuite cliquer sur l'artefact Plan d'implémentation. Voici un exemple de capture d'écran :

632169a236bc62cc.png

Enfin, vous avez l'artefact Procédure pas à pas. Il contient tout ce que l'agent a fait, comme indiqué ci-dessous :

e3f6152d6f54d4f9.png

Notez qu'il a démarré le serveur et m'a fourni l'URL. Je clique dessus et j'obtiens l'application. Vous trouverez ci-dessous un exemple de capture d'écran :

abf879f2ce53d055.png

Si vous passez à l'éditeur, vous remarquerez que l'écran contient le dossier dans lequel l'application Python Flask est générée. Vous remarquerez également que Agent mode est tagué à droite. Vous pouvez également poursuivre la conversation à cet endroit.

b0fea8aa65c3a1c5.png

Imaginons maintenant que nous voulions ajouter d'autres conférences à l'événement. Nous pouvons rester dans l'éditeur et dans le panneau de l'agent, puis donner une instruction comme Add two more talks to the schedule.

L'agent analysera alors l'exigence, mettra à jour la tâche et le plan d'implémentation, puis validera également la fonctionnalité mise à jour. Voici un exemple de conversation :

ba8455e6f68973e9.png

Si vous le souhaitez, vous pouvez revenir au Gestionnaire d'agents. Ce processus devrait vous aider à comprendre comment passer d'Agent Manager à Éditeur, apporter les modifications nécessaires, etc.

À essayer

  • Ajoutez les fonctionnalités supplémentaires que vous souhaitez à l'application. Fournissez les détails à l'agent et observez comment il s'y prend pour accomplir sa tâche en modifiant d'abord la liste des tâches, puis le plan d'implémentation, etc.
  • Demandez à l'agent de générer un fichier README ou plus de documentation pour l'application.

Générer une application de productivité simple

Nous allons maintenant générer une application Web de minuteur Pomodoro simple.

Assurez-vous d'être dans Agent Manager et d'avoir sélectionné Playground. Fournissez le prompt suivant :

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

Remarquez comment il s'y prend pour créer la liste de tâches et le plan d'implémentation, puis comment il s'y attelle. Continuez à suivre le flux, car il peut y avoir des situations dans lesquelles il vous demandera de l'examiner. Vous trouverez ci-dessous un exemple d'exécution.

5be0a668e5a67d85.png

Dans ce cas, il doit également lancer le navigateur Antigravity, effectuer ses propres tests, puis confirmer que les tests ont réussi. L'un des éléments générés était un artefact média contenant la vidéo de sa validation. C'est un excellent moyen de voir ce qui a été testé. J'ai également suggéré quelques modifications de style, car elles n'avaient pas été appliquées, et l'IA a pu le faire.

L'application finale ressemblait à celle ci-dessous et était plutôt réussie.

c9ab6bca97a51a8c.png

Nous pouvons ajouter une jolie image de minuteur à l'application. Il vous suffit d'émettre une instruction de suivi comme indiqué ci-dessous :

Add an image to the application that displays a timer.

L'agent a donc ajouté une tâche à l'artefact "Tâche" :

498dd946d4e9ae55.png

Il a ensuite généré une image au fur et à mesure de l'exécution de sa tâche :

c291da9bdb37ff96.png

Enfin, l'application a affiché l'image comme nous l'avions demandé :

de8f418ba8e4600d.png

À essayer

  • Notez que l'arrière-plan de l'icône en forme de sablier dans l'application n'est pas transparent. Essayez de demander à l'agent de rendre l'arrière-plan transparent.
  • Essayez quelques variantes de l'application que vous souhaitez générer. Testez les styles et les images, demandez des modifications, etc.

Générer des tests unitaires, des stubs de simulation et valider des tests

Le dernier cas d'utilisation que nous allons essayer ici consiste à générer des tests unitaires pour un fichier de code spécifique que nous possédons, et à demander à l'agent d'exécuter et de valider ces tests.

Pour ce faire, nous allons créer un espace de travail avec un seul fichier Python, comme indiqué ci-dessous :

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}

Assurez-vous d'avoir le fichier Python ci-dessus localement dans un dossier et de le charger en tant qu'espace de travail dans Antigravity.

Il s'agit d'un service de commande simple qui possède la fonctionnalité clé suivante dans la fonction checkout :

  1. Valide que le panier n'est pas vide.
  2. Vérifiez le stock de tous les articles.
  3. Calcule le prix final.
  4. Paiement des frais.
  5. Met à jour l'inventaire.

Nous allons attribuer à l'agent la tâche de générer des cas de tests unitaires, de fournir des implémentations Mock et d'exécuter les tests pour s'assurer qu'ils réussissent.

Nous allons ouvrir le dossier de notre espace de travail spécifique. Vous remarquerez que nous pouvons désormais utiliser le symbole @ pour faire référence au fichier. Par exemple, nous pouvons effectuer les opérations suivantes :

8368856e51a7561a.png

Une explication s'affiche concernant ce fichier :

b69c217d3372d802.png

Nous pouvons lui demander de générer une meilleure visualisation à l'aide de la requête suivante :

Can you visually show this class for better understanding

da5bd701323818d4.png

L'étape suivante consiste à générer les tests unitaires et à demander à l'agent de les tester. J'ai saisi le prompt suivant :

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

Il a généré l'artefact de tâche suivant et a effectué sa tâche.

21425379db336dc6.png

Vous pouvez également consulter les détails des tests exécutés :

48f3320cd76b5cd8.png

L'un des fichiers qu'il a générés était également le fichier de test. Voici une capture d'écran :

f962061f115c040f.png

À essayer

Prenez votre propre code et découvrez ce que vous pouvez demander à l'agent de faire, qu'il s'agisse d'ajouter des fonctionnalités ou de refactoriser des parties de votre code.

12. Félicitations

Félicitations, vous avez installé et compris comment utiliser Antigravity, la plate-forme de développement agent-first. Les différents cas d'utilisation que nous avons testés devraient vous aider à définir vos propres exigences et à découvrir comment Antigravity peut vous aider à les satisfaire.

Documents de référence