MemoryLake
Volver a todos los artículos
Tutorial20 de agosto de 2026·10 min de lectura

Cómo mantener el contexto de Cursor entre sesiones (Guía 2026)

Mantener el contexto entre sesiones en Cursor es un problema de tipado de reglas, no un problema de memoria; y una vez que lo ves de esa manera, se vuelve solucionable en unos quince minutos.

La documentación de Cursor establece la postura subyacente directamente: "Los modelos de lenguaje grandes no retienen memoria entre completados. Las reglas proporcionan un contexto persistente y reutilizable a nivel de prompt". Por lo tanto, el mecanismo que sobrevive al límite de una sesión son las Reglas, además de AGENTS.md. Vale la pena señalar para cualquiera que siga guías más antiguas: la ruta de documentación para la función de memorias de Cursor ahora redirige a la página de Reglas, y las Reglas es lo que describen los documentos actuales.

Ese único hecho de diseño explica casi todos los informes de "se le olvidó todo otra vez". Una regla solo se mantiene si su tipo dice que debe hacerlo, y hay cuatro tipos con comportamientos bastante diferentes. Esto explica cuál es cuál, los dos fallos silenciosos que hacen que una regla correctamente escrita sea invisible y dónde guardar el razonamiento que las reglas son demasiado cortas para contener. El mecanismo detrás del síntoma se detalla en por qué Cursor olvida las sesiones anteriores.

Por qué Cursor empieza de cero y qué se mantiene realmente

Hay cuatro lugares donde puede residir una regla

El conjunto documentado de Cursor:

Project rules (Reglas de proyecto) residen en .cursor/rules como archivos .mdc y están bajo control de versiones. Están "delimitadas mediante patrones de ruta, se invocan manualmente o se incluyen según su relevancia".

User Rules (Reglas de usuario) son "preferencias globales definidas en Customize → Rules que se aplican a todos los proyectos". Las utiliza el Agent (Chat) y son el lugar adecuado para el estilo de comunicación y las convenciones personales.

Team Rules (Reglas de equipo) son "reglas para todo el equipo gestionadas desde el panel de control", disponibles en los planes Team y Enterprise.

AGENTS.md se describe como "instrucciones del Agent en formato markdown. Alternativa sencilla a .cursor/rules". Existe soporte anidado: coloca AGENTS.md en cualquier subdirectorio y se aplicará automáticamente al trabajar con archivos en ese directorio o sus hijos, combinando las instrucciones "con los directorios padres, teniendo prioridad las instrucciones más específicas".

La mayoría de las personas han escrito exactamente una de estas y han asumido que lo cubre todo.

Solo se garantiza la presencia de un tipo de regla

Este es el núcleo del asunto. Los cuatro tipos de reglas de Cursor, según la documentación:

Tipo de reglaCuándo se aplica
Always Apply"Se aplica a cada sesión de chat"
Apply Intelligently"Cuando el Agent decide que es relevante según la descripción"
Apply to Specific Files"Cuando el archivo coincide con un patrón especificado"
Apply Manually"Cuando se menciona con @ en el chat"

Por debajo, tres campos de frontmatter lo deciden. alwaysApply: true significa "Siempre incluido. Se ignoran los globs y la descripción". Con alwaysApply: false y globs proporcionados, la regla se "adjunta automáticamente cuando un archivo coincidente está en contexto". Con una descripción y sin globs, "el Agent lee la descripción e incorpora la regla cuando es relevante". Sin ninguno de los dos, se "incluye solo cuando mencionas la regla con @ en el chat".

Así que una regla que escribiste hace tres semanas sin campos de frontmatter configurados está esperando una mención con @ que nunca has escrito. No se ha perdido. Nunca fue invitada.

La propia respuesta de las preguntas frecuentes de Cursor es el diagnóstico más rápido: "Verifica el tipo de regla. Para Apply Intelligently, asegúrate de definir una descripción. Para Apply to Specific Files, asegúrate de que el patrón de archivo coincida con los archivos referenciados".

Un archivo .md simple en .cursor/rules se ignora silenciosamente

El fallo que más tiempo hace perder, porque nada te lo advierte. Directamente de la documentación: "El sistema de reglas ignora un archivo .md simple en .cursor/rules porque no tiene frontmatter para especificar description, globs y alwaysApply. Si prefieres markdown simple, usa AGENTS.md en su lugar".

Si has estado manteniendo un archivo notes.md dentro de .cursor/rules y preguntándote por qué nada cambiaba, esa es la razón. Cámbiele el nombre a .mdc y añade frontmatter, o mueve el contenido a AGENTS.md.

La regla se cargó, pero lo que referenciaba no

Las reglas son cortas por diseño. La guía de Cursor recomienda mantenerlas por debajo de las 500 líneas, dividir las reglas grandes en otras componibles y, lo que es más importante, "referenciar archivos en lugar de copiar su contenido; esto mantiene las reglas cortas y evita que queden obsoletas a medida que cambia el código". Puedes incorporar un archivo con @nombre_archivo.ts.

Lo que crea una brecha de segundo orden. "Sigue nuestras convenciones de servicio" solo funciona si las convenciones son accesibles. Una regla es un puntero más una dirección; no es el conocimiento en sí. Esa distinción, en todas las herramientas, es por qué los agentes ignoran los archivos de instrucciones que escribiste.

El lugar donde se guardó la regla no siempre es el que crees

Las reglas se registran en git, que es como las comparte un equipo, pero una nueva regla aterriza en el .cursor/rules de la carpeta en la que estás trabajando. Abre una subcarpeta como tu proyecto y tu regla se limitará a esa subcarpeta. Es una comprobación de cinco segundos que te ahorra una tarde entera.

Lo que la gente intenta

Volver a explicar el proyecto al inicio de cada chat. Funciona, permanentemente, con el mismo coste cada vez: el bucle descrito en cómo dejar de volver a explicar el contexto a la IA.

Escribir una regla enorme que siempre esté activa. Se aplica en cada sesión y se incluye al inicio del contexto del modelo en cada mensaje. La propia lista de cosas a evitar de Cursor menciona "copiar guías de estilo completas" (usa un linter en su lugar) y "documentar cada comando posible", ya que el Agent ya conoce npm, git y pytest.

Mantener un único chat abierto para siempre. Pospone el límite en lugar de cruzarlo.

Configurar todo en Apply Intelligently. Suena razonable, pero delega la decisión a una descripción que escribiste en cinco segundos. Si la descripción es vaga, la regla no se aplicará.

Pegar decisiones de arquitectura en una regla. El instinto correcto, pero el contenedor equivocado: las reglas están pensadas para ser cortas y apuntar a cosas. Ese es el caso detrás de por qué Cursor olvida las decisiones arquitectónicas.

Sincronizar reglas entre máquinas a mano. Es común y genera desajustes. La versión de la frontera entre máquinas se cubre en cómo evitar que Cursor olvide entre máquinas.

La solución: tipar tus reglas y luego mantener el razonamiento fuera de ellas

Dos pasos. El primero hace que Cursor cargue lo que escribiste. El segundo le da al conocimiento un hogar que un límite de 500 líneas no puede albergar.

Audita lo que tienes y corrige las extensiones. Abre .cursor/rules. Cualquier archivo que termine en .md está siendo ignorado: conviértelo a .mdc con frontmatter o muévelo a AGENTS.md.

Asigna a cada regla el tipo más específico que siempre sea correcto. Las restricciones universales obtienen alwaysApply: true. Las convenciones específicas de idioma o directorio obtienen globs. La guía situacional obtiene una descripción específica para que el Agent pueda juzgar realmente su relevancia. Los procedimientos que rara vez se necesitan se mantienen manuales y se mencionan con @.

Separa lo global de lo local. El estilo de comunicación y las convenciones personales pertenecen a las User Rules en Customize → Rules. Las convenciones del repositorio pertenecen a las reglas del proyecto o a AGENTS.md, registradas en git para que tu equipo también las reciba.

Usa AGENTS.md anidados en lugar de hacer malabarismos con globs. Un archivo raíz más uno por cada directorio principal te ofrece delimitación sin necesidad de frontmatter, y las instrucciones más específicas tienen prioridad.

Apunta a ejemplos canónicos en lugar de copiarlos. Usa referencias @file. La documentación de Cursor explica claramente la razón: las copias quedan obsoletas a medida que cambia el código.

