Bộ nhớ hội thoại cho LangChain Agents
Bạn có thể làm cho các LangChain agent thông minh hơn bằng cách thêm bộ nhớ. Điều này cho phép chúng ghi nhớ các thông tin từ các tin nhắn trước đó.
Trong bài viết này, tôi sẽ biến một agent hỗ trợ thành một công cụ đa lượt (multi-turn).
Ở lượt thứ nhất, agent sẽ tra cứu thông tin khách hàng và hóa đơn. Ở lượt thứ hai, agent sẽ tạo một ticket mà không cần hỏi lại các ID.
Ba khái niệm chính cần biết:
- Checkpointer: Đóng vai trò như bộ nhớ ngắn hạn. Nó lưu lại các tin nhắn và trạng thái sau mỗi bước.
- thread_id: Đây là khóa hội thoại của bạn. Sử dụng cùng một ID để tiếp tục cuộc trò chuyện. Sử dụng một ID mới để bắt đầu một phiên làm việc mới.
- Store: Đây là bộ nhớ dài hạn cho các thông tin như sở thích của người dùng.
Cách thức hoạt động trong một luồng hỗ trợ:
- Người dùng yêu cầu tra cứu ID khách hàng 1042 và hóa đơn 8891. Agent tìm thấy dữ liệu.
- Người dùng nói "Tạo ticket." Agent ghi nhớ các ID từ bước đầu tiên và hoàn thành nhiệm vụ.
Để thử nghiệm, hãy sử dụng MemorySaver. Nó giữ trạng thái trong tiến trình cục bộ của bạn.
Quan trọng: MemorySaver sẽ bị xóa khi mã của bạn ngừng chạy. Đối với môi trường production, hãy sử dụng cơ sở dữ liệu như Postgres hoặc SQLite. Mã nguồn vẫn giữ nguyên vì API thread_id không thay đổi.
Giữ các phiên làm việc tách biệt bằng cách sử dụng các thread ID khác nhau cho các người dùng khác nhau. Điều này ngăn chặn dữ liệu của người này bị rò rỉ sang cuộc trò chuyện của người khác.
Kiểm tra thư mục langchain-agent-memory-nodejs-demo để xem các kịch bản đầy đủ.
Nguồn: https://dev.to/zsevic/conversation-memory-for-langchain-agents-31pa
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi