Hướng Dẫn Cài Đặt và Sử Dụng OpenMemory MCP Server & API

Ashley Goolam

Ashley Goolam

14 tháng 5 2025

Hướng Dẫn Cài Đặt và Sử Dụng OpenMemory MCP Server & API

Với tư cách là nhà phát triển, bạn đang tìm kiếm các giải pháp bộ nhớ mạnh mẽ, đồng thời đảm bảo quyền riêng tư dữ liệu, khả năng kiểm soát và khả năng tương tác mượt mà giữa các công cụ AI. Xu hướng rõ ràng đang nghiêng về các hệ thống bộ nhớ ưu tiên chạy cục bộ (local-first), tập trung vào nhà phát triển. Khái niệm OpenMemory MCP Server, được hiện thực hóa bởi các công nghệ như framework mã nguồn mở Mem0, đang dẫn đầu sự thay đổi này. Nó cung cấp một lớp bộ nhớ cục bộ, riêng tư, cho phép các tác nhân AI ghi nhớ ngữ cảnh trên các ứng dụng trong khi dữ liệu của bạn vẫn an toàn trên máy của bạn. Hướng dẫn này dành cho các nhà phát triển như bạn. Đây là một hướng dẫn đầy đủ về cách cài đặt các thành phần thiết yếu bằng cách sử dụng Mem0, chạy OpenMemory MCP Server cục bộ của riêng bạn và sử dụng API REST của nó một cách khéo léo để tạo ra các ứng dụng AI thông minh hơn, nhận biết ngữ cảnh.

Hãy bắt đầu mở khóa bộ nhớ AI cục bộ, bền vững.

💡
Bạn muốn một công cụ kiểm thử API tuyệt vời có thể tạo Tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, Tất cả trong Một cho Nhóm Phát triển của bạn làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi yêu cầu của bạn và thay thế Postman với mức giá phải chăng hơn nhiều!
button

Bước 1: Chuẩn bị Môi trường Phát triển của Bạn

Trước khi đi sâu vào cài đặt, điều cần thiết là bạn phải có sẵn các công cụ phát triển cơ bản và hiểu rõ các thành phần cốt lõi mà chúng ta sẽ làm việc cùng. Chúng ta sẽ chủ yếu sử dụng framework mã nguồn mở Mem0 linh hoạt để thiết lập và sau đó tương tác với OpenMemory MCP Server cục bộ của chúng ta. Sự tương tác này sẽ chủ yếu diễn ra thông qua API REST của nó, cung cấp một cách tiêu chuẩn để quản lý bộ nhớ của AI của bạn.

Bạn sẽ cần một môi trường Python gần đây, tốt nhất là phiên bản 3.8 trở lên, để đảm bảo khả năng tương thích hoàn toàn với Mem0 và các phụ thuộc của nó. Bạn có thể tải xuống Python mới nhất từ python.org. Cùng với Python, bạn sẽ cần pip, trình cài đặt gói Python, rất quan trọng để cài đặt Mem0 và thường được đi kèm với các bản cài đặt Python. Thư viện Python mem0ai sẽ là động cơ của chúng ta; bản chất mã nguồn mở của nó cho phép bạn chạy một máy chủ cục bộ mà về cơ bản trở thành OpenMemory MCP Server của bạn. Toàn bộ thiết lập này ưu tiên chạy máy chủ bộ nhớ trên máy cục bộ của bạn, mang lại cho bạn toàn quyền kiểm soát dữ liệu và hoạt động của mình—một nguyên tắc chính của triết lý OpenMemory. Máy chủ sau đó hiển thị các chức năng của nó thông qua API REST, với các điểm cuối để thêm, tìm kiếm và quản lý bộ nhớ phù hợp với các hoạt động tiêu chuẩn được định nghĩa bởi Giao thức Ngữ cảnh Mô hình (Model Context Protocol - MCP).

Mẹo Chuyên nghiệp: Sử dụng môi trường ảo (như venv hoặc conda) là một bước đi thông minh. Nó giúp quản lý các phụ thuộc của dự án và ngăn chặn xung đột với các dự án Python khác.

Bước 2: Cách Cài đặt Framework Mem0

Cài đặt gói mem0ai là bước thực tế đầu tiên để có một máy chủ bộ nhớ AI cục bộ. Điều này được thực hiện bằng một lệnh đơn giản trang bị cho hệ thống của bạn thư viện Mem0 cốt lõi và tất cả các thành phần cần thiết.

