支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


OpenMemory MCP:让AI工具拥有"共享记忆"

发布日期:2025-06-05 13:57:23 浏览次数: 1563 作者:硅基漫游指南
推荐语

打破AI工具间的记忆孤岛,提升工作效率和交互体验。

核心内容:
1. OpenMemory MCP 解决 AI 工具间记忆割裂问题
2. 私人记忆服务器实现数据本地存储,保障隐私
3. 两阶段智能记忆处理与图结构记忆理解,提高信息处理效率

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

 

因为特殊情况,最近经常要在 Cursor 和 Windsurf 两个编辑器间切换使用。在 Cursor 中详细解释完项目需求,切换到 Windsurf 又得重新介绍一遍。这种"记忆割裂"不仅浪费时间,还严重影响了我们与 AI 工具的交互体验。

如果 AI 工具之间能够共享记忆,会怎样?你在一处设置的偏好和习惯,在另一处自动生效;你解释过的项目背景,不必重复说明。这正是 OpenMemory MCP 要解决的核心问题。

记忆共享的秘密武器:OpenMemory MCP

OpenMemory MCP 是一个运行在你电脑上的私人记忆服务器,它为支持 MCP 协议的 AI 工具创建共享、持久的记忆层。与传统解决方案不同,它采用本地优先策略,所有数据都存储在你的设备上,不会上传到云端,确保了数据隐私和完全控制权。

看到这个界面了吗?这是你的记忆控制中心,你可以在这里查看、管理所有 AI 工具共享的记忆,就像管理你的笔记一样简单直观。

揭秘:OpenMemory MCP 如何工作?

想象一下,OpenMemory MCP 就像是 AI 工具之间的"共享大脑"。它的核心是一个基于 FastAPI 构建的 MCP 服务器,通过标准化的记忆操作 API,让任何支持 MCP 协议的工具都能无缝接入并共享记忆。

智能记忆处理:两阶段流程

OpenMemory 背后的记忆处理并不是简单地存储所有对话内容,而是采用了 Mem0 的两阶段智能处理流程:

提取阶段:系统会分析你的对话,从三个来源提取信息——最新交流、滚动摘要和最近的消息历史。它不是机械地记录一切,而是像人类大脑一样,智能提取值得记住的关键信息。

更新阶段:每条新信息都会与已存储的记忆进行比对,系统会智能决定:

  • • 添加全新的记忆
  • • 更新已有的信息
  • • 删除过时或矛盾的内容
  • • 保持不变(如果新信息不够重要)

这种设计让记忆库始终保持精简、一致且高效,就像我们的大脑会主动遗忘不重要的细节,只保留关键信息一样。

图结构记忆:不只是记住,还要理解

更强大的是,OpenMemory 还提供了图增强版本 Mem0g,它不只是记住零散的事实,还能理解事物之间的关系:

这种图结构让 AI 能够理解复杂的关系网络,比如"项目 A 依赖于组件 B,而组件 B 由团队 C 负责"这样的多层次关系,从而在回答问题时提供更全面、更有洞察力的回应。

技术内幕:OpenMemory MCP 如何实现?

对于技术爱好者,我们来看看 OpenMemory MCP 的实现细节。它的核心代码位于openmemory/api/app/mcp_server.py,这个文件定义了 MCP 服务器的主要功能和 API。

健壮的服务器设计

""" MCP Server for OpenMemory with resilient memory client handling.
This module implements an MCP (Model Context Protocol) server that provides
memory operations for OpenMemory. The memory client is initialized lazily
to prevent server crashes when external dependencies (like Ollama) are unavailable.

Key features:
- Lazy memory client initialization
- Graceful error handling for unavailable dependencies
- Fallback to database-only mode when vector store is unavailable
- Proper logging for debugging connection issues
- Environment variable parsing for API keys
"""


# 初始化MCP
mcp = FastMCP("mem0-mcp-server")

# 延迟初始化内存客户端,避免启动失败
def get_memory_client_safe():
    """Get memory client with error handling. Returns None if client cannot be initialized."""
    try:
        return get_memory_client()
    except Exception as e:
        logging.warning(f"Failed to get memory client: {e}")
        return None

注意这里的延迟初始化策略,它确保即使某些外部依赖(如向量数据库)暂时不可用,服务器仍能启动并提供基本功能。这种设计让 OpenMemory MCP 在各种环境下都能稳定运行,不会因为一个组件的故障而完全崩溃。

核心记忆操作

OpenMemory MCP 提供了四个主要的记忆操作 API,让 AI 工具能够轻松地存取共享记忆:

  1. 1. 添加记忆:当你告诉 AI 助手一些关于你自己、你的偏好或任何重要信息时,它会调用这个 API 将信息存储起来。
@mcp.tool(description="Add a new memory. This method is called everytime the user informs anything about themselves...")
asyncdefadd_memories(text: str) -> str:
    # 安全获取内存客户端
    memory_client = get_memory_client_safe()
    ifnot memory_client:
        return"Error: Memory system is currently unavailable. Please try again later."

    # 添加记忆并处理响应
    response = memory_client.add(text, user_id=uid, metadata={
        "source_app""openmemory",
        "mcp_client": client_name,
    })

    # 更新数据库,记录变更历史
    # ...
  1. 2. 搜索记忆:每当你向 AI 助手提问时,它会调用这个 API 查找相关的记忆,以提供更准确、更个性化的回答。
@mcp.tool(description="Search through stored memories. This method is called EVERYTIME the user asks anything.")
asyncdefsearch_memory(query: str) -> str:
    uid = user_id_var.get(None)
    client_name = client_name_var.get(None)
    ifnot uid:
        return"Error: user_id not provided"
    ifnot client_name:
        return"Error: client_name not provided"

    # Get memory client safely
    memory_client = get_memory_client_safe()
    ifnot memory_client:
        return"Error: Memory system is currently unavailable. Please try again later."

    # ...
    # embeddings
    embeddings = memory_client.embedding_model.embed(query, "search")
    # 向量数据库 qdrant 检索
    hits = memory_client.vector_store.client.query_points(
        collection_name=memory_client.vector_store.collection_name,
        query=embeddings,
        query_filter=filters,
        limit=10,
    )

    # Process search results
    memories = hits.points
    memories = [
        {
            "id": memory.id,
            "memory": memory.payload["data"],
            "hash": memory.payload.get("hash"),
            "created_at": memory.payload.get("created_at"),
            "updated_at": memory.payload.get("updated_at"),
            "score": memory.score,
        }
        for memory in memories
    ]
    # ...
  1. 3. 列出记忆:让你查看所有存储的记忆,便于管理和整理。
@mcp.tool(description="List all memories in the user's memory")
async def list_memories() -> str:
    # ...
    # Get or create user and app
    user, app = get_user_and_app(db, user_id=uid, app_id=client_name)

    # Get all memories
    memories = memory_client.get_all(user_id=uid)
    # ...
  1. 4. 删除记忆:当你需要清除某些记忆时使用,保证你对自己的数据有完全的控制权。

这些 API 共同构成了 OpenMemory MCP 的核心功能,使得任何 MCP 兼容的工具都能无缝接入并共享记忆。

容器化部署:简单而强大

OpenMemory MCP 采用 Docker 容器化部署,让安装和维护变得异常简单。整个系统包含三个主要组件:

services:
  # 向量数据库:存储和检索记忆
mem0_store:
    image:qdrant/qdrant
    ports:
      -"6333:6333"
    volumes:
      -mem0_storage:/mem0/storage

# MCP服务器:提供记忆操作API
openmemory-mcp:
    image:mem0/openmemory-mcp
    build:api/
    environment:
      -USER
      -API_KEY
    ports:
      -"8765:8765"

