Skip to main content

Long-term memory for AI Agents

Project description

Mem0: Long-Term Memory for LLMs

Mem0 provides a smart, self-improving memory layer for Large Language Models, enabling personalized AI experiences across applications.

Features

  • Persistent memory for users, sessions, and agents
  • Self-improving personalization
  • Simple API for easy integration
  • Cross-platform consistency

Quick Start

Installation

pip install mem0ai

Usage

Instantiate

from mem0 import Memory

m = Memory()

If you want to use Qdrant in server mode, use the following method to instantiate.

Run qdrant first:

docker pull qdrant/qdrant

docker run -p 6333:6333 -p 6334:6334 \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    qdrant/qdrant

Then, instantiate memory with qdrant server:

from mem0 import Memory

config = {
    "vector_store": {
        "provider": "qdrant",
        "config": {
            "host": "localhost",
            "port": 6333,
        }
    },
}

m = Memory.from_config(config)

Store a Memory

m.add("Likes to play cricket over weekend", user_id="alex", metadata={"foo": "bar"})
# Output:
# [
#   {
#     'id': 'm1',
#     'event': 'add',
#     'data': 'Likes to play cricket over weekend'
#   }
# ]

# Similarly, you can store a memory for an agent
m.add("Agent X is best travel agent in Paris", agent_id="agent-x", metadata={"type": "long-term"})

Retrieve all memories

1. Get all memories

m.get_all()
# Output:
# [
#   {
#     'id': 'm1',
#     'text': 'Likes to play cricket over weekend',
#     'metadata': {
#       'data': 'Likes to play cricket over weekend'
#     }
#   },
#   {
#     'id': 'm2',
#     'text': 'Agent X is best travel agent in Paris',
#     'metadata': {
#       'data': 'Agent X is best travel agent in Paris'
#     }
#   }
# ]

2. Get memories for specific user

m.get_all(user_id="alex")

3. Get memories for specific agent

m.get_all(agent_id="agent-x")

4. Get memories for a user during an agent run

m.get_all(agent_id="agent-x", user_id="alex")

Retrieve a Memory

memory_id = "m1"
m.get(memory_id)
# Output:
# {
#   'id': '1',
#   'text': 'Likes to play cricket over weekend',
#   'metadata': {
#     'data': 'Likes to play cricket over weekend'
#   }
# }

Search for related memories

m.search(query="What is my name", user_id="deshraj")

Update a Memory

m.update(memory_id="m1", data="Likes to play tennis")

Get history of a Memory

m.history(memory_id="m1")
# Output:
# [
#   {
#     'id': 'h1',
#     'memory_id': 'm1',
#     'prev_value': None,
#     'new_value': 'Likes to play cricket over weekend',
#     'event': 'add',
#     'timestamp': '2024-06-12 21:00:54.466687',
#     'is_deleted': 0
#   },
#   {
#     'id': 'h2',
#     'memory_id': 'm1',
#     'prev_value': 'Likes to play cricket over weekend',
#     'new_value': 'Likes to play tennis',
#     'event': 'update',
#     'timestamp': '2024-06-12 21:01:17.230943',
#     'is_deleted': 0
#   }
# ]

Delete a Memory

Delete specific memory

m.delete(memory_id="m1")

Delete memories for a user or agent

m.delete_all(user_id="alex")
m.delete_all(agent_id="agent-x")

Delete all Memories

m.reset()

License

Apache License 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mem0ai-0.0.3.tar.gz (13.0 kB view hashes)

Uploaded Source

Built Distribution

mem0ai-0.0.3-py3-none-any.whl (17.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page