偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何通過(guò) OpenMemory MCP 增強(qiáng)客戶(hù)端的上下文感知能力

人工智能
今天,我們將介紹?OpenMemory MCP,一個(gè)基于 Mem0(AI 代理的記憶層)構(gòu)建的私有、本地優(yōu)先的記憶層。它支持跨 MCP 兼容客戶(hù)端(如 Cursor、Claude Desktop、Windsurf、Cline 等)實(shí)現(xiàn)持久化、上下文感知的 AI。

人工智能(AI)技術(shù)發(fā)展迅速,大型語(yǔ)言模型(LLMs)極大地簡(jiǎn)化了許多任務(wù)。然而,它們面臨一個(gè)基本限制:會(huì)話(huà)之間無(wú)法保留記憶。

圖片圖片

如果能夠擁有一個(gè)本地的、便攜的 LLM “記憶層”,完全掌控您的數(shù)據(jù),會(huì)怎樣呢?

今天,我們將介紹 OpenMemory MCP,一個(gè)基于 Mem0(AI 代理的記憶層)構(gòu)建的私有、本地優(yōu)先的記憶層。它支持跨 MCP 兼容客戶(hù)端(如 Cursor、Claude Desktop、Windsurf、Cline 等)實(shí)現(xiàn)持久化、上下文感知的 AI。

本指南將詳細(xì)說(shuō)明如何安裝、配置和運(yùn)行 OpenMemory MCP 服務(wù)器,同時(shí)涵蓋其內(nèi)部架構(gòu)、流程、底層組件以及實(shí)際應(yīng)用案例和示例。

涵蓋內(nèi)容

簡(jiǎn)而言之,本文將詳細(xì)探討以下主題:

?什么是 OpenMemory MCP 服務(wù)器及其重要性??逐步設(shè)置和運(yùn)行 OpenMemory 的指南。?儀表板可用功能(及其背后的技術(shù))。?安全性、訪(fǎng)問(wèn)控制和架構(gòu)概述。?實(shí)際應(yīng)用案例及示例。

一、什么是 OpenMemory 及其重要性?

OpenMemory MCP 是一個(gè)為 MCP 客戶(hù)端設(shè)計(jì)的私有、本地記憶層。它提供了存儲(chǔ)、管理和跨平臺(tái)利用 AI 記憶的基礎(chǔ)設(shè)施,同時(shí)確保所有數(shù)據(jù)存儲(chǔ)在本地系統(tǒng)上。

簡(jiǎn)單來(lái)說(shuō),它是一個(gè)基于向量的記憶層,適用于使用標(biāo)準(zhǔn) MCP 協(xié)議的任何 LLM 客戶(hù)端,并與 Mem0 等工具無(wú)縫協(xié)作。

核心功能:

?跨會(huì)話(huà)存儲(chǔ)和調(diào)用任意文本片段(記憶),確保 AI 無(wú)需從零開(kāi)始。

?底層使用向量存儲(chǔ)(Qdrant)進(jìn)行基于相關(guān)性的檢索,而非僅限于關(guān)鍵詞匹配。

?完全運(yùn)行在您的基礎(chǔ)設(shè)施上(Docker + Postgres + Qdrant),數(shù)據(jù)不會(huì)外傳。

?支持在應(yīng)用或記憶級(jí)別暫停或撤銷(xiāo)客戶(hù)端訪(fǎng)問(wèn)權(quán)限,并為每次讀寫(xiě)操作生成審計(jì)日志。

?提供儀表板(基于 Next.js 和 Redux),展示誰(shuí)在讀寫(xiě)記憶以及狀態(tài)變更歷史。

工作原理(基本流程)

核心流程如下:

1.通過(guò)單一 docker-compose 命令啟動(dòng) OpenMemory(API、Qdrant、Postgres)。

2.API 進(jìn)程托管一個(gè)使用 Mem0 的 MCP 服務(wù)器,通過(guò) SSE(Server-Sent Events)支持標(biāo)準(zhǔn) MCP 協(xié)議。

3.LLM 客戶(hù)端通過(guò) SSE 流連接到 OpenMemory 的 /mcp/... 端點(diǎn),調(diào)用 add_memories()、search_memory() 或 list_memories() 等方法。

