Trí nhớ (memory) là một trong những thành phần quan trọng nhất để đưa các mô hình ngôn ngữ lớn (LLM) trở thành các tác nhân thông minh (AI agent) có khả năng tự vận hành. Tuy nhiên, các phương pháp quản lý bộ nhớ cho AI hiện nay đang gặp phải những giới hạn rất lớn: lưu trữ lịch sử chat dạng phẳng (flat chat history) khiến ngữ cảnh nhanh chóng bị tràn và tốn token, trong khi lưu trữ dạng Vector DB (RAG) lại thiếu đi khả năng hiểu các mối quan hệ phức tạp và dòng chảy thời gian của thông tin. Để vượt qua rào cản này, Graphiti xuất hiện như một thư viện mã nguồn mở đột phá giúp xây dựng bộ nhớ dạng biểu đồ tri thức (knowledge graph) thời gian thực cho AI agent. Trong bài viết này, tôi sẽ phân tích chi tiết về Graphiti và cách công cụ này giúp AI của bạn ghi nhớ thông tin một cách thông minh nhất.
Bài toán bộ nhớ của AI agent và sự xuất hiện của Graphiti
Khi bạn trò chuyện với một trợ lý AI thông thường qua nhiều ngày, bạn sẽ nhận ra nó bắt đầu “quên” những chi tiết bạn đã chia sẻ trước đó, hoặc gặp khó khăn trong việc kết nối các thông tin rời rạc. Ví dụ: Nếu ngày đầu tiên bạn nói “Tôi đang chuẩn bị ra mắt sản phẩm X”, và ngày thứ năm bạn nói “Dự án X của tôi vừa đổi tên thành Y”, một AI thông thường sử dụng Vector DB sẽ rất khó cập nhật trạng thái mới này và dễ dàng đưa ra câu trả lời lỗi thời.
Graphiti (được phát triển bởi getzep) là một thư viện Python mã nguồn mở với hơn 28.000 star trên GitHub, được thiết kế để giải quyết triệt để bài toán bộ nhớ dài hạn cho AI. Thay vì lưu trữ thông tin dưới dạng các đoạn văn bản thô rời rạc, Graphiti tự động phân tích các sự kiện, trích xuất các thực thể (như con người, tổ chức, dự án) và xây dựng một biểu đồ tri thức động (knowledge graph) theo thời gian thực. Mọi thông tin mới nạp vào sẽ được kết nối với các nút tri thức sẵn có, giúp AI luôn nắm bắt được bức tranh tổng thể và lịch sử thay đổi của dữ liệu.
Các tính năng nổi bật của Graphiti giúp định hình bộ nhớ AI thế hệ mới
Graphiti kết hợp sức mạnh của cơ sở dữ liệu biểu đồ (graph database) và các mô hình LLM để xử lý tri thức một cách khoa học.
Xây dựng biểu đồ tri thức động theo thời gian thực (Real-time Ingestion)
Mỗi khi AI agent nhận được một thông tin mới từ người dùng hoặc từ hệ thống (ví dụ: một email, một giao dịch tài chính hay một dòng chat), Graphiti sẽ tự động gửi thông tin này qua mô hình LLM để bóc tách. Hệ thống tự động xác định các thực thể và các mối quan hệ (ví dụ: Hoàng Nhật Mai -> Founder -> Để AI Tính) và cập nhật trực tiếp vào biểu đồ tri thức hiện tại dưới dạng các nút (nodes) và các cạnh nối (edges). Quy trình này diễn ra hoàn toàn tự động dưới nền và không làm gián đoạn cuộc hội thoại của người dùng.
Hiểu và quản lý dòng chảy thời gian của tri thức (Temporal Reasoning)
Đây là điểm đắt giá nhất của Graphiti. Tri thức trong thực tế luôn thay đổi theo thời gian. Graphiti lưu trữ các thuộc tính thời gian (timestamps) cho từng nút và cạnh nối trên biểu đồ. Điều này cho phép AI thực hiện các truy vấn ngữ cảnh theo tiến trình lịch sử: AI biết được trạng thái của dự án tại thời điểm một tháng trước khác gì so với thời điểm hiện tại, giúp đưa ra các phân tích và quyết định chuẩn xác hơn.
Tích hợp mượt mà với nhiều Graph Database lớn
Graphiti không tự mình lưu trữ dữ liệu mà hoạt động như một lớp driver thông minh (abstraction layer). Thư viện này hỗ trợ kết nối mượt mà với nhiều hệ quản trị cơ sở dữ liệu biểu đồ hiệu năng cao như FalkorDB, Kuzu hay Amazon Neptune, giúp doanh nghiệp dễ dàng mở rộng quy mô hệ thống bộ nhớ của agent lên hàng triệu thực thể.
Hướng dẫn cài đặt và chạy thử nhanh Graphiti
Bạn có thể bắt đầu sử dụng Graphiti trong các dự án Python của mình chỉ với một vài dòng code thiết lập cơ bản.
Bước 1: cài đặt thư viện core của Graphiti
Hãy đảm bảo máy tính của bạn đã cài đặt Python. Bạn chạy lệnh sau trong terminal để cài đặt thư viện lõi của Graphiti:
pip install graphiti-core
Bước 2: khởi chạy Graph Database (ví dụ FalkorDB qua Docker)
Graphiti cần kết nối với một cơ sở dữ liệu biểu đồ để lưu trữ. Cách nhanh nhất là khởi chạy FalkorDB thông qua Docker:
docker run -p 6379:6379 -it --rm falkordb/falkordb:edge
Dịch vụ cơ sở dữ liệu sẽ khởi động và lắng nghe kết nối tại cổng mặc định 6379.
Bước 3: lập trình nạp sự kiện và truy vấn bộ nhớ
Dưới đây là một đoạn code Python ví dụ minh họa cách nạp dữ liệu cuộc hội thoại vào Graphiti để tự động dựng knowledge graph:
import asyncio
from graphiti_core import Graphiti
async def main():
# Khởi tạo kết nối Graphiti đến FalkorDB
graphiti = Graphiti(connection_str="redis://localhost:6379")
await graphiti.initialize()
# Nạp một sự kiện hội thoại mới
await graphiti.add_event(
"Hoàng Nhật Mai là Founder của hệ sinh thái Để AI Tính, chuyên chia sẻ kinh nghiệm AI thực chiến."
)
# Truy vấn thông tin dựa trên biểu đồ tri thức
results = await graphiti.search("Hoàng Nhật Mai làm công việc gì?")
print(results)
if __name__ == "__main__":
asyncio.run(main())
Tối ưu hóa RAG và xây dựng workflow tự động hóa với Make.com
Việc kết hợp bộ nhớ knowledge graph của Graphiti với các kịch bản tự động hóa trên Make.com giúp bạn xây dựng những trợ lý AI có khả năng thấu hiểu khách hàng sâu sắc.
Ví dụ, bạn có thể thiết lập quy trình tự động như sau:
1. Mỗi khi khách hàng gửi tin nhắn phản hồi hoặc yêu cầu hỗ trợ qua chatbot.
2. Make.com chuyển nội dung tin nhắn đó đến ứng dụng AI Agent có tích hợp Graphiti.
3. AI sẽ tự động nạp sự kiện này vào Graphiti để cập nhật sở thích, thói quen và các vấn đề gặp phải của khách hàng đó vào biểu đồ tri thức.
4. Khi khách hàng hỏi một câu hỏi mới, Make.com sẽ truy vấn Graphiti để lấy ra toàn bộ lịch sử mối quan hệ và các sự kiện liên quan của khách hàng đó trong quá khứ, giúp AI đưa ra câu trả lời cá nhân hóa cao nhất.
Quy trình này giúp nâng tầm trải nghiệm chăm sóc khách hàng của doanh nghiệp lên một đẳng cấp hoàn toàn mới.
🔗 Xây dựng hệ thống chăm sóc khách hàng tự động với Make.com
Sử dụng Make.com để kết nối chatbot AI của bạn với bộ nhớ knowledge graph của Graphiti, mang lại khả năng thấu hiểu và cá nhân hóa trải nghiệm khách hàng vượt trội.
Đánh giá ưu điểm và hạn chế thực tế của Graphiti
Ưu điểm vượt trội
- Bộ nhớ siêu thông minh: Khả năng hiểu các mối quan hệ thực thể phức tạp vượt trội so với Vector DB thông thường.
- Quản lý thời gian xuất sắc: Hỗ trợ lưu trữ tiến trình thay đổi của dữ liệu theo lịch sử thời gian.
- Hiệu năng cao: Việc tích hợp với các Graph DB chuyên dụng giúp hệ thống xử lý nhanh chóng ở quy mô dữ liệu lớn.
Hạn chế cần lưu ý
- Chi phí gọi LLM phân tích: Quá trình tự động bóc tách thực thể từ văn bản thô yêu cầu phải gọi LLM liên tục mỗi khi nạp sự kiện mới, điều này có thể làm phát sinh một khoản chi phí API tương đối lớn nếu sử dụng các mô hình thương mại cao cấp.
- Độ phức tạp kỹ thuật: Việc cài đặt, duy trì và vận hành một graph database (như FalkorDB hay Neptune) song song với hệ thống ứng dụng đòi hỏi đội ngũ kỹ sư phải có kinh nghiệm quản trị hạ tầng cơ sở dữ liệu chuyên sâu.
Các câu hỏi thường gặp về Graphiti
Tôi có thể sử dụng Graphiti kết hợp với các Vector Database (như Pinecone hay Milvus) được không?
Có, đây là hướng đi tối ưu nhất hiện nay (thường gọi là GraphRAG). Bạn có thể sử dụng Graphiti để quản lý các mối quan hệ thực thể và logic thời gian, kết hợp với Vector DB để lưu trữ và tìm kiếm các đoạn văn bản thô chi tiết, mang lại sức mạnh hỏi đáp toàn diện cho AI.
Graphiti có thể chạy hoàn toàn offline được không?
Có, chỉ cần bạn cấu hình kết nối Graphiti với một mô hình LLM local (như Llama 3 chạy qua Ollama) và deploy graph database trên máy cục bộ, hệ thống bộ nhớ của bạn sẽ vận hành hoàn toàn ngoại tuyến và bảo mật dữ liệu tuyệt đối.
🎁 Khám phá thêm các công nghệ AI agent và giải pháp tối ưu bộ nhớ tại Thư viện công cụ AI của Để AI Tính.
