Copilot Memory vs. instruções personalizadas: onde ficam as memórias e como excluí-las
O GitHub Copilot Memory é uma memória hospedada no GitHub e restrita ao repositório, em versão prévia pública — e não é a pasta que você talvez tenha encontrado no disco. Este guia mostra onde cada tipo de memória é armazenado, como ver e excluir memórias, como ligar ou desligar a versão na nuvem para você e para uma organização, e um template de instruções personalizadas pronto para copiar e colar, para as regras que as memórias nunca devem substituir. Doze passos, conferidos com o docs.github.com e com a documentação de memória do VS Code.
A versão curta
- Memórias não são uma pasta no seu repositório. O GitHub Copilot Memory fica armazenado no GitHub e é restrito a um repositório; você lê e exclui em Repository → Settings → Code & automation → Copilot → Memory. A pasta de memória que as pessoas encontram no disco pertence à ferramenta de memória local do VS Code, que é separada.
- Três escopos locais, um escopo na nuvem. A ferramenta de memória do VS Code guarda anotações de Usuário, Sessão e Repositório na sua máquina em /memories/, /memories/session/ e /memories/repo/; o GitHub Copilot Memory substitui o escopo de repositório por um escopo hospedado e compartilhado entre agentes, que o Copilot coding agent, o Copilot code review e o Copilot CLI leem.
- Seu plano define o padrão. No Copilot Pro e no Pro+ o Copilot Memory já vem ligado por padrão; no Copilot Business e no Copilot Enterprise ele fica desligado até que um proprietário da empresa ou da organização o habilite, e se duas organizações licenciarem você, vale a configuração mais restritiva.
- Memórias expiram, instruções não. Uma memória é escrita pelo Copilot, validada com base no código que a originou e excluída após 28 dias, a menos que continue sendo reutilizada. Regras que você não pode perder — o comando de teste, o requisito de segurança — pertencem ao .github/copilot-instructions.md, e é por isso que esta página termina com um template.
I tried out all the memory features in GitHub Copilot (User / Session / Repository / Copilot Memory)
Canal:Yuzubon — ゆずぼん15:00
Instruction Files & /chronicle — Teaching Copilot Your Codebase
Canal:Casey Irvine17:37
The latest in managing and auditing GitHub Copilot agents
Canal:GitHub4:12
Managing and curating Copilot Memory (official docs, public preview)
Documentação oficial:docs.github.com
O Copilot Memory está em versão prévia pública e o caminho das configurações ainda muda. Os caminhos de ativação, a expiração de 28 dias e a página de memória do repositório nesta página foram lidos no guia “Managing and curating Copilot Memory” do docs.github.com e na referência “Use memory with agents” do VS Code; o caminho da pasta de memória local vem da própria gravação, então trate-o como específico do Windows e espere equivalentes no macOS e no Linux dentro do mesmo diretório de armazenamento global do VS Code.
As capturas de tela são creditadas à gravação de onde foram tiradas, e cada passo leva direto ao segundo exato. Os passos escritos, a tabela comparativa e o template são originais desta página; nenhuma transcrição foi reproduzida.
Os 12 passos: da pasta no disco ao template de instruções versionado no repositório
O que o Copilot lembra e onde isso fica armazenado
- 1
Encontre a pasta de memória antes de mexer em qualquer configuração
A ferramenta de memória do VS Code grava arquivos Markdown simples na sua máquina; ela não os envia ao GitHub. No Windows, eles ficam em %APPDATA%\Code\User\globalStorage\github.copilot-chat\memory-tool\memories\ — a captura mostra o coding-style.md exatamente nesse diretório. O equivalente no macOS fica em ~/Library/Application Support/Code/User/globalStorage/ e no Linux em ~/.config/Code/User/globalStorage/, no mesmo caminho github.copilot-chat/memory-tool/memories. Nada aqui é versionado, então nenhum colega de time consegue ler, e excluir o arquivo exclui a memória.

