Skip to main content

Gestion du contexte dans CLI de GitHub Copilot

Découvrez comment Copilot gérer le contexte de conversation, ce qui se passe pendant de longues sessions et comment rester en contrôle de votre fenêtre de contexte.

À propos de la fenêtre de contexte

Lorsque vous utilisez CLI de GitHub Copilot, chaque message que vous envoyez, chaque réponse de Copilot, chaque appel d’outil et son résultat, et les instructions système qui définissent Copilotle comportement sont toutes conservées dans une fenêtre de contexte. La fenêtre de contexte correspond à la quantité totale d’informations que le modèle IA peut prendre en compte à la fois lors de la génération d’une réponse.

La fenêtre de contexte a une taille fixe, mesurée en jetons, qui varie selon le modèle. Les jetons se composent généralement de mots courts, couramment utilisés et de fragments de mots multi syllabes. À mesure que votre conversation progresse, la fenêtre de contexte remplit les éléments suivants :

  • Instructions système et définitions d’outils : instructions intégrées qui indiquent Copilot comment se comporter, ainsi que les schémas de tous les outils disponibles. Celles-ci sont toujours présentes et prennent une partie fixe de la fenêtre de contexte.
  •         **Vos messages** : chaque invite que vous envoyez.
    
  •         **
            Copilotréponses**: Tout ce que Copilot vous répond.
    
  •         **Appels et résultats de l’outil** : lors Copilot de la lecture de fichiers, exécute des commandes ou recherche votre codebase, la requête et la sortie sont ajoutées au contexte. Les résultats de l’outil peuvent être particulièrement volumineux, par exemple, si un outil lit un fichier long ou exécute une commande qui produit une sortie étendue.
    

Tout cela s’accumule dans la fenêtre de contexte. Dans une session longue ou complexe, la fenêtre de contexte peut se remplir.

Pourquoi la fenêtre de contexte est importante

La fenêtre de contexte est ce qui donne Copilot sa « mémoire » de votre conversation. Tout ce qui se trouve à l'intérieur de la fenêtre de contexte est disponible pour Copilot lorsqu'il vous répond.

Cela signifie que dans une session très longue, Copilot peut ne pas être en mesure de conserver l’intégralité de l’historique des conversations à la fois. CLI Copilot par conséquent, dispose de fonctionnalités de gestion du contexte qui vous permettent de poursuivre une conversation avec Copilot tant que vous en avez besoin.

Vérification de l'utilisation du contexte.

Vous pouvez vérifier combien de la fenêtre de contexte est actuellement en cours d'utilisation en entrant la /context commande slash. Cela affiche une répartition visuelle de l’utilisation de votre jeton, montrant :

  •         **Système/Outils** : surcharge fixe des instructions système et des définitions d’outils.
    
  •         **Messages** : espace utilisé par votre historique des conversations.
    
  •         **Espace libre** : Espace restant pour de nouveaux messages.
    
  •         **Mémoire tampon** : partie réservée qui déclenche la gestion automatique du contexte.
    

Capture d’écran de la sortie de la commande CLI « /context ».

Vous pourriez souhaiter utiliser la /context commande slash lorsque :

  • Vous êtes dans une longue session et vous voulez savoir combien d’espace il reste.
  •         Copilot semble oublier les parties précédentes de la conversation.
    
  • Vous souhaitez comprendre si le compactage s’est produit ou est susceptible de se produire bientôt.

Compactage

Le compactage est le processus qui permet à CLI de GitHub Copilot de prendre en charge des sessions longues sans dépasser les limites de la fenêtre de contexte.

Lorsque le compactage se produit

Lorsque votre conversation atteint environ 80% de la capacité de la fenêtre de contexte, CLI Copilot commence automatiquement à compacter le contexte en arrière-plan. Cela laisse une mémoire tampon d’environ 20% afin que les appels d’outils puissent continuer à s’exécuter pendant que le compactage est en cours. Si le contexte se remplit à environ 95% avant que le compactage ne soit terminé, CLI Copilot s’interrompt brièvement pour attendre que ce dernier soit terminé avant de continuer.

Vous pouvez également déclencher manuellement un compactage à tout moment en entrant la /compact commande. Cela est utile si vous êtes sur le point de commencer une nouvelle phase de travail et que vous souhaitez libérer de l’espace de contexte de manière proactive. Appuyez sur Échap pour annuler un compactage manuel si vous changez d’avis.

Ce que fait le compactage

Lorsque le compactage s’exécute, CLI Copilot:

  1. Prend un instantané de l’historique des conversations actuelles.
  2. Envoie la conversation complète au modèle IA avec une invite spéciale qui lui demande de générer un résumé structuré. Le résumé capture les objectifs de la conversation, ce qui a été fait, les détails techniques clés, les fichiers importants et les étapes suivantes planifiées.
  3. Remplace l’ancien historique des conversations par le résumé, ainsi que les instructions utilisateur d’origine et l’état actuel des plans ou listes de to-do.
  4. Garde tous les messages ajoutés pendant que le compactage s'exécutait en arrière-plan.

