Communauté

Compétences Android : conçues pour être obsolètes

4 minutes de lecture
Voir le profil de Jose Alcérreca
Jose Alcérreca Ingénieur en relations avec les développeurs

Nous avons lancé les compétences Android officielles en avril, et la réponse a dépassé toutes nos attentes. Dans cet article de blog, je vais aborder certains des commentaires que nous avons reçus, en expliquant la philosophie et la méthodologie qui sous-tendent le projet. J'espère que cela vous aidera également à comprendre ce qui se passe en coulisses lorsque vous installez et utilisez des compétences, ce qui vous permettra de mieux utiliser les jetons et votre temps.

Pourquoi y a-t-il si peu de compétences officielles ?

Actuellement, nous ne prenons en compte les nouvelles compétences que lorsqu'il existe un manque de connaissances vérifiable dans les modèles de pointe (SOTA). En d'autres termes, vous n'avez pas besoin d'enseigner au modèle ce qu'il sait déjà. (Il existe toutefois quelques exceptions. Poursuivez votre lecture.)

Nous avons publié une vingtaine de compétences officielles jusqu'à présent. Elles ciblent intentionnellement des domaines très spécifiques et en évolution rapide sur lesquels les modèles standards ne sont pas encore entièrement basés, comme AGP 9, Navigation 3, les API avancées de l'appareil photo et Perfetto SQL.

Qu'en est-il des compétences de base plus générales ? Chaque compétence installée injecte 100 à 200 jetons dans le contexte de base de chaque tâche que vous démarrez. Si cette compétence s'active réellement, ce nombre peut rapidement atteindre des milliers. Dans la plupart des cas, accumuler des compétences de base est à la fois contre-productif et coûteux. Avant d'installer une compétence pour écrire du code Kotlin ou Compose de base, déterminez si le LLM de votre choix en a vraiment besoin ou s'il connaît déjà suffisamment ces sujets. 

Évaluer les compétences

Avant leur publication, chaque compétence est testée par rapport à un ensemble complet d'évaluations qui prouvent qu'elle apporte une valeur ajoutée claire. Ces évaluations doivent être réussies lorsque la compétence est active, et échouer dans le cas contraire. Les évaluations sont aux compétences ce que les tests d'intégration sont au code. 

timeout_s: 1200
repository:
  url: [redacted - internal git repo]
  working_dir: wear_compose_m3_empty_app
category_ids:
  - wear
prompt: |-
  Add a horizontal pager to MainActivity.kt. Have three pages in the pager. Each page should contain
  the text "Page 1", "Page 2", and "Page 3" respectively in the center of the screen.
commands:
  build:
    - ./gradlew assembleDebug
acceptance_criteria:
  project_builds: true
  llm_diff_judge:
    - Must use `HorizontalPagerScaffold`.
    - Each page should use `AnimatedPage` to wrap a `ScreenScaffold`.

Exemple d'évaluation qui vérifie l'implémentation correcte d'un pager horizontal sur une application Wear

Au minimum, nous testons la compétence dans Android Studio à l'aide du dernier modèle Gemini Flash. Selon la compétence, nous assurons également la compatibilité avec d'autres modèles tels que Gemini Pro et d'autres agents tels qu'Antigravity, ainsi qu'avec des systèmes tiers.

Toutes les évaluations s'exécutent avec accès à la base de connaissances. Par conséquent, si les informations se trouvent dans la documentation et que les modèles décident de les rechercher, nous ne publions pas de compétence pour cela.

Utiliser la base de connaissances Android (Android Studio ou Android CLI)

Si vous développez des applications Android, vous devez toujours utiliser la base de connaissances Android pour accéder à la documentation officielle. Si vous utilisez l'agent dans Android Studio, il est déjà disponible en tant qu'outil. Toutefois, si vous utilisez un autre agent, installez Android CLI. Il contient, entre autres, la commande docs, qui donne à votre agent accès à la documentation Android officielle. Un seul outil est beaucoup plus efficace que l'installation de centaines de compétences.