O Explorador de Arquivos aberto na pasta memory-tool: os arquivos Markdown por trás da ferramenta de memória local do VS Code.Assistir em 3:26 - 2
A memória de usuário é o arquivo que carrega primeiro
Peça uma preferência no chat — “prefiro early returns e nomes de variáveis mais longos e descritivos” — e a ferramenta de memória cria um arquivo de memória de usuário e avisa isso na resposta. A captura mostra o coding-style.md aberto em globalStorage › github.copilot-chat › memory-tool › memories, com o painel do chat informando “Reviewed memory file coding-style.md” e confirmando que o arquivo foi criado. A memória de usuário é o único escopo injetado automaticamente em toda conversa: a documentação do VS Code limita isso às primeiras 200 linhas. Escreva dez linhas úteis, não duzentas.

Uma memória de usuário mantida de propósito bem curta, com o chat confirmando o arquivo que gravou.Assistir em 3:56 - 3
A memória de sessão é o plano que você para de reexplicar
O Plan mode é onde a memória de sessão se paga. Peça uma mudança com Plan selecionado e o agente guarda o plano de implementação em /memories/session/plan.md, onde ele fica disponível só para aquela conversa — a documentação do VS Code descreve Session como exclusivo da conversa atual. Volte para o Agent mode e aponte para o plano em vez de digitá-lo de novo. A memória de sessão também é o escopo mais curto: ela é descartada 14 dias após o último acesso, então nunca deixe ali uma decisão que você vai precisar no mês que vem.

O Plan mode no Copilot Chat: o pedido que faz o agente escrever um plano de sessão em vez de editar arquivos.Assistir em 7:06
Memória de repositório e a camada de nuvem do GitHub
- 4
A memória de repositório fica local até você ativá-la
Diga “neste repositório, lembre que toda função nova precisa de um teste” e o agente grava isso em /memories/repo/ — ainda no seu disco, ainda invisível para o seu time e ainda fora dos servidores do GitHub até uma configuração mudar. A captura mostra esse pedido sendo digitado. É esse o escopo que as pessoas normalmente chamam de “pasta de memória do Copilot”: a pasta existe, mas fica dentro do armazenamento global do VS Code, e não dentro do repositório, e por isso procurar por ela no seu projeto não encontra nada.

Pedindo ao Copilot para lembrar uma regra do repositório — a gravação que cai no escopo local de repositório.Assistir em 10:00 - 5
Ligue a chave da nuvem e só as memórias novas migram
O Copilot Memory é a metade hospedada no GitHub desse sistema e, no VS Code, exige ativação própria: github.copilot.chat.copilotMemory.enabled, adicionado ao .vscode/settings.json. A documentação do VS Code lista copilotMemory como opt-in e separado da ferramenta de memória local. Depois que a opção vira true, as gravações que antes caíam em /memories/repo/ passam a ir para o GitHub. Duas coisas não mudam: suas memórias locais de repositório já existentes não são migradas, e a ferramenta só cria — para ler ou excluir uma memória hospedada você precisa ir ao GitHub.

A edição no .vscode/settings.json que aponta a memória de repositório para o GitHub em vez da pasta local.Assistir em 13:10 - 6
Veja e exclua memórias no repositório, não nas suas configurações
Esta é a página que a documentação oficial indica: Repository → Settings → Code & automation → Copilot → Memory, marcada como Preview. As memórias aparecem da mais nova para a mais antiga, com o texto e as tags; o ícone de lixeira exclui uma e as caixas de seleção excluem em lote. Excluir importa, porque uma memória errada é pior do que memória nenhuma. O Copilot valida cada memória com base nas citações que a originaram e a ignora quando aquele código mudou, mas uma memória construída sobre uma leitura equivocada continua passando nessa checagem. As memórias também expiram sozinhas após 28 dias.

