Phiên & Bộ nhớ
Phiên
Phiên hoạt động như thế nào
Mỗi cuộc trò chuyện với tác nhân xảy ra trong một phiên. Các phiên được xác định bằng các khóa mã hóa ngữ cảnh, tác nhân nào, kênh nào, chat nào.
Phiên duy trì bản ghi hoàn chỉnh (JSONL chỉ thêm) của tất cả các tin nhắn, cuộc gọi công cụ và kết quả. Bản ghi này là thứ cung cấp cho tác nhân ngữ cảnh về cuộc trò chuyện đang diễn ra.
Khóa phiên
Phiên được định tuyến tự động dựa trên ngữ cảnh:
| Mẫu | Ý nghĩa |
|---|---|
agent:main:main |
Cuộc trò chuyện trực tiếp chính |
agent:<id>:<channel>:group:<id> |
Chat nhóm trên một kênh cụ thể |
agent:<id>:<channel>:channel:<id> |
Cuộc trò chuyện kênh/phòng |
cron:<jobId> |
Thực thi công việc theo lịch |
hook:<uuid> |
Thực thi được kích hoạt bởi webhook |
Vòng đời phiên
- Đặt lại hàng ngày, Phiên tự động đặt lại vào thời gian có thể cấu hình (mặc định 4 giờ sáng giờ địa phương). Điều này tạo ra ngữ cảnh cuộc trò chuyện mới mỗi ngày trong khi giữ nguyên lịch sử.
- Hết hạn không hoạt động, Các phiên không hoạt động trong một khoảng thời gian có thể cấu hình có thể tự động đặt lại.
- Đặt lại thủ công, Bắt đầu lại bất cứ lúc nào bằng lệnh
/newhoặc/reset.
Theo dõi token
Phiên theo dõi tổng sử dụng token (đầu vào, đầu ra, đọc bộ nhớ đệm, ghi bộ nhớ đệm) để theo dõi chi phí và quản lý cửa sổ ngữ cảnh.
Nén
Nén là gì?
Khi một cuộc trò chuyện tiếp cận giới hạn cửa sổ ngữ cảnh của mô hình, Neotask nén nó, tóm tắt các tin nhắn cũ hơn thành một tổng quan ngắn gọn và bắt đầu một phiên mới với bản tóm tắt đó cộng với các tin nhắn gần đây.
Cách hoạt động
- Phát hiện, Theo dõi sử dụng ngữ cảnh (kích hoạt mặc định: 80% cửa sổ ngữ cảnh)
- Tóm tắt, Các tin nhắn cũ hơn được tóm tắt thành một mục nén
- Phiên mới, Một phiên mới bắt đầu với bản tóm tắt được chèn ở đầu
- Bảo tồn, Các bản ghi cũ được giữ nguyên để lưu trữ lịch sử nhưng không còn được tải vào ngữ cảnh
Cấu hình
- Bật/tắt, Bật tắt tự động nén
- Ngưỡng, Phần trăm cửa sổ ngữ cảnh kích hoạt nén (mặc định 80%)
- Số tin nhắn tối thiểu, Không nén nếu có ít hơn N tin nhắn
Nén thủ công
Bạn có thể kích hoạt nén thủ công bất cứ lúc nào bằng lệnh /compact. Điều này hữu ích khi bạn muốn đặt lại ngữ cảnh mà không mất thông tin quan trọng.
Bộ nhớ
Bộ nhớ tác nhân
Mỗi tác nhân có hệ thống bộ nhớ để lưu giữ thông tin quan trọng qua các phiên:
- MEMORY.md, Tệp markdown trong không gian làm việc của tác nhân nơi các sự kiện quan trọng, tùy chọn và ngữ cảnh được lưu trữ
- Thư mục bộ nhớ, Các tệp bổ sung trong
memory/cho kiến thức có cấu trúc
Tìm kiếm vector
Neotask hỗ trợ tìm kiếm độ tương tự vector trên bộ nhớ tác nhân:
- Lập chỉ mục, Các tệp bộ nhớ được lập chỉ mục bằng nhúng
- Tìm kiếm, Tác nhân truy vấn bộ nhớ bằng ngôn ngữ tự nhiên ("Người dùng đã nói gì về tùy chọn API của họ?")
- Nhớ lại, Các ký ức liên quan được trả về theo thứ tự tương tự
Plugin bộ nhớ (LanceDB)
Plugin bộ nhớ LanceDB cung cấp lưu trữ vector nâng cao:
- Cơ sở dữ liệu vector liên tục
- Kích thước chunk và độ chồng chéo có thể cấu hình
- Tìm kiếm độ tương tự hiệu quả
- Tự động lập lại chỉ mục khi các tệp bộ nhớ thay đổi
Nhớ lại tự động
Khi bắt đầu phiên, các ký ức liên quan có thể được tự động nhớ lại và chèn vào ngữ cảnh của tác nhân. Điều này cho các tác nhân tính liên tục qua các phiên mà không cần tải toàn bộ lịch sử cuộc trò chuyện.
Duy trì phiên
Tất cả dữ liệu phiên được lưu trữ cục bộ:
- Siêu dữ liệu phiên,
sessions.jsontheo dõi các phiên hoạt động, hoạt động cuối cùng, số lượng token và cấu hình - Bản ghi, Các bản ghi phiên riêng lẻ được lưu trữ dưới dạng tệp
.jsonl - Khôi phục, Phiên tồn tại qua các lần khởi động lại Gateway mà không mất dữ liệu
Dọn dẹp
- Các phiên không được truy cập trong một khoảng thời gian có thể cấu hình (mặc định 30 ngày) đủ điều kiện để dọn dẹp
- Quản lý phiên thủ công có sẵn qua giao diện người dùng hoặc API
- Các bản ghi đã nén được lưu trữ nhưng có thể xem xét