Skip to main content
Glama
xbrxr03
by xbrxr03

MemoryGraph

Tu agente ha encontrado una memoria relevante. MemoryGraph le dice si esa memoria sigue siendo verdadera.

MemoryGraph es una capa local-first de evidencia y revisión para las creencias de los agentes de IA. Preserva las observaciones fuente, representa las afirmaciones como un grafo temporal y explica por qué una afirmación es actual, histórica o está en disputa.

Estado del MVP

El MVP determinista está en ejecución. La arquitectura autoritativa comienza en 00-architecture-index.md; el núcleo implementado cubre:

  • Observaciones fuente inmutables.

  • Nodos de entidad tipados y aristas de afirmación atómicas con intervalos exactos de evidencia.

  • Consultas bi-temporales de creencias actuales e históricas.

  • Confirmación explícita, contradicción y sustitución atómica.

  • Comandos recall, history y explain.

  • Aislamiento estricto de bancos y un registro de eventos de mutación de solo añadidura (append-only).

  • Un validador de propuestas de Dream agnóstico al proveedor, con puertas de evidencia, marca de agua, versión de afirmación, idempotencia, confianza, impugnador y revisión.

  • Ejecuciones de Dream duraderas, tareas, propuestas, elementos de revisión, arrendamientos (leases), marcas de agua de eventos y confirmaciones atómicas de propuestas.

  • Un proveedor de metadatos determinista que ejercita el ciclo de Dream completo sin enviar datos fuente a un modelo externo.

  • Accesorios (fixtures) de MemoryRotBench, bases de referencia, calificación de recuperación e integración con el motor.

  • Recuperación híbrida FTS/vectorial con una línea base local sin dependencias y un incrustador (embedder) reemplazable.

  • Cuarentena en tiempo de recuperación para contenido no fiable con apariencia de instrucción.

  • Trabajadores de Dream recuperables ante fallos con arrendamientos, renovación de latidos (heartbeat), reintentos y una reanudación segura frente a reproducciones.

  • Un proveedor de salida estructurada compatible con OpenAI que solo puede proponer candidatos.

  • Un servidor MCP STDIO de cinco herramientas: recall, record, explain, correct y forget.

  • Ingestión de JSONL de Codex aprobada por el usuario y un instalador de Codex con ámbito de proyecto.

  • Una proyección de revisión en Markdown determinista y compatible con Obsidian.

  • Episodios procedimentales de primera clase para la reutilización acotada de intentos de codificación exitosos y fallidos.

  • Adaptadores de banco de pruebas reproducibles: sin memoria, Markdown, BM25, contexto plano y externo/Graphify.

  • CI multiplataforma, verificación de paquetes y diagnósticos accionables de doctor.

El motor real supera actualmente las 12 consultas públicas de MemoryRBench y los siete contratos de caos de producción. La suite de pruebas del repositorio tiene 196 pruebas aprobadas en este punto de control. En la primera matriz pública con huella digital, las líneas de base simples más sólidas pasan 7/12, mientras que MemoryGraph pasa 12/12.

Inicio rápido

uv sync
uv run memorygraph init --database /tmp/memorygraph.db
uv run memorygraph doctor --database /tmp/memorygraph.db
uv run memorygraph bank create personal:founder --database /tmp/memorygraph.db
uv run memorygraph dogfood bootstrap --database /tmp/memorygraph.db
uv run memorygraph predicate define works_at \
  --bank personal:founder --cardinality one --volatility volatile \
  --database /tmp/memorygraph.db

Registra la evidencia y luego conviértela en una afirmación:

OBSERVATION_ID=$(uv run memorygraph observe "Abrar works at Acme." \
  --bank personal:founder --source-key event:acme \
  --database /tmp/memorygraph.db)

CLAIM_ID=$(uv run memorygraph claim assert Abrar works_at Acme \
  --bank personal:founder --observation "$OBSERVATION_ID" \
  --database /tmp/memorygraph.db)