A página de memória do Copilot nas configurações do repositório no GitHub, com uma memória armazenada e seu controle de exclusão.Assistir em 12:09
Ative para o time e depois escreva as instruções
- 7
Proprietários da empresa e da organização precisam ativar primeiro
Seu plano define quem faz o quê. Assinantes individuais do Copilot Pro e do Pro+ têm o Copilot Memory ligado por padrão e podem desligá-lo em Settings → Copilot → Features. No Copilot Business e no Copilot Enterprise é o contrário: as memórias ficam desligadas até que um proprietário as habilite — proprietários da empresa em AI Controls → Copilot → Features, escolhendo Let organizations decide, Enabled everywhere ou Disabled everywhere, e proprietários da organização em Organization settings → Code, planning and automation → Copilot → Policies → Features → Copilot Memory → Enabled. Se duas organizações atribuírem uma licença a você, vale a configuração mais restritiva.

O Enterprise AI Controls, a família de páginas que reúne a política de ativação do Copilot Memory.Assistir em 1:06 - 8
As instruções personalizadas começam na pasta .github
O Copilot escreve memórias; você escreve instruções — e as versiona no repositório. Dois arquivos fazem o trabalho: .github/copilot-instructions.md para regras que valem para o repositório inteiro, e .github/instructions/NAME.instructions.md para regras que valem só para alguns caminhos, com esse segundo tipo sendo comparado aos arquivos que o Copilot está tocando. A captura é o próprio repositório do VS Code da Microsoft, onde o .github guarda o copilot-instructions.md ao lado de instructions/, agents/, skills/, prompts/ e hooks/ — copie o formato de um repositório que faz isso em público há meses.