Mở terminal của bạn (và kích hoạt môi trường ảo nếu bạn sử dụng). Sau đó, chạy lệnh cài đặt:

pip install mem0ai

Lệnh này cài đặt thư viện mem0ai, bao gồm lớp Memory cốt lõi để quản lý bộ nhớ trực tiếp trong Python. Bạn cũng nhận được hỗ trợ cho nhiều Mô hình Ngôn ngữ Lớn (LLM) và cơ sở dữ liệu vector khác nhau, cộng với các thành phần FastAPI và Uvicorn cần thiết để chạy máy chủ API REST của Mem0. Sau khi cài đặt hoàn tất, bạn có thể xác minh bằng cách kiểm tra phiên bản gói đã cài đặt bằng pip show mem0ai, hoặc bằng cách thử import nhanh trong phiên Python:

import mem0
print(mem0.__version__)

pip cũng tự động xử lý việc cài đặt các phụ thuộc cần thiết như FastAPI (để xây dựng API), Uvicorn (làm máy chủ ASGI) và các thư viện xử lý dữ liệu khác nhau. Với mem0ai đã được cài đặt, bạn có phần mềm nền tảng. Bạn có thể sử dụng thư viện trực tiếp trong các script Python cho các hoạt động bộ nhớ, nhưng đối với khía cạnh "máy chủ" mà các máy khách MCP có thể tương tác, chúng ta sẽ sử dụng chức năng máy chủ tích hợp của nó.

Bước 3: Cách Cấu hình Máy chủ Bộ nhớ Cục bộ của Bạn

Trước khi khởi động máy chủ, bạn có tùy chọn cấu hình phiên bản Mem0 cơ bản của nó. Cấu hình này rất quan trọng vì nó xác định Mô hình Ngôn ngữ Lớn (LLM), cơ sở dữ liệu vector và mô hình nhúng nào sẽ cung cấp năng lượng cho khả năng xử lý và truy xuất bộ nhớ của máy chủ của bạn—về cơ bản, bạn đang tùy chỉnh "bộ não" của nó.

Máy chủ Mem0 (và lớp Memory mà nó được xây dựng dựa trên) chủ yếu được cấu hình bằng các biến môi trường. Đây là một cách tiếp cận linh hoạt cho phép bạn thiết lập backend của mình mà không cần sửa đổi bất kỳ mã nào. Ví dụ, để cấu hình LLM, bạn có thể đặt OPENAI_API_KEY cho OpenAI, ANTHROPIC_API_KEY cho Anthropic, hoặc các biến như MEM0_LLM_PROVIDER="ollama" cho các mô hình cục bộ thông qua Ollama. Tương tự, đối với cơ sở dữ liệu vector, trong khi Mem0 mặc định sử dụng LanceDB (là cục bộ và không yêu cầu thiết lập bổ sung), bạn có thể chỉ định các lựa chọn thay thế như Qdrant bằng cách sử dụng các biến như MEM0_VECTOR_STORE_PROVIDER="qdrant". Cấu hình mô hình nhúng thường liên quan đến nhà cung cấp LLM của bạn nhưng cũng có thể được chỉ định độc lập.

Nếu bạn không đặt bất kỳ biến môi trường cụ thể nào, Mem0 sẽ cố gắng sử dụng các giá trị mặc định hợp lý. Tuy nhiên, nó có thể yêu cầu khóa OpenAI cho LLM mặc định nếu không được chỉ định khác. Những lựa chọn này ảnh hưởng đáng kể đến máy chủ của bạn: LLM ảnh hưởng đến cách bộ nhớ được hiểu, trong khi cơ sở dữ liệu vector ảnh hưởng đến hiệu quả lưu trữ và tốc độ tìm kiếm. Để có danh sách đầy đủ tất cả các biến môi trường có thể cấu hình và các tùy chọn cho các LLM, kho lưu trữ vector và bộ nhúng khác nhau, hãy luôn tham khảo tài liệu chính thức của Mem0.

Mẹo Chuyên nghiệp: Bắt đầu với một thiết lập cục bộ đơn giản (như Ollama cho LLM và LanceDB mặc định). Điều này giúp bạn làm quen với hệ thống. Sau đó, khám phá các thiết lập nâng cao hơn khi nhu cầu của bạn phát triển.

Bước 4: Cách Chạy OpenMemory MCP Server của Bạn