Le résultat est que l’historique des conversations est compressé dans un résumé beaucoup plus petit, libérant la majorité de la fenêtre de contexte pour le nouveau travail. Copilot utilise ce résumé pour maintenir la continuité , il sait ce qui a été discuté, ce qui a été décidé et ce qu’il faut faire ensuite, même si les messages d’origine ont été remplacés.

Ce que le compactage ne conserve pas

Le compactage est un processus de synthèse, donc certains détails sont inévitablement perdus. Le résumé capture les points clés, mais des détails précis, tels que la formulation exacte de chaque message, la sortie complète de chaque commande ou les décisions mineures prises au début d’une longue conversation, peuvent ne pas être incluses. Si vous avez besoin Copilot de rappeler un détail très spécifique de beaucoup plus tôt dans la session, il se peut qu’il ne dispose pas de ces informations après le compactage.

Ce qui se passerait sans compactage

Une fois la fenêtre de contexte remplie, sans compactage, Copilot il faudrait revenir à la simple suppression des anciens messages de l’historique des conversations, c’est-à-dire les supprimer sans aucun résumé ni enregistrement. Cela signifierait perdre brusquement le contexte, sans aucun moyen de Copilot savoir ce qui était dans les messages supprimés. Le compactage évite cela en remplaçant l’historique par un résumé intelligent plutôt que de le supprimer.

Points de contrôle

Chaque fois qu’un compactage se produit ( que ce soit automatiquement ou manuellement), un point de contrôle est créé. Un point de contrôle est une copie enregistrée du résumé du compactage, stockée sous forme de fichier titré et numéroté dans l’espace de travail de votre session.

Affichage des points de contrôle

Pour afficher tous les points de contrôle dans votre session active, entrez :

Copilot prompt
/session checkpoints

Cela répertorie chaque point de contrôle avec son numéro et son titre :

Checkpoint History (3 total):
  3. Refactoring authentication module
  2. Implementing user dashboard
  1. Initial planning and setup

Utilisez le numéro de point de contrôle pour afficher le contenu complet de n’importe quel point de contrôle. Par exemple, pour afficher le point de contrôle 2, entrez :

Copilot prompt
/session checkpoints 2

Quand les points de contrôle sont utiles

  •         **Examen de ce qui s’est passé** : après une longue session avec plusieurs compactages, les phases antérieures de la conversation ne sont plus dans le contexte actif. Les points de contrôle vous permettent de revenir sur ce que Copilot a fait lors de chaque compactage.
    
  •         **Vérification de la continuité** : si vous souhaitez vérifier que Copilotle résumé a correctement capturé votre travail antérieur avant de continuer, vous pouvez passer en revue le point de contrôle le plus récent.
    
  •         **Confusion liée au débogage** : s'il Copilot semble avoir oublié une décision ou s'il va dans une direction qui contredit le travail précédent, la vérification des points de contrôle peut révéler ce qui a été conservé pendant le compactage et ce qui pourrait avoir été résumé différemment de ce que vous aviez imaginé.
    

Remarque

  • Les points de contrôle sont créés automatiquement. Vous n’avez pas besoin de les gérer , ils sont là si vous en avez besoin. Pour la plupart des sessions, vous n’aurez pas besoin d’examiner les points de contrôle du tout.
  • Vous ne pouvez pas inverser un compactage une fois qu’il est terminé.

Utilisation de sessions longues

Le compactage automatique vous permet de travailler sans interruption dans une session de longue durée, sans vous soucier d’atteindre les limites de la fenêtre de contexte. Il y a des moments où cela est très utile, et d’autres fois quand vous préférerez peut-être démarrer une nouvelle session.

Quand de longues sessions sont utiles

Les sessions longues fonctionnent bien quand :

  • Vous travaillez sur une tâche multiphase, telle que la création d’une fonctionnalité qui nécessite la génération d’une structure, l’implémentation, le test, puis la création d’un pull request.
  • Vous effectuez une itération sur un problème et souhaitez Copilot conserver le contexte de ce qui a été essayé et ce qui n’a pas fonctionné.
  • Vous effectuez un travail exploratoire dans une base de code et développez une compréhension partagée avec Copilot au fil du temps.

Quand démarrer une nouvelle session

Le démarrage d’une nouvelle session est préférable lorsque :

  • Vous passez à une tâche non liée. Copilot n’a pas besoin du contexte de votre travail précédent, et une fenêtre de contexte propre signifie plus d’espace pour la nouvelle tâche.
  • La conversation a traversé de nombreuses compactions et vous avez l'impression que du contexte important se perd dans le processus de synthèse.
  • Vous souhaitez repartir de zéro, par exemple, si le travail est allé dans une mauvaise direction et que vous préférez recommencer plutôt que d’essayer Copilot d'harmoniser les décisions antérieures avec une nouvelle approche.

Conseil

Vous pouvez reprendre les sessions précédentes à tout moment à l’aide de la /resume commande. Cela vous permet de récupérer l’emplacement où vous vous êtes arrêté, y compris les points de contrôle qui ont été créés pendant cette session.

Lectures complémentaires

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)