A pasta .github do microsoft/vscode, com o copilot-instructions.md ao lado do diretório instructions.Assistir em 1:40 - 9
Regras por caminho ficam atrás do applyTo
Um arquivo .instructions.md carrega um front matter YAML que decide quando ele entra. name é o rótulo mostrado na interface, description diz ao agente para quais tarefas o arquivo serve, e applyTo é um glob relativo à raiz do repositório — a captura mostra applyTo: src/vs/workbench/contrib/chat/browser/aiCustomization/** em um arquivo de instruções real do VS Code. O VS Code anexa o arquivo automaticamente quando o applyTo dele corresponde a um arquivo que o agente cria ou edita, e também pode puxá-lo sob demanda quando a description combina com a tarefa. Se você omitir os dois campos, o arquivo só carrega quando você o anexa à mão.

Um arquivo de instruções real, o ai-customization.instructions.md, cujo glob applyTo mantém o arquivo preso a uma única pasta.Assistir em 5:20
O template de instruções personalizadas
- 10
As instruções pessoais também são um arquivo
Antes do template de repositório, saiba onde ficam os seus próprios padrões, porque eles têm prioridade sobre ele. O Copilot CLI e o host de agentes leem ~/.copilot/copilot-instructions.md, e a captura mostra um exemplo funcional com as seções ## Output, ## Working style e ## AI disclosure — repare como ele é curto. No github.com o equivalente é Copilot Chat → sua foto de perfil → Personal instructions, onde o GitHub também oferece templates prontos e placeholders como [format]. A ordem de precedência é pessoal, depois repositório, depois organização, e todos os conjuntos correspondentes continuam sendo enviados, então nunca deixe dois deles se contradizerem.

Um copilot-instructions.md pessoal dentro da pasta .copilot no diretório do usuário, com seções de output, estilo de trabalho e divulgação de IA.Assistir em 4:10 - 11
Gere o primeiro rascunho com /init e depois substitua
Você não precisa começar com um arquivo em branco. O Copilot CLI imprime “No copilot instructions found. Run /init to generate a copilot-instructions.md file for this project” quando um repositório não tem nenhum — a captura é essa mensagem. Rode /init e depois edite o resultado com base no template abaixo. Mantenha a lista de comandos exata, corte tudo o que o agente poderia descobrir lendo o código e nunca cole segredos, tokens ou dados de clientes: este arquivo é versionado e todo colega de time — e todo agente — vai lê-lo.

O Copilot CLI avisando que o repositório ainda não tem arquivo de instruções e oferecendo o /init.Assistir em 10:00 - 12
Confira quais arquivos uma sessão realmente carregou
Um template que você não consegue auditar é chute. No Copilot CLI, /instructions lista todos os arquivos de instruções que a sessão carregou — a captura mostra o comando com uma linha “Loading environment: 18 custom instructions, 3 extensions, 26 hooks, 27 skills, 4 MCP servers” acima dele — e cada arquivo pode ser desativado só para a sessão atual sem ser excluído. No VS Code o equivalente é o editor Agent Customizations, atrás de Chat: Open Customizations, e para instruções de repositório você pode expandir a lista de referências no topo de uma resposta do chat para confirmar que o .github/copilot-instructions.md foi usado.

O comando /instructions no Copilot CLI, o jeito mais rápido de ver qual contexto uma sessão carregou.Assistir em 7:10
Copilot Memory, instruções personalizadas e instruções por caminho: qual a diferença
Três coisas diferentes recebem o nome de “memória do Copilot”. Só a primeira é escrita pelo agente; as outras duas são arquivos que você versiona e mantém. A comparação não serve para desempatar — ela é o motivo de os dois recursos existirem lado a lado: use memórias para as convenções que ninguém escreveu e instruções para as regras que você pode provar.
| Aspecto | Copilot Memory (hospedado) | Instruções personalizadas (.github/copilot-instructions.md) | Instruções por caminho (.github/instructions/*.instructions.md) |
|---|---|---|---|
| O que é | Fatos que o Copilot deduziu trabalhando no repositório, armazenados como um assunto mais as citações que o sustentam. | Regras que você escreve uma vez e valem para todo pedido no repositório. | Regras que você escreve para um caminho, uma linguagem ou uma pasta dentro do repositório. |
| Quem escreve | O Copilot, automaticamente, em resposta ao trabalho de usuários que têm o recurso ativado. | Você, à mão, em Markdown. | Você, à mão, em Markdown com front matter YAML. |
| Onde fica | No GitHub, restrito a um repositório. Leia e exclua em Repository → Settings → Copilot → Memory; não existe arquivo na sua árvore de trabalho. | No repositório, em .github/copilot-instructions.md, na raiz do projeto. | No repositório, em .github/instructions/, um arquivo por escopo. |
| Quando carrega | Automaticamente, mas só depois que as citações são validadas contra o branch atual. | Em todo pedido naquele repositório, para o chat, os agentes e o code review. | Só quando o glob applyTo corresponde a um arquivo em jogo, ou quando o agente julga a description relevante. |
| Quanto tempo dura | 28 dias; uma memória validada e reutilizada é reescrita, o que estende a vida dela. | Até alguém alterar ou excluir o arquivo — ele é versionado junto com o código. | Até alguém alterar ou excluir o arquivo. |
| Quem pode ver | Qualquer pessoa que trabalhe naquele repositório e tenha o Copilot Memory ativado; as memórias nunca saem do repositório. | Qualquer pessoa com acesso ao repositório, além de todo agente e revisor que o lê. | Qualquer pessoa com acesso ao repositório. |
| Como você edita | Exclui nas configurações do repositório — a ferramenta de memória só cria, não consegue ver nem excluir. | Abrindo um pull request, como qualquer outro arquivo. | Abrindo um pull request, como qualquer outro arquivo. |
| Ideal para | Convenções que ninguém documentou, o formato de uma correção que o revisor repete sempre, padrões seguros para esta base de código. | Stack e versões, os comandos exatos de build e teste, o mapa de pastas, regras de segurança e de revisão. | Regras de framework em um monorepo, convenções de arquivos de teste, o estilo de uma pasta, as convenções de uma linguagem específica. |
Um template de instruções personalizadas que cobre as seis coisas de que o Copilot realmente precisa
A orientação do próprio GitHub é manter o arquivo curto e específico: qual é a stack, como rodar as coisas, onde o código vive, quais convenções são obrigatórias e o que evitar. Os blocos abaixo foram escritos para serem copiados e depois enxugados — exclua qualquer linha que o agente poderia descobrir lendo o repositório, porque um arquivo de instruções inchado dilui as regras que importam. Salve como .github/copilot-instructions.md na raiz do repositório.
# .github/copilot-instructions.md
## Project and stack
- Next.js 15 app router, TypeScript strict, Node 22.
- Package manager: pnpm. Never run npm or yarn install.
## Commands
- Build: pnpm build
- Lint: pnpm lint
- Test everything: pnpm test
- Test one file: pnpm test -- path/to/file.test.ts
## Layout
- Routes: src/app/**
- UI components: src/components/**
- Data access: src/lib/db.ts and src/lib/repositories/**
- Tests live next to the file they cover: *.test.ts
## Conventions
- Named exports only; no default exports from src/lib.
- Handle errors at the boundary and return early instead of nesting.
- Import order: node builtins, external packages, then @/ aliases.
## Testing and review
- Every behaviour change ships with a test in the same pull request.
- Run the single-file test before requesting review.
- Commit messages follow Conventional Commits.
## Do not
- Do not edit files under src/generated/**.
- Do not add a dependency without calling it out in the pull request.
- Do not log secrets, tokens or full request bodies.- 1Projeto e stack — nomeie o framework, o modo de linguagem e o gerenciador de pacotes em uma linha. É o bloco que impede o agente de ficar na dúvida entre npm, pnpm e yarn e de gerar um lockfile que você não pediu.
- 2Comandos — os comandos exatos de build, lint, teste e teste de um único arquivo, copiados da sua configuração de CI em vez de memória. Um comando de teste errado é a linha mais cara que você pode deixar de fora.
- 3Estrutura — onde ficam rotas, componentes, acesso a dados e testes. Aponte diretórios em vez de descrever a arquitetura em prosa; um caminho é verificável, um parágrafo não.
- 4Convenções — nomenclatura, tratamento de erros, ordem de imports e regras de formatação que o seu time realmente cobra. Mantenha cada regra binária: ou o código segue, ou não segue.
- 5Testes e revisão — o que precisa vir acompanhado de teste, o que uma revisão deve verificar e a sua convenção de commit ou branch. É o bloco que transforma uma memória que você precisaria em garantia.
- 6Não faça — os antipadrões. Arquivos gerados, dependências novas sem aviso, refatorações fora do escopo, segredos em logs. Regras negativas são o jeito mais barato de evitar uma classe inteira de pull requests ruins.
Reduza o escopo com um segundo arquivo
Mantenha o arquivo do repositório curto movendo regras específicas de pasta para arquivos próprios em .github/instructions/. O front matter é o que faz isso funcionar: applyTo anexa o arquivo automaticamente aos caminhos correspondentes e description permite que o agente o puxe para a tarefa certa. O VS Code documenta name, description e applyTo como os campos aceitos.
---
name: 'React components'
description: 'Use when creating or updating components under src/components.'
applyTo: 'src/components/**/*.tsx'
---
# React components
- One component per file, named after the file.
- Props are typed with an explicit interface; no React.FC.
- Colocate styles with the component; no global class names.Deixe suas preferências fora do arquivo do repositório
Tudo o que é sobre você e não sobre o projeto — tamanho da resposta, tom, o jeito como você quer que os diffs sejam explicados — pertence às instruções pessoais. O Copilot CLI e o host de agentes leem ~/.copilot/copilot-instructions.md; no github.com, abra o Copilot Chat, clique na sua foto de perfil e escolha Personal instructions, onde o GitHub também oferece templates com placeholders como [format]. As instruções pessoais têm prioridade sobre as instruções de repositório e de organização, então uma preferência definida ali não precisa ser repetida em cada repositório.
Duas últimas regras que valem para todos os blocos: nunca coloque segredos, tokens ou dados de clientes em um arquivo de instruções versionado, e nunca deixe as instruções do repositório e uma memória dizerem coisas diferentes — quando elas entram em conflito, o Copilot segue os dois conjuntos de contexto como consegue e o resultado é imprevisível. Se uma memória insiste em contradizer uma regra que você escreveu, exclua a memória em vez de enfraquecer a regra.
