Skip to main content
Skip to content

Création manuelle de memories pour GitHub Copilot

Invitez Copilot à mémoriser une préférence personnelle ou un fait sur un dépôt.

Qui peut utiliser cette fonctionnalité ?

Disponible pour tous les plans payants Copilot .
Sign up for Copilot

Copilot Memory permet d’en Copilot savoir plus sur votre codebase et vos préférences personnelles, ce qui aide les agents à Copilot travailler plus efficacement. Pour plus d’informations, consultez « À propos de la mémoire GitHub Copilot ».

Si Copilot Memory est activé, Copilot crée automatiquement des souvenirs pendant qu’il traite des tâches. La plupart du temps, vous pouvez laisser Copilot identifier et stocker les faits et les préférences utilisateur du référentiel. Toutefois, parfois, vous souhaiterez peut-être ajouter explicitement un fait ou une préférence particulier que vous souhaitez Copilot mémoriser. C’est l’objectif de cet article.

Vous ne pouvez pas créer ou modifier un souvenir individuel dans les paramètres de GitHub.com. Au lieu de cela, vous demandez à Copilot d’ajouter la mémoire de stockage pour vous. Vous pouvez effectuer cette opération à l’aide de Copilot CLI, Copilot cloud agent, GitHub Copilot app ou Visual Studio Code, si Copilot Memory est disponible pour votre compte. Vous pouvez également utiliser Copilot CLI pour importer des mémoires préparées en bloc.

Important

Demander à Copilot d’enregistrer un souvenir ne garantit pas qu’il sera enregistré. Le modèle détermine s’il faut stocker la mémoire en fonction de l’invite et du contexte. Même l’ajout correct d’une mémoire ne garantit pas que Copilot l’utilisera toujours. Pour fournir des instructions de manière cohérente, utilisez des instructions personnalisées plutôt que de vous appuyer sur Copilot Memory. Consultez « Instructions personnalisées pour GitHub Copilot ».

Demander à Copilot de se souvenir d’un fait ou d’une préférence

Pour que Copilot enregistre une information en mémoire, utilisez un prompt (ou un commentaire dans une pull request) qui fournit une instruction non ambiguë, avec des détails précis sur le fait ou la préférence que vous souhaitez capturer dans le stockage mémoire. Copilot déterminera s’il faut stocker la mémoire en tant que fait de niveau référentiel ou préférence au niveau de l’utilisateur, en fonction du contexte et des informations que vous fournissez.

Si une mémoire correspondante existe déjà, Copilot peut renforcer cette mémoire au lieu de créer un doublon.

Vous ne pouvez créer un fait au niveau du référentiel que dans un référentiel dans lequel Copilot Memory est activé et pour lequel vous disposez d’un accès en écriture.

Pour plus d’informations sur le prompting Copilot dans différentes surfaces, consultez :

Exemples d’invites

Pour les faits au niveau du référentiel, utilisez des instructions comme suit :

  • Store a memory that api/openapi.gen.go is generated here. Edit openapi.yaml instead.
  • Remember that API handlers in this repository return errors through formatApiError.
  • Create a memory for this repository: Database migrations belong in db/migrations, not in application startup code.

Pour les préférences au niveau de l’utilisateur, vous pouvez spécifier la façon dont vous souhaitez que Copilot collabore avec vous, quand il doit demander votre autorisation, ou un flux de travail à suivre dans vos projets :

  • Remember I always want the smallest change that fixes the problem, not a refactor.
  • Across all my projects, remember to ask for my approval before publishing changes.
  • Remember my workflow for all projects: Run the relevant tests and summarize their results before proposing a commit.

Important

Lorsque vous commentez dans une pull request, écrivez @copilot au début du commentaire. Cela amène Copilot cloud agent à le voir comme une invite à laquelle il doit répondre, plutôt qu’en tant que commentaire régulier.

Dans Copilot CLI, seul l’agent racine peut stocker ou voter sur les mémoires. Les sous-agents peuvent utiliser des mémoires pertinentes, mais ils ne peuvent pas modifier le stockage de mémoire.

Approuver les mises à jour de mémoire dans Copilot CLI

Dans les sessions interactives, selon vos paramètres d’autorisation, Copilot peut vous demander d’approuver l’enregistrement d’un souvenir ou d’évaluer l’utilité d’un souvenir existant. L’invite de commande affiche la mémoire et si elle s’applique à vous ou si elle est partagée avec les collaborateurs du référentiel.

Vous pouvez approuver la mise à jour une fois, la rejeter avec des commentaires facultatifs ou choisir d’autoriser les futures mises à jour de mémoire sans vous le demander. L’option d’approbation indique si elle s’applique au référentiel actuel, au répertoire ou à la session.

Importer des souvenirs avec Copilot CLI

