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
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
mem0ai-0.0.3-py3-none-any.whl
(17.9 kB
view hashes)