Eso soluciona la carga. Lo que no puede solucionar es la capa que las reglas excluyen deliberadamente: por qué la arquitectura es como es, qué enfoques ya intentaste y abandonaste, la restricción que hace que una decisión extraña sea correcta. La guía de Cursor es añadir una regla cuando notes que el Agent repite un error, lo cual es un buen consejo y también una admisión de que las reglas capturan conclusiones, no razonamientos.

Eso es lo que contiene MemoryLake: el conocimiento duradero de tu proyecto en una capa de la que leen tus herramientas, de modo que las reglas se mantengan cortas y el razonamiento permanezca disponible. La configuración consta de tres pasos.

Paso 1: Crear una clave de API

Inicia sesión en MemoryLake y crea una clave de API. Una sola credencial para todas las herramientas que conectes.

Creación de una clave de API de MemoryLake para mantener el contexto de Cursor entre sesiones
Creación de una clave de API de MemoryLake para mantener el contexto de Cursor entre sesiones

Paso 2: Sube tus primeras memorias

Escribe entradas cortas (una afirmación cada una) que cubran aquello para lo que un archivo de reglas no tiene el formato adecuado:

Escribir decisiones y enfoques rechazados como entradas de MemoryLake
Escribir decisiones y enfoques rechazados como entradas de MemoryLake

Decisiones con su restricción. "Las consultas pasan por la capa de repositorio porque la carga ansiosa (eager loading) del ORM rompió la paginación". Una regla puede establecer la primera mitad. Solo esta versión evita que la sugerencia vuelva a aparecer.

Lo que ya rechazaste. La categoría de mayor valor y la que no existe en ningún lugar del repositorio. Cada nueva sesión vuelve a proponerlo.

Conocimiento entre repositorios. Vocabulario de dominio y estándares que se aplican a varios proyectos. Las reglas de proyecto son por repositorio por diseño; esto no.

Correcciones que has hecho más de una vez. La propia heurística de Cursor para escribir una regla, y el razonamiento detrás de la corrección pertenece aquí, justo al lado.

Paso 3: Conecta tu IA y agentes

Conecta las herramientas que utilizas. MemoryLake es accesible a través de MCP y de una API, por lo que los agentes nativos de MCP (entre ellos Claude Code, Codex y OpenClaw) se conectan apuntando al servidor MCP, mientras que otros asistentes leen la misma memoria a través de la API.

Conectando Cursor, Claude Code y otros agentes a una capa de memoria
Conectando Cursor, Claude Code y otros agentes a una capa de memoria

Tres límites honestos. MemoryLake no escribe tus reglas de Cursor y no las reemplaza: las reglas son la forma en que diriges al Agent, y aún debes escribirlas correctamente. Solo contiene lo que tú o tus agentes escriben en él, por lo que el Paso 2 es manual. Y las reglas son contexto a nivel de prompt en lugar de una configuración forzada, lo cual es el enfoque de Cursor, no el nuestro; una capa de memoria no cambia eso.

Qué cambia esto en la práctica

"¿Por qué no siguió la regla?" se convierte en una comprobación de dos segundos. Extensión, luego tipo, luego patrón. Casi siempre es uno de los tres.

Las reglas siempre activas se vuelven cortas. Cuando la sustancia reside en otra parte, el archivo siempre activo vuelve a ser un puñado de restricciones reales en lugar de un documento enviado con cada mensaje.

Un nuevo repositorio no es un comienzo desde cero. Las reglas de proyecto no viajan entre repositorios. El conocimiento guardado fuera de ellas sí.

La incorporación del equipo deja de ser historia oral. Las reglas registradas ofrecen convenciones; la capa de memoria ofrece las razones. Los nuevos integrantes necesitan ambas, y normalmente solo una de ellas está escrita.

Tus otras herramientas ven el mismo contexto. El razonamiento detrás de tu arquitectura es idéntico ya sea que lo lee Cursor, Claude Code o Codex: la estructura que se cubre en qué significa realmente la memoria persistente.

Buenas prácticas para reglas de Cursor que perduran

Usa .mdc en .cursor/rules o usa AGENTS.md. Nunca uses un .md simple dentro del directorio de reglas: se ignora.

Establece el tipo deliberadamente, una vez por regla. No dejes el frontmatter en blanco esperando que funcione. En blanco significa manual.

