跳转到内容

06-Mem0 的 OpenMemory 全栈记忆平台

Mem0 的 OpenMemory 全栈记忆平台

学习目标

本章分析 OpenMemory 如何提供完整的记忆管理平台,包括后端 API、前端 UI 和 MCP Server 集成。你将了解:

  • OpenMemory 的整体架构与技术栈
  • FastAPI 后端 + MCP Server 的实现
  • Next.js 15 前端与 API 的交互
  • MCP 协议在记忆管理中的应用

前置知识

本章涉及 MCP 协议的通用原理,建议先阅读:

下文假设你已理解 MCP 的基本概念,直接聚焦 OpenMemory 的具体实现。

项目实践

整体架构

组件技术栈用途
APIFastAPI + Alembic记忆 CRUD + MCP Server
UINext.js 15 + React 19 + Radix UI + TailwindCSS可视化记忆管理
向量存储Qdrant记忆向量化存储与检索

API 层

OpenMemory 的 API 层同时提供 REST API 和 MCP Server:

REST API:标准的 CRUD 端点,供前端 UI 调用。

MCP Server:通过 Model Context Protocol 暴露记忆管理工具:

MCP 工具用途
add_memory添加新记忆
search_memories搜索记忆
get_memories获取记忆列表
get_memory获取单条记忆
update_memory更新记忆
delete_memory删除记忆
delete_all_memories删除所有记忆
delete_entities删除实体
list_entities列出实体

AI 编辑器(Claude Code、Cursor)通过 MCP 协议连接到 OpenMemory Server,直接在编码过程中管理记忆。

UI 层

前端技术栈:

  • Next.js 15:服务端渲染 + App Router
  • React 19:最新 React 特性
  • Radix UI:无障碍的 UI 组件
  • Redux Toolkit:状态管理
  • TailwindCSS:样式
  • Recharts:数据可视化

Docker Compose 启动

Terminal window
cd openmemory
docker-compose up
# Qdrant: localhost:6333
# API (MCP): localhost:8765
# UI: localhost:3000

一键启动完整栈:Qdrant 向量存储 + API 服务 + 前端 UI。

与主 Server 的区别

维度主 Server (server/)OpenMemory (openmemory/)
定位API 服务,SDK 的托管版本全栈平台,含 UI 和 MCP
向量存储PostgreSQL/pgvectorQdrant
图谱Neo4j无(使用 Qdrant 做实体链接)
前端Next.js 15 UI
MCP内置 MCP Server
认证内置内置

OpenMemory 是更轻量的自托管方案——只需要 Qdrant,不需要 PostgreSQL + Neo4j。

问题与规避

问题对策
Docker 端口冲突docker-compose.yml 中可自定义端口
Qdrant 连接失败Docker Compose 确保 Qdrant 先启动
MCP 协议版本不兼容使用标准 MCP SDK

设计取舍

为什么 OpenMemory 使用 Qdrant 而非 pgvector?

优势

  • Qdrant 的向量检索性能优于 pgvector
  • Qdrant 支持 payload 过滤,适合实体链接场景
  • 单服务部署(不需要 PostgreSQL)

代价

  • 需要额外的 Qdrant 服务(不像主 Server 内嵌在 PostgreSQL 中)
  • 无法在同一事务中操作关系数据和向量数据

参考来源