4.向量索引、審計(jì)日志和訪(fǎng)問(wèn)控制等其他功能由 OpenMemory 服務(wù)自動(dòng)處理。

您可以觀(guān)看官方演示并在 mem0.ai/openmemory-mcp[1] 上了解更多!

二、逐步設(shè)置和運(yùn)行 OpenMemory

本節(jié)將指導(dǎo)您如何在本地設(shè)置和運(yùn)行 OpenMemory。

項(xiàng)目包含兩個(gè)主要組件:

?api/ - 后端 API 和 MCP 服務(wù)器?ui/ - 前端 React 應(yīng)用程序(儀表板)

步驟 1:系統(tǒng)要求

在開(kāi)始之前,請(qǐng)確保您的系統(tǒng)已安裝以下內(nèi)容,并附上文檔鏈接以便參考:

?Docker 和 Docker Compose?Python 3.9+ — 后端開(kāi)發(fā)所需

?Node.js — 前端開(kāi)發(fā)所需?OpenAI API 密鑰 — 用于 LLM 交互?GNU Make — 構(gòu)建自動(dòng)化工具,用于設(shè)置過(guò)程

請(qǐng)確保 Docker Desktop 已運(yùn)行,然后繼續(xù)下一步。

步驟 2:克隆倉(cāng)庫(kù)并設(shè)置 OpenAI API 密鑰

通過(guò)以下命令克隆位于 github.com/mem0ai/mem0[2] 的倉(cāng)庫(kù):

git clone https://github.com/mem0ai/mem0.git
cd openmemory

接下來(lái),將您的 OpenAI API 密鑰設(shè)置為環(huán)境變量:

export OPENAI_API_KEY=your_api_key_here

圖片圖片

注意:此命令僅為當(dāng)前終端會(huì)話(huà)設(shè)置密鑰,關(guān)閉終端窗口后失效。

圖片圖片

步驟 3:設(shè)置后端

后端運(yùn)行在 Docker 容器中。在根目錄運(yùn)行以下命令啟動(dòng)后端:

# 復(fù)制環(huán)境文件并編輯以更新 OPENAI_API_KEY 和其他密鑰
make env


# 構(gòu)建所有 Docker 鏡像
make build


# 啟動(dòng) Postgres、Qdrant 和 FastAPI/MCP 服務(wù)器
make up

.env.local 文件遵循以下格式:

OPENAI_API_KEY=your_api_key

圖片圖片

圖片圖片


設(shè)置完成后,API 將在 http://localhost:8000 上運(yùn)行。您可以在 Docker Desktop 中查看運(yùn)行中的容器。

圖片

以下是一些其他有用的后端命令:

# 運(yùn)行數(shù)據(jù)庫(kù)遷移
make migrate


# 查看日志
make logs


# 進(jìn)入 API 容器 shell
make shell


# 運(yùn)行測(cè)試
make test


# 停止服務(wù)
make down

步驟 4:設(shè)置前端

前端是一個(gè) Next.js 應(yīng)用程序。啟動(dòng)前端只需運(yùn)行:

# 使用 pnpm 安裝依賴(lài)并運(yùn)行 Next.js 開(kāi)發(fā)服務(wù)器
make ui

圖片圖片

安裝成功后,訪(fǎng)問(wèn) http://localhost:3000 查看 OpenMemory 儀表板,儀表板將指導(dǎo)您在 MCP 客戶(hù)端中安裝 MCP 服務(wù)器。

儀表板界面如下所示:

圖片圖片

MCP 客戶(hù)端通過(guò) SSE 通道連接到 GET /mcp/{client_name}/sse/{user_id},綁定兩個(gè)上下文變量(user_id 和 client_name)。

在儀表板中,您將找到基于您選擇的客戶(hù)端(如 Cursor、Claude、Cline、Windsurf)的一行安裝命令。例如,在 Cursor 中安裝的命令如下:

npx install-mcp i https://mcp.openmemory.ai/xyz_id/sse --client cursor

如果尚未安裝 install-mcp,系統(tǒng)會(huì)提示您安裝,然后您只需為服務(wù)器提供一個(gè)名稱(chēng)。

