Skip to main content
Skip to content

Criar memórias manualmente para GitHub Copilot

Peça a Copilot para lembrar uma preferência pessoal ou um fato sobre um repositório.

Quem pode usar esse recurso?

Disponível para todos os planos pagos Copilot .
Sign up for Copilot

Copilot Memory permite que Copilot aprenda sobre sua base de código e suas preferências pessoais, ajudando os agentes Copilot a trabalharem com mais eficiência. Para obter mais informações, consulte Sobre a Memória do GitHub Copilot.

Se Copilot Memory estiver habilitado, Copilot criará memórias automaticamente, à medida que trabalha nas tarefas. Na maioria das vezes, você pode deixar Copilot para identificar e armazenar fatos do repositório e preferências do usuário. No entanto, ocasionalmente, talvez você queira adicionar explicitamente um fato ou preferência específico que você deseja que Copilot se lembre. Esse é o foco deste artigo.

Não é possível criar ou editar uma memória específica nas configurações em GitHub.com. Em vez disso, você pede Copilot para adicionar a memória para você. Você pode fazer isso usando Copilot CLI, Copilot cloud agent, GitHub Copilot appou Visual Studio Code, se Copilot Memory estiver disponível para sua conta. Você também pode usar Copilot CLI para importar memórias preparadas em massa.

Importante

Pedir ao Copilot que armazene uma memória não garante que ela será armazenada. O modelo decide se deve armazenar a memória com base no prompt e no contexto. Mesmo adicionando uma memória com êxito não garante que Copilot sempre a usará. Para fornecer instruções consistentemente, use instruções personalizadas em vez de depender de Copilot Memory. Consulte Instruções personalizadas para GitHub Copilot.

Pedindo Copilot para se lembrar de um fato ou preferência

Para fazer com que Copilot armazene uma memória, use um prompt (ou um comentário em uma solicitação de pull) que forneça uma instrução inequívoca, fornecendo detalhes precisos sobre o fato ou preferência que você deseja capturar no repositório de memória. Copilot decidirá se armazenará a memória como um fato no nível do repositório ou uma preferência no nível do usuário, com base no contexto e nas informações fornecidas.

Se uma memória correspondente já existir, Copilot poderá reforçar essa memória em vez de criar uma duplicata.

Você só pode criar um fato no nível do repositório em um repositório no qual Copilot Memory está habilitado e no qual você tem acesso de gravação.

Para obter mais informações sobre solicitações Copilot em várias interfaces, consulte:

Prompts de exemplo

Para informações no nível do repositório, use prompts como estes:

  • 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.

Para preferências no nível do usuário, você pode especificar como deseja Copilot colaborar com você, quando ele deve solicitar aprovação ou um fluxo de trabalho para seguir em seus projetos:

  • 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.

Importante

Ao comentar em uma solicitação pull, escreva @copilot no início do comentário. Isso faz com que Copilot cloud agent o veja como um prompt ao qual deve responder, em vez de como um comentário comum.

Em Copilot CLI, somente o agente raiz pode armazenar ou votar em memórias. Os subagentes podem usar memórias relevantes, mas não podem alterar o repositório de memória.

Aprovando atualizações de memória em Copilot CLI

Em sessões interativas, dependendo das configurações de permissão, Copilot pode pedir que você aprove o armazenamento de uma memória ou a classificação da utilidade de uma memória existente. O prompt mostra a memória e se ela se aplica a você ou é compartilhada com colaboradores do repositório.

Você pode aprovar a atualização uma vez, rejeitá-la com comentários opcionais ou optar por permitir futuras atualizações de memória sem perguntar a você. A opção de aprovação indica se ela se aplica ao repositório, diretório ou sessão atuais.

Importando memórias com Copilot CLI

Você pode usar Copilot CLI para importar memórias preparadas de um arquivo JSONL. Cada linha deve conter um objeto de memória versionado.

Este exemplo contém duas linhas quebradas. Cada linha (objeto de memória) começa com {"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}]}

Os campos type, version, scope, subject, fact, reason e citations são necessários. O campo externalId é opcional. Use isso para identificar um registro nos resultados de importação e detectar IDs repetidos no arquivo de entrada. Não é armazenado como um identificador de memória permanente.

Para um fato no nível do repositório, substitua octo-org e octo-repo pelo proprietário e nome de um repositório em GitHub.com. Você deve ter permissão para gravar memórias para esse repositório. Substitua PATH-TO-FILE nos comandos a seguir pelo caminho para o seu arquivo JSONL.

  1. Valide o arquivo completo sem enviar nenhuma memória. Isso verifica o formato de arquivo, não a permissão da sua conta para armazenar as memórias:

    copilot memories import PATH-TO-FILE --dry-run
    
  2. Importe as memórias:

    copilot memories import PATH-TO-FILE
    

Por padrão, uma repetição externalId dentro do arquivo de entrada ou um conflito existente na memória causa um erro para esse registro. Em vez disso, para ignorar conflitos, adicione --on-conflict skip. Para receber o resultado como JSON, adicione --output json.

Verifique o resultado de cada registro. Alguns registros podem ser importados mesmo que outros falhem. Para tentar novamente uma importação parcial, envie apenas os registros que falharam. Repetir toda a importação pode criar memórias duplicadas.

A execução do comando de importação é tratada como aprovação para confirmar os registros, portanto Copilot CLI não solicita que você aprove cada memória separadamente. Autenticação normal, política, permissão de repositório, validação de escopo e requisitos de secret scanning ainda se aplicam. As informações no nível do repositório são compartilhadas com colaboradores que podem usar Copilot Memory no repositório.

Determinando se uma memória se aplica a um repositório ou a você

Copilot decide se armazena uma memória como um fato no nível do repositório ou uma preferência no nível do usuário, com base em a quem a memória se aplica em vez de quem a disse. Declare o escopo pretendido explicitamente. Se o escopo não estiver claro, Copilot pede que você esclareça em vez de adivinhar.

Para armazenarExpresse comoExample
Um fato no nível do repositórioAlgo que é verdadeiro para qualquer pessoa que trabalhe neste repositório"Neste repositório, as migrações de banco de dados são sempre executadas antes do conjunto de testes."
Uma preferência do usuárioAlgo sobre como você gosta pessoalmente de trabalhar, em todos os seus projetos"Em todos os meus projetos, prefiro que explique uma alteração antes de aplicá-la."

Não confie em frases como "sempre" ou "daqui para frente" para sugerir um escopo. Diga se a memória se aplica a você em todos os repositórios ou a todos que trabalham no repositório atual.

Excluindo uma memória

As memórias expirarão se não forem reforçadas dentro do período de retenção padrão ou configurado. Copilot não pode, por si só, excluir uma memória em resposta a um prompt. Por exemplo, se você pedir Copilot para "esquecer" uma memória, ela poderá votar negativamente nesse fato ou preferência, mas isso não a excluirá do repositório de memória.

Para excluir uma memória imediatamente, você deve fazer isso em suas configurações pessoais ou de repositório. Consulte Gerenciamento de memória Copilot para sua conta pessoal para obter preferências no nível do usuário e Gerenciamento de memória Copilot para uma empresa, organização ou repositório para obter fatos no nível do repositório.