El problema fundamental que engrim aborda es la gestión ineficiente del contexto en los sistemas basados en Large Language Models (LLMs), particularmente la 'dilución de atención' y el alto costo computacional y financiero de mantener ventanas de contexto extensas. A medida que los LLMs se integran más en los flujos de trabajo de desarrollo, la necesidad de una memoria persistente y curada que trascienda las sesiones efímeras y los proveedores de modelos se vuelve crítica. Los LLMs, por su naturaleza, son 'utilidades desechables' en el sentido de que su estado interno se reinicia con cada nueva sesión o prompt, lo que obliga a los desarrolladores a pagar repetidamente por la re-inferencia de información ya procesada. engrim resuelve esto externalizando las decisiones arquitectónicas, las restricciones del usuario y el estado del proyecto en un almacén de memoria episódica local, permitiendo que los agentes de IA retomen el trabajo sin necesidad de re-explicación completa.

Este enfoque se alinea con el concepto de memoria de trabajo en sistemas cognitivos, donde la información relevante se mantiene activa y accesible para tareas inmediatas, mientras que el conocimiento a largo plazo se almacena de manera más eficiente. La aparición de ventanas de contexto de LLMs de 1M+ tokens, aunque impresionante, no resuelve el problema de la dilución de atención ni el costo, sino que lo agrava al permitir que se acumule más 'ruido' irrelevante. engrim propone una solución de ingeniería que prioriza la curación y la recuperación inteligente sobre la simple expansión de la capacidad de contexto bruto.

Arquitectura del Sistema

engrim se compone de un Core Engine que interactúa con diversos entornos de agentes de IA a través de un sistema de Adaptadores y Hooks. Estos adaptadores (para Google Antigravity, Claude Code, Cursor/Windsurf) interceptan eventos del ciclo de vida del agente (PreInvocation, Stop, SessionStart, etc.) para inyectar o extraer contexto. El Provenance Engine rastrea el agente de origen de cada entrada de memoria, lo que es crucial en entornos multi-agente. El corazón del sistema es el Hybrid Retrieval & Minder, que combina dos estrategias de búsqueda para recuperar la memoria: búsqueda léxica utilizando SQLite FTS5 (con stemming Porter) y búsqueda semántica basada en embeddings vectoriales estáticos generados por model2vec. Este motor de fusión de rango recíproco (Reciprocal Rank Fusion) permite una recuperación de contexto de baja latencia.

La capa de persistencia es un almacén local-first basado en SQLite (~/.engrim/memory.db). Este almacén contiene tablas para 'Curated Memories' (decisiones, hechos, feedback), un índice FTS5 para búsqueda de texto completo, y un almacén para 'Vector Embeddings'. Un 'Flight Recorder Log' registra los turnos de conversación y las líneas de acción para auditoría y revisión. La configuración se realiza a través de un comando engrim setup que detecta entornos de agente y configura los hooks y servidores MCP (Model Context Protocol) necesarios. La comunicación con los agentes se realiza mediante JSON-RPC 2.0 stdio para el servidor MCP. Las operaciones CRUD sobre la memoria se exponen a través de funciones como engrim_add, engrim_recall, engrim_context y comandos CLI correspondientes.

Flujo de Configuración de Agentes

  1. 1 engrim setup Detecta entornos de agente instalados (Antigravity, Claude Code, Cursor).
  2. 2 Configurar Hooks Modifica archivos de configuración del agente para inyectar hooks de lifecycl...
  3. 3 Desplegar Skills Instala skills o configuraciones MCP para la integración de engrim.
  4. 4 Servidor MCP Configura el agente para iniciar el servidor MCP de engrim (JSON-RPC stdio).

