Por qué el conocimiento del repositorio sigue desapareciendo
Hay dos sistemas y no son intercambiables
La herramienta de memoria es local y está integrada en VS Code. La documentación la describe como "una herramienta de agente integrada que permite a los agentes guardar y recordar notas mientras trabajan. También puedes pedirle explícitamente al agente que recuerde algo". Actualmente está en vista previa, controlada por la configuración chat.tools.memory.enabled, y tiene tres alcances:
- Usuario en
/memories/— persiste entre sesiones y entre espacios de trabajo. Para "preferencias, patrones, comandos de uso frecuente". - Repositorio en
/memories/repo/— persiste entre sesiones, con alcance de espacio de trabajo. Para "convenciones de la base de código, estructura del proyecto, comandos de compilación". - Sesión en
/memories/session/— "No (se borra cuando termina el chat)". Para "contexto específico de la tarea, planes en progreso".
Copilot Memory es el otro sistema: "un sistema de memoria alojado en GitHub que permite a Copilot aprender y retener información específica del repositorio mientras trabaja", compartido "a través de múltiples superficies de GitHub Copilot, incluyendo el agente en la nube de Copilot, la revisión de código de Copilot y la CLI de Copilot". Solo tiene alcance de repositorio, es escrito automáticamente por los agentes y está desactivado por defecto.
Confundir ambos es la razón más común por la que la gente piensa que la memoria no funciona. La herramienta local está activa por defecto; la alojada no.
El que abarca múltiples superficies requiere doble autorización
Copilot Memory "está desactivado por defecto y debe habilitarse en tu configuración de GitHub", ya sea en la configuración personal de Copilot para usuarios de Copilot Pro o Pro+, o a través de la configuración de políticas de organización o empresa para equipos.
Hay una segunda barrera en el lado de VS Code si deseas que la memoria de tu repositorio esté respaldada por él: una configuración experimental que está desactivada por defecto, además del requisito de que "Copilot Memory debe estar habilitado para el repositorio en tu configuración de GitHub". Y el fallo es silencioso: "Si no se cumple alguna de las condiciones, la memoria del repositorio recurre al almacenamiento de archivos locales". No se produce ningún error. La memoria de tu repositorio simplemente se queda en tu portátil, y el comportamiento entre superficies que pensabas que habías activado nunca ocurre.
Las memorias del repositorio expiran después de 28 días
Este es el hecho clave sobre el cual diseñar. Copilot Memory elimina las memorias después de 28 días, y la razón declarada es buena: "para evitar información desactualizada". Junto a esto hay una salvaguarda genuinamente inusual que merece reconocimiento: las memorias se "verifican antes de su uso", lo que significa que "los agentes validan las memorias contra la base de código actual antes de aplicarlas, evitando que la información obsoleta o incorrecta afecte los resultados". Muy pocos sistemas de memoria se verifican a sí mismos contra la realidad antes de actuar.
But read the two together. A system that both validates against the code and expires on a four-week clock is optimised for recent operational insight — the build quirk, the flaky test, the pattern discovered during last week's review. It is not built to hold your architectural decision from March. Anything you need in six months has to live somewhere else, and the docs' own comparison table says as much by contrasting Copilot Memory's "Automatic (28 days)" expiration against the local tool's "Manual management."
Las instrucciones y la memoria responden a preguntas diferentes
Las instrucciones son lo que tú requieres; la memoria es lo que el agente aprendió. Copilot admite muchas del primer tipo: un único archivo .github/copilot-instructions.md, uno o más archivos AGENTS.md, instrucciones a nivel de organización definidas en la organización de GitHub y, notablemente, un archivo CLAUDE.md "Para compatibilidad con Claude Code y otras herramientas basadas en Claude", leído desde la raíz del espacio de trabajo, la carpeta .claude o el directorio de inicio de tu usuario. Los archivos *.instructions.md basados en archivos añaden alcance de glob a través de un encabezado applyTo, y sus ubicaciones documentadas incluyen .github/instructions y .claude/rules.
Una propiedad de ese sistema importa aquí más que cualquier otra: "Si tienes múltiples archivos de instrucciones en tu proyecto, VS Code los combina y los añade al contexto del chat, no se garantiza ningún orden específico". Combinados, no resueltos por precedencia. Si dos archivos no están de acuerdo, nada decide por ti, lo cual es un argumento sólido para mantener los requisitos escasos y sin ambigüedades, y para no usar los archivos de instrucciones como un archivador para todo lo que sabes.
Lo que la gente intenta
Activar la herramienta de memoria y asumir que eso es Copilot Memory. La herramienta local está habilitada por defecto y escribe en tu máquina. El sistema entre superficies es una opción de activación independiente en GitHub.
Poner todo en .github/copilot-instructions.md. Funciona hasta que se vuelve largo, y luego compite por el contexto con un segundo AGENTS.md, un CLAUDE.md heredado y cualquier archivo .instructions.md que coincida, sin un orden garantizado entre ellos.
Esperar que la memoria haga cumplir una regla. No lo hará. Las instrucciones son lo que tú requieres; la memoria es lo que se notó. Cualquier cosa que deba cumplirse siempre pertenece a una verificación que falle la compilación.
Descubrir la expiración de 28 días después de que sea importante. La versión habitual: una decisión registrada en la semana uno, ausente en la semana seis, vuelta a discutir en la semana siete.
Concluir que Copilot no tiene memoria en absoluto. Comprensible hace unos meses, erróneo hoy en día, y lleva a la gente a reconstruir a mano lo que dos sistemas documentados ya hacen.
La solución: separar lo que debe mantenerse de lo que puede expirar
La configuración en sí es corta. Hazlo en este orden.
Habilita la herramienta de memoria si está desactivada. Está activa por defecto, pero confirma chat.tools.memory.enabled y luego úsala deliberadamente: memoria de usuario para preferencias entre proyectos, memoria de repositorio para datos de la base de código, memoria de sesión para el plan en el que estás trabajando ahora mismo. Un detalle que vale la pena recordar: "Las primeras 200 líneas se cargan automáticamente en el contexto del agente al inicio de cada sesión" para la memoria de usuario. Haz que el inicio de ese archivo valga el espacio.
Habilita Copilot Memory solo si deseas el aprendizaje entre superficies. Configuración personal de Copilot para individuos, configuración de políticas para organizaciones, además de la habilitación a nivel de repositorio y la configuración experimental de VS Code si deseas que la memoria del repositorio esté respaldada por él. Luego verifica en lugar de asumir, porque la transición al almacenamiento local es silenciosa.
Fomenta el hábito de revisión en los propietarios de repositorios. Las memorias almacenadas se pueden revisar y eliminar en Repository Settings > Copilot > Memory, y las memorias "solo pueden ser creadas por colaboradores con acceso de escritura". Revisa la lista una vez al mes; es la forma más rápida de saber qué piensan tus agentes que es tu base de código.
Mantén la guía requerida en las instrucciones, no en la memoria. Un archivo siempre activo, archivos .instructions.md con alcance para el resto, y nada en ninguno de ellos que te molestaría ver ignorado, porque no se garantiza ningún orden entre ellos.
Luego maneja la parte que tiene un reloj de cuatro semanas. MemoryLake es una capa de memoria que se encuentra fuera de cualquier herramienta individual, por lo que el conocimiento que tiene que sobrevivir a los 28 días lo hace. La configuración consta de tres pasos.
Paso 1: Crea una clave API
Inicia sesión y crea una clave API. Una sola credencial para todas las herramientas que conectes.

