Lancez votre première session et voyez ce que Devin peut faire
Avant de démarrer votre première session, assurez-vous d’avoir indexé et configuré vos dépôts. Ce sont des étapes essentielles qui aident Devin à comprendre et à travailler avec votre base de code.
Maintenant que tout est configuré, lancez votre première session Devin ! Ce guide vous présentera la nouvelle interface de session et vous aidera à comprendre les meilleures façons d’interagir avec Devin.
Lorsque vous démarrez une nouvelle session, vous verrez deux modes principaux : Ask et Agent.
À moins que vous n’ayez déjà un plan entièrement défini, nous vous recommandons de commencer par le mode Ask pour travailler avec Devin à l’élaboration d’un plan, puis de passer au mode Agent pour le mettre en œuvre.
Ask Devin est un mode léger pour explorer votre base de code et planifier des tâches avec Devin, sans modifier le code lui-même. Utilisez le mode Ask pour :
Poser des questions sur le fonctionnement de votre code
Explorer l’architecture et les dépendances
Planifier et définir le périmètre des tâches avant l’implémentation
Générer des prompts riches en contexte pour les sessions Agent
Vous pouvez activer le mode Ask depuis la page principale ou depuis une page DeepWiki.Pour utiliser le mode Ask depuis la page principale, basculez en mode Ask et sélectionnez le ou les dépôts sur lesquels vous voulez poser des questions.
Pour utiliser le mode Ask depuis une page DeepWiki, saisissez une question dans la zone de saisie du chat en bas de la page et cliquez sur Ask. Cela limitera automatiquement les connaissances de Devin à ce dépôt spécifique.
Pour en savoir plus, consultez notre guide Ask Devin.Une fois que vous avez travaillé avec Devin pour comprendre le problème et établir un plan, vous êtes prêt à passer en mode Agent.
Le mode Agent est le mode d’autonomie complète de Devin, dans lequel il peut écrire du code, exécuter des commandes, naviguer sur le Web et réaliser des tâches complexes de bout en bout. Utilisez le mode Agent lorsque vous êtes prêt à :
Implémenter des fonctionnalités ou corriger des bugs
Créer des pull requests
Exécuter des tests et déboguer des problèmes
Effectuer des tâches en plusieurs étapes nécessitant des modifications de code
Vous pouvez déclencher le mode Agent depuis la page principale ou depuis une session Ask Devin.Pour les tâches qui ne sont pas entièrement définies, nous recommandons :
Commencez par le mode Ask pour planifier la tâche
Créez un Devin Prompt, qui s’appuiera sur votre session Ask pour créer un plan cadré
Cliquez sur Send to Devin pour passer en mode Agent et exécuter la tâche
Ce processus est illustré ci-dessous :
Pour utiliser le mode Agent depuis la page principale, activez le mode Agent et sélectionnez le ou les dépôts avec lesquels vous voulez travailler.
Lorsque vous démarrez une session Agent, vous configurez quelques options : la sélection d’un dépôt et la sélection d’un Agent.
Sélectionnez le dépôt avec lequel vous souhaitez que Devin travaille. Cliquez sur le sélecteur de dépôt pour voir tous les dépôts qui ont été ajoutés à la machine de Devin.
Lorsque vous sélectionnez un dépôt, Devin :
A accès à votre base de code et peut la modifier
Utilise la bonne branche comme point de départ
Peut créer des pull requests vers le dépôt approprié
Vous pouvez choisir quelle configuration d’agent Devin doit utiliser pour votre session. Différents agents peuvent offrir des capacités différentes ou être optimisés pour des types de tâches spécifiques.Actuellement, nous proposons un agent par défaut qui fonctionne bien pour la plupart des tâches, ainsi qu’un agent analyste de données nommé Dana, optimisé pour les tâches d’analyse de données.
Si vous ne savez pas quel agent utiliser, l’agent par défaut fonctionne bien pour la plupart des tâches.
Utilisez les mentions @ pour donner à Devin un contexte précis sur des fichiers, des dépôts ou d’autres ressources. Lorsque vous tapez @ dans le champ de saisie du chat, un menu déroulant des mentions disponibles s’affiche :
@Repos - Faire référence à un dépôt spécifique
@Files - Faire référence à un fichier spécifique dans votre base de code
@Macros - Faire référence à une macro pour une entrée Knowledge
@Playbooks - Faire référence à un playbook d’équipe ou de communauté, c’est-à-dire des modèles d’invite détaillés qui peuvent être utilisés pour guider le comportement de Devin
@Secrets - Faire référence à un secret spécifique (par exemple une API key, des identifiants, etc.) provenant du gestionnaire de session de Devin
Les mentions @ aident Devin à comprendre exactement sur quoi vous travaillez et à réduire l’ambiguïté dans vos invites.
Les commandes slash sont des raccourcis qui se transforment en modèles de requêtes prédéfinis. Tapez / dans le champ de saisie du chat pour voir les commandes disponibles :
/plan - Demander à Devin de vous aider à définir la portée et à planifier une tâche
/review - Configurer un flux de travail de revue de code
/test - Créer des tests ou analyser la couverture de tests
/think-hard - Demander à Devin de réfléchir plus attentivement à des problèmes complexes
/implement - Implémenter une fonctionnalité ou une modification spécifique
Les organisations Enterprise peuvent également créer des commandes slash personnalisées pour des flux de travail propres à une équipe. Pour en savoir plus, consultez notre guide sur les commandes slash.
Commencez par des tâches de plus petite envergure et n’oubliez pas de donner à Devin le même niveau de détail dans vos instructions que vous donneriez à un ingénieur junior humain. Nous avons vu des utilisateurs travailler avec Devin sur tout, de la correction de petits bugs à des refactorings ciblés, jusqu’à des migrations à grande échelle.
Créez un nouvel endpoint /users/stats qui renvoie un objet JSON avec le nombre d'utilisateurs et l'âge moyen à l'inscription. Utilisez notre table users déjà existante dans PostgreSQL. Vous pouvez vous référer à l'endpoint /orders/stats dans statsController.js pour comprendre comment nous structurons les réponses. Assurez-vous que le nouvel endpoint est couvert par la suite de tests StatsController.test.js.
Petites fonctionnalités côté front-end
frontend features
Copier
Demander à l'IA
Dans `UserProfileComponent`, ajoutez un menu déroulant qui affiche une liste de rôles utilisateur (admin, éditeur, lecteur). Utilisez les styles de `DropdownBase`. Lorsqu'un rôle est sélectionné, appelez l'API existante pour définir le rôle de l'utilisateur. Validez en vérifiant que la sélection met à jour le rôle de l'utilisateur dans la base de données. Référez-vous à votre Knowledge pour savoir comment tester correctement.
Écrivez des tests unitaires
unit tests
Copier
Demander à l'IA
Ajoutez des tests Jest pour les méthodes d’AuthService : login et logout. Assurez-vous que la couverture de tests pour ces deux fonctions est d’au moins 80 %. Utilisez UserService.test.js comme exemple.Après l’implémentation, exécutez `npm test -- --coverage` et vérifiez que le rapport de couverture indique plus de 80 % pour les deux fonctions. Vérifiez également que les tests réussissent avec des identifiants valides et non valides, et que logout efface correctement les données de session.
Migration ou refactorisation de code existant
or refactoring existing code
Copier
Demander à l'IA
Migrez logger.js de JavaScript vers TypeScript. Nous avons déjà un tsconfig.json et une suite de tests LoggerTest.test.js pour la validation. Assurez-vous que la compilation se fait sans erreurs et veillez à ne pas modifier la configuration existante !Après la migration, vérifiez en : 1) exécutant `tsc` pour confirmer l'absence d'erreurs de typage2) exécutant la suite de tests avec `npm test LoggerTest.test.js` pour vérifier que tous les tests passent3) vérifiant que tous les appels existants aux méthodes du logger dans l'ensemble du code fonctionnent toujours sans erreurs de typage.
Mise à jour des API ou des requêtes de base de données
unit tests
Copier
Demander à l'IA
Nous passons de pg à Sequelize (voir https://sequelize.org/api/v6/identifiers). Veuillez mettre à jour les requêtes de `UserModel` pour utiliser les méthodes Sequelize. Reportez-vous à `OrderModel` pour voir comment nous procédons dans ce codebase.Après l’implémentation, procédez aux vérifications suivantes :1) exécuter `npm run test:integration UserModel.test.js` pour vérifier que tous les tests d’intégration passent2) confirmer que les performances des requêtes ne se sont pas dégradées en vérifiant le temps d’exécution sur un jeu de données de test de 1000 utilisateurs3) valider que toutes les opérations CRUD maintiennent toujours l’intégrité des données en exécutant `npm run test:e2e user-flows.test.js`
Créez rapidement une PR (nous recommandons d’utiliser ce prompt dans un Playbook)
Quick PR
Copier
Demander à l'IA
## Vue d'ensembleLa tâche consiste à créer rapidement une pull request sur un dépôt.Comme il s'agit d'une PR « rapide », vous n'avez pas besoin d'exécuter du code ni de tester quoi que ce soit ; faites simplement une PR et l'utilisateur s'occupera des tests. Votre seule responsabilité est de lire et d'écrire du code.## Ce dont nous avons besoin de la part de l'utilisateur- Le dépôt sur lequel créer une pull request## Procédure### Préparer votre espace de travail1. Accédez au dépôt concerné sur votre machine (demandez des précisions à l'utilisateur si vous ne parvenez pas à l'identifier). - Basculez sur la branche principale et notez son nom. - Basculez sur une nouvelle branche puisque vous allez créer une pull request. Le nom de la branche doit avoir le format `devin/<your-branch-name>/X` où X est un nombre aléatoire. Par exemple `devin/fix-popup/3234`. Exécutez `git remote -v && git pull && git checkout -b devin/{branch-name}/$RANDOM` et remplacez `{branch-name}` par le nom de la branche que vous souhaitez créer.2. Étudiez la demande, le codebase et planifiez les changements - Passez en revue les fichiers et sections de code les plus pertinents, en identifiant les extraits concernés. - Informez l'utilisateur de votre plan### Travailler sur la PR elle-même3. Apportez les modifications au code - Ne changez rien qui n'ait pas été explicitement demandé par l'utilisateur4. Créez la PR - Validez (commit) et poussez les modifications, puis informez l'utilisateur. - Consultez la section de conseils pour la commande exacte permettant de créer la PR - Créez une pull request et relisez la PR pour vérifier qu'elle est correcte. - Assurez-vous que toutes les GitHub Actions passent avec succès et apportez les modifications nécessaires jusqu'à ce que ce soit le cas - Envoyez le lien de la PR à l'utilisateur et résumez ce que vous avez changé.5. Traitez tout retour de revue ; renvoyez le lien de la PR à chaque fois que vous apportez des modifications - Si vous devez faire des mises à jour, poussez simplement des commits supplémentaires sur la même branche ; n'en créez pas une nouvelle## Spécification de la tâche- Le lien de la PR est inclus dans vos messages à l'utilisateur- La PR a été relue après sa création- La PR n'inclut aucune modification parasite- La PR ne change rien qui n'ait pas été explicitement demandé par l'utilisateur- La description de la PR doit inclure un résumé des changements, formaté sous forme de checklist- La description de la PR doit mentionner que le code a été écrit sans tests, et inclure - [ ] Test the changes as an item- La description de la PR doit inclure le pied de page suivant : "Cette PR a été écrite par [Devin](https://devin.ai/) :angel:"- La description de la PR doit inclure toutes les métadonnées fournies par l'utilisateur (par exemple, les tags de tickets Linear avec la syntaxe appropriée)- La description de la PR ne doit pas être mal formatée (utilisez --body-file au lieu de --body si les sauts de ligne sont corrompus !)## Actions interdites- NE PAS essayer d'accéder à github.com via le navigateur, vous ne serez pas authentifié.- NE JAMAIS faire de force push sur des branches ! Préférez les merges aux rebases pour ne pas perdre de travail.- NE PAS pousser directement sur la branche principale.## Conseils et indications- Revérifiez le nom de la branche principale (qui peut être `main` ou `master`) en utilisant `git branch`.- Pour les dépôts avec CI/CD via GitHub Actions, vous pouvez consulter les logs de build en utilisant la gh cli. Si l'on vous demande de corriger un build ou un problème de lint, commencez par consulter les logs de build récents.- Vérifiez `git status` avant de valider (commit) ou d'ajouter des fichiers.- Utilisez `git diff` pour voir quelles modifications vous avez apportées avant de valider.- Si vous mettez à jour un dépôt existant, utilisez `gh cli` pour créer des pull requests.- Envoyez le lien de la PR à l'utilisateur à chaque fois que vous faites une mise à jour et demandez-lui de relire à nouveau, afin de lui faciliter la tâche.- Vous devriez déjà être autorisé à accéder à tous les dépôts mentionnés par l'utilisateur. Sinon, demandez à l'utilisateur de vous accorder l'accès.
Si vous souhaitez explorer des exemples plus détaillés de ce que Devin peut faire (et comment), consultez nos tutoriels d’introduction ci-dessous.