Memory Graph

Un servidor del Protocolo de Contexto del Modelo (MCP) basado en grafos que proporciona memoria persistente a agentes de codificación de IA. Construido originalmente para Claude Code, MemoryGraph funciona con cualquier agente de codificación compatible con MCP. Almacena patrones de desarrollo, rastrea relaciones y recupera conocimiento contextual entre sesiones y proyectos.

Documentación

MemoryGraph Logo

MemoryGraph

CLI de memoria basada en grafos para agentes de codificación de IA

Bun TypeScript Zero Config 5 Backends

Un sistema de memoria basado en grafos que brinda a los agentes de codificación de IA memoria persistente.
Almacena patrones, rastrea relaciones y recupera conocimiento entre sesiones.


Uso con agentes de codificación

Los agentes de codificación ya ejecutan comandos de shell, por lo que pueden usar MemoryGraph directamente. Dos pasos: instalar globalmente y luego agregar instrucciones.

Instalación

cd memory-graph/ts && bun install && bun link
# or: bun build src/cli.ts --compile --outfile ~/.local/bin/memorygraph
memorygraph stats  # verify

memorygraph ahora está disponible desde cualquier directorio. Los datos persisten en ~/.memorygraph/.

Agregar instrucciones al agente

Pega esto en el archivo de instrucciones de tu agente (~/.claude/CLAUDE.md, .cursorrules, .windsurfrules o AGENTS.md):

## Memory
`memorygraph` CLI is installed. Use it for persistent memory across sessions.

Before work: `memorygraph recall --query "<task>" --limit 10` and `memorygraph briefing`
On decisions/fixes: `memorygraph store --type solution --title "<title>" --content "<what>" --tags "<component>,fix"`
On errors: `memorygraph store --type error --title "<error>" --content "<details>" --tags "<component>,error"`
Link: `memorygraph link <from-id> <to-id> SOLVES --strength 0.8`
Session end: `memorygraph store --type conversation --title "Session: <topic>" --content "<summary>" --tags "<tags>"`
Types: solution | problem | code_pattern | fix | error | workflow | command | technology
Tags: lowercase, hyphenated, include component (auth, database, cli), 2-5 per memory
Do NOT wait to be asked. Store automatically on triggers.

Sesión de ejemplo

# Start: load context
memorygraph recall --query "authentication redis" --limit 10
memorygraph briefing

# Fix a bug: store problem + solution, link them
memorygraph store --type problem --title "Auth token expiry too short" --content "Tokens expiring after 1h" --tags "auth,bug"
# → abc-123
memorygraph store --type solution --title "Extend token expiry to 24h" --content "Changed JWT expiry, added refresh rotation" --tags "auth,fix" --importance 0.8
# → def-456
memorygraph link def-456 abc-123 SOLVES --strength 0.9

# End: store summary
memorygraph store --type conversation --title "Session: auth token fix" --content "Fixed token expiry, added refresh rotation" --tags "auth,session-summary"

Configuración multiproyecto

Todos los proyectos comparten ~/.memorygraph/falkordblite.db de forma predeterminada. Para aislar por proyecto:

export MEMORY_FALKORDBLITE_PATH=~/.memorygraph/my-project.falkor
# or tag memories with project name and filter:
memorygraph search --query "auth" --tags my-project

Solución de problemas

  • El agente no usa comandos: usa "REQUERIDO"/"DEBE" en las instrucciones, incluye comandos exactos
  • Comando no encontrado: bun link desde ts/, o asegúrate de que ~/.local/bin esté en PATH
  • Los recuerdos no persisten: memorygraph config para verificar la ruta, memorygraph health para verificar

¿Por qué MemoryGraph?

Las relaciones de grafo marcan la diferencia

El almacenamiento plano (CLAUDE.md, almacenes vectoriales) mantiene los recuerdos como entradas aisladas. El almacenamiento en grafo los conecta:

[timeout_fix] --CAUSES--> [memory_leak] --SOLVED_BY--> [connection_pooling]
     |                                                        |
     +------------------SUPERSEDED_BY------------------------+

Consulta: "¿Qué pasó con la lógica de reintento?" devuelve la cadena causal completa, no solo recuerdos individuales.

Cuándo usar qué

Usa CLAUDE.md / AGENTS.md paraUsa MemoryGraph para
"Usa siempre sangría de 2 espacios""La última vez usamos 4 espacios y rompió el linter"
"Ejecuta las pruebas antes de confirmar""Las pruebas de autenticación fallaron por X, corregido con Y"
Reglas estáticas, directivas principalesAprendizajes dinámicos con relaciones

Comandos CLI

Operaciones de memoria

ComandoPropósitoEjemplo
storeAlmacenar un nuevo recuerdostore --type solution --title "Fix" --content "..." --tags redis,fix
getObtener un recuerdo por IDget <memory-id>
updateActualizar un recuerdo existenteupdate <id> --title "New title"
deleteEliminar un recuerdodelete <memory-id>
searchBuscar con filtrossearch --query "timeout" --tags redis --limit 10
recallRecuperación en lenguaje naturalrecall --query "authentication security"
relatedObtener recuerdos relacionadosrelated <id> --types SOLVES,CAUSES --max-depth 2
linkCrear una relaciónlink <from-id> <to-id> SOLVES --strength 0.8

