MemOS Banner

MemOS Logo MemOS 1.0: 星æēģ (Stellar) Preview Badge

Static Badge PyPI Version Supported Python versions Documentation ArXiv Paper GitHub Discussions Discord WeChat Group License

--- SOTA SCORE **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.openmem.net/docs/home - **API Reference**: https://memos.openmem.net/docs/api/info - **Source Code**: https://github.com/MemTensor/MemOS ## 📈 Performance Benchmark 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.** ### Details of End-to-End Evaluation on LOCOMO > [!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. END2END SCORE ## âœĻ Key Features - **🧠 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. ## 🚀 Getting Started Here's a quick example of how to create a **`MemCube`**, load it from a directory, access its memories, and save it. ```python 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: ```python 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`](./examples) directory. ## ðŸ“Ķ Installation > [!WARNING] > Currently, MemOS primarily supports Linux platforms. You may encounter issues on Windows and macOS temporarily. ### Install via pip ```bash pip install MemoryOS ``` ### Development Install To contribute to MemOS, clone the repository and install it in editable mode: ```bash git clone https://github.com/MemTensor/MemOS.git cd MemOS make install ``` ### Optional Dependencies #### Ollama Support To use MemOS with [Ollama](https://ollama.com/), first install the Ollama CLI: ```bash curl -fsSL https://ollama.com/install.sh | sh ``` #### Transformers Support To use functionalities based on the `transformers` library, ensure you have [PyTorch](https://pytorch.org/get-started/locally/) installed (CUDA version recommended for GPU acceleration). ## 💎 Community & Support 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. QR Code ## 📜 Citation If you use MemOS in your research, please cite our paper: ```bibtex @article{li2025memos, 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} } ``` ## 🙌 Contributing We welcome contributions from the community! Please read our [contribution guidelines](./docs/contribution/overview.md) to get started. ## 📄 License MemOS is licensed under the [Apache 2.0 License](./LICENSE). ## 📰 News 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-05-28** – 🎉 *Short Paper Uploaded*: [MemOS: An Operating System for Memory-Augmented Generation (MAG) in Large Language Models](https://arxiv.org/abs/2505.22101) 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](https://arxiv.org/abs/2407.01178) introduces the new approach to structured memory in LLMs.