Compared
FluctlightDB beside Mem0, Zep, Letta and vector stores
FluctlightDB is an embedded memory database for AI agents: a Rust engine inside your Python process, one brain directory per agent. Most of what it gets compared with is a layer above that or a runtime around it. Here is where each one sits, and when to pick it instead.
At a glance
| Project | What it is | Where it runs | What it stores | How recall works |
|---|---|---|---|---|
| FluctlightDB | Embedded memory database for agents | In your Python process; a brain is a directory | Engrams: text with context, salience and provenance | activate(cue): full-text, vector neighbours and spreading activation fused in one call |
| Mem0 | Memory layer for AI apps | Python/TS library over a vector store, or a hosted platform | Facts an LLM extracts from conversations | Search over extracted facts |
| Zep and Graphiti | Context engineering service over a temporal knowledge graph | Zep is a hosted service; Graphiti is an open-source library over a graph database | Entities and relations with validity over time | Graph, semantic and keyword search over the knowledge graph |
| Letta (MemGPT) | Agent framework and server with self-editing memory | A server that hosts stateful agents | Memory blocks the agent edits, plus archival storage | The agent calls tools to search its own archive |
| LangMem | LangChain library for agent memory | Inside a LangGraph application, over a LangGraph store | Memories extracted and managed by an LLM | Search over the LangGraph store |
| Chroma, Qdrant, LanceDB | Vector databases | Embedded or as a server, depending on the product | Embeddings with metadata | Nearest-neighbour search over vectors |
| SQLite with embeddings | A SQL database plus a vector search extension | In-process, wherever SQLite runs | Rows, and vectors in a virtual table | SQL, plus nearest-neighbour search over vectors you insert |
There is no benchmark column. FluctlightDB’s published figures are evidence recall — did the right turn come back — and most memory products publish end-to-end QA scored by an LLM judge. The two measure different things, and putting them side by side would imply a ranking neither supports.
The figures this project does publish, with the harness and the retraction, are on the benchmarks page.
FluctlightDB and Mem0
Mem0 sits above storage: it runs an LLM over the conversation, decides which facts to keep, and writes them to a vector store (and optionally a graph). FluctlightDB sits below that line. The agent records what happened at the moment it happens, with where it came from, and nothing is extracted from a transcript later.
- Pick Mem0
- when you want a managed service, automatic fact extraction from chat, and the largest ecosystem in this category.
- Pick FluctlightDB
- when you want memory that runs in-process with no server and no LLM call on the write path, and recall that ranks a memory with a source above one the agent was merely told.
FluctlightDB and Zep and Graphiti
Zep builds a temporal knowledge graph of entities and facts and tracks when each was true. That is a different shape from FluctlightDB, which stores episodes and lets a cue spread through the associations between them rather than asking you to model entities first.
- Pick Zep
- when your problem is facts that change over time about well-defined entities, and you are happy to run or rent a graph database.
- Pick FluctlightDB
- when you want one directory per agent with no database to operate, and episodic recall from a cue rather than an entity graph.
FluctlightDB and Letta (MemGPT)
Letta is where the agent lives: it runs the loop and gives the model tools to edit its own memory. FluctlightDB is not an agent runtime. It is the storage engine an agent in any framework calls, so the comparison is closer to a runtime and a database than to two memory products.
- Pick Letta
- when you want a complete runtime for long-lived agents and are not attached to a framework.
- Pick FluctlightDB
- when you already have an agent loop — LangChain, LlamaIndex, the OpenAI Agents SDK, your own — and want memory it can call.
FluctlightDB and LangMem
LangMem is LangChain’s own answer to long-term memory and is the natural default inside LangGraph. FluctlightDB also plugs into LangChain, as FluctlightMemory and a chat message history, but is not tied to it.
- Pick LangMem
- when you are all-in on LangGraph and want the path its maintainers support.
- Pick FluctlightDB
- when you want the same memory to work across frameworks and in plain Python, with durability you can reason about on disk.
FluctlightDB and Chroma, Qdrant, LanceDB
A vector database answers “what is nearest to this embedding?”. That is one of the three signals inside activate(), not the whole of it. FluctlightDB also does not ship an embedder: without a vector you bring, its recall is lexical, which a vector store never is.
- Pick a vector database
- when you need semantic search over a large corpus — RAG over documents rather than an agent’s own experience — or scale well beyond 100,000 items, which FluctlightDB has not evaluated.
- Pick FluctlightDB
- when what you are storing is what an agent did and was told, and you want provenance, salience and crash-safe checkpoints rather than a similarity index.
FluctlightDB and SQLite with embeddings
sqlite-vec, the extension this row points at, stores and queries vectors inside SQLite and says it is pre-v1. That is a SQL database you query. FluctlightDB is also embedded, and the call is not SQL: experience() writes an engram, activate() recalls from a cue, checkpoint() makes a generation durable.
- Pick SQLite with a vector extension
- when you want SQL, a vector index you control, and you will write the retrieval yourself.
- Pick FluctlightDB
- when what you are storing is an agent’s experience, and you want the cue, the source and the checkpoint as the API rather than a query you assemble.
Try it against your own data
The fastest way to judge a memory engine is to feed it what your agent actually sees and try to break the recall. It installs in one line and needs no server:
pip install "fluctlightdb[native]"Then read your first brain, the one limit worth knowing first, or try recall in the browser. The questions page covers durability, integrations and what is not production-ready yet.