Với mem0ai đã được cài đặt và (tùy chọn) cấu hình theo ý muốn của bạn, giờ đây bạn có thể khởi động quá trình máy chủ cục bộ. Máy chủ này là thứ hiển thị các điểm cuối API REST, cho phép các ứng dụng hoặc script khác thực hiện các hoạt động bộ nhớ.

Gói mem0ai cung cấp một script dòng lệnh tiện lợi để chạy máy chủ. Trong terminal của bạn, chỉ cần gõ:

mem0-server

Bạn cũng có thể chỉ định một host và port tùy chỉnh nếu cần, ví dụ: mem0-server --host 127.0.0.1 --port 8000. Mặc định thường là 0.0.0.0 (tất cả các giao diện mạng khả dụng) trên port 8000. Sau khi khởi động, Uvicorn (máy chủ chạy ứng dụng FastAPI của bạn) sẽ xuất nhật ký ra console, cho biết rằng máy chủ đang chạy và lắng nghe các yêu cầu. Bạn sẽ thấy các thông báo như: INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit).

OpenMemory MCP Server của bạn hiện đang chạy cục bộ! Các máy khách tương thích với MCP, nếu được cấu hình để trỏ đến http://localhost:8000 (hoặc địa chỉ tùy chỉnh của bạn), có thể tương tác với nó. Bạn cũng có thể sử dụng trực tiếp API REST của nó, mà chúng ta sẽ khám phá tiếp theo. Để dừng máy chủ, chỉ cần nhấn CTRL+C trong terminal nơi nó đang chạy. Lệnh mem0-server về cơ bản khởi chạy một máy chủ ASGI Uvicorn, chạy ứng dụng FastAPI được định nghĩa trong Mem0. Ứng dụng này lưu trữ các điểm cuối API REST, và phiên bản đang chạy này chính là OpenMemory MCP Server cục bộ của bạn.

Bước 5: Hiểu Khả năng API của Máy chủ

Máy chủ Mem0 cung cấp một API REST toàn diện cho phép bạn quản lý bộ nhớ AI một cách lập trình. API này tuân thủ các nguyên tắc cốt lõi của Giao thức Ngữ cảnh Mô hình bằng cách cung cấp các cách tiêu chuẩn để thêm, tìm kiếm, liệt kê và xóa thông tin.

API sử dụng các giao thức HTTP/HTTPS tiêu chuẩn, và JSON là định dạng dữ liệu cho cả phần thân yêu cầu và phản hồi. Nếu bạn đang chạy máy chủ cục bộ với cài đặt mặc định, URL cơ sở của bạn sẽ là http://localhost:8000. Các hoạt động cốt lõi có sẵn thông qua API (dựa trên các triển khai API REST của Mem0 điển hình) bao gồm POST /add để lưu trữ thông tin mới, POST /search để truy xuất bộ nhớ liên quan, GET /get_all để liệt kê nhiều bộ nhớ (với các tùy chọn lọc), GET /get để truy xuất một bộ nhớ duy nhất theo ID của nó, PUT /update để sửa đổi một bộ nhớ hiện có, DELETE /delete để xóa một bộ nhớ cụ thể, và DELETE /delete_all để xóa bộ nhớ, có thể được lọc theo người dùng.

Theo mặc định, mem0-server chạy cục bộ không triển khai xác thực, vì nó chủ yếu dành cho phát triển và sử dụng cục bộ. Nếu bạn xem xét triển khai sản xuất hoặc công khai (điều không được khuyến nghị nếu không có các lớp bảo mật bổ sung đáng kể), xác thực sẽ là một khía cạnh quan trọng cần triển khai.

Mẹo Chuyên nghiệp: Bạn thường có thể khám phá API một cách tương tác. Hãy thử truy cập http://localhost:8000/docs trong trình duyệt của bạn sau khi máy chủ đã hoạt động. Máy chủ FastAPI của Mem0 thường cung cấp trang tài liệu hữu ích này thông qua Swagger UI.

Bước 6: Cách Thêm Bộ nhớ bằng API

Điểm cuối /add là công cụ chính của bạn để đưa dữ liệu vào máy chủ bộ nhớ. Nó cho phép bạn lưu trữ thông tin văn bản, liên kết nó với một người dùng cụ thể và bao gồm siêu dữ liệu tùy chọn để tổ chức và truy xuất tốt hơn.