注意:上述為示例命令,請(qǐng)忽略具體內(nèi)容。打開(kāi) Cursor 設(shè)置,在側(cè)邊欄檢查 MCP 選項(xiàng)以驗(yàn)證連接。

圖片圖片

在 Cursor 中打開(kāi)新聊天,輸入類(lèi)似“我希望它記住我的 GitHub 簡(jiǎn)介信息”的提示。這將觸發(fā) add_memories() 調(diào)用并存儲(chǔ)記憶。刷新儀表板,進(jìn)入“Memories”選項(xiàng)卡查看所有記憶。

圖片圖片

記憶會(huì)自動(dòng)分類(lèi)(通過(guò) GPT-4o 分類(lèi)),作為可選標(biāo)簽。

圖片圖片

您還可以連接其他 MCP 客戶(hù)端,如 Windsurf。

圖片圖片

每個(gè) MCP 客戶(hù)端可調(diào)用以下四種標(biāo)準(zhǔn)記憶操作:

?add_memories(text) → 將文本存儲(chǔ)在 Qdrant,插入/更新 Memory 行和審計(jì)條目?search_memory(query) → 嵌入查詢(xún),運(yùn)行向量搜索(帶可選 ACL 過(guò)濾),記錄每次訪(fǎng)問(wèn)?list_memories() → 檢索用戶(hù)的所有存儲(chǔ)向量(按 ACL 過(guò)濾)并記錄列表操作?delete_all_memories() → 清除所有記憶

所有響應(yīng)通過(guò)同一 SSE 連接流式傳輸。儀表板顯示所有活動(dòng)連接、訪(fǎng)問(wèn)記憶的應(yīng)用程序以及讀寫(xiě)詳情。

圖片圖片

三、儀表板功能(及其背后的技術(shù))

OpenMemory 儀表板包含三個(gè)主要路由:

?/ – 儀表板首頁(yè)?/memories – 查看和管理存儲(chǔ)的記憶?/apps – 查看連接的應(yīng)用程序

以下是儀表板提供的主要功能概覽:

1) 安裝 OpenMemory 客戶(hù)端

?獲取您的唯一 SSE 端點(diǎn)或使用一行安裝命令。?在 MCP Link 和不同客戶(hù)端選項(xiàng)卡(Claude、Cursor、Cline 等)之間切換。

2) 查看記憶和應(yīng)用統(tǒng)計(jì)

?查看存儲(chǔ)的記憶數(shù)量。?查看連接的應(yīng)用程序數(shù)量。

?輸入任意文本以實(shí)時(shí)搜索所有記憶(去抖動(dòng)處理)。

?相關(guān)代碼位于 ui/components/dashboard/Stats.tsx,功能包括:

?從 Redux 讀?。?/span>profile.totalMemories、profile.totalAppsprofile.apps[])。?在掛載時(shí)調(diào)用 useStats().fetchStats() 填充存儲(chǔ)。

?渲染“總記憶數(shù)”和“連接的應(yīng)用總數(shù)”,顯示最多 4 個(gè)應(yīng)用圖標(biāo)。

圖片圖片

3) 刷新或手動(dòng)創(chuàng)建記憶

?刷新按鈕:重新調(diào)用當(dāng)前路由的相應(yīng)獲取器。?創(chuàng)建記憶按鈕:打開(kāi) CreateMemoryDialog 模態(tài)框。

圖片圖片

4) 過(guò)濾面板

?可選擇:?包含哪些應(yīng)用?包含哪些類(lèi)別?是否顯示歸檔項(xiàng)目?按哪列排序(記憶、應(yīng)用名稱(chēng)、創(chuàng)建時(shí)間)?一鍵清除所有過(guò)濾器。

圖片圖片


5) 檢查和管理單個(gè)記憶

?點(diǎn)擊任意記憶可:

圖片圖片

?歸檔、暫停、恢復(fù)或刪除記憶?查看訪(fǎng)問(wèn)日志和相關(guān)記憶?支持選擇多個(gè)記憶并執(zhí)行批量操作。

圖片圖片

??? 背后技術(shù):關(guān)鍵組件

以下是涉及的主要前端組件:

