Chia sẻ bởi Tù Bà Khuỳm trong video: Độ "Trí nhớ" cho N8N AI Agent một cách rất đơn giản với MCP Server Mem0
Nếu bạn đang sử dụng N8N để xây dựng các AI Agent với sự hỗ trợ của Mô Hình Ngôn Ngữ Lớn (LLM) nhằm tự động hóa công việc, chắc hẳn bạn đã ít nhiều gặp phải tình trạng "não cá vàng" của chúng. AI Agent sau vài lần chạy bỗng dưng quên hết những quy tắc bạn đặt ra, những thông tin quan trọng đã từng trao đổi. Kết quả là, AI Agent không thể nhớ các cuộc trò chuyện trước đó, khiến mỗi lần tương tác đều như lần đầu. Bài viết này sẽ hướng dẫn bạn cách "độ" bộ nhớ N8N AI Agent một cách hiệu quả và đơn giản bằng MCP Server Mem0.
Tại sao AI Agent trên N8N lại "hay quên"?
Trong N8N, để khắc phục vấn đề trí nhớ, người ta đã phát triển các "memory node" nhằm lưu trữ lịch sử hội thoại. Tuy nhiên, mỗi loại lại có những ưu và nhược điểm riêng:
- Simple Note: Dữ liệu được lưu trực tiếp trên bộ nhớ (RAM). Điều này khiến bộ nhớ không bền vững. Khi N8N khởi động lại, toàn bộ dữ liệu sẽ biến mất.
- Redis Note / Postgres Note: Đây là hai giải pháp lưu trữ dựa trên cơ sở dữ liệu mạnh mẽ. Tuy nhiên, hiện tại chúng chủ yếu lưu trữ đơn thuần theo ID (ví dụ: session ID, user ID) để truy xuất lịch sử hội thoại.
Vậy, sẽ ra sao nếu bạn có thể trang bị cho AI Agent của mình một bộ nhớ riêng, thông minh và tiện lợi hơn? Đây chính là lúc Mem0 xuất hiện.
Mem0 là gì? Giải pháp bộ nhớ N8N AI Agent thông minh
Mem0 được hiểu như một lớp bộ nhớ thông minh (intelligent memory layer) được thiết kế để nâng cao khả năng cá nhân hóa khi tương tác với AI. Nó giúp AI:
- Nhớ sở thích người dùng: Ghi nhớ các lựa chọn, ưu tiên của người dùng qua các lần tương tác.
- Thích ứng nhu cầu cá nhân: Điều chỉnh phản hồi và hành động dựa trên lịch sử tương tác.
- Liên tục học hỏi: Cải thiện khả năng nhớ và sử dụng ngữ cảnh phù hợp.
- Ứng dụng rộng rãi: Lý tưởng cho chatbot, AI assistant, và các hệ thống tự trị (autonomous systems).
Nghiên cứu từ đội ngũ phát triển Mem0 cho thấy giải pháp này có độ chính xác cao hơn 26% so với bộ nhớ của OpenAI, phản hồi nhanh hơn 91%, và giảm lượng token sử dụng đến 90%.
Một ứng dụng thú vị của Mem0 là khi kết hợp với các ứng dụng RAG (Retrieval Augmented Generation). Nếu bạn đã có một hệ thống RAG, việc tích hợp Mem0 ("RAG trong RAG") giúp AI phản hồi nhanh hơn dựa trên các câu hỏi tương tự từ những người dùng khác nhau, nhờ vào khả năng ghi nhớ và truy xuất thông tin hiệu quả.
Để tìm hiểu sâu hơn về Mem0, bạn có thể tham khảo tài liệu chính thức từ nhà phát triển.
Hướng dẫn cài đặt MCP Server Mem0 chi tiết
Có nhiều cách để kết nối Mem0 với N8N, nhưng hôm nay chúng ta sẽ tìm hiểu cách đơn giản nhất: sử dụng một MCP (Mem0 CoPilot) Server.
Yêu cầu chuẩn bị
Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt Python 3.12 trở lên.
Các bước cài đặt
Thực hiện theo các bước sau để cài đặt MCP Server Mem0:
-
Tạo Project và Môi trường ảo (Virtual Environment):
- Tạo một thư mục mới cho project của bạn.
- Mở terminal hoặc command prompt, di chuyển vào thư mục vừa tạo.
- Tạo môi trường ảo:
python -m venv .venv # hoặc python3 -m venv .venv nếu bạn có nhiều phiên bản Python
- Kích hoạt môi trường ảo:
- Windows:
.\.venv\Scripts\activate
- macOS/Linux:
source .venv/bin/activate
- Windows:
-
Clone Repository Mem0:
git clone https://github.com/mem0ai/mem0.git cd mem0
-
Cài đặt các Dependencies:
pip install -r requirements.txt pip install ".[mcp_server]" # Lệnh này cài đặt các gói cần thiết cho MCP server
-
Cấu hình file Environment (
.env
):-
Trong thư mục
mem0
(sau khi đã clone), bạn sẽ tìm thấy fileexample.env
. Hãy sao chép nó và đổi tên thành.env
.cp example.env .env
-
Mở file
.env
và chỉnh sửa các thông số sau:TRANSPORT_TYPE
: Trong ví dụ này, chúng ta sẽ sử dụngSSI
.TRANSPORT_TYPE=SSI
HOST
: Địa chỉ host bạn đang sử dụng. Nếu chạy local, thường là0.0.0.0
hoặc127.0.0.1
.HOST=0.0.0.0
PORT
: Cổng mà server sẽ lắng nghe, ví dụ8050
.PORT=8050
LLM_PROVIDER
: Nhà cung cấp Mô Hình Ngôn Ngữ Lớn. Ví dụ:openai
. Bạn có thể sử dụng các provider khác tùy ý (ví dụ:groq
,ollama
,together
).LLM_PROVIDER=openai
API_KEY
: API key của LLM provider bạn chọn.OPENAI_API_KEY=sk-your_openai_api_key # Thay sk-your_openai_api_key bằng API key thực tế của bạn
MODEL_NAME
: Tên model LLM bạn muốn sử dụng (ví dụ:gpt-4o
,gpt-3.5-turbo
).MODEL_NAME=gpt-4o
EMBEDDING_MODEL_NAME
: Tên model embedding (ví dụ:text-embedding-ada-002
cho OpenAI).EMBEDDING_MODEL_NAME=text-embedding-ada-002
DATABASE_URL
: URL kết nối đến Vector Database của bạn. Trong ví dụ này, chúng ta sử dụng Supabase.- Quan trọng: Đảm bảo bạn sử dụng Transaction Pooler của Supabase.
- Bạn có thể lấy thông tin kết nối từ dashboard Supabase của mình. Thay thế
[YOUR-PASSWORD]
và các thông tin placeholder khác.# Ví dụ cho Supabase Postgres DATABASE_URL=postgresql://postgres:[YOUR-PASSWORD]@db.[YOUR-SUPABASE-PROJECT-REF].supabase.co:5432/postgres # Nếu dùng Transaction Pooler, cổng có thể là 6543 # DATABASE_URL=postgresql://postgres.[YOUR-SUPABASE-PROJECT-REF]:[YOUR-PASSWORD]@aws-0-[REGION].pooler.supabase.com:6543/postgres
Lưu ý: Với mỗi
LLM_PROVIDER
, bạn cần cung cấp các biến môi trường tương ứng (ví dụ:GROQ_API_KEY
cho Groq). Tham khảo tài liệu của Mem0 để biết chi tiết.
-
-
Chạy MCP Server:
Sau khi hoàn tất cấu hình, bạn có thể chạy server. Có hai cách:- Sử dụng Docker (khuyến nghị cho production): Tham khảo tài liệu của Mem0 để biết cách build và chạy Docker image.
- Chạy trực tiếp bằng Uvicorn (tiện lợi cho testing local):
Nếu mọi thứ thành công, bạn sẽ thấy thông báo server đang chạy trên địa chỉuvicorn mem0.server.mcp_server.main:app --host 0.0.0.0 --port 8050 --reload
http://0.0.0.0:8050
(hoặc port bạn đã cấu hình). Server cũng sẽ tự động tạo một bảngmem0_memory
trên Supabase của bạn với dimension của vector embedding (ví dụ: 1536 chotext-embedding-ada-002
).
Kết nối và sử dụng Mem0 trong N8N Workflow
Bây giờ, MCP Server Mem0 đã sẵn sàng, chúng ta sẽ tích hợp nó vào một N8N workflow.
-
Thêm Node "MCP Client" vào Workflow:
- Trong N8N workflow của bạn, tìm và thêm node "MCP Client".
-
Cấu hình Node "MCP Client":
- Connection:
- Transport Type: Chọn
SSI
(giống như đã cấu hình trong file.env
của server). - URL: Nhập địa chỉ của MCP Server Mem0, ví dụ:
http://localhost:8050
(nếu N8N và server chạy trên cùng một máy). Nếu bạn chạy server trên một máy khác hoặc trong Docker, hãy sử dụng địa chỉ IP và port tương ứng. - Authentication: Trong ví dụ này, chúng ta không sử dụng authentication, nên để trống.
- Transport Type: Chọn
- Tool: Node này cung cấp 3 tool chính để tương tác với bộ nhớ Mem0:
save_memory
: Lưu thông tin vào bộ nhớ.get_all_memory
: Lấy toàn bộ lịch sử bộ nhớ (thường dùng để debug hoặc xem lại).search_memory
: Tìm kiếm thông tin liên quan trong bộ nhớ.
Trong bước đầu, bạn có thể để trống phần "Tool" để xem cách AI tự động sử dụng.
- Connection:
Các cách sử dụng bộ nhớ N8N AI Agent với Mem0
Có nhiều cách để AI Agent của bạn tận dụng bộ nhớ Mem0:
- Chủ động yêu cầu AI Agent sử dụng Tools: Bạn có thể ra lệnh cho AI Agent (thông qua prompt) để sử dụng các tool
save_memory
hoặcsearch_memory
khi cần thiết. - Tích hợp vào System Prompt: Đây là một cách hiệu quả. Bạn có thể hướng dẫn AI Agent trong system prompt rằng:
- Trước mỗi câu query của người dùng, hãy tìm kiếm trong Mem0 (
search_memory
) xem có thông tin nào liên quan không. Nếu có, sử dụng thông tin đó để trả lời. - Sau mỗi tương tác, hãy quyết định xem thông tin nào cần lưu lại và sử dụng
save_memory
.
- Trước mỗi câu query của người dùng, hãy tìm kiếm trong Mem0 (
- Để AI Agent tự quyết định: Bạn cũng có thể cung cấp các tool và để AI Agent tự học cách sử dụng chúng một cách hợp lý.
Ví dụ về cách tích hợp vào System Prompt:
Bạn là một trợ lý AI hữu ích.
Trước khi trả lời bất kỳ câu hỏi nào, hãy sử dụng tool "search_memory" để tìm kiếm trong bộ nhớ các thông tin liên quan đến câu hỏi hiện tại.
Sau mỗi cuộc trò chuyện, hãy sử dụng tool "save_memory" để lưu lại những điểm chính và thông tin quan trọng mà chúng ta đã thảo luận.
Ví dụ thực tế: Kiểm tra "Trí Nhớ" của AI Agent
Hãy cùng thử nghiệm khả năng ghi nhớ của AI Agent sau khi đã tích hợp Mem0.
-
Tạo một cuộc hội thoại:
- Người dùng: "Giá vàng ngày hôm nay là 120 triệu đồng một lượng."
- AI Agent (sử dụng
save_memory
): Đã lưu thông tin này.
Lúc này, nếu bạn kiểm tra log của MCP Server hoặc dữ liệu trên Supabase, bạn sẽ thấy thông tin "Giá vàng ngày hôm nay là 120 triệu đồng một lượng" đã được lưu.
-
Tạo một cuộc hội thoại mới (hoặc trong một session khác):
- Người dùng: "Giá vàng hôm nay là bao nhiêu?"
Nếu không có bộ nhớ, AI Agent sẽ không biết câu trả lời. Nhưng với Mem0:
- AI Agent (sử dụng
search_memory
): Tìm thấy trong bộ nhớ "Giá vàng ngày hôm nay là 120 triệu đồng một lượng." - AI Agent (phản hồi): "Theo thông tin tôi ghi nhận được, giá vàng hôm nay là 120 triệu đồng một lượng."
Như bạn thấy, MCP Client đã gọi hàm search_memory
với câu query "Giá vàng hôm nay là bao nhiêu?" và Mem0 đã truy xuất được thông tin liên quan mà chúng ta đã cung cấp trước đó.
Đây chính là cách bạn có thể tăng cường bộ nhớ N8N AI Agent một cách đáng kể. Bạn hoàn toàn có thể tiếp tục sử dụng thêm các memory node sẵn có của N8N, coi Mem0 như một "long-term memory" (bộ nhớ dài hạn) mạnh mẽ, hoặc để AI Agent tự quyết định khi nào nên lưu thông tin gì vào Mem0.
Kết luận
Việc AI Agent "hay quên" không còn là vấn đề nan giải với sự xuất hiện của Mem0 và MCP Server. Bằng cách tích hợp một lớp bộ nhớ thông minh, bạn có thể tạo ra các AI Agent trên N8N có khả năng ghi nhớ tốt hơn, cá nhân hóa cao hơn và tương tác hiệu quả hơn. Quá trình cài đặt và kết nối tuy có nhiều bước nhưng khá đơn giản và mang lại lợi ích to lớn cho các ứng dụng tự động hóa của bạn.
Hãy thử nghiệm tích hợp Mem0 vào N8N workflow của bạn ngay hôm nay để trải nghiệm sự khác biệt mà một bộ nhớ N8N AI Agent ưu việt có thể mang lại!