Memories es el sistema para compartir y mantener el contexto entre conversaciones.
En Windsurf hay dos mecanismos para esto: Memories, que puede ser generado automáticamente por Cascade, y reglas, que el usuario define manualmente tanto a nivel local como global.
Puedes acceder y configurar Memories y Rules en cualquier momento haciendo clic en el icono de Customizations en el menú deslizante superior derecho de Cascade, o mediante “Windsurf - Settings” en la esquina inferior derecha. Para editar una memory existente, simplemente haz clic en ella y luego en el botón Edit.
Durante la conversación, Cascade puede generar y almacenar memorias automáticamente si encuentra contexto que considera útil recordar.
Además, puedes pedirle a Cascade que cree una memoria en cualquier momento. Basta con indicarle a Cascade: “create a memory of …”.
Las memorias autogeneradas de Cascade están asociadas al workspace en el que se crearon, y Cascade las recuperará cuando las considere relevantes. Las memorias generadas en un workspace no estarán disponibles en otro.
Crear y usar memorias autogeneradas NO consume créditos
Los usuarios pueden definir explícitamente sus propias reglas para que Cascade las siga.
Las reglas pueden definirse a nivel global o a nivel de workspace.
global_rules.md - reglas aplicadas en todos los workspaces
.windsurf/rules - directorio a nivel de workspace que contiene reglas asociadas a globs o descripciones en lenguaje natural.
Windsurf detecta automáticamente reglas desde múltiples ubicaciones para ofrecer una organización flexible:
- workspace actual y subdirectorios: Todos los directorios
.windsurf/rules dentro de tu workspace actual y sus subdirectorios
- Estructura del repositorio Git: Para repositorios Git, Windsurf también busca hasta el directorio raíz de Git para encontrar reglas en los directorios superiores
- Compatibilidad con múltiples workspaces: Cuando hay varias carpetas abiertas en el mismo workspace, las reglas se desduplican y se muestran con la ruta relativa más corta
Ubicaciones para almacenar Rules
Las Rules pueden almacenarse en cualquiera de estas ubicaciones:
.windsurf/rules en el directorio de tu workspace actual
.windsurf/rules en cualquier subdirectorio de tu workspace
.windsurf/rules en directorios superiores hasta la raíz de git (para repositorios de git)
Cuando crees una nueva rule, se guardará en el directorio .windsurf/rules de tu workspace actual, no necesariamente en la raíz de git.
Para comenzar con Rules, haz clic en el ícono Customizations en el menú deslizante superior derecho de Cascade y luego ve al panel Rules. Allí puedes hacer clic en el botón + Global o + Workspace para crear nuevas rules a nivel global o de workspace, respectivamente.
Los archivos de Rules tienen un límite de 12 000 caracteres cada uno.
A nivel de regla, puedes definir cómo debe activarse una regla para Cascade.
Hay 4 modos:
- Manual: Esta regla puede activarse manualmente mediante una
@mención en el cuadro de entrada de Cascade
- Siempre activo: Esta regla se aplicará siempre
- Decisión del modelo: Con base en una descripción en lenguaje natural de la regla definida por el usuario, el modelo de IA decide si aplicar la regla.
- Glob: Con base en el patrón glob que defina el usuario (p. ej., .js, src/**/.ts), esta regla se aplicará a todos los archivos que coincidan con el patrón.
Para ayudar a Cascade a seguir tus reglas de manera efectiva, aplica estas mejores prácticas:
- Mantén las reglas simples, concisas y específicas. Las reglas demasiado largas o vagas pueden confundir a Cascade.
- No es necesario añadir reglas genéricas (p. ej., “write good code”), ya que eso ya está incorporado en los datos de entrenamiento de Cascade.
- Da formato a tus reglas con viñetas, listas numeradas y Markdown. A Cascade le resulta más fácil seguir esto que un párrafo largo. Por ejemplo:
# Directrices de Codificación
- El lenguaje de programación de mi proyecto es Python
- Utiliza retornos tempranos cuando sea posible
- Siempre añade documentación al crear nuevas funciones y clases
- Las etiquetas XML pueden ser una forma eficaz de expresar y agrupar reglas similares. Por ejemplo:
<coding_guidelines>
- El lenguaje de programación de mi proyecto es Python
- Usa retornos tempranos cuando sea posible
- Siempre agrega documentación al crear nuevas funciones y clases
</coding_guidelines>