Paso 2: Sube tus primeras memorias
Entradas cortas, una afirmación cada una. Escribe aquí lo que Copilot Memory explícitamente no está diseñado para conservar:

Decisiones con sus razones. "La API tiene versión en la ruta porque dos clientes móviles fijan una compilación antigua". La memoria del repositorio expirará; la razón no debería hacerlo.
Lo que se intentó y se rechazó. El enfoque que parecía correcto y falló, y cómo falló. Ninguno de los dos sistemas de Copilot tiene un campo para un resultado negativo.
Propiedad y límites. Quién es propietario de qué servicio, qué directorios están congelados, a qué equipo preguntar. Datos sobre personas, no sobre código, lo que significa que ninguna validación contra la base de código los recuperará.
Punteros hacia el exterior. El panel de control, el registro de incidentes, el documento de diseño: el contexto que un agente no puede encontrar leyendo tu repositorio.
Paso 3: Conecta tu IA y agentes
Conecta lo que uses. MemoryLake es accesible a través de MCP y de una API, y VS Code admite servidores MCP, por lo que la misma memoria está disponible junto a Copilot. Claude Code, Codex, Cursor y Cline también leen la misma memoria, lo cual es importante aquí porque el cargador de instrucciones de Copilot ya lee CLAUDE.md y .claude/rules, por lo que un equipo con herramientas mixtas es el caso normal en lugar de la excepción.

