Skip to main content
Back to Guides
Configuration10 min read

Gestión de Memoria: MEMORY.md y Contexto Persistente

Aprende a gestionar la memoria de tu agente: short-term vs long-term, best practices para contexto y organización eficiente.

## ¿Qué es la Gestión de Memoria? Los agentes de IA tienen memoria limitada por sesión, pero necesitan **continuidad** entre conversaciones. La gestión de memoria es el sistema que permite a tu agente "recordar" información importante entre sesiones y organizar el contexto de manera eficiente. Piensa en la memoria como la diferencia entre un empleado temporal (cada sesión desde cero) y un empleado permanente (que recuerda proyectos anteriores). ## Anatomía del Sistema de Memoria ### Estructura de Archivos ``` workspace/ ├── memory/ │ ├── INDEX.md # Índice rápido de todos los temas │ ├── groups.md # Contexto de grupos/proyectos │ ├── 2025-02-08.md # Notas diarias (raw logs) │ ├── 2025-02-07.md │ └── archive/ │ ├── 2025-01/ │ └── projects/ ├── MEMORY.md # Memoria principal (long-term) └── SOUL.md # Personalidad del agente ``` ## Short-term vs Long-term Memory ### Short-term Memory (Diaria) **Archivo**: `memory/YYYY-MM-DD.md` **Propósito**: Log de eventos del día **Duración**: Automático, se lee ayer + hoy ```markdown # 2025-02-08 ## Proyectos - **Vibe Clawing**: Implementando sistema de guías (Bloque 11) - **ClawMsg**: Esperando review de UI por Iván ## Decisiones - Usar MDX para guías en lugar de JSON - TOC sticky en sidebar derecho (desktop) ## Problemas Resueltos - Error en build: faltaba dependency @mdx-js/loader - Rate limit GitHub API: añadido throttling ## Pendientes - [ ] Crear 4 guías de ejemplo - [ ] Mejorar TOC para mobile - [ ] Testing del sistema completo ``` ### Long-term Memory (Persistente) **Archivo**: `MEMORY.md` **Propósito**: Conocimiento curado y persistente **Duración**: Permanente, editado manualmente ```markdown # MEMORY.md - Memoria Long-term ## Proyectos Principales ### Vibe Clawing (2025-02 - Activo) - **Objetivo**: Plataforma educativa para agentes de IA - **Stack**: Next.js, MDX, TailwindCSS - **Estado**: En desarrollo, completando módulos - **Decisiones clave**: - MDX para contenido por flexibilidad - TOC sticky para navegación - No usar CMS externo por simplicidad ### ClawMsg (2025-01 - Mantenimiento) - **Objetivo**: App de mensajería con agentes - **Stack**: Flutter, Supabase - **Estado**: MVP terminado, en optimización - **Lección**: Validar UX antes de implementar ## Patrones Técnicos ### Deploy Pipeline 1. Push tag → GitLab CI 2. Build image → Registry 3. SSH server → Docker pull + compose up 4. **NUNCA** subir manualmente imágenes al registry ### Error Handling - Siempre verificar códigos de salida en scripts - Logging con timestamp y nivel - Retry logic para APIs con rate limiting ``` ## INDEX.md - Navegación Rápida **Propósito**: Índice lightweight para encontrar información rápidamente ```markdown # INDEX.md - Índice de Memoria ## Proyectos - [2025-02-08] Vibe Clawing | BOARD.md | Sistema de guías implementado - [2025-02-07] ClawMsg | memory/2025-02-07.md | Bug fixing UI - [2025-01-15] Infrastructure | skills/infra/ | Setup Umami analytics ## Decisiones Técnicas - [2025-02-08] MDX vs JSON | memory/2025-02-08.md | MDX elegido por flexibilidad - [2025-01-20] Flutter vs React Native | memory/2025-01-20.md | Flutter elegido ## Problemas Comunes - [2025-02-05] Rate limit GitHub | memory/2025-02-05.md | Solución: throttling - [2025-01-18] Docker build fails | memory/2025-01-18.md | Solución: multi-stage ## Contactos/Recursos - [2025-01-10] Hetzner API | TOOLS.md | Tokens y endpoints ``` ## Best Practices para Contexto ### 1. Principio de Relevancia ❌ **Malo**: Guardar todo ✅ **Bueno**: Guardar solo lo que impacta decisiones futuras ```markdown # ❌ Muy detallado, ruido - 14:32 - Ejecuté npm install - 14:33 - Abrí VS Code - 14:34 - Edité archivo.js línea 23 # ✅ Conciso, accionable - Agregada validación de email en registro - BUG: Rate limit en API GitHub, fix: throttling - DECISIÓN: Usar MDX por flexibilidad sobre JSON ``` ### 2. Estructura Consistente ```markdown ## Template Diario # YYYY-MM-DD ## Proyectos Activos [Lista de qué se trabajó] ## Decisiones [Decisiones tomadas con contexto] ## Problemas y Soluciones [Issues encontrados y cómo se resolvieron] ## Pendientes [TODO list para mañana] ## Aprendizajes [Insights o patrones descubiertos] ``` ### 3. Linking y Referencias ```markdown # Usa referencias cruzadas - Ver arquitectura en `projects/app-name/ARCH.md` - Relacionado con [2025-01-15] en memory/INDEX.md - Decidido en sesión sessionKey:abc123 # Para búsquedas futuras - Tags: #deploy, #bug, #ui-decision - Proyecto: vibe-clawing - Stakeholder: Iván ``` ## Organización por Contextos ### Grupos y Proyectos **Archivo**: `memory/groups.md` ```markdown # Groups & Projects Context ## Telegram Groups ### Developer Group (-1003724421765) - **Proyecto**: Vibe Clawing - **Código**: ~/Documents/projects/vibe_clawing/code/ - **Estado**: Desarrollo activo - **Topics activos**: - topic:1 = General/Main - topic:2 = Frontend - topic:3 = Backend ### ClawMsg Group (-5179114872) - **Proyecto**: ClawMsg mobile app - **Código**: ~/Documents/projects/clawmsg/ - **Estado**: Mantenimiento/bugfixes ``` ### Contexto por Usuario ```markdown ## Iván (Main User) - **Preferencias**: Sin tablas markdown en Telegram, PDFs para docs largos - **Horarios**: 9-18h disponible, fuera de horas solo urgencias - **Estilo**: Directo, orientado a resultados - **Decisiones**: Le gusta validar UI/UX, no código técnico ## Otros Agentes - **Documentación compartida**: ~/Library/Mobile Documents/com~apple~CloudDocs/Clawd/ - **Mi carpeta**: Developer/ (puedo escribir) - **Otras carpetas**: Solo lectura para contexto ``` ## Herramientas de Memoria ### Búsqueda en Historial ```bash # Buscar en sesiones anteriores grep -r "keyword" ~/.clawdbot/agents/main/sessions/ # Buscar en memoria por fecha find memory/ -name "2025-02-*.md" -exec grep -l "keyword" {} \; # Buscar decisiones específicas grep -r "DECISIÓN\|DECISION" memory/ ``` ### Archivado Automático ```bash #!/bin/bash # archive-old-memory.sh # Mover archivos antiguos a archive/ CUTOFF_DATE=$(date -d "30 days ago" +%Y-%m-%d) find memory/ -name "20*.md" | while read file; do FILE_DATE=$(basename "$file" .md) if [[ "$FILE_DATE" < "$CUTOFF_DATE" ]]; then MONTH=$(echo "$FILE_DATE" | cut -d'-' -f1-2) mkdir -p "memory/archive/$MONTH" mv "$file" "memory/archive/$MONTH/" echo "Archived: $file → memory/archive/$MONTH/" fi done ``` ### Sync de Memoria ```bash #!/bin/bash # sync-memory.sh # Backup de memoria a cloud rsync -av memory/ ~/iCloud/Clawd-Backup/memory/ echo "Memory synced to iCloud" ``` ## Estrategias de Retrieval ### 1. Por Tiempo ```markdown # Buscar por fechas - **Hoy**: memory/$(date +%Y-%m-%d).md - **Ayer**: memory/$(date -d yesterday +%Y-%m-%d).md - **Esta semana**: memory/2025-02-*.md - **Mes pasado**: memory/archive/2025-01/ ``` ### 2. Por Proyecto ```markdown # Buscar por proyecto grep -r "Vibe Clawing\|vibe-clawing" memory/ grep -r "ClawMsg\|clawmsg" memory/ ``` ### 3. Por Tipo de Información ```markdown # Buscar decisiones grep -r "DECISIÓN\|DECISION" memory/ # Buscar problemas/bugs grep -r "BUG\|ERROR\|ISSUE" memory/ # Buscar pendientes grep -r "TODO\|PENDING\|Pendiente" memory/ ``` ## Maintenance y Hygiene ### Weekly Review (Automatizado) ```markdown # Cada domingo, revisar: 1. ¿Qué información de esta semana va a MEMORY.md? 2. ¿Hay decisiones que deben actualizarse en INDEX.md? 3. ¿Archivos viejos que se pueden mover a archive/? 4. ¿Pendientes de hace >1 semana que ya no son relevantes? ``` ### Monthly Cleanup ```markdown # Cada mes: 1. Archivar archivos >30 días a memory/archive/YYYY-MM/ 2. Actualizar MEMORY.md con patterns/lessons del mes 3. Revisar INDEX.md, eliminar entradas obsoletas 4. Backup a cloud storage ``` No borres memoria antigua sin criterio. A veces información de hace meses se vuelve relevante para debugging. ## Patterns Comunes ### Gestión de Decisiones ```markdown # Template para decisiones importantes ## DECISIÓN: [Título] - **Fecha**: 2025-02-08 - **Contexto**: [Por qué se decidió esto] - **Alternativas**: [Qué otras opciones había] - **Rationale**: [Criterios de decisión] - **Impacto**: [Qué afecta esta decisión] - **Review date**: [Cuándo reevaluar] ``` ### Tracking de Issues ```markdown # Template para problemas ## ISSUE: [Descripción corta] - **Status**: Found/In Progress/Resolved - **Impact**: High/Medium/Low - **Found**: 2025-02-08 14:30 - **Context**: [Qué estaba haciendo cuando pasó] - **Error**: [Error exacto o síntomas] - **Solution**: [Cómo se resolvió] - **Prevention**: [Cómo evitar en futuro] ``` ### Learning Tracking ```markdown # Template para aprendizajes ## LEARNING: [Concepto/Tecnología] - **Context**: [En qué proyecto/situación] - **What learned**: [Qué específicamente aprendí] - **Why important**: [Por qué es relevante] - **Application**: [Dónde/cómo usarlo] - **Related**: [Links a otras memorias/decisiones] ``` ## Checklist de Memoria Efectiva Para una gestión efectiva: - [ ] ¿Las memorias diarias son concisas pero completas? - [ ] ¿MEMORY.md se actualiza con insights importantes? - [ ] ¿INDEX.md hace fácil encontrar información? - [ ] ¿Hay referencias cruzadas entre memorias relacionadas? - [ ] ¿Las decisiones incluyen contexto y rationale? - [ ] ¿Los problemas incluyen soluciones y prevención? - [ ] ¿Se archiva memoria antigua regularmente? - [ ] ¿El sistema de búsqueda funciona eficientemente?