Để sử dụng nó, bạn gửi yêu cầu POST đến điểm cuối /add. Phần thân yêu cầu phải là JSON và bao gồm data (nội dung chuỗi của bộ nhớ), user_id (một định danh cho người dùng liên kết với bộ nhớ này – rất quan trọng để tổ chức và truy xuất bộ nhớ cụ thể của người dùng) và tùy chọn metadata (một đối tượng JSON chứa bất kỳ cặp khóa-giá trị bổ sung nào bạn muốn lưu trữ, như {"source": "chat_log"}).

Đây là một ví dụ sử dụng curl:

curl -X POST http://localhost:8000/add \
-H "Content-Type: application/json" \
-d '{
    "data": "Alice prefers Python for web development.",
    "user_id": "user_alice",
    "metadata": {"topic": "preferences", "language": "Python"}
}'

Và đây là cách bạn có thể làm điều đó với thư viện Python requests:

import requests
import json

url = "http://localhost:8000/add"
payload = {
    "data": "Alice prefers Python for web development.",
    "user_id": "user_alice",
    "metadata": {"topic": "preferences", "language": "Python"}
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, data=json.dumps(payload), headers=headers)
print(response.json())

Máy chủ sẽ phản hồi bằng JSON xác nhận việc thêm, thường bao gồm ID duy nhất của bộ nhớ mới được tạo, ví dụ: {"message": "Memory added successfully", "memory_id": "some-unique-id"}. Mỗi lần gọi đến /add sẽ tạo một bản ghi bộ nhớ mới. user_id rất quan trọng đối với các ứng dụng đa người dùng hoặc phân tách ngữ cảnh, và siêu dữ liệu giúp tăng cường đáng kể khả năng tìm kiếm và tổ chức.

Bước 7: Cách Tìm kiếm Bộ nhớ đã Lưu trữ qua API

Sau khi bộ nhớ được lưu trữ, điểm cuối /search cho phép bạn thực hiện tìm kiếm ngữ nghĩa. Điều này có nghĩa là bạn có thể truy xuất thông tin liên quan đến một truy vấn và ngữ cảnh người dùng nhất định, ngay cả khi các thuật ngữ tìm kiếm của bạn không khớp chính xác với văn bản đã lưu trữ.

Bạn gửi yêu cầu POST đến /search với phần thân JSON chứa chuỗi query, user_id mà bạn muốn tìm kiếm bộ nhớ của họ, và các tham số tùy chọn như filters (để có tiêu chí cụ thể hơn, dựa trên các trường siêu dữ liệu – cấu trúc chính xác phụ thuộc vào cách triển khai của Mem0) và limit (để giới hạn số lượng kết quả tìm kiếm).

Một ví dụ curl trông như thế này:

curl -X POST http://localhost:8000/search \
-H "Content-Type: application/json" \
-d '{
    "query": "What are Alices language preferences?",
    "user_id": "user_alice",
    "limit": 3
}'

Sử dụng Python requests:

import requests
import json

url = "http://localhost:8000/search"
payload = {
    "query": "What are Alices language preferences?",
    "user_id": "user_alice",
    "limit": 3
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, data=json.dumps(payload), headers=headers)
print(response.json())

Phản hồi mong đợi là một mảng JSON gồm các đối tượng bộ nhớ khớp với truy vấn tìm kiếm. Các đối tượng này thường bao gồm nội dung bộ nhớ, siêu dữ liệu của nó và điểm mức độ liên quan cho biết mức độ gần gũi của nó với truy vấn, ví dụ:
[{"id": "some-unique-id", "data": "Alice prefers Python for web development.", ..., "score": 0.85}].

Mẹo Chuyên nghiệp: Sử dụng user_id chính xác trong tìm kiếm là điều cần thiết. Nó đảm bảo rằng người dùng chỉ truy xuất bộ nhớ liên quan của riêng họ, điều này rất quan trọng để duy trì quyền riêng tư và cung cấp trải nghiệm cá nhân hóa.

Bước 8: Cách Truy xuất Bộ nhớ Cụ thể bằng API

Ngoài tìm kiếm, API cung cấp các điểm cuối để liệt kê nhiều bộ nhớ hoặc tìm nạp một bộ nhớ duy nhất, cụ thể bằng định danh duy nhất của nó. Những điều này hữu ích cho việc duyệt qua ngân hàng bộ nhớ hoặc truy cập trực tiếp các thông tin đã biết.

