🧠 ENGRAM: MEMORIA A LARGO PLAZO PARA AGENTES DE CODIFICACIÓN
🎯 Propósito y Visión del Proyecto
Engram surge como una solución técnica a uno de los problemas más persistentes en el flujo de trabajo con agentes de IA: la amnesia de sesión. Aunque los agentes actuales son extremadamente capaces dentro de un hilo de conversación, pierden todo el contexto una vez que la sesión termina.
- Persistencia de Aprendizaje: Permite guardar soluciones a bugs, decisiones de diseño y convenciones del proyecto.
- Continuidad Cross-Platform: Facilita que el conocimiento generado en un CLI Agent (como Claude Code o Gemini CLI) esté disponible inmediatamente en una extensión de VS Code o Cursor.
- Local-First: Prioriza la privacidad y la velocidad manteniendo los datos en el entorno local del desarrollador.
💻 Arquitectura Técnica y Stack 🛡️
El proyecto está construido bajo una filosofía de cero dependencias externas, lo que garantiza una instalación limpia y un rendimiento predecible en sistemas de misión crítica.
- Lenguaje de Core: Implementado íntegramente en Go, distribuido como un binario único.
- Capa de Almacenamiento: Utiliza SQLite como motor de base de datos local (ubicado por defecto en
~/.engram/engram.db), aprovechando la extensión FTS5 (Full-Text Search) para búsquedas de alta relevancia. - Interfaces de Comunicación:
- MCP Server: Implementación estándar del Model Context Protocol para interacción directa con LLMs.
- HTTP API: Servidor local (puerto 7437) para acceso programático.
- TUI (Terminal User Interface): Interfaz interactiva inspirada en Vim para la gestión manual de “observaciones”.
🚀 Capacidades de Integración (MCP)
La potencia de Engram reside en su capacidad para actuar como un “cerebro externo” mediante herramientas estandarizadas que el agente puede invocar dinámicamente:
- mem_save: El agente puede decidir qué información es lo suficientemente valiosa para ser recordada.
- mem_search: Antes de comenzar una tarea, el agente busca en el historial de Engram si ya se enfrentó a un problema similar.
- Git Sync: Un mecanismo ingenioso de sincronización que utiliza fragmentos comprimidos para compartir memorias a través de repositorios Git sin generar conflictos de fusión (merge conflicts).
🛡️ Análisis de Ingeniería
Desde una perspectiva de ingeniería senior, Engram no es solo una base de datos; es una capa de metadatos semánticos. Al estructurar las memorias bajo los campos “Qué/Por qué/Dónde/Aprendido”, obliga a una captura de información de alta calidad que maximiza la utilidad del RAG (Retrieval-Augmented Generation) local en sesiones futuras.