https://github.com/mem0ai/mem0 Skip to content Navigation Menu Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + GitHub Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions By size + Enterprise + Teams + Startups By industry + Healthcare + Financial services + Manufacturing By use case + CI/CD & Automation + DevOps + DevSecOps * Resources Topics + AI + DevOps + Security + Software Development + View all Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up Reseting focus You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} mem0ai / mem0 Public * Notifications You must be signed in to change notification settings * Fork 1.9k * Star 20.8k The memory layer for Personalized AI mem0.ai License Apache-2.0 license 20.8k stars 1.9k forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 149 * Pull requests 28 * Discussions * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights mem0ai/mem0 This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Last commit Last Name Name message commit date Latest commit History 1,031 Commits .github .github cookbooks cookbooks docs docs embedchain embedchain mem0 mem0 tests tests .gitignore .gitignore .pre-commit-config.yaml .pre-commit-config.yaml LICENSE LICENSE Makefile Makefile README.md README.md poetry.lock poetry.lock pyproject.toml pyproject.toml View all files Repository files navigation * README * Apache-2.0 license Mem0 - The Memory Layer for Personalized AI Learn more * Join Discord Mem0 Discord Mem0 PyPI - Downloads Package version Supported Python versions Y Combinator S24 Introduction Mem0 (pronounced as "mem-zero") enhances AI assistants and agents with an intelligent memory layer, enabling personalized AI interactions. Mem0 remembers user preferences, adapts to individual needs, and continuously improves over time, making it ideal for customer support chatbots, AI assistants, and autonomous systems. Graph Memory Integration New Feature: Introducing Graph Memory. Check out our documentation. Core Features * Multi-Level Memory: User, Session, and AI Agent memory retention * Adaptive Personalization: Continuous improvement based on interactions * Developer-Friendly API: Simple integration into various applications * Cross-Platform Consistency: Uniform behavior across devices * Managed Service: Hassle-free hosted solution How Mem0 works? Mem0 leverages a hybrid database approach to manage and retrieve long-term memories for AI agents and assistants. Each memory is associated with a unique identifier, such as a user ID or agent ID, allowing Mem0 to organize and access memories specific to an individual or context. When a message is added to the Mem0 using add() method, the system extracts relevant facts and preferences and stores it across data stores: a vector database, a key-value database, and a graph database. This hybrid approach ensures that different types of information are stored in the most efficient manner, making subsequent searches quick and effective. When an AI agent or LLM needs to recall memories, it uses the search () method. Mem0 then performs search across these data stores, retrieving relevant information from each source. This information is then passed through a scoring layer, which evaluates their importance based on relevance, importance, and recency. This ensures that only the most personalized and useful context is surfaced. The retrieved memories can then be appended to the LLM's prompt as needed, enhancing the personalization and relevance of its responses. Use Cases Mem0 empowers organizations and individuals to enhance: * AI Assistants and agents: Seamless conversations with a touch of deja vu * Personalized Learning: Tailored content recommendations and progress tracking * Customer Support: Context-aware assistance with user preference memory * Healthcare: Patient history and treatment plan management * Virtual Companions: Deeper user relationships through conversation memory * Productivity: Streamlined workflows based on user habits and task history * Gaming: Adaptive environments reflecting player choices and progress Get Started The easiest way to set up Mem0 is through the managed Mem0 Platform. This hosted solution offers automatic updates, advanced analytics, and dedicated support. Sign up to get started. If you prefer to self-host, use the open-source Mem0 package. Follow the installation instructions to get started. Installation Instructions Install the Mem0 package via pip: pip install mem0ai Alternatively, you can use Mem0 with one click on the hosted platform here. Basic Usage Mem0 requires an LLM to function, with gpt-4o from OpenAI as the default. However, it supports a variety of LLMs; for details, refer to our Supported LLMs documentation. First step is to instantiate the memory: from mem0 import Memory m = Memory() How to set OPENAI_API_KEY import os os.environ["OPENAI_API_KEY"] = "sk-xxx" You can perform the following task on the memory: 1. Add: Store a memory from any unstructured text 2. Update: Update memory of a given memory_id 3. Search: Fetch memories based on a query 4. Get: Return memories for a certain user/agent/session 5. History: Describe how a memory has changed over time for a specific memory ID # 1. Add: Store a memory from any unstructured text result = m.add("I am working on improving my tennis skills. Suggest some online courses.", user_id="alice", metadata={"category": "hobbies"}) # Created memory --> 'Improving her tennis skills.' and 'Looking for online suggestions.' # 2. Update: update the memory result = m.update(memory_id=, data="Likes to play tennis on weekends") # Updated memory --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.' # 3. Search: search related memories related_memories = m.search(query="What are Alice's hobbies?", user_id="alice") # Retrieved memory --> 'Likes to play tennis on weekends' # 4. Get all memories all_memories = m.get_all() memory_id = all_memories["memories"][0] ["id"] # get a memory_id # All memory items --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.' # 5. Get memory history for a particular memory_id history = m.history(memory_id=) # Logs corresponding to memory_id_1 --> {'prev_value': 'Working on improving tennis skills and interested in online courses for tennis.', 'new_value': 'Likes to play tennis on weekends' } Tip If you prefer a hosted version without the need to set up infrastructure yourself, check out the Mem0 Platform to get started in minutes. Graph Memory To initialize Graph Memory you'll need to set up your configuration with graph store providers. Currently, we support Neo4j as a graph store provider. You can setup Neo4j locally or use the hosted Neo4j AuraDB. Moreover, you also need to set the version to v1.1 (prior versions are not supported). Here's how you can do it: from mem0 import Memory config = { "graph_store": { "provider": "neo4j", "config": { "url": "neo4j+s://xxx", "username": "neo4j", "password": "xxx" } }, "version": "v1.1" } m = Memory.from_config(config_dict=config) Documentation For detailed usage instructions and API reference, visit our documentation at docs.mem0.ai. Here, you can find more information on both the open-source version and the hosted Mem0 Platform. Star History Star History Chart Support Join our community for support and discussions. If you have any questions, feel free to reach out to us using one of the following methods: * Join our Discord * Follow us on Twitter * Email founders Contributors Join our Discord community to learn about memory management for AI agents and LLMs, and connect with Mem0 users and contributors. Share your ideas, questions, or feedback in our GitHub Issues. We value and appreciate the contributions of our community. Special thanks to our contributors for helping us improve Mem0. [6874747073] License This project is licensed under the Apache 2.0 License - see the LICENSE file for details. About The memory layer for Personalized AI mem0.ai Topics python agent application state-management ai memory embeddings chatbots memory-management long-term-memory rag vector-database llm chatgpt aiagent Resources Readme License Apache-2.0 license Activity Custom properties Stars 20.8k stars Watchers 121 watching Forks 1.9k forks Report repository Releases 189 0.1.120 Latest Aug 2, 2024 + 188 releases Packages 0 No packages published Used by 1.7k * @macleod-matt * @OvuncA * @JorgeRamiroDev * @NiketanSP * @labeshgarg * @ConcertIDC * @AI-LLM-Bootcamp * @AI-LLM-Bootcamp + 1,701 Contributors 136 * @taranjeet * @deshraj * @Dev-Khant * @cachho * @deven298 * @sidmohanty11 * @prateekchhikara * @aaishikdutta * @sahilyadav902 * @PranavPuranik * @rupeshbansal * @subhajit20 * @Prikshit7766 * @NavyaAlapati13 + 122 contributors Languages * Python 70.3% * MDX 18.5% * Jupyter Notebook 8.9% * JavaScript 2.0% * Dockerfile 0.2% * Makefile 0.1% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.