mem0

mem0aiApache-2.0活跃维护

为 AI Agent 提供可持久化的长期记忆层,让智能体和应用能跨会话记住上下文,开箱即用、面向生产环境。

The Memory Layer for AI Agents - Drop-in memory infrastructure for AI agents and apps. Context that persists. Built for production.

v2.2.1发布于 2026-09-25 17:35 UTC68,760star +217 / 7 天8,181fork同步于 2026-11-10 17:18 UTC

怎么上手

由 README 提炼,执行前请确认
pip install mem0ai
pip install mem0ai[nlp] && python -m spacy download en_core_web_sm
硬件要求按 README 说明

README 未说明显存或 GPU 要求;默认调用 OpenAI 的 gpt-5-mini 与 text-embedding-3-small,计算在云端完成,本地只需能跑 Python 或 Node 环境。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

给 AI Agent 和应用的即插即用记忆层,让上下文持久保存并跨会话记住用户偏好

为 AI Agent 提供可持久化的长期记忆层,让智能体和应用能跨会话记住上下文,开箱即用、面向生产环境。

核心能力

  • 提供 User、Session、Agent 多层级记忆状态
  • 单次 LLM 调用完成 ADD-only 记忆抽取,不覆盖旧记忆
  • 语义、BM25 关键词与实体匹配多信号并行检索融合
  • 支持时间感知检索,按当前状态与历史事件排序
  • 提供 Python/Node SDK、CLI 与自托管服务三种用法

容易踩的坑