Si votre modèle est trop sûr de lui et que vous souhaitez qu'il consulte plus souvent la documentation, une méthode très courante pour le motiver consiste à ajouter "Toujours consulter la documentation Android officielle lorsque vous utilisez des API Android" à votre fichier AGENTS.md ou équivalent. Bien sûr, vous pouvez également forcer cela en demandant à l'agent de vérifier la documentation directement dans vos invites.

Pourquoi les requêtes d'extraction sont-elles désactivées ?

Étant donné que notre framework d'évaluation dépend d'une infrastructure interne qui ne peut pas être Open Source, nous ne pouvons pas accepter les requêtes d'extraction directes pour les nouvelles compétences. Sans cette infrastructure, nous n'aurions aucun moyen de réévaluer les modifications entrantes. Cependant, nous surveillons activement les commentaires de la communauté. Si vous souhaitez signaler un bug, suggérer une optimisation ou demander une nouvelle compétence officielle, veuillez signaler un problème !

Quand les compétences de base sont-elles utiles ?

Bien que les modèles SOTA n'aient généralement pas besoin de compétences de base, dans certains cas, l'activation de compétences de base ou créées par la communauté apporte une réelle valeur ajoutée. Exemple :

  • Vous utilisez des invites vagues : les compétences amplifient votre intention. Si vous donnez une invite vague comme "ajouter des animations à cet écran", une compétence d'animation Compose spécifique peut inspirer le modèle, en le poussant vers des API modernes ou des modèles de test de capture d'écran qu'il n'aurait peut-être pas envisagés autrement.
  • Vous souhaitez utiliser des modèles plus petits et moins chers : les LLM Frontier sont coûteux. Si vous déchargez des tâches de routine vers des modèles Open Source plus petits comme Gemma 4, l'activation de compétences de base comble les lacunes de connaissances que les paramètres plus petits ne prennent pas en compte.
  • Vous refactorisez ou examinez du code hérité : les modèles excellent dans la génération de code fonctionnel, mais lors de la modification d'anciens codebases, ils privilégient souvent la cohérence avec les modèles hérités environnants plutôt que de réécrire les éléments avec une précision moderne. Un agent d'examen spécialisé équipé de compétences de base peut aider à briser cette habitude.
  • Vous vous écartez de la norme : les LLM apprécient la méthode standard de Google pour concevoir des applications Android. Si votre équipe utilise une architecture de couche de vue hautement personnalisée, le modèle aura du mal à rester aligné. Une compétence personnalisée décrivant explicitement votre architecture est très utile.

Où puis-je trouver des compétences de base ?

La communauté Android est là pour vous aider. Chris Banes propose une collection complète de compétences pour Compose et Kotlin, Ivan Morgillo a publié une compétence qui audite les projets Compose, et Jaewoong Eum en a créé deux sur les tests et les performances

Téléchargez toujours les compétences à partir de sources fiables. Personnellement, je ne ferais pas confiance aux dépôts contenant des dizaines ou des centaines de compétences Android, car ils sont probablement générés par l'IA et non testés, et ils pourraient même contenir des instructions malveillantes ou biaisées. De plus, n'installez pas aveuglément des compétences générales en génie logiciel. Beaucoup d'entre elles sont conçues pour le développement Web.

Objectif : obsolescence

Pour paraphraser Karpathy : Les compétences d'aujourd'hui seront dans les modèles de demain. À mesure que les modèles SOTA s'améliorent, nous nous attendons à ce que les compétences deviennent obsolètes, en particulier celles basées sur de nouvelles API. Pour déterminer quand les retirer, nous exécutons nos évaluations lorsque de nouveaux modèles sont disponibles. S'ils sont réussis, nous les conserverons pendant quelques mois jusqu'à ce que la plupart des utilisateurs soient passés à la nouvelle version. 

Écrit par :
Poursuivre la lecture