# 用户界面:管理和查看记忆
openmemory-ui:
    image:mem0/openmemory-ui:latest
    ports:
      - "3000:3000"

这种容器化设计不仅让部署变得简单,还确保了各组件之间的隔离和独立更新,提高了整个系统的可维护性和稳定性。

实际应用:OpenMemory MCP 如何改变你的工作方式

OpenMemory MCP 不只是一个技术概念,它能在多种实际场景中显著提升你的工作效率:

跨工具项目开发

想象一下这样的工作流:早上你用 Claude Desktop 规划项目需求,中午在 Cursor 中编写代码,下午用 Windsurf 调试问题。有了 OpenMemory MCP,这些工具都能访问同一份项目记忆,你不再需要重复解释项目背景、技术选型或特定需求。

AI 助手能够记住你之前的决策和偏好,无论你使用哪个工具,都能提供连贯一致的帮助。这就像有一个了解你整个项目的虚拟助手,在不同场景下以不同形式出现,但核心记忆始终保持一致。

个人偏好无缝传递

你是否厌倦了在每个新工具中重复设置你的代码风格、文档格式或沟通语气偏好?有了 OpenMemory MCP,你只需在一个工具中设置一次,其他工具就能自动获取这些偏好。

比如,你告诉 Cursor 你喜欢使用特定的代码注释风格,当你切换到 Windsurf 时,它已经知道这一点,并自动应用相同的风格,无需你再次说明。

项目知识库

对于复杂项目,背景知识和上下文信息往往分散在各种文档和对话中。OpenMemory MCP 可以作为你的项目知识库,集中存储关键信息,并在需要时智能提取。

无论你使用哪个 AI 工具,它都能访问这个统一的知识库,为你提供一致的项目支持。这就像给所有 AI 工具配备了同一本项目百科全书,让它们能够基于相同的知识基础为你服务。

性能与效率:数据说话

基于 Mem0 的记忆系统在性能方面表现出色。与 OpenAI 的记忆解决方案相比,它实现了:

  • • 26%更高的响应准确率:更准确地理解和应用历史上下文
  • • 91%更低的延迟:几乎实时的记忆检索速度
  • • 90%的 token 使用量节省:大幅降低 API 调用成本

这些数据意味着 OpenMemory MCP 不仅提供了更好的用户体验,还能显著降低使用成本,特别是在大规模应用场景中。

开始使用:简单三步走

想体验 OpenMemory MCP 的强大功能?只需三步:

  1. 1. 运行安装命令:
curl -sL https://raw.githubusercontent.com/mem0ai/mem0/main/openmemory/run.sh | bash
  1. 2. 设置 OpenAI API 密钥:
export OPENAI_API_KEY=your_api_key
  1. 3. 访问界面:
  • • OpenMemory MCP 服务器:http://localhost:8765
  • • OpenMemory UI:http://localhost:3000

就这么简单!现在你的 AI 工具已经拥有了共享记忆的能力。

未来展望:记忆只是开始

OpenMemory MCP 代表了 AI 记忆管理的新方向,但这仅仅是开始。随着更多工具和平台支持 MCP 协议,我们可以期待:

  • • 更丰富的记忆类型和关系模型
  • • 更智能的记忆提取和整合算法
  • • 更精细的隐私控制和访问管理
  • • 跨设备的记忆同步与备份

通过标准化记忆操作并保持数据在本地,OpenMemory MCP 不仅提高了性能,还为 AI 工具间的深度协作铺平了道路。

结语:你的记忆,你的掌控

在 AI 工具日益普及的今天,OpenMemory MCP 解决了一个关键问题:如何让 AI 真正记住对你重要的事情,同时保持这些记忆的私密性和可控性。

它让你的 AI 记忆保持私密、可移植,并完全在你的控制之下——就像它们本应该的那样。无论你是开发者、研究人员还是 AI 工具的日常用户,OpenMemory MCP 都能为你提供更智能、更连贯、更个性化的 AI 交互体验。

 

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询