Để liệt kê nhiều bộ nhớ, bạn sử dụng điểm cuối GET /get_all. Bạn có thể truyền các tham số truy vấn như user_id để lọc bộ nhớ theo người dùng, limit để chỉ định số lượng bộ nhớ trả về và page để phân trang nếu có nhiều bộ nhớ. Ví dụ, curl -X GET "http://localhost:8000/get_all?user_id=user_alice&limit=5" sẽ truy xuất 5 bộ nhớ đầu tiên cho "user_alice". Phản hồi sẽ là một mảng JSON gồm các đối tượng bộ nhớ.

Để lấy một bộ nhớ cụ thể, sử dụng GET /get với tham số truy vấn memory_id: curl -X GET "http://localhost:8000/get?memory_id=some-unique-id". Điều này sẽ trả về một đối tượng JSON đại diện cho bộ nhớ đó, hoặc lỗi nếu không tìm thấy.

Đây là cách sử dụng Python requests cho /get_all:

import requests

url = "http://localhost:8000/get_all"
params = {"user_id": "user_alice", "limit": 5}
response = requests.get(url, params=params)
print(response.json())

Điểm cuối /get_all đặc biệt tốt cho các tác vụ quản trị hoặc khi bạn cần duyệt qua bộ nhớ của người dùng. /get là lựa chọn của bạn khi bạn đã có ID của bộ nhớ, có thể từ phản hồi /add hoặc kết quả tìm kiếm trước đó.

Bước 9: Cách Cập nhật và Xóa Bộ nhớ bằng API

Để đảm bảo cơ sở kiến thức của AI của bạn luôn chính xác và phù hợp, API cung cấp các điều khiển cần thiết để cập nhật các bản ghi bộ nhớ hiện có hoặc xóa chúng hoàn toàn.

Để cập nhật một bộ nhớ, gửi yêu cầu PUT đến /update với memory_id làm tham số truy vấn. Phần thân yêu cầu phải là JSON và có thể bao gồm data mới (nội dung văn bản) hoặc metadata mới (sẽ thay thế siêu dữ liệu hiện có cho bộ nhớ đó). Ví dụ:

curl -X PUT "http://localhost:8000/update?memory_id=some-unique-id" \
-H "Content-Type: application/json" \
-d '{"data": "Alice now also enjoys Go for systems programming."}'

Để xóa một bộ nhớ cụ thể, sử dụng yêu cầu DELETE đến /delete với memory_id làm tham số truy vấn: curl -X DELETE "http://localhost:8000/delete?memory_id=some-unique-id".

Để dọn dẹp rộng hơn, có thể sử dụng điểm cuối DELETE /delete_all. Nếu bạn cung cấp tham số truy vấn user_id (ví dụ: curl -X DELETE "http://localhost:8000/delete_all?user_id=user_alice"), nó sẽ xóa tất cả bộ nhớ cho người dùng cụ thể đó. Nếu bỏ qua user_id, hành vi có thể là xóa tất cả bộ nhớ trong hệ thống, vì vậy hãy sử dụng điều này hết sức thận trọng và luôn xác minh hành vi chính xác của nó trong tài liệu Mem0. Máy chủ thường sẽ phản hồi bằng các thông báo JSON xác nhận thành công hoặc thất bại của các hoạt động này.

Mẹo Chuyên nghiệp: Luôn triển khai các kiểm tra cẩn thận và xác nhận của người dùng trong logic ứng dụng của bạn trước khi gọi các điểm cuối xóa, đặc biệt là delete_all, để ngăn chặn mất dữ liệu do nhầm lẫn.

Kết luận

Giờ đây, bạn đã đi qua các bước thiết yếu để thiết lập OpenMemory MCP Server cục bộ với framework mã nguồn mở Mem0 và sử dụng API REST của nó. Bằng cách làm theo các hướng dẫn này để cài đặt Mem0, chạy máy chủ và tương tác với API của nó, bạn có được quyền kiểm soát trực tiếp bộ nhớ của các ứng dụng AI của mình. Điều này thúc đẩy các cấp độ mới về tính bền vững, cá nhân hóa và quyền riêng tư. Khả năng quản lý bộ nhớ cục bộ, dựa trên API mở ra nhiều khả năng to lớn cho các hệ thống thông minh hơn, nhận biết ngữ cảnh—từ các chatbot ghi nhớ sở thích của người dùng đến các trợ lý nhà phát triển ghi nhớ chi tiết dự án. Khả năng tạo bộ nhớ AI cục bộ, dựa trên API giờ đây là của bạn. Hãy thử nghiệm với API này và bắt đầu xây dựng các ứng dụng AI thực sự học hỏi và phát triển.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API