?ui/app/memories/components/MemoryFilters.tsx:處理搜索輸入、過(guò)濾對(duì)話(huà)框觸發(fā)器、批量操作(如歸檔/暫停/刪除),并管理行選擇狀態(tài)。

?ui/app/memories/components/MemoriesSection.tsx:加載、分頁(yè)和顯示記憶列表的主容器。

?ui/app/memories/components/MemoryTable.tsx:渲染記憶表格(ID、內(nèi)容、客戶(hù)端、標(biāo)簽、創(chuàng)建日期、狀態(tài))。每行通過(guò) MemoryActions 提供操作(編輯、刪除、復(fù)制鏈接)。

?狀態(tài)管理和 API 調(diào)用使用以下鉤子:

?useStats.ts:加載高級(jí)統(tǒng)計(jì)數(shù)據(jù),如總記憶數(shù)和應(yīng)用數(shù)。

?useMemoriesApi.ts:處理記憶的獲取、刪除和更新。

?useAppsApi.ts:檢索應(yīng)用信息和每個(gè)應(yīng)用的記憶詳情。

?useFiltersApi.ts:支持獲取類(lèi)別和更新過(guò)濾器狀態(tài)。

這些組件共同打造了一個(gè)響應(yīng)式、實(shí)時(shí)的儀表板,讓您完全掌控 AI 記憶層。

四、安全性、訪(fǎng)問(wèn)控制和架構(gòu)概述

在處理 MCP 協(xié)議或任何 AI 代理系統(tǒng)時(shí),安全性至關(guān)重要。以下是簡(jiǎn)要討論。

安全性

OpenMemory 遵循隱私優(yōu)先原則,所有記憶數(shù)據(jù)存儲(chǔ)在您的本地基礎(chǔ)設(shè)施中,使用 Docker 化的組件(FastAPI、Postgres、Qdrant)。

敏感輸入通過(guò) SQLAlchemy 的參數(shù)綁定安全處理,防止注入攻擊。每次記憶交互(添加、檢索、狀態(tài)變更)都會(huì)通過(guò) MemoryStatusHistory 和 MemoryAccessLog 表記錄以確??勺匪菪?。

雖然未內(nèi)置認(rèn)證,但所有端點(diǎn)需要 user_id,并可通過(guò)外部認(rèn)證網(wǎng)關(guān)(如 OAuth 或 JWT)保護(hù)。

FastAPI 的 CORS 在本地/開(kāi)發(fā)環(huán)境中為開(kāi)放狀態(tài)(allow_origins=["*"]),但在生產(chǎn)環(huán)境中,您應(yīng)收緊此設(shè)置以限制僅信任客戶(hù)端訪(fǎng)問(wèn)。

訪(fǎng)問(wèn)控制

OpenMemory 注重細(xì)粒度訪(fǎng)問(wèn)控制。access_controls 表定義了應(yīng)用與特定記憶之間的允許/拒絕規(guī)則。

這些規(guī)則通過(guò) check_memory_access_permissions 函數(shù)強(qiáng)制執(zhí)行,考慮記憶狀態(tài)(活動(dòng)、暫停等)、應(yīng)用活動(dòng)狀態(tài)(is_active)和 ACL 規(guī)則。

在實(shí)踐中,您可以暫停整個(gè)應(yīng)用(禁用寫(xiě)入)、歸檔或暫停單個(gè)記憶,或按類(lèi)別或用戶(hù)應(yīng)用過(guò)濾器。暫?;蚍腔顒?dòng)條目對(duì)工具訪(fǎng)問(wèn)和搜索不可見(jiàn)。這種分層訪(fǎng)問(wèn)模型確保您可以自信地控制記憶訪(fǎng)問(wèn)。

圖片圖片

架構(gòu)

以下是系統(tǒng)架構(gòu)的簡(jiǎn)要概述,更多詳情可參考代碼庫(kù):

