Trí nhớ và ngữ cảnh: giúp agent nhớ khách và quy trình
Mặc định, mỗi lần chạy agent "mất trí nhớ". Nó không biết khách này đã hỏi gì tuần trước, dự án đang tới đâu. Để agent làm việc như một trợ lý thật, bạn cần cấp cho nó trí nhớ đúng cách — và đúng cách nghĩa là ít mà đủ, không nhồi tất cả.
Ba loại trí nhớ
- Trí nhớ hội thoại (ngắn hạn): lịch sử tin nhắn trong một phiên. Tự có sẵn khi bạn truyền lại messages.
- Trí nhớ dài hạn (hồ sơ): thông tin bền vững về khách/dự án, lưu trong file hoặc database.
- Trí nhớ tra cứu (RAG): kho tài liệu lớn (hợp đồng, portfolio, FAQ) mà agent tìm phần liên quan khi cần, thay vì đọc hết.
Ví dụ: agent chăm sóc khách
Hùng có 40 khách. Anh lưu mỗi khách một hồ sơ ngắn:
{
"khach": "Cty ABC",
"nguoi_lien_he": "chị Mai",
"goi_dich_vu": "quản lý fanpage",
"giong_van": "trang trọng",
"ghi_chu": "thích báo cáo thứ 6, không thích gọi điện"
}
Khi soạn tin cho chị Mai, agent nạp đúng hồ sơ này vào context → email tự động đúng giọng, đúng thói quen. Khách tưởng Hùng nhớ mọi thứ.
Nguyên tắc: nhồi ít, nhồi đúng
Cửa sổ context có giới hạn và tốn tiền theo lượng chữ. Đừng dán cả 40 hồ sơ vào mỗi lần chạy. Quy trình đúng:
- Xác định agent đang xử lý khách nào.
- Chỉ nạp hồ sơ của khách đó.
- Với tài liệu lớn, dùng tìm kiếm để lấy 3–5 đoạn liên quan nhất.
RAG tối giản cho freelancer
Bạn không cần hạ tầng phức tạp. Một cách nhẹ:
# Tìm các đoạn liên quan trong kho tài liệu bằng so khớp
def tim_lien_quan(cau_hoi, tai_lieu, k=3):
diem = score_similarity(cau_hoi, tai_lieu) # embedding hoặc keyword
return top_k(diem, k)
doan = tim_lien_quan(email_khach, kho_faq, k=3)
context = "\n".join(doan) # chỉ nhồi phần này vào prompt
Với quy mô nhỏ (vài chục tài liệu), thậm chí so khớp từ khóa đơn giản đã đủ tốt.
Khung quyết định: nhớ ở đâu?
| Thông tin | Lưu ở đâu |
|---|---|
| Hội thoại đang diễn ra | Messages của phiên |
| Hồ sơ khách, quy tắc dự án | File/DB, nạp theo khách |
| Tài liệu tham chiếu lớn | Kho + tra cứu (RAG) |
| Bí mật (API key, mật khẩu) | KHÔNG bao giờ đưa vào prompt |
Các bước làm
- Tạo một hồ sơ chuẩn (JSON) cho mỗi khách/dự án.
- Viết hàm "nạp hồ sơ theo ID" để chỉ lấy đúng phần cần.
- Gom tài liệu tham chiếu vào một kho, thêm hàm tra cứu top-k.
- Trong system prompt, nói rõ agent được dùng thông tin nào.
- Kiểm tra: agent có bịa thông tin không có trong hồ sơ không?
Sai lầm thường gặp
- Nhồi toàn bộ dữ liệu mỗi lần: đốt token, chậm, agent lạc trọng tâm.
- Để agent "nhớ" bằng cách bịa: không cấp dữ liệu thật thì nó tự tưởng tượng lịch sử khách.
- Đưa bí mật vào context: mật khẩu, API key lọt vào log/hội thoại.
- Không cập nhật hồ sơ: agent dùng thông tin cũ, báo cáo sai tình trạng dự án.
- RAG nhồi quá nhiều đoạn: 20 đoạn không liên quan làm nhiễu hơn 3 đoạn đúng.
Checklist
- [ ] Có mẫu hồ sơ khách/dự án
- [ ] Nạp theo ID, không nạp tất cả
- [ ] Tài liệu lớn dùng tra cứu top-k
- [ ] Không có bí mật trong context
Học xong bài này rồi?
Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu,
và học hết khóa thì có chứng chỉ.
Lưu tiến độ của tôi