La API de Python también expone confirm_claim, contradict_claim, supersede_claim, recall, history y explain para las aplicaciones integradas.

Registra un intento de codificación para que los futuros agentes pueda pueden reutilizar una estrategia exitosa —o evitar un falloconocido— sin pretender que sea universalmente aplicable:

memorygraph record-attempt "Run migrations before starting the worker" \
  --bank project:my-app --source-key attempt:migrate-worker \
  --task "start durable worker" --outcome success \
  --applicability-json '{"database":"sqlite"}'

Ejecutar el ciclo de Dream

El proveedor integrado lee candidatos tipados de metadata.memorygraph, propone cambios en el grafo, valida la evidencia y las precondiciones temporales, y a continuación confirma las propuestas elegibles en una sola transacción. Los proveedores de modelos se implementan el mismo protocolo de solo-candidatos y nunca reciben una ruta de escritura directa a la base de datos.

PYTHONPATH=src:. uv run python examples/run_dream_cycle.py \
  --database /tmp/memorygraph-dream.db

uv run memorygraph dream status RUN_ID \
  --bank personal:founder --database /tmp/memorygraph-dream.db

uv run memorygraph dream reviews \
  --bank personal:founder --database /tmp/memorygraph-dream.db

uv run memorygraph dream rollback RUN_ID \
  --bank personal:founder --database /tmp/memorygraph-dream.db

Para la ingestión de la CLI, pasa el sobre de candidatos con observe --metadata-file FILE.json; a continuación ejecuta memorygraph dream run --bank BANK. La secuencia --mode dry_run valida y persiste propuestas, pero no consume la observación ni cambia las afirmaciones.

Para una ejecución duradera, pon los trabajos en cola y ejecuta un trabajador por separado:

uv run memorygraph dream queue \
  --bank personal:founder --database /tmp/memorygraph-dream.db

uv run memorygraph dream worker \
  --bank personal:founder --database /tmp/memorygraph-dream.db

Para usar un endpoint de Responses compatible con OpenAI, define la variable de clave configurada y pasa un modelo tanto a la cola como al trabajador. La salida del proveedor se interpreta como datos estructurados estrictos y sigue pasando por las mismas puertas deterministas de evidencia y confirmación.

export OPENAI_API_KEY=...
uv run memorygraph dream queue --bank personal:founder \
  --provider-model YOUR_MODEL --database /tmp/memorygraph-dream.db
uv run memorygraph dream worker --bank personal:founder \
  --provider-model YOUR_MODEL --database /tmp/memorygraph-dream.db

Conectar Codex

Instala el paquete, inicializa un banco de proyecto y añade la configuración MCP con ámbito de proyecto:

uv run memorygraph init
uv run memorygraph bank create project:my-app
uv run memorygraph install-codex --project .
uv run memorygraph probe-codex --project .

El instalador crea o repara un bloque [mcp_servers.memorygraph] en .codex/config.toml, lo apunta al módulo STDIO memorygraph.mcp del entorno Python actual y configura a Codex para que cuadre pida permiso antes de escribir. No modifica la configuración global de Codex. Las cinco operaciones MCP requieren un ámbito de banco explícito.

probe-codex valida la configuración del proyecto y prueba un ciclo de vida completo de un subproceso MCP. Use --project-database para que la sonda use la base de datos de proyecto configurada en lugar de las bases de datos de prueba temporales desechables.

La importación del contenido de las sesiones es opcional. Cada registro JSONL debe incluir bank, session_id, turn_id, role, content y approved; por defecto se retienen los no aprobados:

memorygraph ingest-codex approved-session.jsonl

Dogfood Alpha

La matriz oficial de fixtures de seis brazos en modo offline es:

PYTHONPATH=src:. uv run python examples/run_dogfood_fixture_matrix.py

Para un proyecto real, pon en marcha el contrato de funcionamiento antes que nada:

uv run memorygraph dogfood bootstrap \
  --database .memorygraph/memory.db \
  --bank project:my-app \
  --workspace my-app

