Qualquer desenvolvedor que comece a trabalhar em uma base de código existente normalmente lerá o README do repositório, as convenções de codificação e outras documentações para entender como o projeto funciona e como contribuir. Isso os ajuda a enviar pull requests de boa qualidade desde o início. À medida que eles trabalham no projeto, a qualidade de seu trabalho normalmente melhorará, à medida que eles se familiarizam mais com a base de código e aprendem suas nuances. Da mesma forma, Copilot Memory permite Copilot criar sua própria compreensão de um repositório e a maneira como você gosta de trabalhar, permitindo que ele se torne cada vez mais eficaz ao longo do tempo.
Tipos de memórias
Copilot pode armazenar dois tipos de memória:
- As informações no nível do repositório descrevem uma base de código e são compartilhadas com seus colaboradores.
- As preferências no nível do usuário descrevem como você gosta pessoalmente de trabalhar e acompanham você entre repositórios. Eles podem incluir como você deseja que as respostas sejam apresentadas, as ações que exigem sua aprovação e os fluxos de trabalho que você deseja que Copilot siga em todos os projetos.
| Fatos no nível do repositório | Preferências no nível do usuário | |
|---|---|---|
| O que eles capturam | Fatos sobre um repositório, como convenções de codificação, decisões de arquitetura, comandos de build e teste e regras específicas do projeto. | Suas preferências claramente declaradas, não sensíveis, requisitos de aprovação e fluxos de trabalho reutilizáveis que se aplicam em seus projetos. |
| Quem pode vê-los | Usuários com acesso de leitura ao repositório que podem usar Copilot Memory. Visualizar memórias nas configurações do repositório requer acesso de gravação e preferências no nível do usuário habilitadas para sua conta. | Você e qualquer pessoa que possa visualizar uma sessão de agente compartilhada na qual a preferência será exibida. Nos planos Copilot Business e Copilot Enterprise, um administrador da organização ou da empresa também pode exibi-los e exportá-los. |
| Onde se aplica | Somente em operações no mesmo repositório. | Em suas Copilot interações em todos os repositórios. |
| Quem pode criá-los | Usuários com acesso de gravação ao repositório que têm Copilot Memory habilitado. | Somente você, com base em suas próprias interações. |
| Quem pode excluí-los | Usuários com acesso de gravação ao repositório que têm preferências de nível de usuário habilitadas para sua conta. Consulte Gerenciamento de memória Copilot para uma empresa, organização ou repositório. | Você. Nos planos Copilot Business e Copilot Enterprise, um administrador da organização ou da empresa também pode excluí-los. |
| Como eles são citados | Com citações apontando para o código que dá suporte ao fato. | Com citações que podem incluir aspas diretas do que você disse. |
Por exemplo, "este repositório usa o Vitest para testes de unidade" é um fato sobre a base de código que é útil para todos que trabalham nele, portanto, ele é armazenado como um fato no nível do repositório. "Explicar suas alterações antes de aplicá-las" é uma instrução sobre como você deseja Copilot se comportar pessoalmente, portanto, ela é armazenada como uma preferência no nível do usuário e se aplica onde quer que você trabalhe.
As memórias só são criadas quando as configurações aplicáveis permitem esse tipo de memória.
Onde Copilot Memory está disponível
Copilot Memory está disponível em todos os planos pagos Copilot . Se ele é usado depende das configurações do plano, do acesso ao repositório e da interface que você usa.
Copilot Memory pode ser usado por Copilot :
- GitHub Copilot app
- Copilot CLI
- Copilot code review
- Copilot cloud agent
- Agentic Autofix
- Copilot em GitHub Mobile
- Copilot no Slack
- Copilotem Microsoft Teams
Fatos e preferências captadas por uma Copilot superfície podem ser usados por outra Copilot superfície. Por exemplo, se Copilot cloud agent descobrir como seu repositório lida com conexões de banco de dados, Copilot code review poderá aplicar esse conhecimento posteriormente para detectar padrões inconsistentes em uma solicitação de pull. Da mesma forma, se Copilot code review souber que determinadas configurações devem permanecer sincronizadas em dois arquivos, Copilot cloud agent saberá atualizar ambos os arquivos ao alterar um.
Observação
A disponibilidade no/na GitHub Copilot app depende de se Copilot Memory foi disponibilizada para sua conta. Não há nenhuma configuração no aplicativo para habilitar essa opção. Quando disponível, configurações pessoais, configurações de repositório e políticas aplicáveis determinam quais tipos de memória podem ser usados.
A configuração Memory de um projeto no GitHub Copilot app é um recurso separado. Ele armazena preferências para esse projeto entre tarefas, não as informações do repositório compartilhado e as preferências no nível do usuário descritas neste artigo. Editar ou desativar a memória de um projeto não significa editar nem desativar Copilot Memory.
Como o armazenamento e a propriedade diferem entre os tipos de memória
Os dois tipos de memória são armazenados separadamente e são de propriedade e gerenciados de forma diferente.
Fatos no nível do repositório
Cada fato no nível do repositório pertence a um repositório específico e pode ser exibido e excluído nas configurações do repositório. Quando Copilot encontra um fato de nível de repositório relevante para seu trabalho atual, ele verifica as citações do fato em relação ao branch atual para julgar se as informações ainda são precisas. Como esta é uma decisão tomada por Copilot, em vez de uma garantia imposta pelo sistema, um fato armazenado não deve ser considerado uma regra que sempre será seguida. Para fornecer instruções de forma consistente, use instruções personalizadas em vez disso. Veja Usando instruções personalizadas junto com Copilot Memory.
Os fatos do repositório não são consolidados entre os repositórios de uma organização. Fazer um fork de um repositório não copia suas memórias armazenadas para o fork. Suas preferências no nível do usuário ainda podem ser aplicadas quando você trabalha no fork.
Preferências no nível do usuário
As preferências no nível do usuário são armazenadas nas configurações do usuário. Quando Copilot encontra uma preferência relevante para seu trabalho atual, ele usa seu melhor julgamento para confirmar que a preferência ainda se aplica.
planos Copilot Business e Copilot Enterprise
Nos planos Copilot Business e Copilot Enterprise, as preferências no nível do usuário pertencem à entidade de cobrança, que é a organização ou empresa que concede a licença ao usuário. Quando uma preferência é criada, ela é associada à entidade de cobrança ativa para o uso atual do usuário. Em seguida, quando Copilot cria o contexto para uma sessão de agente, ele examina a entidade de cobrança ativa atual do usuário novamente e recupera apenas as preferências que são de propriedade dessa entidade de cobrança. Os usuários podem examinar suas preferências de nível de usuário armazenadas e o proprietário de cada preferência exibida em suas configurações pessoais.
Os usuários que têm várias licenças de locais diferentes devem selecionar uma entidade de cobrança padrão em suas configurações de conta para criar novos facts no nível do repositório ou preferências no nível do usuário.
Os proprietários da organização e da empresa podem exportar ou excluir preferências de nível de usuário para seus membros, em massa ou por usuário. Consulte Gerenciamento de memória Copilot para uma empresa, organização ou repositório.
Como as memórias são criadas
Copilot cria memórias por si só, como um subproduto de trabalhar com você. À medida que Copilot funciona, ele observa fatos duráveis sobre um repositório e detalhes de suas próprias preferências pessoais, que ele determina que vale a pena manter e armazena-os para uso posterior.
Você pode examinar as preferências de nível de usuário que Copilot armazenou para você e excluir as que você não deseja que Copilot use. Se você tiver acesso de gravação a um repositório e preferências no nível do usuário habilitadas para sua conta, também poderá examinar e excluir fatos no nível do repositório nas configurações do repositório. Você não pode criar ou editar diretamente uma memória individual nas configurações, GitHub.commas pode influenciar Copilot a criar memórias. Se você indicar claramente uma preferência pessoal ou fato sobre um repositório ou pedir explicitamente a Copilot que se lembre de algo, provavelmente será capturado como uma memória. Você também pode usar Copilot CLI para importar memórias preparadas em massa. Consulte Importando memórias com Copilot CLI. Quando Copilot cria uma memória como resultado de algo que você disse, suas palavras são gravadas como a citação para a memória.
Copilot escolhe se uma memória é um fato no nível do repositório ou uma preferência no nível do usuário. Ele baseia essa escolha em a quem a memória se aplica, em vez de em quem a afirmou. Algo que seria verdadeiro para quem trabalha no repositório se torna um fato no nível do repositório, enquanto algo que reflete sua própria maneira de trabalhar se torna uma preferência no nível do usuário. Se sua intenção for ambígua, Copilot pede para que você esclareça o escopo em vez de adivinhar. Você pode evitar ambiguidade informando explicitamente se a memória é para você ou para todos que trabalham no repositório.
O tipo de memória que Copilot pode criar depende do contexto. Os fatos no nível do repositório só são criados quando Copilot está trabalhando em um repositório ao qual você tem acesso de gravação, e as preferências no nível do usuário só são criadas quando Copilot pode identificá-lo como a pessoa com quem está trabalhando.
Dados armazenados para cada memória
Cada memória contém dados que Copilot requer para determinar se, quando e como usar essa memória. Alguns desses dados, por exemplo, os detalhes da votação, são apenas para uso interno e, portanto, não são exibidos no GitHub site ou incluídos nos logs de auditoria. A tabela a seguir mostra uma seleção dos dados armazenados para cada memória e indica quais dos campos são exibidos nas páginas de configurações em GitHub.com.
| Dados | Example | Exibido |
|---|---|---|
| Texto de memória | The payments module must never call Stripe directly — route all charges through BillingGateway. | |
| Área de assunto | architecture | |
| Agent | Copilot cloud agent | |
| Model | claude-sonnet-4 | |
| Entidade de cobrança | Acme Org | |
| Citações | — | |
| Motivo para armazenar | — | |
| Preferência de usuário ou fato do repositório | — | |
| Dados de votação | — | |
| Data e hora de expiração | — |
Observação
- Exemplos de dados foram omitidos para campos que não são exibidos.
- O modelo e a entidade de cobrança nem sempre estão presentes, portanto, podem não ser exibidos.
- Se a entidade de cobrança for uma organização, o ícone de construção (🏢) será exibido na interface do usuário. Se for uma empresa, o ícone do globo (🌐) será exibido.
Como as memórias são reforçadas e descartadas
Copilot não trata uma lembrança como permanentemente verdadeira depois de armazenada. Em vez disso, Copilot é instruído a verificar as citações fornecidas com cada memória antes de usá-la. Copilot usa um sistema de votação interno para classificar a utilidade de cada memória, com base em se a memória ainda é válida. Ele pode dar voto positivo a uma memória que é capaz de validar e dar voto negativo em uma memória se ela for considerada incorreta ou desatualizada. Isso reforça memórias úteis.
Nem todas as memórias do repositório de memória são enviadas para um modelo com seu prompt. Memórias com voto positivo são mais propensas a serem enviadas. Portanto, o upvoting aumenta a probabilidade de uma memória ser aplicada no trabalho futuro. As memórias que recebem votos negativos além de um limite não são mais usadas e serão excluídas após um período de desutilização.
O upvoting e o downvoting são realizados automaticamente por Copilot. Embora você possa influenciar Copilot a votar positiva ou negativamente em uma memória, fornecendo um comentário positivo ou negativo sobre o uso dessa memória em uma sessão, isso é algo que você pode deixar para Copilot gerenciar. A contagem de votos para uma memória não é exibida intencionalmente, mas você pode ver o efeito da votação na ordem em que as memórias são listadas na página de configurações relevantes. Memórias com votos positivos sobem na lista, enquanto memórias com votos negativos se movem para baixo.
As páginas de configurações mostram lembranças classificadas por utilidade. As memórias que Copilot aprendeu a não usar estão ocultas da lista, mas podem permanecer armazenadas até expirarem. O desaparecimento de uma memória da lista não significa necessariamente que ela foi excluída.
Se Copilot tiver usado uma memória que você não deseja que ela use novamente, exclua-a explicitamente das configurações do repositório (para um fato de repositório) ou de suas configurações pessoais (para uma preferência no nível do usuário). Consulte Gerenciamento de memória Copilot para sua conta pessoal.
Retenção e expiração
Para evitar que informações obsoletas permaneçam, os fatos armazenados no repositório e as preferências do usuário expiram após um período sem reforço. O período de expiração começa quando uma memória é criada e é redefinido quando Copilot recebe um voto positivo. A simples recuperação de uma lembrança não redefine esse período.
O período de expiração padrão é de 90 dias. Os proprietários da empresa e da organização podem configurar o período de expiração para fatos no nível do repositório para qualquer valor entre 7 e 180 dias (inclusive). Essa configuração não se aplica às preferências no nível do usuário, que sempre usam o período de retenção padrão. Alterar o período de retenção não redefine a data dos fatos no nível do repositório que já estão armazenados: eles adotam o novo período de retenção na próxima vez que Copilot os reforçar.
Se diferentes períodos de expiração forem definidos por uma organização e pela empresa à qual a organização pertence, o menor dos dois valores será usado.
Quando Copilot dá um voto positivo a uma memória, o período de expiração dessa memória é redefinido para o período de expiração padrão ou configurado. Isso estende a vida útil de uma unidade de memória que foi usada. O voto negativo em uma memória não altera o período restante antes que a memória expire.
Observação
Os fatos do repositório podem ser capturados de pull requests que foram fechadas sem mesclagem. Copilot é instruído a verificar esses fatos em relação à base de código atual, mas isso não garante que ele reconhecerá todos os fatos desatualizados.
O que Copilot não armazena
O sistema impede que algum conteúdo seja armazenado e Copilot é instruído a não armazenar outro conteúdo:
- As memórias são verificadas em busca de segredos, como tokens, chaves ou credenciais. As memórias nas quais um segredo é detectado são rejeitadas e não são armazenadas.
- O sistema pode rejeitar memórias que contêm tokens de controle de modelo reconhecidos, como uma defesa contra a injeção de prompt.
- Copilot é instruído a não armazenar informações pessoais confidenciais, informações confidenciais ou qualquer coisa compartilhada em sigilo.
- Copilot é instruído a não armazenar instruções específicas de tarefas ou de curta duração, pois as memórias se destinam a capturar coisas que permanecem verdadeiras ao longo do tempo.
Configurações padrão
As preferências no nível do usuário e os fatos no nível do repositório têm padrões separados. Os padrões a seguir se aplicam onde Copilot Memory está disponível e você ou um administrador não alteraram as configurações relevantes. Os cancelamentos de adesão existentes permanecem em vigor.
| Plano | Padrão para preferências no nível do usuário |
|---|---|
| Copilot Pro, Copilot Pro+ e Copilot Max | Ativado. Você pode desativar isso em suas configurações pessoais. |
| Copilot Business e Copilot Enterprise | Desabilitado até que um proprietário da organização ou proprietário da empresa corporativa habilite a política. Em seguida, você pode desativar isso em suas configurações pessoais. |
Os fatos em nível de repositório têm uma configuração padrão separada para todos esses planos. O acesso à memória do repositório é permitido, a menos que as configurações da empresa, da organização ou do repositório o restrinjam. A configuração de acesso do Repositório de uma organização usa como padrão todos os repositórios. Desabilitar preferências no nível do usuário em suas configurações pessoais não desabilita facts no nível do repositório. Consulte Gerenciar Copilot Memory repositórios.
Configurações para cada superfície
Algumas superfícies têm uma configuração local adicional. A ativação permite que a superfície use Copilot Memory somente se as configurações descritas acima também permitirem.
| Surface | Default | Mais informações |
|---|---|---|
| Copilot CLI, sessões interativas | Ativar configuração local. Segue suas GitHub configurações. | Gerenciamento de memória Copilot para sua conta pessoal |
| Copilot CLI, sessões programáticas | Desativado. Use --enable-memory para cada execução. | Gerenciamento de memória Copilot para sua conta pessoal |
| Visual Studio Code | Desligado. Habilite a configuração local. | |
| Gerenciamento de memória Copilot para sua conta pessoal | ||
| GitHub Copilot app | Segue suas GitHub configurações, quando disponíveis para sua conta. | |
| Gerenciamento de memória Copilot para sua conta pessoal | ||
| Copilot cloud agent | Segue suas GitHub configurações. | |
| Gerenciamento de memória Copilot para sua conta pessoal e Gerenciamento de memória Copilot para uma empresa, organização ou repositório | ||
| Copilot code review | Segue as configurações do repositório. | |
| Gerenciamento de memória Copilot para uma empresa, organização ou repositório | ||
| Agentic Autofix | Segue as configurações do repositório. | |
| Gerenciamento de memória Copilot para uma empresa, organização ou repositório |
Todas essas superfícies oferecem suporte a informações no nível do repositório. Todos, exceto Copilot code review e agentic autofix, também dão suporte a preferências no nível do usuário. Em Copilot CLI, as preferências do usuário pertencem ao usuário que iniciou a sessão.
Nas sessões interativas Copilot app e Copilot CLI, Copilot pode pedir que você autorize o armazenamento de uma memória. Copilot cloud agent e Copilot code review não pedem essa aprovação.
O comportamento Copilot cloud agent descrito aqui também se aplica às sessões iniciadas a partir do Slack ou do Microsoft Teams. Confira Integrando o agente de nuvem do Copilot ao Slack e Integrando o agente de nuvem Copilot com o Teams.
Copilot code review e agentic autofix nunca aplicam preferências no nível do usuário, portanto, uma preferência pessoal não alterará a forma como suas solicitações de pull são revisadas ou os alertas de segurança são corrigidos.
Em Copilot CLI, somente o agente raiz pode usar store_memory ou vote_memory. Os subagentes podem ler memórias quando têm acesso read_memories, mas não podem alterá-las.
Observação
Os aplicativos criados com o Copilot SDK podem ativar Copilot Memory ao criar ou retomar uma sessão. O SDK não fornece APIs para listar, editar ou excluir memórias. Consulte Compatibilidade do SDK e da CLI.
O que determina se Copilot Memory é usado
As preferências no nível do usuário e os fatos no nível do repositório têm controles separados. Se Copilot Memory é usado depende das configurações do tipo relevante de memória e do cliente que você está usando:
-
Sua configuração pessoal. A configuração Copilot Memory em sua conta pessoal controla se as preferências no nível do usuário podem ser armazenadas e usadas em suas sessões. Ele não controla facts no nível do repositório nem substitui restrições de administrador. Consulte Gerenciamento de memória Copilot para sua conta pessoal.
Em planos corporativos e gerenciados pela organização, as preferências no nível do usuário estão desativadas até que um administrador as habilite, após o que você pode cancelar a adesão.
-
Sua política corporativa ou de organização. Em planos gerenciados, a política Copilot Memory controla as preferências no nível do usuário. Se você tiver licenças de mais de uma organização, a política mais restritiva se aplicará. O acesso ao repositório é controlado separadamente. Consulte Gerenciamento de memória Copilot para uma empresa, organização ou repositório.
-
Acesso e configurações do repositório. Um proprietário da organização pode permitir fatos no nível do repositório para todos, repositórios selecionados ou nenhum repositório, sujeitos a restrições empresariais. Um administrador de repositório também pode desativar fatos no nível do repositório para um repositório individual.
Observação
Desativar facts no nível do repositório não desativa as preferências no nível do usuário. Da mesma forma, desabilitar preferências no nível do usuário não desabilita por si só fatos no nível do repositório.
-
A configuração do aplicativo cliente. Em uma sessão interativa Copilot CLI ,
/memory offdesabilita os dois tipos de memória, mesmo se as outras configurações permitirem. Essa preferência é independente da configuração em GitHub.com e é salva para sessões interativas futuras nesse computador./memory onlimpa essa preferência, mas não pode ignorar as restrições aplicáveis da empresa, organização ou repositório. Execuções não interativas exigem a opção separada--enable-memory. Visual Studio Code também tem sua própria configuração dentro do aplicativo. Consulte Gerenciamento de memória Copilot para sua conta pessoal.
Resumo de quando Copilot Memory é usado
Para usar Copilot Memory:
- Você deve ter um plano pago compatível Copilot.
- O cliente que você está usando deve dar suporte a Copilot Memory, e qualquer configuração local deve permitir isso. Em Copilot CLI, use
/memory showpara verificar a configuração local. - Se você tiver várias Copilot licenças, deverá selecionar uma entidade de cobrança padrão antes que novas memórias possam ser armazenadas.
Para preferências no nível do usuário, a configuração pessoal Copilot Memory e qualquer política corporativa ou de organização aplicável também devem permiti-las.
Para fatos no nível do repositório:
- Você deve ter acesso ao repositório.
- Você deve ter permissão para fazer push para o repositório para que novas informações do repositório sejam criadas.
- Copilot Memory não deve ser desabilitado para o repositório nas configurações de Copilot do repositório.
- Se o repositório pertencer a uma organização, o acesso ao repositório da Copilot Memory organização deverá incluir esse repositório.
- Qualquer restrição corporativa aplicável ao acesso à memória do repositório deve permitir o acesso à memória do repositório.
Uso e cobrança
Memórias incluídas no contexto de um modelo contam para o uso de tokens e podem afetar o AI credits consumido por uma interação. O custo depende do modelo e do número de tokens usados. Para obter mais informações, consulte Modelos e preços para GitHub Copilot.
Usando instruções personalizadas junto com Copilot Memory
Copilot Memory e instruções personalizadas resolvem problemas semelhantes de diferentes maneiras e funcionam bem juntas.
Copilot Memory é criado e selecionado por Copilot. Ele não requer nenhuma manutenção de você, ele se adapta à medida que sua base de código e seus hábitos mudam e descarta o que deixa de ser relevante. Copilot decide o que lembrar, julga se uma memória ainda se aplica e pode não aplicar uma memória em cada sessão.
Instruções personalizadas são escritas e mantidas por você. Eles fornecem instruções para Copilot considerar e estão visíveis em seu repositório ou em suas configurações pessoais, para que você possa ver e examinar exatamente quais instruções foram dadas a Copilot.
Use instruções personalizadas para declarar regras importantes, como um requisito de segurança ou uma etapa de revisão obrigatória, e deixe Copilot Memory lidar com os detalhes acumulados que, de outra forma, tornariam um arquivo de instruções longo e difícil de manter. Nem memórias nem instruções personalizadas garantem que Copilot seguirá uma regra todas as vezes, portanto examine seu trabalho. Para obter mais informações, consulte Instruções personalizadas para GitHub Copilot.