Cómo Memora proporciona a los asistentes de código de Claude memoria a largo plazo y un grafo de conocimiento
Cualquiera que haya intentado asignar tareas largas a agentes como Claude Code o Codex CLI conoce esta sensación. Ayer pasaste medio día rastreando un error de autorización no obvio, discutiste restricciones arquitectónicas y esbozaste un plan de refactorización. Hoy abres una nueva sesión y el modelo sugiere esa solución exacta que rechazaste ayer.
Los archivos de memoria de texto plano como MEMORY.md se vuelven inmanejables en un par de semanas. El contexto se satura con duplicados, datos contradictorios y planes desactualizados. El proyecto Memora resuelve esto a través del Model Context Protocol (MCP), transformando notas dispersas de agentes en un grafo de conocimiento estructurado.

Qué hay bajo el capó y por qué importa
Memora funciona como un servidor MCP de Python, almacenando datos en una base de datos SQLite local o almacenamiento en la nube (Cloudflare D1, S3, R2). La clave aquí no es solo guardar cadenas, sino cómo el sistema procesa nuevos datos.

Cuando un agente completa una tarea y quiere guardar el contexto, llama al comando de absorción de datos (absorb). Un modelo de lenguaje integrado compara el nuevo dato con los registros existentes y lo clasifica: duplicado, actualización, contradicción, conexión o conocimiento fundamentalmente nuevo.
Si la información actualiza una entrada anterior, Memora construye una cadena de versiones. El registro antiguo no se elimina sin dejar rastro—se marca como desactualizado, preservando el historial de cambios. Durante las búsquedas normales, el agente ve solo la instantánea actual, pero puede recuperar la retrospectiva completa si es necesario.
Qué distingue a este proyecto en la práctica
El repositorio reúne varias soluciones de ingeniería que la memoria RAG estándar para agentes carece gravemente.

1. Deduplicación inteligente y resúmenes temáticos
En lugar de alimentar al modelo con docenas de fragmentos de texto similares, la herramienta consolida los datos por tema. El método memory_digest(topic) reúne todos los recuerdos relevantes, TODOs abiertos, errores descubiertos y sus conexiones en una sola llamada.
Los duplicados se rastrean automáticamente:
# Поиск похожих записей через векторную близость и LLM-анализ
memory_find_duplicates(min_similarity=0.7, max_similarity=0.95, limit=10, use_llm=True)
# Объединение записей с нужной стратегией
memory_merge(source_id=123, target_id=456, merge_strategy="append")
Al comparar, el LLM da un veredicto claro: duplicado, pensamiento similar o cosas diferentes—complementando la evaluación con razonamiento y una recomendación.
2. Documentos estructurados y fragmentos atómicos
A menudo un agente necesita recordar no una frase corta, sino un informe de investigación completo o una decisión arquitectónica (ADR). Si guardas markdown como un solo fragmento, la búsqueda semántica granular a través de él tendrá un rendimiento deficiente.
Memora analiza markdown en un árbol de fragmentos:
- las tablas se convierten en afirmaciones separadas;
- las listas numeradas se convierten en elementos del plan;
- las listas de referencias se convierten en referencias;
- las secciones de riesgos se analizan como riesgos.
Cada fragmento está disponible para búsqueda vectorial de forma independiente, y el documento original se puede recuperar en su totalidad en cualquier momento. Los fragmentos están protegidos contra eliminación o fusión accidental mediante verificaciones del sistema.
3. Grafo interactivo y panel web
Junto al servidor MCP, se inicia una interfaz web local en el puerto 8765. Puedes ver el grafo de conocimiento, filtrar conexiones por etiquetas, seguir líneas de tiempo de acciones y chatear con la base de datos a través de un chat RAG integrado.

El chat de la interfaz web soporta llamadas a funciones. Puedes pedirle al modelo directamente desde el navegador: "Eliminar nota #42" o "Actualizar requisitos en la tarea #10", y hará cambios en la base de datos.
Configuración y escollos con embeddings
Instala el paquete a través de pip:
pip install memora-mcp
Para embeddings locales sin llamar a APIs externas, la opción [local] resulta útil:
pip install "memora-mcp[local]"
La conexión a Claude Code se configura en el archivo .mcp.json en la raíz del proyecto:
{
"mcpServers": {
"memora": {
"command": "memora-server",
"args": [],
"env": {
"MEMORA_DB_PATH": "~/.local/share/memora/memories.db",
"MEMORA_ALLOW_ANY_TAG": "1",
"MEMORA_GRAPH_PORT": "8765",
"MEMORA_EMBEDDING_STRICT": "1"
}
}
}
}
Los autores del proyecto advierten honestamente sobre un error de configuración común. Memora puede separar el proveedor para LLM (por ej., OpenRouter) y el proveedor para representaciones vectoriales (por ej., Cloudflare Workers AI u OpenAI).
Si usas OpenRouter para razonamiento, recuerda: no tiene endpoint de embeddings. Si cometes un error en la configuración y no estableces el flag MEMORA_EMBEDDING_STRICT=1, el servidor vuelve silenciosamente a búsqueda de palabras clave TF-IDF primitiva. La base de datos seguirá respondiendo, pero la calidad de la búsqueda vectorial caerá de manera inadvertida. El modo estricto arrojará un error inmediatamente si el endpoint de vectorización no está disponible.
Para usuarios de Neovim, hay un buen bono en forma de integración con Telescope: el plugin memora.lua te permite buscar en la memoria con un atajo de teclado directamente mientras editas código.
Para quién es este proyecto
Memora es una buena opción para quienes usan activamente Claude Code, Codex CLI o agentes personalizados basados en MCP para proyectos de larga duración. Aborda el principal dolor del desarrollo basado en agentes: la pérdida de contexto entre reinicios de sesión.
Si necesitas una base de conocimiento que no se llene de duplicados y visualice claramente las conexiones entre tareas y decisiones arquitectónicas, definitivamente vale la pena probar la herramienta. El código fuente está disponible bajo la licencia MIT en el repositorio agentic-.
Proyectos relacionados