必须配置 LLM 才能运行,默认走 OpenAI 需要 API Key;混合检索需额外安装 nlp 依赖并下载 spaCy 模型 en_core_web_sm;自托管服务默认开启鉴权,需先设 ADMIN_API_KEY 或走 make bootstrap 创建管理员。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.2.1
  1. ts-v3.3.1Mem0 Node SDK (v3.3.1)2026-09-25 · 2026-09-25 17:36 UTC
    查看更新说明

    Bug Fixes:

    • Config (OSS): ConfigManager no longer injects OpenAI's default baseURL and model into non-OpenAI LLM providers. The defaults now apply only to openai and openai_structured, so a DeepSeek, xAI, or other provider config without an explicit baseURL or model falls back to that provider's own defaults and env vars (DEEPSEEK_API_BASE, XAI_API_BASE, ...) instead of pointing at OpenAI with an OpenAI model name (#7350)
    • Vector Stores: Turbopuffer filters now apply every operator (eq, ne, gt, gte, lt, lte, in, nin). Only the range operators were read before, so eq, ne, in, and nin were silently dropped. A "*" value now matches anything instead of nothing, an array value is treated as in, and an unsupported operator throws (#6578)
    • Vector Stores: Turbopuffer search() with euclidean_squared now maps the unbounded squared distance to 1 / (1 + distance) instead of 1 - distance, which went negative and inverted ranking for any distance above 1 (#6580)
    • Packaging: pg, @types/pg, and natural are now optional peer dependencies, and pg / @types/pg accept caret ranges instead of the exact 8.11.3 / 8.11.0 pins, so installing mem0ai no longer pulls in pg or conflicts with an app's own pg version. The PGVector store now imports pg only when it is used, so install it alongside mem0ai (npm install pg) if you use that store. @types/jest moved from peer dependencies to dev dependencies (#7450)
  2. v2.2.1Mem0 Python SDK (v2.2.1)最新正式版2026-09-25 · 2026-09-25 17:35 UTC

    Bug Fixes:

    • Core: add() (Memory and AsyncMemory) no longer reports records the vector store rejected as successful ADD events. Only records that were actually inserted are written to history, entity-linked, and returned. If none of the extracted memories could be inserted, add() now raises VectorStoreError instead of returning memories that were never stored (#7066)
    • Core: Restore the context-manager protocol on Memory (with Memory() as m:) and AsyncMemory (async with AsyncMemory() as m:), which closes the instance on exit (#7354)
    • LLMs: The AWS Bedrock Anthropic path now returns the first Converse content block that carries text instead of always reading content[0]. Claude reasoning models can emit a reasoningContent block before the text block, which previously made the call fail with a KeyError (#6369)
    • Vector Stores: Turbopuffer filters now apply every operator (eq, ne, gt, gte, lt, lte, in, nin). Only gte and lte were read before, so any other operator was silently dropped and the query returned unfiltered results. An unsupported operator now raises ValueError (#6564)
    • Vector Stores: Turbopuffer search() scores now respect distance_metric. With euclidean_squared, the unbounded squared distance maps to 1 / (1 + distance) instead of 1 - distance, which went negative and inverted ranking for any distance above 1 (#6559)
    • Vector Stores: S3 Vectors search() scores are now metric-aware. With euclidean, the distance maps to 1 / (1 + distance) instead of max(0, 1 - distance), which collapsed most scores to 0 (#6547)
  3. pi-agent-v0.3.2Mem0 Pi Agent Plugin (v0.3.2)2026-09-23 · 2026-09-23 19:12 UTC
    查看更新说明

    Improvements:

    • Search: The memory policy, mem0_memory tool description, and prompt guidelines no longer ask the agent to search before answering anything that may depend on earlier context or to run several searches per question. They now ask for a search before repeating investigation or when earlier decisions, fixes, commands, or results may help (#7420)
    • Skills: context-loader makes one search instead of 2-4 parallel searches, and uses the search skill description from the other coding-agent plugins (#7420)
    • Automatic recall: Injected memories are introduced as "Mem0 found these relevant memories from earlier work in this repository:", the same heading as the Python plugins. The old heading called them a shallow first pass and told the agent to search again (#7420)
  4. ts-v3.3.0Mem0 Node SDK (v3.3.0)2026-09-23 · 2026-09-23 19:05 UTC
    查看更新说明

    New Features:

    • Client: Add User Profiles to MemoryClient: getProfile(), generateProfile(), getProfileSettings(), updateProfileSettings(), sampleProfiles(), and getProfileJob(). A profile is a structured, always-current JSON summary of one user, shaped by a JSON Schema you configure per project and filled by an LLM from that user's memories. Generation is asynchronous. Every job POST carries an Idempotency-Key; to retry a lost request without starting a second job, pass the same idempotencyKey on each attempt (#7340)
  5. v2.2.0Mem0 Python SDK (v2.2.0)2026-09-23 · 2026-09-23 19:03 UTC
    查看更新说明

    New Features:

    • Client: Add User Profiles to MemoryClient and AsyncMemoryClient: get_profile(), generate_profile(), get_profile_settings(), update_profile_settings(), sample_profiles(), and get_profile_job(). A profile is a structured, always-current JSON summary of one user, shaped by a JSON Schema you configure per project and filled by an LLM from that user's memories. Generation is asynchronous. Every job POST carries an Idempotency-Key; to retry a lost request without starting a second job, pass the same idempotency_key on each attempt (#7340)

    Bug Fixes:

    • Vector Stores: Guard against None timestamps in the Valkey vector store's insert() and update() paths. created_at and updated_at fields that were present in the payload but set to None previously passed the "created_at" not in payload / "updated_at" in payload checks and raised TypeError when datetime.fromisoformat() received None. Both paths now use .get() with a truthiness check so None values fall through to the default, matching the Redis provider's behavior (#6993)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    New Memory Algorithm (April 2026)

    BenchmarkOldNewTokensLatency p50
    LoCoMo71.492.57.0K0.88s
    LongMemEval67.894.46.8K1.09s
    BEAM (1M)—64.16.7K1.00s
    BEAM (10M)—48.66.9K1.05s

    All benchmarks run on the same production-representative model stack. Single-pass retrieval (one call, no agentic loops) at a top_200 retrieval budget. Scores reflect Mem0's managed platform, which includes proprietary optimizations not available in the open-source SDK; open-source users should expect directionally similar gains but not identical numbers.

    What changed:

    • Single-pass ADD-only extraction -- one LLM call, no UPDATE/DELETE. Memories accumulate; nothing is overwritten.
    • Agent-generated facts are first-class -- when an agent confirms an action, that information is now stored with equal weight.
    • Entity linking -- entities are extracted, embedded, and linked across memories for retrieval boosting.
    • Multi-signal retrieval -- semantic, BM25 keyword, and entity matching scored in parallel and fused.
    • Temporal Reasoning -- time-aware retrieval that ranks the right dated instance for queries about current state, past events, and upcoming plans.

    See the migration guide for upgrade instructions. The evaluation framework is open-sourced so anyone can reproduce the numbers.

    Research Highlights

    • 92.5 on LoCoMo -- +21 points over the previous algorithm
    • 94.4 on LongMemEval -- +27 points, with 98.2 on assistant memory recall
    • 64.1 on BEAM (1M) -- production-scale memory evaluation at 1M tokens
    • Read the full paper

    Introduction

    Mem0 ("mem-zero") enhances AI assistants and agents with an intelligent memory layer, enabling personalized AI interactions. It remembers user preferences, adapts to individual needs, and continuously learns over time—ideal for customer support chatbots, AI assistants, and autonomous systems.

    Key Features & Use Cases

    Core Capabilities:

    • Multi-Level Memory: Seamlessly retains User, Session, and Agent state with adaptive personalization
    • Developer-Friendly: Intuitive API, cross-platform SDKs, and a fully managed service option

    Applications:

    • AI Assistants: Consistent, context-rich conversations
    • Customer Support: Recall past tickets and user history for tailored help
    • Healthcare: Track patient preferences and history for personalized care
    • Productivity & Gaming: Adaptive workflows and environments based on user behavior

    🚀 Quickstart Guide

    Sign up as an agent

    AI agents can mint a working Mem0 API key in under five seconds — no email, no dashboard, no OTP. Four commands end-to-end:

    # 1. Install
    npm install -g @mem0/cli      # or: pip install mem0-cli
    
    # 2. Sign up as an agent (replace `claude-code` with your name)
    mem0 init --agent --agent-caller claude-code
    
    # 3. Add a memory
    mem0 add "I am using mem0"
    
    # 4. Search
    mem0 search "am I using mem0"
    

    The human owner can claim the account later with mem0 init --email <their-email> — same key, memories preserved. Full guide: Sign up as an agent.

    LibrarySelf-Hosted ServerCloud Platform
    Best forTesting, prototypingTeams running on their own infrastructureZero-ops production use
    Setuppip install mem0aidocker compose upSign up at app.mem0.ai
    Dashboard--YesYes
    Auth & API Keys--YesYes
    Advanced Features--TeasersAll included

    Just testing? Use the library. Building for a team? Self-hosted. Want zero ops? Cloud.

    Library (pip / npm)

    pip install mem0ai
    

    For enhanced hybrid search with BM25 keyword matching and entity extraction, install with NLP support:

    pip install mem0ai[nlp]
    python -m spacy download en_core_web_sm
    

    Install sdk via npm:

    npm install mem0ai
    

    Self-Hosted Server

    Note: Self-hosted auth is on by default. Upgrading from a pre-auth build? Set ADMIN_API_KEY, register an admin through the wizard, or AUTH_DISABLED=true for local dev only. See upgrade notes.

    # Recommended: one command — start the stack, create an admin, issue the first API key.
    cd server && make bootstrap
    
    # Manual: start the stack and finish setup via the browser wizard.
    cd server && docker compose up -d    # http://localhost:3000
    

    See the self-hosted docs for configuration.

    Cloud Platform

    1. Sign up on Mem0 Platform
    2. Embed the memory layer via SDK or API keys
    3. Using hosted Qdrant vectors? See the Platform migration guide to import them into Mem0 Platform.

    CLI

    Manage memories from your terminal:

    npm install -g @mem0/cli   # or: pip install mem0-cli
    
    mem0 init
    mem0 add "Prefers dark mode and vim keybindings" --user-id alice
    mem0 search "What does Alice prefer?" --user-id alice
    

    See the CLI documentation for the full command reference.

    Agent Skills

    Teach your AI coding assistant (Claude Code, Codex, Cursor, Windsurf, OpenCode, OpenClaw, and any tool that supports the skills standard) how to build with Mem0. Two categories:

    Reference skills — always on (SDK knowledge loaded into the assistant's context):

    npx skills add https://github.com/mem0ai/mem0 --skill mem0
    npx skills add https://github.com/mem0ai/mem0 --skill mem0-cli
    npx skills add https://github.com/mem0ai/mem0 --skill mem0-vercel-ai-sdk
    

    Pipeline skills — run on demand (execute an end-to-end workflow in an existing repo):

    npx skills add https://github.com/mem0ai/mem0 --skill mem0-integrate
    npx skills add https://github.com/mem0ai/mem0 --skill mem0-test-integration
    npx skills add https://github.com/mem0ai/mem0 --skill mem0-oss-to-platform
    

    Use /mem0-integrate to wire Mem0 into an existing repo via a test-first pipeline, then /mem0-test-integration to verify. Use /mem0-oss-to-platform to migrate an existing project from Mem0 OSS to the hosted Platform SDK. See the skills catalog or Vibecoding with Mem0 for the full picture.

    Basic Usage

    Mem0 requires an LLM to function, with gpt-5-mini from OpenAI as the default. However, it supports a variety of LLMs; for details, refer to our Supported LLMs documentation.

    Mem0 uses text-embedding-3-small from OpenAI as the default embedding model. For best results with hybrid search (semantic + keyword + entity boosting), we recommend using at least Qwen 600M or a comparable embedding model. See Supported Embeddings for configuration details.

    First step is to instantiate the memory:

    from openai import OpenAI
    from mem0 import Memory
    
    openai_client = OpenAI()
    memory = Memory()
    
    def chat_with_memories(message: str, user_id: str = "default_user") -> str:
        # Retrieve relevant memories
        relevant_memories = memory.search(query=message, filters={"user_id": user_id}, top_k=3)
        memories_str = "\n".join(f"- {entry['memory']}" for entry in relevant_memories["results"])
    
        # Generate Assistant response
        system_prompt = f"You are a helpful AI. Answer the question based on query and memories.\nUser Memories:\n{memories_str}"
        messages = [{"role": "system", "content": system_prompt}, {"role": "user", "content": message}]
        response = openai_client.chat.completions.create(model="gpt-5-mini", messages=messages)
        assistant_response = response.choices[0].message.content
    
        # Create new memories from the conversation
        messages.append({"role": "assistant", "content": assistant_response})
        memory.add(messages, user_id=user_id)
    
        return assistant_response
    
    def main():
        print("Chat with AI (type 'exit' to quit)")
        while True:
            user_input = input("You: ").strip()
            if user_input.lower() == 'exit':
                print("Goodbye!")
                break
            print(f"AI: {chat_with_memories(user_input)}")
    
    if __name__ == "__main__":
        main()
    

    For detailed integration steps, see the Quickstart and API Reference.

    🔗 Integrations & Demos

    • ChatGPT with Memory: Personalized chat powered by Mem0 (Live Demo)
    • Browser Extension: Store memories across ChatGPT, Perplexity, and Claude (Chrome Extension)
    • Langgraph Support: Build a customer bot with Langgraph + Mem0 (Guide)
    • CrewAI Integration: Tailor CrewAI outputs with Mem0 (Example)

    📚 Documentation & Support

    Citation

    We now have a paper you can cite:

    @article{mem0,
      title={Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory},
      author={Chhikara, Prateek and Khant, Dev and Aryan, Saket and Singh, Taranjeet and Yadav, Deshraj},
      journal={arXiv preprint arXiv:2504.19413},
      year={2025}
    }
    

    ⚖️ License

    Apache 2.0 — see the LICENSE file for details.