Búsqueda de contexto

ComandoPropósito
context-searchBuscar relaciones por tipo, fuerza o texto de contexto
contextual-searchBuscar dentro de los elementos relacionados de un recuerdo

Inteligencia

ComandoPropósito
entitiesExtraer entidades (archivos, funciones, clases, tecnologías) de un recuerdo
patternsEncontrar problemas similares y sugerir patrones
contextObtener recuperación de contexto inteligente con coincidencia de entidades y palabras clave

Analítica

ComandoPropósito
statsEstadísticas de la base de datos (cantidad de recuerdos, tipos, relaciones)
activityResumen de actividad reciente con problemas sin resolver
visualizeDatos de visualización de grafos (nodos y aristas)
similarityAnalizar similitud de soluciones para un recuerdo dado
learningRecomendar rutas de aprendizaje para un tema
gapsIdentificar brechas de conocimiento (problemas sin resolver, conexiones faltantes)

Proactivo

ComandoPropósito
briefingGenerar un informe de sesión con actividad reciente y problemas abiertos
predictPredecir lo que podría necesitarse según el contexto actual
warnAdvertir sobre problemas potenciales (enfoques obsoletos, errores conocidos)
outcomeRegistrar un resultado para un recuerdo (seguimiento de éxito/fracaso)

Integración

ComandoPropósito
captureCapturar el contexto de la tarea del entorno actual
analyze-projectAnalizar el código base del proyecto actual
workflowRastrear o sugerir mejoras en el flujo de trabajo

Temporal

ComandoPropósito
as-ofConsultar relaciones tal como existían en un momento específico
historyObtener el historial completo de relaciones de un recuerdo
changesMostrar cambios de relaciones desde una marca de tiempo

Gestión de datos

ComandoPropósito
exportExportar a JSON o Markdown
importImportar desde JSON
migrateMigrar entre backends
healthEjecutar una verificación de estado
configMostrar la configuración actual

Backends

BackendTipoConfiguraciónGrafo nativoCero configuraciónMejor para
falkordblite (predeterminado)IntegradoRuta de archivoCypherSíPredeterminado, consultas de grafo sin servidor
sqliteIntegradoRuta de archivoSimuladoSíRespaldo sin dependencias
falkordbCliente-servidorHost:puertoCypherNoProducción de alto rendimiento
memgraphCliente-servidorURI BoltCypherNoAnalítica en tiempo real
cloudNubeClave APICypherNoSincronización multidispositivo, uso compartido en equipo

Configuración del backend

# Use FalkorDBLite (default, zero-config)
bun run src/cli.ts stats

# Use SQLite
MEMORY_BACKEND=sqlite bun run src/cli.ts stats

# Use FalkorDB (client-server)
MEMORY_BACKEND=falkordb MEMORY_FALKORDB_HOST=localhost MEMORY_FALKORDB_PORT=6379 bun run src/cli.ts stats

# Use Memgraph
MEMORY_BACKEND=memgraph MEMORY_MEMGRAPH_URI=bolt://localhost:7687 bun run src/cli.ts stats

# Use Cloud
MEMORY_BACKEND=cloud MEMORYGRAPH_API_KEY=mg_your_key bun run src/cli.ts stats

Variables de entorno

VariableDescripciónPredeterminado
MEMORY_BACKENDTipo de backendfalkordblite
MEMORY_FALKORDBLITE_PATHRuta de la base de datos FalkorDBLite~/.memorygraph/falkordblite.db
MEMORY_SQLITE_PATHRuta de la base de datos SQLite~/.memorygraph/memory.db
MEMORY_FALKORDB_HOSTHost del servidor FalkorDBlocalhost
MEMORY_FALKORDB_PORTPuerto del servidor FalkorDB6379
MEMORY_MEMGRAPH_URIURI Bolt de Memgraphbolt://localhost:7687
MEMORYGRAPH_API_KEYClave API de la nube-
MEMORYGRAPH_API_URLURL de la API de la nubehttps://graph-api.memorygraph.dev
MEMORY_TOOL_PROFILEPerfil de herramientas (núcleo o extendido)core
MEMORY_LOG_LEVELNivel de registroINFO

Tipos de memoria

TipoCaso de uso
taskTareas y elementos de acción
code_patternPatrones de código recurrentes o convenciones
problemProblemas o desafíos encontrados
solutionSoluciones, decisiones o enfoques elegidos
projectContexto del proyecto, entorno, información de configuración
technologyElecciones y evaluaciones de tecnología
errorErrores descubiertos
fixCorrecciones aplicadas a errores
commandComandos útiles o fragmentos de CLI
file_contextContexto sobre archivos específicos
workflowDescripciones de flujos de trabajo o procesos
generalRecuerdos de propósito general
conversationResúmenes de conversaciones