Flujo de Recuperación de Contexto

  1. 1 Agente Inicia Sesión Un hook de inicio de sesión o invocación se activa.
  2. 2 engrim_context Se invoca la función para recuperar el pack de memoria de inicio de sesión.
  3. 3 Hybrid Retrieval El motor combina búsqueda FTS5 (léxica) y embeddings vectoriales (semántica).
  4. 4 Reciprocal Rank Fusion Los resultados de ambas búsquedas se fusionan y ordenan por prioridad.
  5. 5 Filtrado por Presupuesto Se selecciona un subconjunto de memorias dentro del presupuesto de caracteres...
  6. 6 Inyección de Contexto Las memorias curadas se inyectan en la ventana de contexto del LLM.
CapaTecnologíaJustificación
storage SQLite Base de datos local-first para almacenar memorias curadas, logs y embeddings. Proporciona persistencia sin dependencias de red. vs LevelDB, RocksDB, Flat files Uso de FTS5 para búsqueda de texto completo y permisos de archivo 0600.
data-processing FTS5 (SQLite) Motor de búsqueda de texto completo para la recuperación léxica de memorias, utilizando stemming Porter. vs Lucene, Elasticsearch (local), custom regex
data-processing model2vec Generación de embeddings vectoriales estáticos para la búsqueda semántica de memorias. Ejecución en CPU sin GPU. vs OpenAI Embeddings API, Sentence Transformers (local) Opción de desactivar embeddings (ENGRIM_EMBED=off) para un modo puramente léxico.
networking JSON-RPC 2.0 (stdio) Protocolo de comunicación entre engrim y los agentes de IA (ej. Cursor) para el Model Context Protocol (MCP). vs gRPC, REST over HTTP, shared memory stdout reservado para mensajes JSON-RPC, logs a stderr.

Trade-offs

Ganancias
  • ▲▲ Reducción de costos de inferencia de LLM
  • Persistencia de contexto entre sesiones y agentes
  • Independencia del proveedor de LLM
  • Mejora de la coherencia arquitectónica del proyecto
Costes
  • Complejidad de integración inicial
  • Mantenimiento de la base de datos local
engrim add -t decision -s "Inverted stop loss matrix for high volatility" --origin-agent agy
engrim recall -q "database migration"
engrim context -b 4000
engrim setup --all
Muestra cómo se estructuran los comandos CLI de engrim para diferentes acciones como añadir memoria, recuperar contexto o configurar entornos.
{
  "mcpServers": {
    "engrim": {
      "command": "engrim",
      "args": ["serve", "--mcp"]
    }
  }
}
Ejemplo de cómo se configura un servidor MCP (Model Context Protocol) para que un agente (ej. Windsurf) pueda comunicarse con engrim.

Fundamentos Teóricos

El problema de la gestión de la memoria en sistemas inteligentes tiene profundas raíces en la investigación de la Inteligencia Artificial y la Psicología Cognitiva. La distinción entre memoria de trabajo (contexto inmediato y efímero) y memoria a largo plazo (conocimiento persistente y recuperable) es un concepto fundamental en la ciencia cognitiva. En el contexto de los LLMs, la 'ventana de contexto' actúa como una forma limitada de memoria de trabajo. La dilución de atención observada en LLMs con ventanas de contexto grandes puede relacionarse con fenómenos como la 'curva de posición serial' en la memoria humana, donde los elementos al principio y al final de una secuencia son recordados mejor que los del medio.

La estrategia de recuperación híbrida de engrim, que combina búsqueda léxica (palabras clave) y semántica (vectores), es una aplicación práctica de técnicas de recuperación de información (Information Retrieval, IR) bien establecidas. La fusión de resultados de diferentes motores de búsqueda, como el Reciprocal Rank Fusion (RRF), ha sido estudiada en la literatura de IR para mejorar la robustez y la calidad de los resultados combinando la fuerza de múltiples enfoques. La idea de un 'episodic memory store' también se inspira en modelos de memoria episódica en IA, que se centran en almacenar y recuperar experiencias específicas con su contexto temporal y espacial, en contraste con la memoria semántica que almacena hechos y conceptos generales.