Skip to main content

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

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

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