L'agent dans Android Studio agit comme un collaborateur de codage, accélérant votre workflow de développement en générant du code, en résumant des sujets complexes, en trouvant des ressources spécifiques et plus encore. Une communication efficace est essentielle pour exploiter tout le potentiel de l'agent.
Ce guide présente des stratégies pour configurer votre environnement de développement et rédiger des prompts qui génèrent des réponses utiles et fiables. Pour plusieurs stratégies, nous avons fourni des exemples de requêtes pour différents cas d'utilisation. Pour obtenir d'autres exemples de prompts, consultez la galerie de prompts.
Soyez précise
L'agent est plus performant lorsqu'il reçoit des instructions claires et spécifiques. Si vous souhaitez utiliser certaines bibliothèques, API ou approches, incluez-les dans votre question ou dans le fichier AGENTS.md racine de votre projet pour les conserver d'une interaction à l'autre. Considérez cela comme un rapport de bug : plus vous fournissez d'informations, plus le problème peut être résolu rapidement et efficacement.
Implémenter une nouvelle fonctionnalité :
À faire
À éviter
Générer du code :
À faire
Écrivez une fonction de suspension Kotlin qui utilise la bibliothèque Coil pour télécharger une image à partir d'une chaîne d'URL donnée.
La fonction doit être nommée fetchImageAsBitmap. Elle doit accepter un Context et une URL String comme arguments, et renvoyer un Bitmap nullable. En cas d'erreur réseau ou de décodage, elle doit intercepter l'exception, la consigner et renvoyer null.
À éviter
Expliquer un concept :
À faire
Je crée une application de lecture de musique et je dois continuer la lecture lorsque l'application est en arrière-plan.
Quelles sont mes options pour que mon application continue de s'exécuter pendant que l'utilisateur effectue d'autres actions sur l'appareil ? Quelles sont les exigences de niveau d'API et les implications sur l'autonomie de la batterie pour chaque approche ?
À éviter
Décrire la structure de la réponse
Par défaut, l'agent fournit des réponses sous forme de paragraphes conversationnels. Bien que cela soit souvent utile pour les explications, vous pouvez obtenir des résultats plus efficaces et immédiatement utilisables en lui indiquant comment structurer la réponse. En spécifiant le format de sortie, vous demandez au modèle d'organiser les informations de manière claire et prévisible, ce qui vous évite d'avoir à les reformater vous-même.
Si vous souhaitez insérer du code généré par l'agent dans votre application et que vous avez besoin du code dans un certain format pour pouvoir l'utiliser instantanément, donnez à l'agent des instructions claires sur la génération et la mise en forme du code.
Structurer la réponse :
À faire
Créez une entité Room pour un profil utilisateur. Il doit contenir les champs id, userName, email et memberSince. Le champ id doit être généré automatiquement. Le champ memberSince doit représenter un code temporel.
À éviter
Si vous posez une question plus ouverte, demandez-lui de vous proposer x options.
Limiter la réponse :
À faire
À éviter
Divisez les requêtes complexes en tâches plus petites.
Si l'approche de l'agent ne correspond pas à vos attentes, il peut être utile de le guider à l'aide d'une série de requêtes plus petites et séquentielles, plutôt que de lui demander tout en même temps. Cette approche vous donne plus de contrôle et vous permet de vérifier chaque étape avant de passer à la suivante.
Appliquer des prompts séquentiels :
À faire
Requête 1 : Modèle de données
Tout d'abord, créez une classe de données Kotlin nommée User. Elle doit comporter trois propriétés : id (un Int), name (une String) et email (une String).
Prompt 2 : Couche réseau
Créez maintenant une interface d'API Retrofit appelée ApiService. Il nécessite un seul suspend fun appelé getUsers() qui renvoie un List<User>.
Prompt 3 : Gestion de l'état
Ensuite, écrivez un UsersViewModel qui prend ApiService comme dépendance. UsersViewModel doit exposer un StateFlow d'une classe UiState scellée qui peut représenter les états Loading, Success(users: List et Error(message: String). Créez une fonction dans ViewModel pour récupérer les utilisateurs et mettre à jour l'état. Écrivez des tests unitaires pour la nouvelle fonctionnalité.
Prompt 4 : Couche d'interface utilisateur
Enfin, écrivez une fonction Jetpack Compose nommée UserListScreen qui accepte UiState comme paramètre. Utilisez une instruction when pour afficher un CircularProgressIndicator pour l'état de chargement, un LazyColumn de noms d'utilisateur pour l'état de réussite et un élément Text avec le message d'erreur pour l'état d'erreur. Ajoutez des tests qui vérifient la nouvelle fonctionnalité.
À éviter
ViewModel qui utilise Retrofit et des coroutines, un dépôt pour gérer la logique des données, une classe de données User, et elle doit afficher les états de chargement et d'erreur.Gérer le contexte
Une grande partie du travail avec l'agent consiste à fournir le bon contexte. Fournissez des extraits de code, le contenu des fichiers et des informations sur la structure du projet pour obtenir les réponses les plus utiles. Vous devrez peut-être procéder par itération pour trouver le bon équilibre : trop d'informations peuvent induire l'agent en erreur, tandis que trop peu d'informations ne lui fourniront pas suffisamment de contexte pour vous aider. Utilisez les fonctionnalités disponibles pour donner à l'agent l'accès au contexte nécessaire :
- Joignez des images pour fournir un visuel de l'UI que vous envisagez ou de l'architecture de l'application que vous essayez de comprendre.
- Joignez des fichiers pour mettre en évidence les parties pertinentes de la codebase.
- Utilisez des fichiers
.aiexcludepour que l'agent ignore certaines parties du codebase. - Utilisez des fichiers AGENTS.md pour donner des instructions spécifiques au projet et les partager avec votre équipe. Lorsque vous utilisez des fichiers AGENTS.md, utilisez des en-têtes et une mise en forme Markdown pour que vos instructions soient claires.
- Lorsque vous utilisez le mode Agent, configurez des serveurs MCP pour étendre les connaissances et les capacités de l'agent avec l'environnement externe.
Demander des explications
Si vous ne comprenez pas la réponse de l'agent, demandez-lui des explications. C'est un excellent moyen d'apprendre et de vérifier que la solution proposée est adaptée à votre cas d'utilisation. Si la réponse n'est pas celle que vous attendiez, il se peut que l'agent se soit trompé. En lui demandant une explication, vous lui donnez l'occasion de se corriger.
Itérer sur vos instructions
Comme lorsque vous travaillez avec un collègue, travailler avec l'agent nécessite parfois des échanges pour clarifier la tâche et le résultat attendu. Si la réponse initiale de l'agent est insuffisante, répondez-lui en lui envoyant des commentaires et des suggestions d'amélioration. Si sa réponse s'améliore en fonction de vos suggestions, intégrez cette suggestion dans le prompt d'origine en mettant à jour l'entrée dans la bibliothèque de prompts ou en mettant à jour vos fichiers AGENTS.md.