Por qué Cascade dejó de recordar
Primero, la documentación se movió — y también el nombre del producto
Una nota práctica antes que nada, porque hace que las guías más antiguas sean difíciles de seguir: docs.windsurf.com ahora redirige a docs.devin.ai, y el editor está documentado como Devin Desktop. La página de memorias de Cascade se encuentra en docs.devin.ai/desktop/cascade/memories.
También verás esto reflejado en las rutas de los archivos. .devin/rules/ es ahora la ubicación preferida para las reglas del espacio de trabajo, manteniendo .windsurf/rules/ como alternativa (fallback); los documentos dicen que .devin/ "es la ubicación preferida y tiene prioridad". Si estás leyendo instrucciones que solo mencionan .windsurf/, aún funcionan, pero describen la alternativa.
Las memorias pertenecen al agente heredado
Volviendo a la causa principal. Devin Desktop tiene dos mecanismos documentados para conservar el contexto a través de las conversaciones: "Memories (memorias), que son generadas automáticamente por Cascade, y Rules (reglas), que son definidas manualmente por el usuario a nivel global, de espacio de trabajo o de sistema".
Las memorias están limitadas al agente Cascade heredado. Las nuevas pestañas se abren por defecto con el agente Devin Local, el cual, según la documentación, "no conserva las memorias". Por lo tanto, el síntoma —funcionaba ayer, vacío hoy— a menudo no se debe en absoluto a una memoria perdida. Es simplemente un agente diferente que nunca la tuvo.
El remedio documentado es el asistente de migración: el comando Devin: Open Cascade Migration Wizard mueve las memorias de las que dependes a Skills (habilidades).
Las memorias autogeneradas siempre fueron locales y limitadas al espacio de trabajo
Incluso en el agente heredado, las memorias son más limitadas de lo que la mayoría de la gente asume. Cascade "puede generar y almacenar memorias automáticamente si encuentra un contexto que considera útil recordar", y puedes pedirle que "cree una memoria de..." en cualquier momento.
Pero: están "asociadas con el espacio de trabajo en el que se crearon y se almacenan localmente en ~/.codeium/windsurf/memories/". Y explícitamente: "Las memorias generadas en un espacio de trabajo no están disponibles en otro, y no se confirman (commit) en tu repositorio". La documentación lo expresa claramente en una nota: "Las memorias autogeneradas viven solo en tu máquina".
Así que una nueva laptop, un segundo clon del repositorio o la máquina de un compañero de equipo no tendrán nada de esto. Un pequeño consuelo: "Crear y usar memorias autogeneradas NO consume créditos".
El propio consejo del proveedor es no depender de ellas
Esta es la parte que vale la pena tomar en serio, porque es su recomendación y no una opinión externa: "Para el conocimiento que deseas que Cascade reutilice de manera confiable, escríbelo como una Regla (Rule) o agrégalo a AGENTS.md en tu repositorio en lugar de depender de las memorias autogeneradas. Las reglas están controladas por versiones, se pueden compartir con tu equipo y te brindan un control explícito sobre su activación".
La tabla de características dice lo mismo en una sola línea: las memorias sirven para permitir que Cascade "recuerde datos puntuales", y "para un conocimiento duradero, prefiere Rules o AGENTS.md". Las Skills reciben una nota aún más directa: invierte aquí.
Las reglas sí se transfieren, pero solo en el modo que configures
Las reglas sobreviven a los límites de la sesión. El hecho de que lleguen a Cascade en un mensaje determinado depende completamente del campo trigger en su frontmatter:
| Modo | trigger: | Cómo llega a Cascade | Costo de contexto |
|---|---|---|---|
| Siempre activo (Always On) | always_on | Contenido completo de la regla en el prompt del sistema en cada mensaje | Cada mensaje |
| Decisión del modelo (Model Decision) | model_decision | Solo la descripción está en el prompt del sistema; Cascade lee el archivo completo cuando juzga que la descripción es relevante | Descripción siempre; contenido bajo demanda |
| Glob | glob | Se aplica cuando Cascade lee o edita un archivo que coincide con los globs | Solo cuando se tocan los archivos coincidentes |
| Manual | manual | No está en el prompt del sistema; escribes @nombre-de-regla para activar | Solo cuando se menciona con @ |
Una regla configurada como manual es invisible hasta que la invocas. Una regla configurada como model_decision con una descripción vaga puede que nunca se cargue. Ninguna de las dos está rota; ese es el comportamiento declarado, y es el mismo tipo de problema descrito en por qué los agentes ignoran los archivos de instrucciones que escribiste.
Dos excepciones que vale la pena memorizar: "El archivo de reglas globales (global_rules.md) y los archivos AGENTS.md a nivel de raíz no usan frontmatter; siempre están activos".
Límites de caracteres y dónde se guarda realmente una nueva regla
Límites documentados: el archivo de reglas globales en ~/.codeium/windsurf/memories/global_rules.md está "limitado a 6,000 caracteres", y las reglas del espacio de trabajo en .devin/rules/*.md están "limitadas a 12,000 caracteres por archivo". El archivo único heredado .windsurfrules en la raíz del espacio de trabajo también se sigue leyendo.
Y una trampa de alcance: la detección de reglas busca en tu espacio de trabajo, sus subdirectorios y hasta la raíz de git, pero "cuando creas una nueva regla, se guardará en el directorio .devin/rules de tu espacio de trabajo actual, no necesariamente en la raíz de git". Si abres una subcarpeta como tu espacio de trabajo, tu nueva regla estará limitada a esa subcarpeta.
Lo que la gente intenta
Volver a explicar el proyecto cada mañana. Funciona, para siempre, al mismo costo: el bucle descrito en cómo dejar de volver a explicar el contexto a la IA.
Pedirle a Cascade que "cree una memoria" de todo lo importante. Es mejor que nada en el agente heredado, y produce algo local, limitado al espacio de trabajo, no confirmado en el repositorio y no disponible para el agente predeterminado en una nueva pestaña.
Poner todo en global_rules.md. Siempre está activo y son 6,000 caracteres que se envían con cada mensaje en todos los espacios de trabajo. Eso es un presupuesto real de contexto, no un contenedor ilimitado.
Configurar cada regla como Siempre activa (Always On). Resuelve la confiabilidad pagando el costo total de contexto en cada mensaje, incluso en tareas no relacionadas.
Copiar ~/.codeium entre máquinas. Territorio no soportado, y no ayuda a un compañero de equipo que necesita el mismo conocimiento: el caso general en por qué Windsurf olvida las reglas del proyecto.
Asumir que el cambio de nombre rompió algo. Por lo general, no fue así. .windsurf/rules sigue funcionando como alternativa y .windsurfrules se sigue leyendo. Verifica el agente en tu pestaña antes de concluir que hay una regresión.
La solución: dejar de usar memorias automáticas y pasar a Rules, AGENTS.md y Skills
La recomendación del proveedor y la solución práctica son lo mismo. Haz esto una vez y las diferencias de agente a nivel de pestaña dejarán de importar.
Ejecuta el asistente de migración. Si dependías de memorias autogeneradas, usa Devin: Open Cascade Migration Wizard para moverlas a Skills, tal como indican las instrucciones. Este es el paso que la mayoría de la gente se salta y luego pasa una semana confundida.
Coloca el conocimiento duradero en AGENTS.md. A nivel de raíz siempre está activo sin frontmatter; los archivos en subdirectorios aplican un glob automático para ese directorio. Es la opción que requiere menos mantenimiento y está controlada por versiones, lo que la hace compartible.
Define el tipo de tus reglas deliberadamente. Restricciones universales: always_on. Convenciones específicas de lenguaje o ruta: glob. Guía situacional: model_decision con una descripción lo suficientemente precisa para enrutarla. Procedimientos que rara vez se necesitan: manual, y recuerda que tienes que mencionarlos con @.
Conserva global_rules.md únicamente para restricciones genuinamente globales. 6,000 caracteres, cada mensaje, cada espacio de trabajo. Trátalo como algo costoso.
Invierte en Skills para procedimientos de varios pasos. Los documentos las destacan para tareas complejas donde Cascade necesita archivos de referencia, y son el destino documentado para las memorias migradas.
Formatea para facilitar la lectura. Las mejores prácticas de Cascade: mantén las reglas simples, concisas y específicas; evita reglas genéricas como "escribir buen código", ya que estas ya están en los datos de entrenamiento; usa viñetas, listas numeradas y markdown en lugar de párrafos largos; agrupa reglas relacionadas con etiquetas XML.
Eso soluciona lo que se transfiere dentro de la herramienta. Lo que ninguno de estos contenedores guarda es el razonamiento detrás de las convenciones —por qué rechazaste un enfoque, qué restricción hace que una decisión extraña sea correcta— porque las Rules tienen límites y AGENTS.md es un archivo de convenciones, no de argumentos.
Para eso está MemoryLake: el conocimiento duradero de tu proyecto en una capa de la que leen tus herramientas, para que no sea local de una sola máquina o de un solo modo de agente. La configuración consta de tres pasos.
Step 1: Create an API key
Inicia sesión en MemoryLake y crea una clave API. Una sola credencial para todas las herramientas que conectes.

Step 2: Upload your first memories
Entradas cortas, una afirmación cada una, enfocadas en aquello para lo que un archivo de reglas no tiene la estructura adecuada:

Decisiones más la restricción que las produjo. Una regla puede decir "usa el adaptador de cola". Solo la razón evita que se vuelva a proponer la alternativa la próxima semana.
Enfoques ya descartados. Nada en el repositorio registra esto, y cada nueva conversación los sugerirá.
Conocimiento que abarca varios espacios de trabajo. Las memorias están limitadas al espacio de trabajo por diseño y las reglas son por repositorio. El vocabulario y los estándares de tu dominio no pertenecen a ninguno de los dos.
Correcciones que has repetido. Si lo has dicho dos veces, es una entrada que falta, y la razón debe ir con ella.
Step 3: Connect your AI & agents
Conecta las herramientas que utilizas. Se puede acceder a MemoryLake 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.

Tres límites honestos. MemoryLake no es un reemplazo para Rules o AGENTS.md — esos son los medios para guiar a Cascade, y aún debes configurarlos correctamente; tampoco puede migrar tus memorias autogeneradas, que es para lo que sirve el asistente. Solo contiene lo que tú o tus agentes escriben en él. Y no impone nada: las reglas son contexto, no una garantía de cumplimiento.
Qué cambia esto en la práctica
El agente que abrió la pestaña deja de decidir qué conservas. El conocimiento en AGENTS.md y en una capa de memoria no depende de una función de memorias que está limitada al agente heredado.
Una segunda máquina es solo una segunda máquina. Las memorias autogeneradas viven solo en la que las creó. Las reglas confirmadas en el repositorio y una capa de memoria externa no.
Los compañeros de equipo obtienen el mismo contexto que tú. Las memorias no se confirman en tu repositorio; las reglas y AGENTS.md sí, y el conocimiento compartido vive fuera de ambos.
El presupuesto de siempre activo vuelve a ser suficiente. 6,000 caracteres globales son más que suficientes para restricciones reales una vez que ya no cargan con tus notas de arquitectura.
Los cambios de nombre dejan de costarte nada. De Windsurf a Devin Desktop, de .windsurf/ a .devin/ — una capa de conocimiento fuera del editor es indiferente a todo esto, la estructura que se detalla en lo que realmente significa la memoria persistente.
Mejores prácticas para mantener el contexto de Cascade
Primero verifica qué agente está usando tu pestaña. Las memorias se aplican solo al agente Cascade heredado. Este es el diagnóstico de mayor rendimiento.
Prefiere AGENTS.md para el conocimiento duradero. Configuración cero, siempre activo en la raíz, con glob automático en subdirectorios y controlado por versiones.
Usa .devin/rules/ para nuevas reglas. Es la ubicación preferida y tiene prioridad; .windsurf/ sigue siendo una alternativa.
Configura el trigger a propósito. Las reglas manual no están en absoluto en el prompt del sistema. Si no era tu intención, no lo dejes así.
Escribe descripciones que se puedan enrutar. model_decision solo funciona si la descripción le indica a Cascade cuándo es relevante la regla.
Respeta los límites. 6,000 caracteres globales, 12,000 por archivo de regla de espacio de trabajo. Divide en lugar de comprimir.
Confirma dónde se guardó una regla. Las nuevas reglas se guardan en el .devin/rules del espacio de trabajo actual, no necesariamente en la raíz de git.
Mantén las razones fuera de las reglas. Las convenciones pertenecen al repositorio; el argumento detrás de ellas pertenece a un lugar recuperable — el problema general detallado en por qué RAG no es memoria.
Conclusión
Comienza con la verificación del agente. Las memorias en Devin Desktop se aplican solo al agente Cascade heredado, el agente predeterminado para nuevas pestañas no las conserva, y la solución documentada es migrar aquello de lo que dependes a Skills con el Cascade Migration Wizard. Eso por sí solo explica la mayor parte de la pérdida repentina de contexto.
Luego sigue el propio consejo del proveedor: el conocimiento duradero pertenece a Rules o AGENTS.md, no a memorias autogeneradas que viven en una sola máquina, en un solo espacio de trabajo y sin confirmar en el repositorio. Define el tipo de tus reglas para que se carguen cuando las necesites, mantén el archivo global dentro de sus 6,000 caracteres y coloca el razonamiento —decisiones, restricciones, enfoques rechazados— en una capa a la que no le importe qué agente abrió la pestaña o cómo se llama el editor este trimestre.