Skip to content

FalkorDB/mem0-falkordb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

118 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

license PyPI version Codecov Forum Discord

mem0-falkordb

Try Free

FalkorDB graph store plugin for Mem0. Adds FalkorDB as a graph memory backend without modifying any Mem0 source code.

Installation

pip install mem0-falkordb

You also need Mem0 installed separately:

pip install mem0ai

Quick Start

from mem0_falkordb import register
register()

from mem0 import Memory

config = {
    "graph_store": {
        "provider": "falkordb",
        "config": {
            "host": "localhost",
            "port": 6379,
            "database": "mem0",
        },
    },
    # Add your LLM and embedder config as usual
    "llm": {
        "provider": "openai",
        "config": {"model": "gpt-4o-mini"},
    },
}

m = Memory.from_config(config)
m.add("I love pizza", user_id="alice")
results = m.search("what does alice like?", user_id="alice")
image

Demo

See the demo/ directory for a comprehensive multi-user demonstration showcasing:

  • Graph-structured memory — relationships between entities, not just flat facts
  • Per-user graph isolation — each user gets their own FalkorDB graph
  • Context-aware retrieval — semantic search with vector embeddings
  • Memory evolution — updates and conflict resolution
  • Visual inspection — see the actual graph structure
docker run --rm -p 6379:6379 falkordb/falkordb:latest
cd demo
uv sync
export OPENAI_API_KEY='your-key-here'
uv run python demo.py

See demo/README.md for complete instructions.

Configuration

Parameter Type Default Description
host str localhost FalkorDB server host
port int 6379 FalkorDB server port
database str mem0 Graph name prefix (each user gets {database}_{user_id})
username str None Authentication username (optional)
password str None Authentication password (optional)
base_label bool True Use __Entity__ base label

Per-User Graph Isolation

Each user automatically gets their own isolated FalkorDB graph (e.g. mem0_alice, mem0_bob). This leverages FalkorDB's native multi-graph support and provides:

  • Natural data isolation — no user_id filtering needed in Cypher queries
  • Simpler, faster queries — no WHERE clauses on user_id
  • Easy cleanupdelete_all simply drops the user's graph

Running FalkorDB

Using Docker:

docker run --rm -p 6379:6379 falkordb/falkordb

How It Works

This plugin uses Python's runtime patching to register FalkorDB into Mem0's existing factory system:

  1. GraphStoreFactory.provider_to_class gets a new "falkordb" entry
  2. GraphStoreConfig is patched to accept FalkorDBConfig
  3. A MemoryGraph class translates Mem0's graph operations to FalkorDB-compatible Cypher

Key Cypher Translations

Neo4j FalkorDB
elementId(n) id(n)
vector.similarity.cosine() db.idx.vector.queryNodes() procedure
db.create.setNodeVectorProperty() SET n.embedding = vecf32($vec)
CALL { ... UNION ... } subqueries Separate outgoing + incoming queries

Development

git clone <repo>
cd mem0-falkordb
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest

About

FalkorDB graph store plugin for Mem0

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages