MemoryOS is designed to provide a memory operating system for personalized AI agents, enabling more coherent, personalized, and context-aware interactions. Drawing inspiration from memory management principles in operating systems, it adopts a hierarchical storage architecture with four core modules: Storage, Updating, Retrieval, and Generation, to achieve comprehensive and efficient memory management. On the LoCoMo benchmark, the model achieved average improvements of 49.11% and 46.18% in F1 and BLEU-1 scores.
The SOTA results in long-term memory benchmarks, boosting F1 scores by 49.11% and BLEU-1 by 46.18% on the LoCoMo benchmark.
Enables seamless integration of pluggable memory modules—including storage engines, update strategies, and retrieval algorithms.
Inject long-term memory capabilities into various AI applications by calling modular tools provided by the MCP Server.
MemoryOS seamlessly integrates with a wide range of LLMs (e.g., OpenAI, Deepseek, Qwen ...)
| Type | Name | Open Source | Support | Configuration | Description |
|---|---|---|---|---|---|
| Agent Client | Claude Desktop | ❌ | ✅ | claude_desktop_config.json | Anthropic official client |
| Cline | ✅ | ✅ | VS Code settings | VS Code extension | |
| Cursor | ❌ | ✅ | Settings panel | AI code editor | |
| Model Provider | OpenAI | ❌ | ✅ | OPENAI_API_KEY | GPT-4, GPT-3.5, etc. |
| Anthropic | ❌ | ✅ | ANTHROPIC_API_KEY | Claude series | |
| Deepseek-R1 | ✅ | ✅ | DEEPSEEK_API_KEY | Chinese large model | |
| Qwen/Qwen3 | ✅ | ✅ | QWEN_API_KEY | Alibaba Qwen | |
| vLLM | ✅ | ✅ | Local deployment | Local model inference | |
| Llama_factory | ✅ | ✅ | Local deployment | Local fine-tuning deployment |
All model calls use the OpenAI API interface; you need to supply the API key and base URL.
memoryos/
├── __init__.py # Initializes the MemoryOS package
├── __pycache__/ # Python cache directory (auto-generated)
├── long_term.py # Manages long-term persona memory (user profile, knowledge)
├── memoryos.py # Main class for MemoryOS, orchestrating all components
├── mid_term.py # Manages mid-term memory, consolidating short-term interactions
├── prompts.py # Contains prompts used for LLM interactions (e.g., summarization, analysis)
├── retriever.py # Retrieves relevant information from all memory layers
├── short_term.py # Manages short-term memory for recent interactions
├── updater.py # Processes memory updates, including promoting information between layers
└── utils.py # Utility functions used across the library
pip install memoryos-pro -i https://pypi.org/simple
git clone https://github.com/BAI-LAB/MemoryOS.git
cd MemoryOS/memoryos-pypi
pip install -r requirements.txt
import os
from memoryos import Memoryos
# --- Basic Configuration ---
USER_ID = "demo_user"
ASSISTANT_ID = "demo_assistant"
API_KEY = "YOUR_OPENAI_API_KEY" # Replace with your key
BASE_URL = "" # Optional: if using a custom OpenAI endpoint
DATA_STORAGE_PATH = "./simple_demo_data"
LLM_MODEL = "gpt-4o-mini"
def simple_demo():
print("MemoryOS Simple Demo")
# 1. Initialize MemoryOS
print("Initializing MemoryOS...")
try:
memo = Memoryos(
user_id=USER_ID,
openai_api_key=API_KEY,
openai_base_url=BASE_URL,
data_storage_path=DATA_STORAGE_PATH,
llm_model=LLM_MODEL,
assistant_id=ASSISTANT_ID,
short_term_capacity=7,
mid_term_heat_threshold=5,
retrieval_queue_capacity=7,
long_term_knowledge_capacity=100,
#Support Qwen/Qwen3-Embedding-0.6B, BAAI/bge-m3, all-MiniLM-L6-v2
embedding_model_name="BAAI/bge-m3"
)
print("MemoryOS initialized successfully!\n")
except Exception as e:
print(f"Error: {e}")
return
# 2. Add some basic memories
print("Adding some memories...")
memo.add_memory(
user_input="Hi! I'm Tom, I work as a data scientist in San Francisco.",
agent_response="Hello Tom! Nice to meet you. Data science is such an exciting field. What kind of data do you work with?"
)
test_query = "What do you remember about my job?"
print(f"User: {test_query}")
response = memo.get_response(
query=test_query,
)
print(f"Assistant: {response}")
if __name__ == "__main__":
simple_demo()
add_memorySaves the content of the conversation between the user and the AI assistant into the memory system, for the purpose of building a persistent dialogue history and contextual record.
retrieve_memoryRetrieves related historical dialogues, user preferences, and knowledge information from the memory system based on a query, helping the AI assistant understand the user’s needs and background.
get_user_profileObtains a user profile generated from the analysis of historical dialogues, including the user’s personality traits, interest preferences, and relevant knowledge background.
cd memoryos-mcp
pip install -r requirements.txt
Edit config.json:
{
"user_id": "user ID",
"openai_api_key": "OpenAI API key",
"openai_base_url": "https://api.openai.com/v1",
"data_storage_path": "./memoryos_data",
"assistant_id": "assistant_id",
"llm_model": "gpt-4o-mini"
"embedding_model_name":"BAAI/bge-m3"
}
python server_new.py --config config.json
python test_comprehensive.py
Copy the mcp.json file over, and make sure the file path is correct.
command": "/root/miniconda3/envs/memos/bin/python"
#This should be changed to the Python interpreter of your virtual environment
cd memoryos-chromadb
pip install -r requirements.txt
```bash The edit information is in comprehensive_test.py memoryos = Memoryos( user_id='travel_user_test', openai_api_key='', openai_base_url='', data_storage_path='.
$ claude mcp add MemoryOS \
-- python -m otcore.mcp_server <graph>