## ¿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?
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.