Donner un « cerveau expert » à l'agent : écrire des Agent Skills Antigravity sur mesure

La semaine dernière, un collègue m’a encore demandé pour la énième fois : « C’est quoi exactement le flux d’authentification de cette API ? »
J’ouvre la page Confluence poussiéreuse : dernière mise à jour il y a six mois. La doc et le code ne sont plus alignés. Je soupire et retape l’explication que j’ai déjà donnée cent fois.
Ce soir-là, en bidouillant Antigravity, je tombe sur le système Skills. En bref : on peut greffer un « cerveau expert » à l’agent — mémoriser des savoirs, exécuter des processus, appeler des outils précis.
Deux heures plus tard, j’avais écrit un Skill pour notre API interne. Le lendemain, un nouveau pose la même question ; dans Antigravity, je tape : « Consulte le flux d’authentification du service utilisateurs. »
L’agent appelle mon Skill. Trente secondes plus tard : explication exacte, avec extraits de code. Il hoche la tête et part tester seul.
Là, j’ai compris : les Skills ne sont pas qu’une extension — ils changent la façon dont l’équipe collabore.
Ce guide explique comment écrire des Skills Antigravity sur mesure : concepts, cas pratiques, intégration d’API externes et connexion à une base de connaissances privée.
Qu’est-ce qu’un Antigravity Skill
Posons les bases.
Le système Skills d’Antigravity est un format d’extension léger et ouvert. Voyez-le comme une « application » installée sur l’agent : chaque Skill définit un ensemble de capacités pour le rendre plus professionnel dans certains scénarios.
Selon les Google Codelabs, un Skill est un paquet structuré en répertoires, au format standardisé que l’agent peut analyser et exécuter de façon fiable. Un Skill typique contient :
- skill.yaml : métadonnées, description des capacités, scénarios d’usage
- README.md : fonctionnement détaillé et mode d’emploi
- scripts/ : scripts exécutables (Python, Bash, etc.)
- templates/ : modèles de prompt ou de sortie
Deux périmètres possibles :
- Global (
~/.gemini/antigravity/skills/) : transversal, ex. « formater du JSON », « revue de code générique » - Projet (
.agent/skills/) : limité au dépôt, ex. « conventions API de l’équipe », « gabarits métier »
Utile : l’universel en global, le métier dans le projet.
Écrire votre premier Skill
On passe à la pratique.
Exemple simple : un Skill qui formate automatiquement les messages de commit Git.
Étape 1 : structure de répertoires
mkdir -p ~/.gemini/antigravity/skills/git-commit-formatter
Étape 2 : skill.yaml
name: git-commit-formatter
description: Format Git commit messages following Conventional Commits spec
version: 1.0.0
author: your-name
triggers:
- commit
- git message
- format commit
actions:
- name: format_commit
description: Format a raw commit message to Conventional Commits format
input:
raw_message: string
type: enum[feat, fix, docs, style, refactor, test, chore]
output:
formatted_message: string
Ce YAML fixe l’identité du Skill, les mots-clés de déclenchement et le schéma entrée/sortie.
Étape 3 : script d’exécution
Créez scripts/format_commit.py :
#!/usr/bin/env python3
import sys
import re
def format_commit(raw_message, commit_type):
# 解析原始消息
scope_match = re.search(r'\(([^)]+)\)', raw_message)
scope = f"({scope_match.group(1)})" if scope_match else ""
# 提取描述
desc = re.sub(r'\([^)]+\):?\s*', '', raw_message).strip()
# 格式化
formatted = f"{commit_type}{scope}: {desc}"
return formatted
if __name__ == "__main__":
raw = sys.argv[1]
ctype = sys.argv[2]
print(format_commit(raw, ctype))
Étape 4 : test
Redémarrez Antigravity, puis essayez :
« Utilise git-commit-formatter pour formater ce commit : correction du bug de connexion utilisateur »
Si tout va bien, l’agent appelle le Skill et renvoie par exemple : fix(auth): correction du bug de connexion utilisateur
Voilà le squelette d’un Skill.
Intégrer des API externes : GitHub + Jira en pratique
Un Skill local seul reste un jouet ; la vraie valeur vient des systèmes externes.
Exemple : automatiser la gestion des tickets Jira.
Scénario : l’équipe passe des heures chaque jour à mettre à jour Jira et saisir le temps. Confions ces tâches répétitives à l’agent.
Étape 1 : authentification API
Token Jira, domaine, e-mail — stockez les secrets en variables d’environnement :
export JIRA_API_TOKEN="your-token"
export JIRA_DOMAIN="your-domain.atlassian.net"
export JIRA_EMAIL="[email protected]"
Étape 2 : configuration du Skill
name: jira-assistant
description: Automate Jira workflows - search issues, update status, add worklogs
triggers:
- jira
- ticket
- issue
- worklog
actions:
- name: search_issues
description: Search Jira issues by JQL query
- name: add_worklog
description: Add time spent to an issue
- name: transition_issue
description: Move issue to a different status
Étape 3 : script principal
#!/usr/bin/env python3
import os
import requests
from base64 import b64encode
class JiraClient:
def __init__(self):
self.domain = os.getenv('JIRA_DOMAIN')
self.email = os.getenv('JIRA_EMAIL')
self.token = os.getenv('JIRA_API_TOKEN')
self.auth = self._get_auth()
def _get_auth(self):
credentials = f"{self.email}:{self.token}"
return b64encode(credentials.encode()).decode()
def search(self, jql):
url = f"https://{self.domain}/rest/api/2/search"
headers = {
"Authorization": f"Basic {self.auth}",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers, params={"jql": jql})
return response.json()
def add_worklog(self, issue_key, time_spent, comment):
url = f"https://{self.domain}/rest/api/2/issue/{issue_key}/worklog"
headers = {
"Authorization": f"Basic {self.auth}",
"Content-Type": "application/json"
}
data = {
"timeSpent": time_spent,
"comment": comment
}
return requests.post(url, headers=headers, json=data)
# CLI入口
if __name__ == "__main__":
import sys
client = JiraClient()
if sys.argv[1] == "search":
result = client.search(sys.argv[2])
for issue in result.get('issues', []):
print(f"{issue['key']}: {issue['fields']['summary']}")
elif sys.argv[1] == "worklog":
client.add_worklog(sys.argv[2], sys.argv[3], sys.argv[4])
print(f"Worklog added to {sys.argv[2]}")
Étape 4 : utilisation
Dans Antigravity, vous pouvez dire :
« Liste tous mes tickets Jira en In Progress »
« Ajoute 2 h de worklog sur PROJ-123, commentaire : refactor du module utilisateur terminé »
« Passe PROJ-456 au statut Done »
L’agent appelle l’API Jira — plus besoin d’ouvrir l’interface lente.
Pour GitHub, même logique avec PyGithub ou requests : Skill pour créer des PR, vérifier la CI, voire faire de la revue de code.
Relier une base privée : NotebookLM + Antigravity
C’est la partie qui m’enthousiasme le plus.
Un cas XDA Developers illustre bien l’idée : nourrir NotebookLM avec la doc projet, générer des spécifications techniques, puis les convertir en Skill Antigravity — l’agent code alors en s’appuyant sur la documentation.
Principe :
NotebookLM exporte des conversations en documents structurés. Workflow possible :
- Créer dans NotebookLM la base projet (design, API, décisions d’architecture)
- Utiliser le Q&R pour produire des « résumés de savoir »
- Les transformer en context ou templates du Skill
Ou, plus direct : relier NotebookLM via MCP (Model Context Protocol).
Le dépôt open source notebooklm-antigravity-skill s’appuie sur nlm CLI :
name: notebooklm-knowledge
description: Query project knowledge from NotebookLM
triggers:
- consulter doc
- voir normes
- connaissances projet
actions:
- name: query_knowledge
description: Query NotebookLM for project-specific knowledge
Avec un script qui appelle l’API NotebookLM, l’agent interroge votre base en temps réel.
Scénario typique :
Nouveau : « Quelle est notre norme de gestion des erreurs ? »
Vous (dans Antigravity) : « Interroge NotebookLM sur la norme de gestion des erreurs »
Agent : « D’après la doc projet : 1. classes d’exception personnalisées… 2. logs avec traceback… 3. erreurs visibles utilisateur à internationaliser… »
La documentation ne dort plus dans un coin : elle devient le « cerveau expert » de l’agent.
Astuce avancée : combiner Rules et Skills
Antigravity propose aussi un système Rules. Ensemble, l’effet est multiplié.
Les Rules sont des contraintes globales ou projet, par exemple :
# .agent/rules/code-review.md
Lors d'une revue de code :
1. Vérifier une couverture de tests suffisante
2. Confirmer l'absence d'informations sensibles en dur
3. Valider la gestion des erreurs
4. Vérifier le respect des conventions TypeScript de l'équipe
La Rule dit quand et selon quels critères ; le Skill dit comment exécuter.
Les ingénieurs Atlassian ont décrit un cas : règle app-deployment + Skills Jira pour automatiser le déploiement.
Quand l’agent détecte un merge sur main :
- La Rule déclenche : « exécuter les contrôles pré-déploiement »
- Skill : vérifier l’état des tickets Jira liés
- Skill : lancer la suite de tests
- Skill : si OK, mettre à jour Jira et journaliser le déploiement
Une douzaine d’étapes manuelles devient une phrase.
Conclusion
En une phrase : les Skills transforment Antigravity d’outil générique en assistant spécialisé.
L’IA générique sait coder, pas votre métier. Avec des Skills, vous injectez savoir métier, normes d’équipe et outils internes — l’agent devient un membre de l’équipe.
J’ai commencé par un formateur de commit Git ; aujourd’hui nous en avons plus de vingt en interne. Doc API, revue de code, Jira, onboarding des nouveaux — le répétitif part vers l’agent.
Ce n’est pas de la paresse : on libère du temps pour l’architecture, les problèmes difficiles, les nouveaux produits. Requêtes de savoir et procédures répétitives ? À l’agent.
Pour essayer : partez d’une petite friction. La question posée cent fois, ou l’opération répétée dix fois par jour — un Skill peut la résoudre.
L’agent n’est pas qu’un outil : c’est une extension de l’équipe.
Et les Skills sont la clé qui lui donne une vraie expertise.
FAQ
Qu'est-ce qu'un Antigravity Skill, et en quoi diffère-t-il d'un simple prompt IA ?
**Les Skills sont persistants** : définis une fois, réutilisables ; l'agent reconnaît les conditions de déclenchement
**Les Skills sont programmables** : scripts Python/Shell, appels d'API externes, logique complexe
**Les Skills sont partageables** : packagés pour l'équipe ou la communauté open source
Un prompt est une instruction ponctuelle ; un Skill est une « application de capacité » installée sur l'agent pour le rendre plus professionnel dans un scénario donné.
Quel niveau technique faut-il pour écrire un Antigravity Skill ?
**Indispensable** :
• YAML de base (configuration du Skill)
• Python ou Shell
• Notions d'appel d'API
**Optionnel (avancé)** :
• Authentification API (OAuth, token, etc.)
• Gestion d'erreurs et journalisation
• Expressions régulières et traitement de texte
Le minimum : un fichier skill.yaml. Commencez par les exemples officiels, puis complexifiez progressivement.
Comment gérer en toute sécurité les clés API et autres secrets ?
**Variables d'environnement** (recommandé) :
• Ne jamais coder les clés en dur dans skill.yaml
• Les lire dans les scripts via os.getenv()
• L'utilisateur exporte les variables avant usage
**Fichier de configuration** :
• Exclure le fichier réel via .gitignore
• Fournir un modèle config.example.yaml
• Le Skill lit un fichier local
**À éviter absolument** :
• Clés en clair dans le script du Skill
• Pousser un Skill contenant des secrets sur un dépôt public
Documentez dans le README les variables d'environnement requises.
Quelle différence entre Skill et Rule, et comment les combiner ?
**Rules (règles)** :
• Définissent *quand* et *comment* l'agent doit se comporter
• Contraintes et checklists en texte
• Influencent la logique de décision
**Skills (compétences)** :
• Définissent *comment exécuter* concrètement
• Scripts et configuration exécutables
• Outils et capacités opérationnelles
**Exemple combiné** :
• Rule : « en revue de code, vérifier la couverture de tests »
• Skill : lancer le framework de tests et produire un rapport
La Rule tranche, le Skill exécute — ensemble, ils automatisent un flux complet.
Comment intégrer une base NotebookLM dans Antigravity ?
**1. Export et conversion** :
1. Structurer les connaissances projet dans NotebookLM
2. Exporter conversations ou résumés en documents structurés
3. Les transformer en templates ou fichiers context du Skill
4. L'agent s'y réfère lors des requêtes
**2. Connexion MCP en temps réel** (nécessite nlm CLI) :
• Installer notebooklm-mcp-cli
• Configurer le serveur MCP vers NotebookLM
• Appeler nlm depuis le script du Skill
• L'agent récupère les connaissances à jour dynamiquement
Le dépôt open source notebooklm-antigravity-skill propose une implémentation de référence.
7 min de lecture · Publié le: 27 févr. 2026 · Mis à jour le: 27 juil. 2026
Manuel Antigravity
Si vous arrivez depuis la recherche, le plus rapide est de passer à l’article précédent ou suivant de cette série.
Précédent
De Copilot à Antigravity : maîtriser le nouveau paradigme de développement Agent-First
Analyse approfondie du mode de développement Agent-First d'Antigravity, comparaison entre la logique de complétion de Copilot et la logique de délégation d'Antigravity, exploration d'un nouveau paradigme de programmation IA
Partie 1 sur 3
Suivant
Ne soyez pas prisonnier d'un seul modèle : basculez librement entre Gemini 3, Claude 4.5 et GPT-OSS dans Antigravity
Stratégie multi-modèles Antigravity expliquée : choisir Gemini 3, Claude 4.5 ou GPT-OSS selon la tâche, et établir un référentiel de sélection pour l'équipe
Partie 3 sur 3



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire