OpenMemory 总览与迁移
OpenMemory 概览与迁移
相关源文件
本章引用的主要源码文件:
openmemory/Makefileopenmemory/README.mdopenmemory/api/.env.exampleopenmemory/api/README.mdopenmemory/docker-compose.ymlopenmemory/ui/.env.exampleopenmemory/ui/Dockerfileopenmemory/ui/store/profileSlice.tsscripts/oss-to-platform-migrate.shtests/test_oss_to_platform_migrate.py
OpenMemory 是 Mem0 生态系统中早期的本地优先部署模型,旨在为大语言模型(LLM)提供私有、可移植且开源的记忆层 openmemory/README.md:1-5。它内置了模型上下文协议(MCP)服务器和基于 React 的专用用户界面,用于在本地管理记忆 openmemory/README.md:144-148。
OpenMemory 现已废弃,并已被统一的 Mem0 自托管服务器 所取代 openmemory/README.md:3-3。本文档记录了旧版架构以供历史参考,并提供了迁移到现代自托管基础设施的说明。
系统架构
OpenMemory 架构遵循容器化的客户端-服务器模型。它使用 Docker Compose 来编排三个主要组件:向量数据库(Qdrant)、作为 MCP 服务器的 FastAPI 后端,以及 Next.js 前端 openmemory/docker-compose.yml:1-34。
组件关系图
下图展示了旧版 OpenMemory 组件与外部 LLM 提供商之间的交互关系。
OpenMemory 旧版流程
来源:openmemory/docker-compose.yml:1-34、openmemory/api/README.md:1-4、openmemory/README.md:119-122
技术实现细节
| 组件 | 代码实体/服务 | 用途 |
|---|---|---|
| 后端 | openmemory-mcp | FastAPI 应用程序,作为核心逻辑层和 MCP 服务器 openmemory/docker-compose.yml:8-10。 |
| 前端 | openmemory-ui | React/Next.js 应用程序,用于记忆可视化和管理 openmemory/docker-compose.yml:24-30。 |
| 向量存储 | mem0_store | Qdrant 实例,用于存储和搜索高维记忆嵌入向量 openmemory/docker-compose.yml:2-3。 |
| 关系存储 | openmemory.db | 通过 SQLAlchemy 和 Alembic 管理的 SQLite 数据库,用于元数据和配置 openmemory/api/README.md:43-51、openmemory/Makefile:34-34。 |
旧版配置
OpenMemory 严重依赖于在 api/ 和 ui/ 目录下的 .env 文件中定义的环境变量。
LLM 和嵌入器设置
默认情况下,系统会使用 OpenAI 的 gpt-4o-mini 和 text-embedding-3-small openmemory/README.md:74-88。不过,它也支持通过 Ollama 使用本地替代方案。
代码实体映射:自然语言到配置
来源:openmemory/api/.env.example:1-16、openmemory/README.md:78-89
废弃与迁移
OpenMemory 已被 Mem0 自托管服务器 所取代,后者提供了更强大的仪表盘、改进的多租户支持以及与核心 mem0 包更好的集成。
迁移脚本和工具
仓库中包含一个迁移脚本 oss-to-platform-migrate.sh,该脚本执行基于 Python 的迁移逻辑,将数据从本地实例迁移到平台或更新的自托管结构中 scripts/oss-to-platform-migrate.sh:1-10。此脚本处理匿名 ID 解析和遥测别名设置 scripts/oss-to-platform-migrate.sh:95-108。
迁移步骤
要从旧版 OpenMemory 安装迁移到当前的自托管服务器:
- 停止旧版服务:使用 Makefile 关闭现有容器并移除卷
openmemory/Makefile:32-34。
make down
- 导航到服务器目录:新的自托管逻辑位于
server/目录下openmemory/README.md:3-3。 - 引导新服务器:使用引导命令初始化现代环境。
cd server && make bootstrap
功能对比:OpenMemory 与自托管服务器
| 功能 | OpenMemory(旧版) | Mem0 自托管(现代) |
|---|---|---|
| 主要接口 | MCP 服务器 / 基础 UI | 高级仪表盘 / REST API |
| 部署方式 | Docker Compose openmemory/docker-compose.yml:1-34 | 带统一认证的 Docker Compose |
| 认证模型 | 基于环境的 USER openmemory/api/.env.example:2-2 | 基于 JWT 的仪表盘认证 |
| 状态管理 | Redux (profileSlice.ts) openmemory/ui/store/profileSlice.ts:21-23 | 统一的服务端状态 |
来源:openmemory/README.md:3-3、openmemory/Makefile:29-34、openmemory/ui/store/profileSlice.ts:1-20、scripts/oss-to-platform-migrate.sh:1-40
旧版 MCP 客户端设置
对于仍在使用旧版系统的用户,OpenMemory MCP 服务器通常通过特定的 SSE(服务器发送事件)端点结构连接到客户端: http://localhost:8765/mcp/<client-name>/sse/<user-id> openmemory/README.md:135-141。
这使得外部 LLM 客户端能够通过标准的模型上下文协议与本地记忆存储进行交互。
来源:openmemory/README.md:135-141、openmemory/api/README.md:3-4