Los asistentes de IA olvidan todo después de la conversación. Cada nueva sesión comienza desde cero -- sin contexto, sin experiencia, sin curva de aprendizaje. Para una charla puntual, es aceptable. Para un sistema que co-gestiona una agencia, es insostenible.
Por eso construimos nuestro propio sistema de memoria. Después de más de 550 sesiones, 1.100 aprendizajes almacenados y 180 decisiones documentadas, compartimos qué funcionó -- y qué no.
El problema: IA olvidadiza
Imagine que su empleado más importante olvida todo cada mañana. Cada reunión, cada decisión, cada experiencia -- desaparecida. Tendría que empezar desde cero cada día.
Así es exactamente como funcionan la mayoría de los sistemas de IA. No importa cuán brillante fue la respuesta -- en la siguiente conversación, el conocimiento se ha esfumado. Esto hace problemático el despliegue en procesos empresariales reales.
Nuestro enfoque: Dos tipos de memoria
El cerebro humano distingue entre memoria episódica (experiencias, errores, situaciones concretas) y memoria semántica (hechos, conceptos, conocimiento general). Hemos aplicado el mismo principio a nuestro sistema de IA.
Memoria episódica
- Errores y sus causas
- Incidentes concretos y cómo se resolvieron
- Decisiones y su contexto
- Patrones que aparecieron en ciertas situaciones
Memoria semántica
- Conocimiento de arquitectura (cómo está construido el sistema)
- Hechos de infraestructura (qué servidor hace qué)
- Evaluaciones tecnológicas (qué herramienta sirve para qué)
- Reglas de negocio y procesos
La auto-clasificación ocurre al almacenar: un error reportado se clasifica automáticamente como episódico, un hallazgo de arquitectura como semántico. Al recuperar, se filtra -- un Research Agent obtiene hechos semánticos, un Critic Agent obtiene errores episódicos.
La arquitectura
El sistema se basa en PostgreSQL con tres capas de búsqueda:
- Búsqueda vectorial -- Embeddings de 512 dimensiones para similitud semántica. Encuentra conceptos relacionados incluso con formulaciones diferentes.
- Búsqueda por trigramas -- Coincidencia difusa para consultas imprecisas. Encuentra "lo del SSL" aunque esté almacenado como "renovación de Certbot".
- Búsqueda de texto completo -- Búsqueda clásica por palabras clave para contenido en alemán e inglés.
Las tres capas se combinan usando Reciprocal Rank Fusion. El resultado: una calidad de búsqueda que responde confiablemente tanto a consultas precisas como a recuerdos vagos.
22 tablas para conocimiento estructurado
La memoria no es una gran colección de texto, sino un sistema estructurado:
- Sessions -- Cuándo se trabajó, en qué proyecto, cuál fue el resultado
- Decisions -- Qué decisiones se tomaron, con qué razonamiento, qué alternativas
- Learnings -- Qué se aprendió, en qué categoría, con qué frecuencia se recuperó
- Knowledge Graph -- Entidades (proyectos, servidores, personas, herramientas) con observaciones y relaciones
- Skills -- Qué capacidades se desarrollaron, con qué frecuencia se aplicaron exitosamente
- Síntesis -- Resúmenes generados por IA a partir de clusters de aprendizaje
El Knowledge Graph
Además de la memoria lineal, mantenemos un Knowledge Graph con más de 150 entidades, 1.300 observaciones y 180 relaciones. Cada entidad tiene un tipo (proyecto, servidor, persona, herramienta) y cualquier número de observaciones con marcas de tiempo y valores de confianza.
Esto permite preguntas como: "¿Qué servidores usa el Proyecto X?" o "¿Cuándo se actualizó por última vez la Herramienta Y?" -- sin que esa información exista explícitamente en ningún documento.
Cinco funciones que marcan la diferencia
1. Control de admisión
No toda información merece un lugar en la memoria. Nuestro sistema de control de admisión evalúa cada nuevo aprendizaje con cinco factores:
- Novedad -- ¿Ya existe este conocimiento en forma similar?
- Especificidad -- ¿Es la información lo suficientemente concreta para ser útil?
- Fiabilidad de la fuente -- ¿Proviene de una fuente confiable?
- Consistencia -- ¿Contradice conocimiento existente?
- Relevancia -- ¿Encaja con el contexto actual del proyecto?
Información con un score por debajo de 0.3 es rechazada. Suena estricto, pero previene la degradación gradual de calidad que es inevitable con almacenamiento descontrolado.
2. Decaimiento adaptativo por importancia
No todas las memorias son igualmente importantes. Nuestro sistema calcula un Score de Importancia a partir de cinco factores: frecuencia de recuperación, actualidad, enlaces con otros aprendizajes, feedback del usuario e importancia propagada (similar a PageRank).
El punto clave: las memorias importantes decaen hasta seis veces más lento que las menos importantes. Una decisión arquitectónica fundamental sigue siendo relevante durante meses. Un workaround de debugging pierde importancia después de semanas.
3. Estados de ciclo de vida
Cada aprendizaje pasa por tres estados:
- Active -- Se recupera y rankea normalmente
- Ephemeral -- Baja importancia, degradado en resultados de búsqueda
- Archived -- Removido de búsquedas estándar pero aún localizable cuando se necesita
Las transiciones ocurren automáticamente basándose en el Score de Importancia. Un aprendizaje también puede reactivarse cuando se recupera nuevamente.
4. Relaciones bi-temporales
El Knowledge Graph almacena no solo hechos actuales sino también pasados. Cada relación tiene cuatro marcas de tiempo:
- Cuándo la relación se volvió válida en la realidad
- Cuándo se volvió inválida
- Cuándo se registró en el sistema
- Cuándo se marcó como obsoleta en el sistema
Esto permite preguntas como: "¿Qué sabíamos sobre el Servidor X el 15 de marzo?" -- no solo el estado actual, sino el estado de conocimiento en cualquier punto del tiempo.
5. Relaciones causales
Además de relaciones simples (A usa B, A pertenece a B), el grafo soporta ocho tipos de relaciones causales: causó, previno, desencadenó, bloqueó, habilitó, y más. Cada relación causal tiene un campo de evidencia.
Esto permite cadenas como: "La Decisión A llevó al Problema B, que fue prevenido por la Medida C." Estas cadenas causales se recorren automáticamente.
Lo que hemos aprendido
Almacenar menos, recuperar mejor
Nuestro sistema era inicialmente write-heavy: mucho se almacenaba, poco se recuperaba. El insight más importante fue que la calidad de recuperación importa más que el volumen de almacenamiento. El control de admisión y el ranking inteligente aportaron más que cualquier feature nuevo.
La detección de contradicciones es imprescindible
A lo largo de meses, se acumula información contradictoria. "El Servidor X usa PostgreSQL 14" y tres meses después "El Servidor X fue migrado a PostgreSQL 16" -- ambas afirmaciones son correctas, pero solo la segunda es actual. La detección automática de contradicciones y la gestión bi-temporal de datos resuelven este problema.
Los límites de memoria previenen el drift
El acceso ilimitado a la memoria suena óptimo pero causa que el agente pierda el foco. Límites fijos (máximo tres resultados por consulta) obligan al sistema a devolver solo lo más relevante.
Los números
Después de tres meses de operación:
- Más de 1.100 aprendizajes almacenados (episódicos y semánticos)
- 181 decisiones documentadas
- 156 entidades en el Knowledge Graph con 1.300 observaciones
- 180 relaciones entre entidades
- 555 sesiones rastreadas
- 393 tests automatizados
Conclusión
Construir un sistema de memoria de IA es más fácil que mantener uno. El verdadero desafío no está en el almacenamiento, sino en el control de calidad: qué se almacena, cuánto tiempo permanece relevante, qué tan rápido se encuentra.
La combinación de memoria episódica y semántica, control de admisión estricto y decaimiento adaptativo ha transformado nuestro sistema de una simple base de conocimiento a una memoria que aprende y se vuelve más útil cada día.
