El problema fundamental que Lemmalog aborda es la incapacidad de los Large Language Models (LLMs) para mantener un estado de conocimiento consistente y evolutivo a lo largo de interacciones prolongadas. A medida que las investigaciones o conversaciones se extienden, los LLMs tienden a "olvidar" hechos previamente establecidos, proponer soluciones ya descartadas o razonar a partir de premisas invalidadas. Este comportamiento, similar a las "alucinaciones" o la falta de memoria a largo plazo, reduce drásticamente su utilidad en tareas complejas como la investigación de vulnerabilidades.
La solución propuesta es externalizar la gestión del conocimiento determinístico a un sistema de base de datos lógica, específicamente Datalog. En lugar de que el LLM reconstruya su estado mental en cada interacción a partir de un historial de texto, Lemmalog permite que el LLM se enfoque en la "parte difusa" (comprensión del lenguaje natural, código, etc.) y traduzca esa información a hechos estructurados. La base de datos Datalog se encarga entonces de derivar nuevas conclusiones, invalidar las antiguas y mantener un "estado de análisis" coherente, de manera similar a cómo los sistemas de análisis de programas manejan hechos y reglas.
Este enfoque se vuelve crítico ahora que los agentes LLM están siendo desplegados en tareas que requieren razonamiento secuencial y acumulación de conocimiento, donde la consistencia y la capacidad de retractar información son tan importantes como la inferencia inicial. La conexión con los fundamentos de la computación es directa: se trata de aplicar principios de bases de datos deductivas y análisis estático de programas para resolver un desafío inherente a la arquitectura de los LLMs.
Arquitectura del Sistema
La arquitectura de Lemmalog divide la gestión del conocimiento en dos componentes principales: el LLM y el motor Datalog. El LLM actúa como un "front-end" probabilístico, responsable de interpretar entradas no estructuradas (código fuente, salida de depuradores, lenguaje natural) y convertirlas en "hechos estructurados" (tuples) que pueden ser procesados por el motor Datalog. Este proceso de extracción es crucial y se ha mejorado con técnicas como la resolución de entidades, la normalización temporal y la combinación de métodos de recuperación (BM25, graph/entity boosts, embeddings) para asegurar que la información relevante sea correctamente identificada y estructurada.
El motor Datalog, denominado Lemmalog, es el "back-end" determinístico. Almacena estos hechos estructurados y un conjunto de "reglas" declarativas. Cuando se añaden nuevos hechos, el motor utiliza estas reglas para derivar automáticamente nuevas conclusiones, alcanzando un "punto fijo" de conocimiento. Una característica clave es la capacidad de "retracción": cuando un hecho subyacente cambia o se invalida, el motor Datalog es capaz de identificar y eliminar automáticamente todas las conclusiones que dependían de ese hecho, manteniendo la consistencia del estado. Esto se logra mediante el seguimiento de la "procedencia" (provenance) de los hechos derivados, es decir, qué hechos y reglas dieron origen a una conclusión particular.
Además, Lemmalog introduce el concepto de "intervalos de validez" para los hechos, permitiendo manejar información temporal. Un hecho puede ser válido en un rango de tiempo específico, lo que permite al sistema responder preguntas sobre el estado actual y también sobre estados pasados sin mantener hechos contradictorios simultáneamente. El sistema también incluye capacidades de agregación y reconciliación de entidades. El contexto final que se presenta al LLM para responder preguntas es una representación concisa del estado mantenido por Datalog, en lugar de todo el historial de la conversación, lo que reduce significativamente el consumo de tokens y el tamaño de la ventana de contexto.
Flujo de Gestión de Conocimiento con Lemmalog
- 1 Entrada LLM El LLM recibe lenguaje natural, código, salida de depurador.
- 2 Extracción de Hechos El LLM convierte la entrada en hechos estructurados (tuples Datalog).
- 3 Ingesta Datalog Los hechos estructurados se añaden a la base de datos Lemmalog.
- 4 Derivación de Conclusiones El motor Datalog aplica reglas para derivar nuevos hechos y alcanzar un punto...
- 5 Actualización de Estado El estado de conocimiento se mantiene, incluyendo procedencia y validez tempo...
- 6 Consulta LLM El LLM formula una pregunta o solicita una acción.
- 7 Recuperación de Contexto Lemmalog recupera el subconjunto relevante del estado mantenido.
- 8 Respuesta LLM El LLM genera una respuesta o sugerencia basada en el contexto conciso.
| Capa | Tecnología | Justificación |
|---|---|---|
| data-processing | Datalog | Motor de base de datos lógica para almacenar hechos estructurados, reglas y derivar conclusiones, gestionando la consistencia del estado y la procedencia. vs Prolog, otras bases de datos deductivas |
| compute | Large Language Models (LLMs) | Front-end probabilístico para la comprensión del lenguaje natural, extracción de hechos no estructurados y generación de respuestas. vs GPT-4.1, Claude Sonnet 4.6 Claude Sonnet 4.6 para extracción, modelos estándar de benchmark para lectura. |
| storage | Vector Databases | Complemento para la recuperación semántica de información relevante del pasado, combinada con la memoria simbólica de Datalog. vs bases de datos relacionales para almacenamiento de hechos |
Trade-offs
Ganancias
- ▲ Consistencia del conocimiento
- ▲▲ Reducción del contexto de tokens
- ▲ Capacidad de retractar conclusiones
- ▲ Trazabilidad (provenance) de las conclusiones
- ▲ Manejo de hechos temporales
- ▲ Rendimiento en tareas de 'Knowledge Update' y 'Adversarial Questions'
Costes
- ▲ Complejidad de la extracción de hechos (LLM front-end)
- ▲ Rendimiento en tareas de inferencia "difusa"
- △ Costo inicial de extracción de hechos
Fundamentos Teóricos
La idea de utilizar un sistema de lógica declarativa para mantener un estado de conocimiento tiene profundas raíces en la informática teórica y las bases de datos. Datalog, el lenguaje central de Lemmalog, es un subconjunto de Prolog y un lenguaje de consulta de bases de datos deductivas que se ha estudiado extensamente desde los años 80. Su capacidad para definir reglas y derivar hechos de manera declarativa, junto con la garantía de terminación y la existencia de un punto fijo mínimo, lo hacen ideal para el razonamiento sobre conjuntos de hechos.
El concepto de "provenance" (procedencia) y la "evaluación incremental" de las bases de datos deductivas son fundamentales para la capacidad de Lemmalog de manejar retracciones y actualizaciones eficientes. Estos conceptos han sido objeto de investigación en el campo de las bases de datos y el análisis de programas durante décadas, con trabajos seminales de autores como Jeffrey Ullman y David Maier en la década de 1980 sobre bases de datos deductivas y la optimización de consultas recursivas. La aplicación de estos principios a la gestión de la memoria de los LLMs es una extensión natural, tratando el estado de un agente como un "estado de análisis" de programa, donde las observaciones son hechos de entrada y las conclusiones son hechos derivados, y las reglas son las relaciones lógicas entre ellos. Esto se alinea con la visión de que el sistema completo puede verse como un "compilador" donde el LLM es el front-end y el motor Datalog es la representación intermedia y el motor de análisis.