Mem0

Mem0 is an AI memory layer that transforms stateless AI agents into stateful systems with persistent, intelligent memory across interactions. It enables AI applications to remember, learn, and evolve by providing different types of memory including working memory, factual memory, episodic memory, and semantic memory.

Installation#

Bash
pip install mem0ai chromadb

Configuration#

Mem0 can be configured to use Chroma as its vector database backend. Here are the available configuration options:

ParameterDescriptionDefault Value
collection_nameName of the Chroma collectionmem0
clientCustom Chroma clientNone
pathPath for the Chroma databasedb
hostChroma server hostNone
portChroma server portNone

Basic Usage#

Using Mem0 with Local Chroma

Python
import os from mem0 import Memory # Set your OpenAI API key os.environ["OPENAI_API_KEY"] = "sk-your-openai-key" # Configure Mem0 with Chroma config = { "vector_store": { "provider": "chroma", "config": { "collection_name": "my_memories", "path": "chroma_db", } } } # Initialize memory memory = Memory.from_config(config) # Add memories from conversation messages = [ {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"}, {"role": "assistant", "content": "How about thriller movies? They can be quite engaging."}, {"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."}, {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."} ] memory.add(messages, user_id="alice", metadata={"category": "movies"}) # Search memories relevant_memories = memory.search("movie preferences", user_id="alice") print(relevant_memories)

Use Cases#

  • Personalized AI Assistants: Remember user preferences and context across sessions
  • Customer Support: Maintain conversation history and customer preferences
  • Educational Systems: Track learning progress and adapt to student needs
  • Research Tools: Build knowledge bases from interactions
  • Multi-session Applications: Provide continuity across conversation sessions

Resources#