Bài 1.8 — Long-term Memory: Bộ Nhớ Cho Nhiều Session
Agenda
Thời gian đọc ước tính: ~10 phút
Learning outcome:
- Hiểu được sự khác biệt giữa Short-term Memory và Long-term Memory, và tại sao Agent cần lưu trữ thông tin dài hạn.
- Giải thích được cơ chế hoạt động của LangGraph Stores và cách dữ liệu được tổ chức (Namespace, Key-Value).
- Tự tay tích hợp được
InMemoryStorevà cấu hình Vector Search (Semantic Search) cho Agent. - Phân biệt được khi nào nên dùng Checkpointer và khi nào nên dùng Store.
Glossary & Vocabulary
1. Technical Terms (Thuật ngữ kỹ thuật):
| Term | Vietnamese Meaning & Quick Explain |
|---|---|
| Long-term Memory | Bộ nhớ dài hạn. Khả năng lưu trữ và truy xuất thông tin xuyên suốt nhiều cuộc hội thoại khác nhau (across threads/sessions). |
| Namespace | Không gian tên. Một định dạng phân cấp (giống như thư mục) để nhóm các dữ liệu liên quan lại với nhau (ví dụ: nhóm theo user_id). |
| Semantic Search | Tìm kiếm theo ngữ nghĩa. Sử dụng Vector Embeddings để tìm kiếm các dữ liệu có ý nghĩa tương tự thay vì chỉ khớp từ khóa (exact match). |
| Checkpointer | Trình lưu trạng thái. Cơ chế lưu trữ toàn bộ graph state của một thread cụ thể (dùng cho Short-term memory). |
| Store | Nơi lưu trữ Key-Value độc lập với thread, cho phép Agent lưu giữ những preferences hoặc facts dài hạn. |
2. Vocabulary Support (Từ vựng học thuật/B1+):
| Word | Meaning in Context (Nghĩa trong ngữ cảnh) |
|---|---|
| Persist (v) | Lưu trữ lâu dài, tồn tại xuyên suốt. |
| Arbitrary (adj) | Bất kỳ, tùy ý (dữ liệu có cấu trúc tự do). |
| Truncate (v) | Cắt bỏ, rút ngắn (khi vượt quá giới hạn). |
1. WHY — Tại sao cần Long-term Memory?
Trong thực tế, khi xây dựng AI Agent, một vấn đề lớn sẽ phát sinh nếu chúng ta chỉ dựa vào Short-term Memory (thông qua Checkpointer):
- Giới hạn của Thread: Short-term memory bị ràng buộc vào một
thread_idduy nhất. Nếu người dùng bắt đầu một phiên làm việc mới (thread mới), Agent sẽ "quên" sạch mọi thứ về họ (sở thích, thông tin cá nhân đã nói trước đó). - Nguy cơ tràn Context Window: Nếu cố gắng giữ một thread tồn tại mãi mãi, số lượng token sẽ ngày càng tăng. Dù có dùng kỹ thuật Trim (Cắt bỏ) hoặc Summarize (Tóm tắt), thông tin chi tiết quan trọng (facts, user preferences) vẫn dễ bị mất đi.
- Thiếu tính cá nhân hóa: Một trợ lý ảo thực thụ cần phải "nhớ" rằng bạn bị dị ứng với hải sản, hay bạn thích code bằng TypeScript thay vì Python, ngay cả khi bạn nói chuyện với nó sau 1 tháng ở một thiết bị khác.
Giải pháp: LangGraph cung cấp Stores — một cơ chế lưu trữ độc lập với luồng hội thoại. Nó đóng vai trò như Long-term Memory (Bộ nhớ dài hạn), cho phép Agent lưu trữ và truy xuất các facts, knowledge, hoặc preferences của người dùng xuyên suốt mọi sessions/threads.
2. WHAT — Long-term Memory và Stores là gì?
Long-term memory là khả năng ghi nhớ thông tin vượt qua ranh giới của một cuộc trò chuyện. Trong LangGraph, điều này được hiện thực hóa thông qua LangGraph Stores.