Passer au contenu principal
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.

Comprendre la page de session de 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.

Mode Ask

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
Ask Mode

Activer le mode Ask

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.
Ask Mode from Main Page
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.
Ask Mode from DeepWiki
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.

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

Déclencher le mode Agent

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 :
Ask Mode to Agent Mode
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.
Agent Mode
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élection d’un dépôt

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.
Sélecteur de dépôt
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é

Sélection d’un agent

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.
Sélecteur d’agent
Si vous ne savez pas quel agent utiliser, l’agent par défaut fonctionne bien pour la plupart des tâches.

Utiliser les mentions @

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
At Mentions
Les mentions @ aident Devin à comprendre exactement sur quoi vous travaillez et à réduire l’ambiguïté dans vos invites.

Utilisation des commandes slash

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

Définir le périmètre de votre première session

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.

Idées de prompts pour une première utilisation

a new API endpoint
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.
frontend features
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.
unit tests
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.
or refactoring existing code
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 typage
2) exécutant la suite de tests avec `npm test LoggerTest.test.js` pour vérifier que tous les tests passent
3) vérifiant que tous les appels existants aux méthodes du logger dans l'ensemble du code fonctionnent toujours sans erreurs de typage.
unit tests
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 passent
2) 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 utilisateurs
3) 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`
Quick PR
## Vue d'ensemble
La 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 travail
1. 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ême
3. Apportez les modifications au code
    - Ne changez rien qui n'ait pas été explicitement demandé par l'utilisateur
4. 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.

Prochaines étapes

Une fois que vous êtes à l’aise avec les sessions de base, explorez ces ressources pour tirer davantage parti de Devin :