La matriz de fixtures ejecuta estos brazos:

  • no_memory

  • markdown

  • memorygraph_graph_only

  • memorygraph_gated_dream

  • memorygraph_always_dream

  • graphify_compatible

La matriz mide: superación de las tareas, precisión de la recuperación que resultan útiles, fugas de recuperación prohibida u obsoleta, errores repetidos, latencia, estimaciones de tokens, llamadas a herramientas, reintentos, campos de costé estimado y la carga de revisión de Dream. Los resultados se escribeno en benchmarks/reports/dogfood-offline-mvp.json y en el registro de solo añadidura benchmarks/reports/dogfood-offline-mvp.jsonl. El aprobado/fallo de las tareas sigue las expectativas de la consulta; el trabajo pendiente de revisión Dream es un coste separado y visible.

Resultado actual de los fixtures offline a 2026-08-22:

  • memorygraph_always_dream: 3/3

  • memorygraph_graph_only: 1/3

  • memorygraph_gated_dream: 1/3

  • graphify_compatible: 1/3

  • markdown: 1/3, y además fugas de fragmentos prohibidos

graphify_compatible es un adaptador de rescate: permite que un recuperador externo se compare contra los mismos límites de tiempo y contrato de calificación. No es clógico que este repositorio ya haya concluido una comparación real con Graphify.

Revisión humana en Obsidian

Genera un vault en la Meta de Markdown con las afirmaciones actuales, procedencia causa, relaciones y la cola de revisión de Dream:

memorygraph project-obsidian --bank project:my-app \
  --output .memorygraph/obsidian

El Markdown es desechable y se gestiona mediante manifiesto. Las observaciones de SQLite y los eventos de agregado relevantes siguen siendola autoridad; las ediciones de las notas generas nunca modifican la memoria silenciosamente.

Por qué un grafo?

El grafo ofrece a los agentes una estructura componible: las entidades son nodos y las afirmaciones como Abrar --works_at--> Stripe son aristas tipadas. MemoryGraph, sin embargo, no considera una arista como una verdad atemporal. Cada versión deponerión lleva tiempo válido, tiempo de sistema, temporalidad, procedencia y evidencia fuente exacta. Esa es la diferencia entre un grafo de memoria útil y un almacenamiento de hechos obsoletos.

Desarrollo

uv sync --extra dev
uv run pytest
uv run ruff check .
PYTHONPATH=src:. python examples/run_memoryrotbench_memorygraph.py
PYTHONPATH=src:. python examples/run_memoryrotbench_chaos_memorygraph.py
python examples/run_memoryrotbench_baseline_matrix.py
PYTHONPATH=src:. uv run python examples/run_dogfood_fixture_matrix.py

ExpectedResults resultados previstos: 12/12 casos públicos de recuperación y 7/7 casos de caos de producción. La matriz adjunta registros inmutables con huella de corpus y evaluador en benchmarks/reports/public-baseline-matrix.jsonl. Práctica --graphify-command para ejecutar un adaptador externo de Graphify contra el mismo corpus visible y el mismo contrato de evaluación.

Próxima capa del producto

La siguiente puerta sigue siendo la prueba del mundo real: sesiones de dogfood reales respaldadas por modelos, comparaciones reales de Graphify cara a cara y el uso por parte de design partners sobre trabajo de codificación real. El residuo de borrado de todo el pipeline se audita y reporta; cualquier residuo de identidad que no pueda ser borrado de forma segura sin reescribir la historia se muestra de forma clara, en lugar de ocultarse. El validador de Dream sigue siendo la cintura de seguridad por la que cada colivio provide y cada trabajador deben pasar.

Con ofrece Apache-2.0.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Long-term memory for AI agents: semantic facts, episodic events, and procedural workflows

  • Certified SEC EDGAR fact memory for AI agents with zero hallucination and filing provenance.

  • Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xbrxr03/memorygraph'

If you have feedback or need assistance with the MCP directory API, please join our Discord server