OpenMemory MCP :讓 AI 擁有持久記憶相互訪問 Memory
在人工智能迅猛發展的今天,大型語言模型(LLM)已經深刻改變了我們與技術交互的方式。但它們仍面臨一個關鍵短板:遺忘。每次會話結束,一切歸零——就像失憶。
想象一下,如果你的 AI 助手可以記住你曾說過的每一句話,理解你的習慣與偏好,甚至能在不同工具之間共享上下文,那將是怎樣的一次範式轉變?
這正是 OpenMemory MCP 所帶來的突破。本文將帶你深入瞭解這項創新技術,揭示如何爲 AI 工具構建本地持久的 “記憶系統”。
- 讓 AI 擁有記憶的革命性升級
在人工智能迅猛發展的今天,大型語言模型(LLM)已經深刻改變了我們與技術交互的方式。但它們仍面臨一個關鍵短板:遺忘。每次會話結束,一切歸零——就像失憶。
想象一下,如果你的 AI 助手可以記住你曾說過的每一句話,理解你的習慣與偏好,甚至能在不同工具之間共享上下文,那將是怎樣的一次範式轉變?
這正是 OpenMemory MCP 所帶來的突破。它由 Mem0 提供支持,是一款專爲 AI 工具打造的本地優先記憶層,能夠通過 MCP(Model Context Protocol)協議爲 AI 客戶端提供持久化、上下文感知的記憶體驗。OpenMemory 不依賴雲端,每一條記憶都存儲在你的本地系統中,確保數據主權與隱私安全。
與傳統的一問一答式 AI 使用方式不同,OpenMemory MCP 的目標是讓各種兼容工具——如 Cursor、Claude Desktop、Windsurf、Cline 等——在多個會話之間共享上下文,真正實現 “理解你” 的智能助手體驗。它不僅支持通過 SSE(Server-Sent Events)與 AI 客戶端實時通信,還內置了向量搜索、記憶審計、訪問控制等一整套完善的機制,並通過 UI 提供直觀的可視化管理界面。
- 安裝與配置指南
讓我們一步步設置 OpenMemory 並在本地運行它。該項目有兩個主要組件:
-
• api/ - 後端 API 和 MCP 服務器
-
• ui/ - 前端 React 應用 (儀表板)
系統前提條件
在開始之前,確保你的系統已安裝以下軟件:
-
• Docker 和 Docker Compose
-
• Python 3.9+(用於後端開發)
-
• Node.js(用於前端開發)
-
• OpenAI API 密鑰 (用於 LLM 交互)
-
• GNU Make(構建自動化工具)
確保在繼續下一步之前 Docker Desktop 正在運行。
步驟 1:克隆倉庫並設置 OpenAI API 密鑰
# 克隆倉庫
git clone https://github.com/mem0ai/mem0.git
cd openmemory
# 設置OpenAI API密鑰作爲環境變量
export OPENAI_API_KEY=your_api_key_here
export MODEL=your_api_key_here
export OPENAI_BASE_URL =your_api_key_here
這個命令只爲當前終端會話設置密鑰,關閉終端窗口後就會失效。
步驟 2:設置後端
後端在 Docker 容器中運行。在根目錄中運行以下命令:
# 複製環境文件並編輯文件以更新OPENAI_API_KEY和其他密鑰
make env
# 構建所有Docker鏡像
make build
# 啓動Postgres、Qdrant、FastAPI/MCP服務器
make up
.env.local 文件將具有以下格式:
OPENAI_API_KEY=your_api_key
設置完成後,你的 API 將在 http://localhost:8000 上線。你還應該在 Docker Desktop 中看到正在運行的容器。
以下是一些其他有用的後端命令:
# 運行數據庫遷移
make migrate
# 查看日誌
make logs
# 在API容器中打開shell
make shell
# 運行測試
make test
# 停止服務
make down
步驟 3:設置前端
前端是一個 Next.js 應用程序。要啓動它,只需運行:
# 使用npm安裝依賴並運行Next.js開發服務器
make ui-dev
安裝成功後,你可以導航到 http://localhost:3000 查看 OpenMemory 儀表板,它將指導你在 MCP 客戶端中安裝 MCP 服務器。
http://localhost:8765/docs
步驟 4:在 MCP 客戶端中安裝
在儀表板上,你將找到基於你選擇的客戶端 (如 Cursor、Claude、Cline、Windsurf) 的一行安裝 MCP 服務器的命令。例如,在 Cursor 中安裝的命令看起來像這樣:
上圖有問題,2 個參數都沒有生效。成功時應該是
npx install-mcp i http://localhost:8765/mcp/windsurf/sse/ --client windsurf
重啓WindSurf,到WindSurf MCP 配置下面,就會新增一個 MCP。
MCP json 新增了以下內容:
"OpenMemory": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--sse",
"http://localhost:8765/mcp/windsurf/sse/"
]
}
- 使用 OpenMemory MCP:基礎操作
一旦你設置好 OpenMemory MCP,你就可以開始使用它的核心功能。以下是基本操作:
添加記憶
你可以通過 MCP 客戶端使用add_memories工具將信息存儲到 OpenMemory 中。這些記憶將被向量化並存儲在 Qdrant 中,以便後續檢索。
搜索記憶
使用search_memory工具,你可以基於語義相關性搜索存儲的記憶。這比簡單的關鍵詞匹配更強大,因爲它可以找到概念上相關的信息,即使沒有共享相同的詞彙。
列出記憶
list_memories工具允許你查看所有存儲的記憶,幫助你瞭解 AI 助手已經知道什麼。
刪除記憶
如果你需要清除記憶,可以使用delete_all_memories工具。這在你想要重置 AI 助手的上下文或刪除敏感信息時非常有用。
- 說明文檔
http://localhost:8765/docs 這個地址是 api 的說明文檔,
可以在這裏進行簡單的測試。
可以直接使用這些接口進行二次開發,同時,可以使用其官方的 python 包,直接進行 Python 二次開發。
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, user_id=user_id, limit=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-4o-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()
- 最後
現在這個東西只是個半成品,理論非常好,把支持 MCP 的客戶端的記憶上傳至同一存儲地址,讓他們共享 Memory,幾個客戶端相當於可以相互通訊,讓他們負責各種功能的開發,每個時間點用不同的開發工具。
目前來看,還需要基於 SSE 的二次開發,個人或者開發者有後續的更新。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/-9P6YLq6W43tV2d_QfAjgw