Escribe descripciones que un extraño pueda enrutar. "Convenciones de servicio RPC y patrones para el backend" es enrutable. "Cosas del backend" no lo es.

Mantén las reglas por debajo de las 500 líneas y divide lo que crezca. Es el propio número de Cursor, y las reglas componibles son más fáciles de reescribir cuando cambia el alcance.

Referencia archivos, no los copies. Las copias quedan obsoletas; las referencias @file no.

Añade reglas de forma reactiva. La documentación lo dice claramente: añade una regla cuando notes que el Agent comete el mismo error repetidamente, y no optimices en exceso antes de conocer tus patrones.

Registra las reglas en git y sigue actualizándolas. Incluso puedes etiquetar a @cursor en un issue o PR de GitHub para que el Agent actualice una regla por ti.

Prefiere AGENTS.md anidados para la delimitación por directorios. Menos frontmatter que mantener y la precedencia es predecible.

Guarda las razones fuera de las reglas. Las reglas son para dar dirección y punteros. El porqué es lo que hace que un agente maneje el caso que no previste, y no cabe en 500 líneas: el problema general descrito en por qué RAG no es memoria.

Conclusión

Cursor es explícito en que los modelos no retienen memoria entre completados y que las Reglas son el mecanismo para un contexto persistente y reutilizable a nivel de prompt. Por lo tanto, mantener el contexto entre sesiones es cuestión de hacer bien cuatro cosas: la extensión del archivo, el tipo de regla, el alcance y dónde se guardó la regla. Corrige eso y la mayoría de los "se le olvidó" desaparecerán.

Lo que queda es la parte que las reglas están diseñadas para no contener. Tienen un límite, están pensadas para apuntar a archivos en lugar de duplicarlos y capturan la conclusión en lugar del argumento. Coloca las decisiones, las restricciones y los enfoques rechazados en una capa que tus herramientas puedan leer, mantén tus reglas cortas y correctamente tipadas, y cada nueva sesión comenzará tanto con la instrucción como con la razón detrás de ella.

Preguntas frecuentes

¿Recuerda Cursor las sesiones anteriores?

La documentación de Cursor establece que los modelos de lenguaje no retienen memoria entre completados, y que las Reglas proporcionan un contexto persistente y reutilizable a nivel de prompt. Las Reglas y AGENTS.md son el mecanismo documentado para mantener el contexto entre sesiones, y la ruta de documentación para la función de memorias ahora redirige a la página de Reglas.

¿Por qué no se aplica mi regla de Cursor?

Según las preguntas frecuentes de Cursor, primero verifica el tipo de regla. Para Apply Intelligently, asegúrate de definir una descripción. Para Apply to Specific Files, asegúrate de que el patrón de archivo coincida con los archivos referenciados. Confirma también que el archivo use la extensión .mdc: un archivo .md simple en .cursor/rules se ignora porque no tiene frontmatter.

¿Cuál es la diferencia entre .cursor/rules y AGENTS.md?

Las reglas de proyecto en .cursor/rules son archivos .mdc con frontmatter que controla cuándo se aplican. AGENTS.md se describe en la documentación como una alternativa simple de markdown sin configuración: un archivo a nivel de raíz se aplica de manera general, y los archivos anidados en subdirectorios se aplican a esos directorios y sus hijos, combinándose con las instrucciones del padre.

¿Cómo hago para que una regla se aplique a cada sesión?

Configura alwaysApply: true en su frontmatter. Eso significa que la regla siempre se incluye, y se ignoran los globs y la descripción. Mantén esas reglas cortas: su contenido se incluye al inicio del contexto del modelo.

¿A dónde van las preferencias globales?

Las User Rules, definidas en Customize → Rules, se aplican a todos tus proyectos y las utiliza el Agent (Chat). En los planes Team y Enterprise, las Team Rules se gestionan desde el panel de control para las convenciones de toda la organización.

¿Debería poner las decisiones de arquitectura en una regla?

Coloca la convención resultante en una regla y mantén el razonamiento en algún lugar recuperable. La guía de Cursor es mantener las reglas por debajo de las 500 líneas y referenciar archivos en lugar de copiar su contenido, lo que significa que una regla no tiene el formato adecuado para el argumento detrás de una decisión; pero ese argumento es exactamente lo que evita que se vuelva a proponer el enfoque rechazado.