El Incidente: Cuando una Actualización Borra Semanas de Trabajo
OpenClaw guarda su memoria como archivos .md en el sistema de archivos local. Es una solución funcional pero con un problema: esa memoria está atada al agente. Si el agente se actualiza, se reinstala, o se comporta de forma inesperada después de un cambio de versión, esos archivos pueden quedar desincronizados o directamente ignorados.
Lo que me pasó fue esto: OpenClaw recibió una actualización. Al reiniciarse, no reconoció su propio memory.md correctamente. Semanas de contexto acumulado — decisiones técnicas, estado de proyectos, preferencias de trabajo — evaporadas. El agente volvió a ser un extraño.
La pregunta incómoda: ¿por qué la memoria de mi agente depende del agente mismo?
El Problema de Raíz: Memoria Acoplada al Modelo
La mayoría de los agentes de IA tienen un modelo de memoria "acoplado": el contexto vive dentro del agente, en su formato, bajo sus reglas. Cuando el agente cambia, el contexto cambia con él. Cuando el agente muere, el contexto muere también.
En 2026, donde los modelos se actualizan cada pocas semanas, ese acoplamiento es una trampa. Estás construyendo sobre arena.
La alternativa es memoria desacoplada: el contexto existe en su propia infraestructura, consultable por cualquier agente que tenga las herramientas correctas. El modelo se convierte en lo que realmente es: un motor de razonamiento intercambiable.
La Solución: Un Servidor MCP de Embeddings Propio
Lo que construí fue un servidor MCP (Model Context Protocol) que actúa como capa de memoria semántica independiente. El stack:
-
Ollama con mxbai-embed-large: genera los embeddings localmente. Ningún dato sale de la máquina para ser vectorizado.
-
Redis con RediSearch: almacena los vectores y permite búsqueda semántica por similitud. Rápido, persistente, respaldable con un simple
redis-cli BGSAVE. -
Servidor MCP propio: expone las herramientas de memoria al agente.
La arquitectura completa:
Agente MCP (OpenClaw / Claude Code) → MCP Memory Server → Ollama mxbai-embed (local)
↓
Redis (vectores + metadata)
El agente no gestiona su propia memoria. La solicita al servidor MCP como solicitaría cualquier otra herramienta. La memoria se convierte en un servicio externo.
Cómo Funciona en la Práctica
Almacenar un Recuerdo
Cuando el agente completa una tarea significativa, llama:
store_memory({
content: "Se decidió usar JWT con refresh tokens en Redis. Salt rounds: 12. Access token TTL: 15min.",
tags: ["auth", "jwt", "decisión-técnica"],
project: "api-usuarios"
})
El servidor MCP: 1) Envía el texto a mxbai-embed via Ollama, 2) Obtiene el vector de 1024 dimensiones, 3) Almacena en Redis.
Recuperar Contexto Relevante
recall({
query: "¿Cómo manejamos la autenticación en api-usuarios?",
top_k: 5,
project: "api-usuarios"
})
El agente carga solo los fragmentos semánticamente relevantes, no toda la memoria. Recuperación quirúrgica.
Reconfigurar OpenClaw para Ignorar su Propia Memoria
Modifiqué los archivos de configuración principales:
-
soul.md:
Mi memoria no vive en este archivo. Vive en el servidor MCP. -
agents.md: Protocolo de inicio: ejecutar
recall()antes de cualquier tarea. NUNCA leer memory.md. -
tools.md: Registrar el servidor MCP como herramienta primaria de memoria.
-
memory.md: Una sola línea:
# DEPRECADO.
El Momento en que Todo Hizo Click
Después de configurar el sistema, desinstalé OpenClaw completamente y lo volví a instalar desde cero. Versión limpia. Lo reconecté al servidor MCP.
El agente ejecutó recall() al inicio. Recuperó el contexto de los proyectos activos, las decisiones técnicas pasadas. Desde su perspectiva, nunca había habido una interrupción.
El agente había muerto y resucitado con memoria intacta.
Por Qué los Embeddings Son Superiores a los Archivos .md
-
Escalan mal: un memory.md de 10,000 palabras consume tu context window antes de que el agente haga algo útil.
-
Recuperación lineal: el agente lee todo o no lee nada.
-
Acoplados al agente: si el agente cambia, la memoria cambia con él.
-
Sin semántica: "autenticación" no encuentra "JWT" o "OAuth".
Los embeddings resuelven todo: recuperación semántica, escala sin afectar el context window, sobreviven a cualquier cambio en el agente.
El Stack Completo
┌─────────────────────────────────────────┐
│ Lo que persiste │
├──────────────────┬──────────────────────┤
│ ProjectHub LLM │ MCP Memory Server │
│ ──────────────── │ ─────────────────── │
│ Proyectos │ Decisiones técnicas │
│ Tareas │ Contexto semántico │
│ Event log │ Preferencias │
└──────────────────┴──────────────────────┘
↓
Cualquier agente MCP
OpenClaw / Claude Code / Cline
El agente es la capa más delgada. Puede cambiar.
Lo que no cambia: ProjectHub + Redis.
Conclusión
La IA avanza rápido y esa velocidad tiene un costo: las herramientas en las que confías hoy pueden cambiar mañana. Una actualización borra tu memoria. Un modelo nuevo hace obsoleto tu agente.
La respuesta no es resistir el cambio. Es construir de forma que el cambio no te cueste nada. La memoria es infraestructura, no una propiedad del agente.
La próxima vez que OpenClaw se actualice y olvide quién era, yo no voy a notar la diferencia.
Artículo original por Andres Wong · DevChefs 2026