Semem: siete verbos para construir memoria semántica en agentes
Una lectura técnica de tell, ask, augment, zoom, pan, tilt e inspect y de cómo organizan la memoria contextual de un agente.
This publication is currently available in Spanish. Read the original ↗
Pregunta
¿Cómo puede un agente conservar conocimiento útil y, al mismo tiempo, decidir qué parte de ese conocimiento necesita consultar en cada momento?
Semem propone una respuesta con una interfaz pequeña: siete verbos simples para guardar información, enriquecerla, navegar por ella, recuperarla y revisar el estado de la memoria.
La idea importante es que estos verbos no representan siete tipos de memoria. Representan siete operaciones sobre una memoria semántica y sobre el contexto que se le presenta al agente.
Qué es Semem
Semem es un toolkit experimental de Node.js para gestión de memoria de agentes. Integra modelos de lenguaje con tecnologías de la Web Semántica, principalmente RDF y SPARQL, además de embeddings vectoriales, grafos de conocimiento y una interfaz MCP para conectar el sistema con agentes y asistentes.
El proyecto organiza parte de su arquitectura alrededor de dos ideas:
- Ragno, un modelo para describir elementos, entidades, unidades, relaciones y corpus dentro de un grafo de conocimiento.
- ZPT —Zoom, Pan y Tilt—, una ontología y un mecanismo de navegación para seleccionar el nivel, el alcance y la representación del contexto.
Por eso Semem no se limita a almacenar fragmentos y hacer una búsqueda vectorial. También intenta controlar cuánto conocimiento se recupera, qué subconjunto se consulta y desde qué perspectiva se presenta.
Los siete verbos
1. tell: enseñar o guardar
tell incorpora información a la memoria. El contenido puede procesarse para generar embeddings y extraer conceptos antes de almacenarse.
Es la operación de escritura del sistema: permite registrar hechos, documentos, conversaciones, preferencias o aprendizajes de un agente.
tell: "El usuario prefiere respuestas breves y ejemplos en TypeScript"
2. ask: consultar o recordar
ask formula una pregunta sobre el conocimiento almacenado. Semem puede buscar información semánticamente relevante, ensamblar el contexto y utilizar un modelo de lenguaje para producir una respuesta.
Es la operación de recuperación: convierte la memoria persistente en información útil para el siguiente paso del agente.
ask: "¿Qué lenguaje prefiere el usuario para los ejemplos?"
3. augment: enriquecer
augment analiza contenido para extraer conceptos, relaciones o información adicional. Su función es transformar texto sin estructura en conocimiento más fácil de recuperar y conectar.
En un flujo de ingestión, puede ejecutarse después de tell o como parte del procesamiento de un documento más grande.
augment: {"target": "texto para analizar", "operation": "concepts"}
4. zoom: elegir el nivel de detalle
zoom controla el nivel de abstracción de la navegación. La escalera documentada por Semem va desde elementos muy detallados hasta una visión amplia del corpus:
micro → entity → text → unit → community → corpus
Un agente puede utilizar un nivel cercano a entity para localizar un dato concreto o community y corpus para construir una explicación general.
5. pan: delimitar el espacio de búsqueda
pan filtra el conocimiento que debe considerarse. Puede limitar la consulta por dominios, palabras clave, entidades, periodos temporales o subconjuntos del corpus.
Si zoom responde “¿cuánto detalle necesito?”, pan responde “¿en qué parte del conocimiento debo moverme?”.
pan: {"domains": ["IA"], "keywords": ["memoria semántica"]}
6. tilt: elegir la perspectiva
tilt decide cómo representar o proyectar la información seleccionada. Entre las perspectivas documentadas están las palabras clave, los embeddings, la estructura del grafo y la dimensión temporal.
El mismo conjunto de recuerdos puede ser útil de maneras distintas si se observa como una lista de conceptos, como vecinos semánticos, como relaciones de un grafo o como una secuencia temporal.
tilt: {"style": "graph"}
7. inspect: observar y depurar
inspect permite examinar el estado de la memoria, la sesión y la caché. Es especialmente útil para verificar qué se almacenó, por qué un recuerdo no fue recuperado o qué información está disponible inmediatamente después de un tell.
No añade conocimiento por sí mismo: añade visibilidad sobre el sistema.
inspect: {"what": "session", "details": true}
Cómo encajan en un agente
Una forma sencilla de entender el flujo es:
tell → augment → zoom / pan / tilt → ask → inspect
Por ejemplo:
- El agente guarda una conversación con
tell. augmentextrae entidades, temas y relaciones.- Antes de responder,
zoomfija el nivel de detalle requerido. panreduce la búsqueda al dominio y al periodo relevantes.tiltelige si conviene observar relaciones, similitud semántica o una vista temporal.askrecupera y sintetiza el contexto.inspectpermite comprobar el estado y depurar el resultado.
No todos los flujos necesitan ejecutar los siete verbos. La ventaja está en separar explícitamente la escritura, la recuperación, la navegación y la observabilidad, en lugar de ocultarlo todo detrás de una única función de memoria.
Qué hay detrás
Según la documentación del proyecto, el flujo de tell ingiere contenido, genera embeddings, extrae conceptos y lo almacena en un sistema que combina SPARQL con búsqueda vectorial. El flujo de ask realiza búsquedas adaptativas, ensambla el contexto y genera una respuesta con ayuda de un modelo de lenguaje.
La navegación ZPT añade una capa de selección: zoom usa una escala de abstracción; pan define el alcance; y tilt determina la representación. El estado de navegación puede persistir entre operaciones, lo que permite que el contexto seleccionado influya en consultas posteriores.
Interpretación
Para explicarlo de manera editorial, los siete verbos se pueden agrupar en tres capas:
| Capa | Verbos | Propósito |
|---|---|---|
| Memoria | tell, ask, augment |
Guardar, recuperar y enriquecer conocimiento. |
| Navegación | zoom, pan, tilt |
Seleccionar el nivel, el alcance y la perspectiva. |
| Observabilidad | inspect |
Revisar el estado y depurar el comportamiento. |
Esta separación es, en mi lectura, la parte más interesante de Semem. La memoria deja de ser solamente una base donde se buscan fragmentos y pasa a ser un espacio que el agente puede explorar de forma controlada.
Límites
El propio repositorio presenta Semem como un proyecto experimental y señala que su arquitectura, documentación y conceptos de navegación todavía están en consolidación. Por eso no sería correcto presentarlo como una solución universal o como una prueba definitiva de que los agentes ya tienen memoria comparable a la humana.
Su valor actual está en la propuesta arquitectónica: una interfaz pequeña para separar almacenamiento, recuperación, enriquecimiento, navegación contextual y depuración. El siguiente paso debería ser medirlo en flujos reales de agentes, con métricas de precisión de recuperación, costo, latencia, consistencia y capacidad para evitar recuerdos irrelevantes.