What Mem0 also does
This course teaches the open source library and the parts of it an application needs. Mem0 is bigger than that, and knowing the shape of the rest is worth ten minutes.
Graph memory
Alongside the vector store, Mem0 can keep a graph of entities and the relationships between them: Ravi works at a company, the company has an account, the account has orders. A vector search finds sentences that sound like your question; a graph answers questions about how things connect, which sentences alone cannot.
It needs a graph database, Neo4j or Memgraph or Kuzu, which is why it is not in this course. Turn it on with a graph_store block in the same configuration dictionary, and memories then go to both stores.
Async
AsyncMemory is the same API with await in front of it. In a web application that matters, because add waits on a model call and blocking a request handler on that is how a service falls over under load.
from mem0 import AsyncMemory
shop = await AsyncMemory.from_config(config)
await shop.add("Deliver to my office.", user_id="ravi")Rerankers
search takes rerank=True, which runs a second, slower model over the top results to order them better than the embedding distance alone did. It is the standard answer when search returns the right memory in third place.
The hosted platform
MemoryClient talks to Mem0's hosted service instead of your own store. The API is close but not identical to the open source Memory, and most tutorials you will find teach that one, which is worth knowing when a snippet you copy does not run.
| Not covered here | What it is |
|---|---|
| Graph memory | Entities and relationships, in Neo4j, Memgraph or Kuzu |
| AsyncMemory | The same API, awaitable |
| Rerankers | A second pass that reorders search results |
| The platform | The hosted service and its MemoryClient |
| Multimodal | Storing memories from images |
| The REST server | Mem0 as a service you call over HTTP |
| OpenAI compatibility | A drop-in wrapper around the chat completions API |
| Around thirty vector stores | Chroma, pgvector, Redis, Pinecone, Weaviate and the rest |
| The TypeScript SDK | The same ideas, in Node |
Memory or a MemoryClient, because the arguments differ and the error messages will not tell you why.- Look up the
graph_storeconfig block and decide whether your data needs one. - Rewrite one lesson from part 3 using
AsyncMemory. - Add
rerank=Trueto a search and see whether the order changes.
Every expert started right here.