MemOS is an operating system for Large Language Models (LLMs) that enhances them with long-term memory capabilities. It allows LLMs to store, retrieve, and manage information, enabling more context-aware, consistent, and personalized interactions.
- Website: https://memos.openmem.net/
- Documentation: https://memos-docs.openmem.net/home/overview/
- API Reference: https://memos-docs.openmem.net/docs/api/info/
- Source Code: https://github.com/MemTensor/MemOS
MemOS demonstrates significant improvements over baseline memory solutions in multiple reasoning tasks.
Model | Avg. Score | Multi-Hop | Open Domain | Single-Hop | Temporal Reasoning |
---|---|---|---|---|---|
OpenAI | 0.5275 | 0.6028 | 0.3299 | 0.6183 | 0.2825 |
MemOS | 0.7331 | 0.6430 | 0.5521 | 0.7844 | 0.7321 |
Improvement | +38.98% | +6.67% | +67.35% | +26.86% | +159.15% |
π‘ Temporal reasoning accuracy improved by 159% compared to the OpenAI baseline.
Note
Comparison of LLM Judge Scores across five major tasks in the LOCOMO benchmark. Each bar shows the mean evaluation score judged by LLMs for a given method-task pair, with standard deviation as error bars. MemOS-0630 consistently outperforms baseline methods (LangMem, Zep, OpenAI, Mem0) across all task types, especially in multi-hop and temporal reasoning scenarios.
- π§ Memory-Augmented Generation (MAG): Provides a unified API for memory operations, integrating with LLMs to enhance chat and reasoning with contextual memory retrieval.
- π¦ Modular Memory Architecture (MemCube): A flexible and modular architecture that allows for easy integration and management of different memory types.
- πΎ Multiple Memory Types:
- Textual Memory: For storing and retrieving unstructured or structured text knowledge.
- Activation Memory: Caches key-value pairs (
KVCacheMemory
) to accelerate LLM inference and context reuse. - Parametric Memory: Stores model adaptation parameters (e.g., LoRA weights).
- π Extensible: Easily extend and customize memory modules, data sources, and LLM integrations.
Here's a quick example of how to create a MemCube
, load it from a directory, access its memories, and save it.
from memos.mem_cube.general import GeneralMemCube
# Initialize a MemCube from a local directory
mem_cube = GeneralMemCube.init_from_dir("examples/data/mem_cube_2")
# Access and print all memories
print("--- Textual Memories ---")
for item in mem_cube.text_mem.get_all():
print(item)
print("\n--- Activation Memories ---")
for item in mem_cube.act_mem.get_all():
print(item)
# Save the MemCube to a new directory
mem_cube.dump("tmp/mem_cube")
What about MOS
(Memory Operating System)? It's a higher-level orchestration layer that manages multiple MemCubes and provides a unified API for memory operations. Here's a quick example of how to use MOS:
from memos.configs.mem_os import MOSConfig
from memos.mem_os.main import MOS
# init MOS
mos_config = MOSConfig.from_json_file("examples/data/config/simple_memos_config.json")
memory = MOS(mos_config)
# create user
user_id = "b41a34d5-5cae-4b46-8c49-d03794d206f5"
memory.create_user(user_id=user_id)
# register cube for user
memory.register_mem_cube("examples/data/mem_cube_2", user_id=user_id)
# add memory for user
memory.add(
messages=[
{"role": "user", "content": "I like playing football."},
{"role": "assistant", "content": "I like playing football too."},
],
user_id=user_id,
)
# Later, when you want to retrieve memory for user
retrieved_memories = memory.search(query="What do you like?", user_id=user_id)
# output text_memories: I like playing football, act_memories, para_memories
print(f"text_memories: {retrieved_memories['text_mem']}")
For more detailed examples, please check out the examples
directory.
Warning
MemOS is compatible with Linux, Windows, and macOS.
However, if you're using macOS, please note that there may be dependency issues that are difficult to resolve.
For example, compatibility with macOS 13 Ventura is currently challenging.
pip install MemoryOS
To contribute to MemOS, clone the repository and install it in editable mode:
git clone https://github.com/MemTensor/MemOS.git
cd MemOS
make install
To use MemOS with Ollama, first install the Ollama CLI:
curl -fsSL https://ollama.com/install.sh | sh
To use functionalities based on the transformers
library, ensure you have PyTorch installed (CUDA version recommended for GPU acceleration).
Join our community to ask questions, share your projects, and connect with other developers.
- GitHub Issues: Report bugs or request features in our GitHub Issues.
- GitHub Pull Requests: Contribute code improvements via Pull Requests.
- GitHub Discussions: Participate in our GitHub Discussions to ask questions or share ideas.
- Discord: Join our Discord Server.
- WeChat: Scan the QR code to join our WeChat group.
Note
We publicly released the Short Version on May 28, 2025, making it the earliest work to propose the concept of a Memory Operating System for LLMs.
If you use MemOS in your research, we would appreciate citations to our papers.
@article{li2025memos_long,
title={MemOS: A Memory OS for AI System},
author={Li, Zhiyu and Song, Shichao and Xi, Chenyang and Wang, Hanyu and Tang, Chen and Niu, Simin and Chen, Ding and Yang, Jiawei and Li, Chunyu and Yu, Qingchen and Zhao, Jihao and Wang, Yezhaohui and Liu, Peng and Lin, Zehao and Wang, Pengyuan and Huo, Jiahao and Chen, Tianyi and Chen, Kai and Li, Kehang and Tao, Zhen and Ren, Junpeng and Lai, Huayi and Wu, Hao and Tang, Bo and Wang, Zhenren and Fan, Zhaoxin and Zhang, Ningyu and Zhang, Linfeng and Yan, Junchi and Yang, Mingchuan and Xu, Tong and Xu, Wei and Chen, Huajun and Wang, Haofeng and Yang, Hongkang and Zhang, Wentao and Xu, Zhi-Qin John and Chen, Siheng and Xiong, Feiyu},
journal={arXiv preprint arXiv:2507.03724},
year={2025},
url={https://arxiv.org/abs/2507.03724}
}
@article{li2025memos_short,
title={MemOS: An Operating System for Memory-Augmented Generation (MAG) in Large Language Models},
author={Li, Zhiyu and Song, Shichao and Wang, Hanyu and Niu, Simin and Chen, Ding and Yang, Jiawei and Xi, Chenyang and Lai, Huayi and Zhao, Jihao and Wang, Yezhaohui and others},
journal={arXiv preprint arXiv:2505.22101},
year={2025},
url={https://arxiv.org/abs/2505.22101}
}
@article{yang2024memory3,
author = {Yang, Hongkang and Zehao, Lin and Wenjin, Wang and Wu, Hao and Zhiyu, Li and Tang, Bo and Wenqiang, Wei and Wang, Jinbo and Zeyun, Tang and Song, Shichao and Xi, Chenyang and Yu, Yu and Kai, Chen and Xiong, Feiyu and Tang, Linpeng and Weinan, E},
title = {Memory$^3$: Language Modeling with Explicit Memory},
journal = {Journal of Machine Learning},
year = {2024},
volume = {3},
number = {3},
pages = {300--346},
issn = {2790-2048},
doi = {https://doi.org/10.4208/jml.240708},
url = {https://global-sci.com/article/91443/memory3-language-modeling-with-explicit-memory}
}
We welcome contributions from the community! Please read our contribution guidelines to get started.
MemOS is licensed under the Apache 2.0 License.
Stay up to date with the latest MemOS announcements, releases, and community highlights.
- 2025-07-07 β π MemOS 1.0 (Stellar) Preview Release: A SOTA Memory OS for LLMs is now open-sourced.
- 2025-07-04 β π MemOS Paper Released: MemOS: A Memory OS for AI System was published on arXiv.
- 2025-05-28 β π Short Paper Uploaded: MemOS: An Operating System for Memory-Augmented Generation (MAG) in Large Language Models was published on arXiv.
- 2024-07-04 β π Memory3 Model Released at WAIC 2024: The new memory-layered architecture model was unveiled at the 2024 World Artificial Intelligence Conference.
- 2024-07-01 β π Memory3 Paper Released: Memory3: Language Modeling with Explicit Memory introduces the new approach to structured memory in LLMs.