1.后端(FastAPI + FastMCP over SSE)?提供 REST 接口(/api/v1/memories/api/v1/apps、/api/v1/stats)和 MCP “工具”接口(/mcp/messages/mcp/sse/<client>/<user>),代理通過(guò) SSE 調(diào)用 add_memories、search_memory、list_memories。?連接 Postgres 存儲(chǔ)關(guān)系元數(shù)據(jù),連接 Qdrant 進(jìn)行向量搜索。2.向量存儲(chǔ)(通過(guò) mem0 客戶(hù)端的 Qdrant)?所有記憶在 Qdrant 中進(jìn)行語(yǔ)義索引,查詢(xún)時(shí)應(yīng)用用戶(hù)和應(yīng)用特定過(guò)濾器。3.關(guān)系元數(shù)據(jù)(SQLAlchemy + Alembic)?跟蹤用戶(hù)、應(yīng)用、記憶條目、訪(fǎng)問(wèn)日志、類(lèi)別和訪(fǎng)問(wèn)控制。?Alembic 管理架構(gòu)遷移。?默認(rèn)數(shù)據(jù)庫(kù)為 SQLite(openmemory.db),但可通過(guò) DATABASE_URL 指向 Postgres。4.前端儀表板(Next.js)?Redux 提供實(shí)時(shí)可觀(guān)察性界面。?Hooks + Redux Toolkit 管理狀態(tài),Axios 與 FastAPI 端點(diǎn)通信。?使用 Recharts 實(shí)現(xiàn)實(shí)時(shí)圖表、輪播和 React Hook Form 處理表單。5.基礎(chǔ)設(shè)施與開(kāi)發(fā)工作流?docker-compose.ymlapi/docker-compose.yml)包含 Qdrant 服務(wù)和 API 服務(wù)。?Makefile 提供遷移、測(cè)試、熱重載的快捷方式。?測(cè)試與后端邏輯共存(通過(guò) pytest)。

這些組件共同打造了一個(gè)自托管的 LLM 記憶平臺(tái):

?? 在關(guān)系數(shù)據(jù)庫(kù)和向量索引中存儲(chǔ)和版本化聊天記憶?? 通過(guò)每個(gè)應(yīng)用的 ACL 和狀態(tài)轉(zhuǎn)換(活動(dòng)/暫停/歸檔)保護(hù)數(shù)據(jù)?? 通過(guò) Qdrant 進(jìn)行語(yǔ)義搜索?? 通過(guò)豐富的 Next.js UI 觀(guān)察和控制

五、實(shí)際應(yīng)用案例及示例

熟悉 OpenMemory 后,您會(huì)發(fā)現(xiàn)它可用于任何需要 AI 跨交互記憶的場(chǎng)景,從而實(shí)現(xiàn)高度個(gè)性化。

以下是一些高級(jí)和創(chuàng)造性的使用方式:

? 多代理研究助手與記憶層

想象構(gòu)建一個(gè)工具,其中不同 LLM 代理專(zhuān)注于不同研究領(lǐng)域(例如,一個(gè)處理學(xué)術(shù)論文,一個(gè)處理 GitHub 倉(cāng)庫(kù),另一個(gè)處理新聞)。每個(gè)代理通過(guò) add_memories(text) 存儲(chǔ)其發(fā)現(xiàn),主代理隨后通過(guò) search_memory(query) 檢索所有先前結(jié)果。

技術(shù)流程

?每個(gè)子代理為 MCP 客戶(hù)端:?將檢索數(shù)據(jù)的摘要添加到 OpenMemory。?使用 GPT 自動(dòng)分類(lèi)為記憶添加標(biāo)簽。?主代理打開(kāi) SSE 通道,使用 search_memory("最新擴(kuò)散模型論文") 提取相關(guān)上下文。?儀表板顯示每個(gè)代理存儲(chǔ)的內(nèi)容,您可通過(guò) ACL 限制代理間的記憶訪(fǎng)問(wèn)。

提示:可添加 LangGraph 編排層,每個(gè)代理作為一個(gè)節(jié)點(diǎn),跟蹤記憶的寫(xiě)入/讀取,可視化每個(gè)研究線(xiàn)程的知識(shí)流和來(lái)源。

? 具有跨會(huì)話(huà)持久記憶的智能會(huì)議助手

可構(gòu)建一個(gè)會(huì)議記錄工具(支持 Zoom、Google Meet 等),功能包括:

?通過(guò) LLM 提取摘要。?跨會(huì)議記憶行動(dòng)項(xiàng)。?在未來(lái)會(huì)議中自動(dòng)檢索相關(guān)上下文。

技術(shù)流程

?每次會(huì)議后通過(guò) add_memories(text) 存儲(chǔ)會(huì)議記錄和行動(dòng)項(xiàng)。?下次會(huì)議前運(yùn)行 search_memory("Project X 的未完成項(xiàng)")。?相關(guān)記憶(按適當(dāng)類(lèi)別標(biāo)記)顯示在 UI 中,審計(jì)日志跟蹤記憶的讀取時(shí)間和內(nèi)容。

提示:與 Google Drive、Notion、GitHub 等工具集成,存儲(chǔ)的行動(dòng)項(xiàng)可鏈接到實(shí)時(shí)文檔和任務(wù)。

? 隨使用進(jìn)化的代理編碼助手

您的 CLI 編碼助手可通過(guò)存儲(chǔ)使用模式、常見(jiàn)問(wèn)題、編碼偏好和項(xiàng)目特定提示來(lái)學(xué)習(xí)您的工作方式。

技術(shù)流程

?當(dāng)您詢(xún)問(wèn)“為什么我的 SQLAlchemy 查詢(xún)失敗?”,助手通過(guò) add_memories 存儲(chǔ)錯(cuò)誤和修復(fù)。?下次您輸入“再次遇到 SQLAlchemy 連接問(wèn)題”,助手自動(dòng)運(yùn)行 search_memory("sqlalchemy join issue") 檢索先前修復(fù)。?通過(guò) /memories 儀表板檢查所有存儲(chǔ)記憶,暫停過(guò)時(shí)或錯(cuò)誤的記憶。

提示:可連接到 codemod 工具(如 jscodeshift),根據(jù)存儲(chǔ)的偏好自動(dòng)重構(gòu)代碼,隨代碼庫(kù)發(fā)展而演進(jìn)。

在上述案例中,OpenMemory 的向量搜索(用于語(yǔ)義召回)、關(guān)系元數(shù)據(jù)(用于審計(jì)/日志記錄)和實(shí)時(shí)儀表板(用于可觀(guān)察性和即時(shí)訪(fǎng)問(wèn)控制)讓您能夠構(gòu)建上下文感知的應(yīng)用程序,感覺(jué)就像它們擁有記憶。

現(xiàn)在,您的 MCP 客戶(hù)端擁有真正的記憶能力。

您可以跟蹤每次訪(fǎng)問(wèn)、暫停所需內(nèi)容并在一個(gè)儀表板中審計(jì)所有操作。最棒的是,所有內(nèi)容都存儲(chǔ)在您的本地系統(tǒng)上。

References

[1] mem0.ai/openmemory-mcp: https://mem0.ai/openmemory-mcp

[2] github.com/mem0ai/mem0: https://github.com/mem0ai/mem0

責(zé)任編輯:武曉燕 來(lái)源: AI大模型觀(guān)察站
相關(guān)推薦

2025-04-01 08:38:25

模型上下文協(xié)議MCPLLM

2025-03-18 08:14:05

2025-03-18 09:10:00

MCPAI模型上下文協(xié)議

2022-09-14 13:13:51

JavaScript上下文

2025-08-07 09:07:21

2017-05-11 14:00:02

Flask請(qǐng)求上下文應(yīng)用上下文

2024-09-05 08:24:09

2023-09-16 13:47:47

人工智能數(shù)據(jù)

2025-01-08 11:10:46

2022-09-15 08:01:14

繼承基礎(chǔ)設(shè)施基礎(chǔ)服務(wù)

2014-10-24 08:58:21

初志科技云存儲(chǔ)

2025-03-18 10:34:33

2024-03-14 08:11:45

模型RoPELlama

2025-05-08 07:38:36

模型上下文協(xié)議MCPAI模型

2025-03-26 03:00:00

MCPAI應(yīng)用

2025-05-20 02:11:00

2025-04-07 05:01:00

MCP上下文協(xié)議LLM?

2012-12-31 10:01:34

SELinuxSELinux安全

2025-10-14 01:55:00

AI應(yīng)用上下文工程機(jī)器人

2025-08-07 08:00:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)