Vous pouvez utiliser Copilot CLI pour importer des mémoires préparées à partir d’un fichier JSONL. Chaque ligne doit contenir un objet mémoire versionné.

Cet exemple contient deux lignes renvoyées à la ligne. Chaque ligne (objet mémoire) commence par {"type":"memory"....

{"type":"memory","version":1,"externalId":"personal-testing-1","scope":{"type":"user"},"subject":"testing","fact":"Run focused tests first.","reason":"This is the user's preferred validation workflow.","citations":[{"type":"text","text":"User input: \"Run focused tests first.\""}]}
{"type":"memory","version":1,"externalId":"repo-testing-1","scope":{"type":"repository","repository":{"host":"github.com","owner":"octo-org","name":"octo-repo"}},"subject":"testing","fact":"Run npm test before opening a pull request.","reason":"The repository requires this validation workflow.","citations":[{"type":"file","path":"CONTRIBUTING.md","lineStart":10,"lineEnd":12}]}

Les champs type, scope, fact, reason, version, subject et citations sont obligatoires. Le champ externalId est facultatif. Utilisez-la pour identifier un enregistrement dans les résultats d’importation et détecter les ID répétés dans le fichier d’entrée. Il n’est pas stocké en tant qu’identificateur de mémoire permanent.

Pour un fait au niveau du dépôt, remplacez octo-repo et octo-org par le propriétaire et le nom d’un dépôt sur GitHub.com. Vous devez avoir l’autorisation d’écrire des Memories pour ce dépôt. Remplacez PATH-TO-FILE dans les commandes suivantes par le chemin d’accès à votre fichier JSONL.

  1. Validez le fichier complet sans envoyer de mémoires de traduction. Cela vérifie le format de fichier, et non l’autorisation de votre compte de stocker les mémoires :

    copilot memories import PATH-TO-FILE --dry-run
    
  2. Importez les mémoires:

    copilot memories import PATH-TO-FILE
    

Par défaut, une répétition externalId dans le fichier d’entrée ou un conflit de mémoire existant provoque une erreur pour cet enregistrement. Pour ignorer les conflits à la place, ajoutez --on-conflict skip. Pour recevoir le résultat au format JSON, ajoutez --output json.

Vérifiez le résultat de chaque enregistrement. Certains enregistrements peuvent être importés même si d’autres échouent. Pour réessayer une importation partielle, envoyez uniquement les enregistrements qui ont échoué. La répétition de l’importation entière peut créer des mémoires en double.

L’exécution de la commande d’importation est traitée comme une approbation pour soumettre les enregistrements, donc Copilot CLI ne vous demande pas d’approuver chaque mémoire de traduction séparément. Les exigences d’authentification normale, de stratégie, d’autorisation de dépôt, de validation d’étendue et d’analyse des secrets s’appliquent toujours. Les faits au niveau du dépôt sont partagés avec des collaborateurs qui peuvent utiliser Copilot Memory dans le dépôt.

Déterminer si une mémoire s’applique à un référentiel ou à vous

Copilot détermine s’il faut stocker un souvenir sous la forme d’un fait au niveau du référentiel ou d’une préférence au niveau de l’utilisateur, en fonction de la personne à laquelle le souvenir s’applique plutôt qu’à celle qui l’a dit. Indiquez explicitement la portée prévue. Si la portée n’est pas claire, Copilot vous demande de clarifier plutôt que de deviner.

StockerFormulez-le commeExample
Un fait de niveau dépôtQuelque chose qui est vrai pour toute personne travaillant dans ce dépôtDans ce dépôt, les migrations de base de données sont toujours exécutées avant la suite de tests.
Préférence utilisateurQuelque chose sur la façon dont vous aimez travailler personnellement, dans tous vos projets« Dans tous mes projets, je préfère que vous expliquiez une modification avant de l’appliquer. »

Ne vous appuyez pas sur des expressions telles que « toujours » ou « à l’avenir » pour sous-entendre un périmètre. Indiquez si la mémoire vous concerne dans tous les dépôts ou toutes les personnes travaillant dans le dépôt actuel.

Suppression d’une mémoire

Les mémoires expirent si elles ne sont pas renforcées dans la période de rétention par défaut ou configurée. Copilot ne peut pas supprimer un souvenir enregistré en réponse à une invite. Par exemple, si vous demandez à Copilot d’« oublier » un souvenir, elle peut attribuer un vote négatif à ce fait ou à cette préférence, mais cela ne le supprime pas du stockage de mémoire.

Pour supprimer immédiatement une mémoire, vous devez le faire dans vos paramètres personnels ou les paramètres du dépôt. Consultez Gestion de la mémoire Copilot pour votre compte personnel pour connaître les préférences au niveau de l’utilisateur et Gestion de la mémoire Copilot pour une entreprise, une organisation ou un référentiel pour connaître les informations au niveau du dépôt.