Tipos de relación

TipoSignificado
RELATED_TOConexión general
BUILDS_ONUn recuerdo nuevo extiende uno más antiguo
CONTRADICTSUn recuerdo nuevo reemplaza o invalida uno más antiguo
CONFIRMSUn recuerdo nuevo proporciona evidencia para uno más antiguo
SOLVESUna solución resuelve un problema
CAUSESUn recuerdo causa otro
REQUIRESUn recuerdo depende de otro
IMPROVESUna mejora sobre un enfoque existente
REPLACESReemplaza un enfoque más antiguo
DEPENDS_ONDependencia de flujo de trabajo

Mejores prácticas de memoria

Flujo de trabajo de sesión

# Start of session: recall recent context
bun run src/cli.ts recall --query "recent work" --limit 10

# During work: store decisions and patterns
bun run src/cli.ts store \
  --type solution \
  --title "Use JWT for auth" \
  --content "JWT tokens with 24h expiry, refresh token rotation" \
  --tags "auth,security,api" \
  --importance 0.8

# Link it to a prior decision
bun run src/cli.ts link <new-id> <prior-id> BUILDS_ON --strength 0.9

# End of session: store summary
bun run src/cli.ts store \
  --type conversation \
  --title "Session: auth refactor" \
  --content "Refactored auth middleware, added JWT, fixed token refresh bug" \
  --tags "auth,session-summary"

# Export backup
bun run src/cli.ts export --format json --output session-backup.json

Agregar a CLAUDE.md o AGENTS.md

## Memory Protocol

### REQUIRED: Before Starting Work
You MUST use `recall` before any task. Query by project, tech, or task type.

### REQUIRED: Automatic Storage Triggers
Store memories on ANY of:
- Git commit: what was fixed/added
- Bug fix: problem + solution
- Architecture decision: choice + rationale
- Pattern discovered: reusable approach

### Memory Fields
- Type: solution | problem | code_pattern | fix | error | workflow
- Title: Specific, searchable
- Content: Accomplishment, decisions, patterns
- Tags: project, tech, category (required)
- Importance: 0.8+ critical, 0.5-0.7 standard, 0.3-0.4 minor
- Relationships: Link related memories when they exist

Arquitectura

Estructura del proyecto

memory-graph/
├── ts/
│   ├── src/
│   │   ├── cli.ts              # CLI entry point (35+ commands)
│   │   ├── index.ts            # Library exports
│   │   ├── config.ts           # Configuration management
│   │   ├── database.ts         # Database interface
│   │   ├── models.ts           # Data models and schemas
│   │   ├── backends/           # Backend implementations
│   │   │   ├── falkordb-shared.ts  # Shared FalkorDB base class
│   │   │   ├── falkordblite.ts     # Embedded FalkorDBLite
│   │   │   ├── falkordb.ts         # Client-server FalkorDB
│   │   │   ├── bolt-shared.ts      # Shared Bolt protocol base
│   │   │   ├── memgraph.ts         # Memgraph (Bolt protocol)
│   │   │   ├── sqlite.ts           # SQLite fallback
│   │   │   ├── cloud.ts            # Cloud REST API
│   │   │   └── factory.ts          # Backend factory
│   │   ├── tools/              # CLI tool handlers
│   │   ├── intelligence/       # Entity extraction, pattern recognition, context retrieval
│   │   ├── analytics/          # Graph visualization, similarity, learning paths
│   │   ├── proactive/          # Session briefing, predictions, outcome learning
│   │   ├── integration/        # Context capture, project analysis, workflow tracking
│   │   ├── migration/          # Backend-to-backend migration
│   │   ├── sdk/                # Cloud API client SDK
│   │   └── utils/              # Export/import, validation, helpers
│   ├── tests/                  # 97 tests
│   └── package.json
├── docs/                       # Documentation
└── CLAUDE.md                   # Agent instructions

Compilación

cd ts
bun install
bun test                    # Run tests
npx tsc --noEmit            # Type check
bun build src/cli.ts --compile --outfile memorygraph  # Compile binary

Importación / Migración

# Import from JSON export
bun run src/cli.ts import --input backup.json --skip-duplicates

# Migrate between backends
bun run src/cli.ts migrate --to sqlite --to-path ./local.db
bun run src/cli.ts migrate --to falkordblite --to-path ./graph.falkor --no-verify
bun run src/cli.ts migrate --to memgraph --to-uri bolt://localhost:7687

SDK

El SDK de TypeScript proporciona un cliente para la API de MemoryGraph Cloud:

import { MemoryGraphClient } from "memorygraph/sdk";

const client = new MemoryGraphClient({ apiKey: "mg_..." });

const memory = await client.createMemory({
  type: "solution",
  title: "Fixed timeout issue",
  content: "Used exponential backoff with retries",
  tags: ["redis", "timeout"],
});

Licencia

Licencia MIT: consulta LICENSE.


Comienza simple. Mejora cuando sea necesario. Nunca pierdas el contexto de nuevo.