Tres límites honestos. MemoryLake no lee ni escribe en /memories/ ni en Copilot Memory: no existe una API para ninguno de los dos almacenamientos, por lo que el hábito de revisión anterior es manual. No cambia el orden de las instrucciones; el comportamiento de "no se garantiza ningún orden específico" es de VS Code. And memory is context, not enforcement — anything that must be true on every run belongs in CI.
Qué cambia esto en la práctica
Los dos sistemas dejan de ser una única característica confusa. Sabes cuál es local, cuál está alojado y cuál activaste realmente.
La expiración deja de ser una sorpresa. Información operativa de cuatro semanas en Copilot Memory; razonamiento duradero en algún lugar sin temporizador.
Los archivos de instrucciones se vuelven más cortos. Una vez que el conocimiento tiene un hogar, los requisitos dejan de estar rellenos de contexto de fondo.
El funcionamiento entre superficies realmente sirve cuando lo activas. Porque lo verificaste en lugar de confiar en una configuración que vuelve silenciosamente al almacenamiento local.
Buenas prácticas para la memoria de Copilot
Confirma qué sistema has habilitado. La herramienta de memoria local está activa por defecto; Copilot Memory está desactivada por defecto y necesita habilitación en el lado de GitHub.
Trata la expiración de 28 días como una restricción de diseño. Coloca fuera de ella cualquier cosa que vayas a necesitar el próximo trimestre.
Lee la lista de memoria del repositorio mensualmente. Repository Settings > Copilot > Memory. Es un espejo de lo que creen tus agentes.
Mantén valiosas las primeras 200 líneas de la memoria de usuario. Esa es la parte que se carga en cada sesión.
Usa el alcance de sesión para los planes. /memories/session/ se borra cuando termina el chat, que es lo que deseas para el trabajo en progreso.
No apiles archivos de instrucciones esperando que la precedencia te salve. No se garantiza ningún orden; las contradicciones simplemente llegarán juntas.
Recuerda que las instrucciones no llegan a las sugerencias en línea. La documentación indica que "no se tienen en cuenta para las sugerencias en línea a medida que escribes en el editor".
Verifica desde dónde se leen las instrucciones a nivel de usuario en Agent Host. La documentación señala que lee "carpetas independientes del entorno como ~/.copilot/instructions y ~/.claude/rules y no de los datos de usuario del perfil de VS Code"; la trampa general se describe en why agents ignore your instruction files.
Conclusión
La historia de la memoria de Copilot en VS Code son dos características con un solo nombre en la conversación informal. La herramienta de memoria local está en vista previa, activa por defecto, y dividida en alcances de usuario, repositorio y sesión, con las primeras 200 líneas de la memoria de usuario cargadas en cada sesión. Copilot Memory está en vista previa, desactivada por defecto, alojada en GitHub, con alcance de repositorio, escrita automáticamente por agentes con acceso de escritura y compartida entre el agente en la nube, la revisión de código y la CLI. Sus salvaguardas son reales: las memorias se validan contra la base de código actual antes de su uso, lo cual es más de lo que hacen la mayoría de los sistemas.
Y se eliminan después de 28 días. Esa sola línea te dice para qué sirve el sistema: información operativa reciente y verificable, no conocimiento institucional. Configura ambos sistemas a propósito, verifica la ruta entre superficies en lugar de asumirla, mantén los requisitos en archivos de instrucciones sabiendo que no se garantiza ningún orden entre ellos, y coloca las decisiones, los enfoques rechazados y los datos de propiedad en una capa sin reloj de expiración.
Haz eso y Copilot dejará de volver a aprender tu base de código cada mes, y podrás ver por ti mismo qué contiene cada capa, que es el ejercicio en how to audit what your AI assistants actually remember.