Oturumlar ve Bellek
Oturumlar
Oturumlar Nasıl Çalışır?
Bir ajanla her konuşma bir oturumda gerçekleşir. Oturumlar, bağlamı kodlayan anahtarlarla tanımlanır, hangi ajan, hangi kanal, hangi sohbet.
Oturumlar, tüm mesajların, araç çağrılarının ve sonuçların eksiksiz bir dökümünü (yalnızca ekleme JSONL) korur. Bu döküm, ajanlara devam eden konuşma hakkında bağlam sağlayan şeydir.
Oturum Anahtarları
Oturumlar bağlama göre otomatik olarak yönlendirilir:
| Kalıp | Anlam |
|---|---|
agent:main:main |
Ana doğrudan konuşma |
agent:<id>:<channel>:group:<id> |
Belirli bir kanalda grup sohbeti |
agent:<id>:<channel>:channel:<id> |
Kanal/oda konuşması |
cron:<jobId> |
Zamanlanmış iş yürütmesi |
hook:<uuid> |
Webhook tetiklemeli yürütme |
Oturum Yaşam Döngüsü
- Günlük sıfırlama, Oturumlar, yapılandırılabilir bir zamanda otomatik olarak sıfırlanır (varsayılan sabah 4'te yerel saat). Bu, geçmişi koruyarak her gün taze bir konuşma bağlamı oluşturur.
- Boşta sona erme, Yapılandırılabilir bir süre için etkin olmayan oturumlar otomatik olarak sıfırlanabilir.
- Manuel sıfırlama, Bir
/newveya/resetkomutuyla istediğiniz zaman sıfırdan başlayın.
Token Takibi
Oturumlar, maliyet izleme ve bağlam penceresi yönetimi için kümülatif token kullanımını (girdi, çıktı, önbellek okuma, önbellek yazma) takip eder.
Sıkıştırma
Sıkıştırma Nedir?
Bir konuşma modelin bağlam penceresi limitine yaklaştığında, Neotask onu sıkıştırır, eski mesajları yoğun bir genel bakışa özetler ve bu özet artı son mesajlarla yeni bir oturum başlatır.
Nasıl Çalışır?
- Tespit, Bağlam kullanımını izleyin (varsayılan tetikleyici: bağlam penceresinin %80'i)
- Özetleme, Eski mesajlar bir sıkıştırma girdisine özetlenir
- Yeni oturum, Başa enjekte edilmiş özetle taze bir oturum başlar
- Koruma, Eski dökümleri geçmiş için korunur ancak artık bağlama yüklenmez
Yapılandırma
- Etkin/devre dışı, Otomatik sıkıştırmayı değiştirin
- Eşik, Sıkıştırmayı tetikleyen bağlam penceresinin yüzdesi (varsayılan %80)
- Minimum mesajlar, N'den az mesaj varsa sıkıştırma yapma
Manuel Sıkıştırma
Sıkıştırmayı istediğiniz zaman /compact komutuyla manuel olarak tetikleyebilirsiniz. Bu, önemli bilgileri kaybetmeden bağlamı sıfırlamak istediğinizde kullanışlıdır.
Bellek
Ajan Belleği
Her ajanın, oturumlar arası önemli bilgileri kalıcı kılmak için bir bellek sistemi vardır:
- MEMORY.md, Önemli gerçeklerin, tercihlerin ve bağlamın depolandığı ajanın çalışma alanındaki bir markdown dosyası
- Bellek dizini, Yapılandırılmış bilgiler için
memory/içindeki ek dosyalar
Vektör Arama
Neotask, ajan belleği üzerinde vektör benzerlik aramasını destekler:
- Dizinleme, Bellek dosyaları, gömmeler kullanılarak dizinlenir
- Arama, Ajanlar belleği doğal dille sorgular ("Kullanıcı API tercihleri hakkında ne dedi?")
- Geri çağırma, İlgili anılar benzerliğe göre sıralı olarak döndürülür
Bellek Eklentisi (LanceDB)
LanceDB bellek eklentisi gelişmiş vektör depolama sağlar:
- Kalıcı vektör veritabanı
- Yapılandırılabilir yığın boyutu ve örtüşme
- Verimli benzerlik araması
- Bellek dosyaları değiştiğinde otomatik yeniden dizinleme
Otomatik Geri Çağırma
Oturum başlangıcında, ilgili anılar otomatik olarak geri çağrılabilir ve ajanın bağlamına enjekte edilebilir. Bu, tüm konuşma geçmişlerini yüklemeden ajanlara oturumlar arası süreklilik sağlar.
Oturum Kalıcılığı
Tüm oturum verileri yerel olarak depolanır:
- Oturum meta verisi,
sessions.json, etkin oturumları, son etkinliği, token sayılarını ve yapılandırmayı takip eder - Dökümleri, Bireysel oturum dökümleri
.jsonldosyaları olarak depolanır - Kurtarma, Oturumlar, veri kaybı olmadan Gateway yeniden başlatmalardan kurtulur
Temizlik
- Yapılandırılabilir bir süre için (varsayılan 30 gün) erişilmeyen oturumlar temizlemeye uygundur
- Manuel oturum yönetimi, kullanıcı arayüzü veya API aracılığıyla kullanılabilir
- Sıkıştırılmış dökümleri arşivlenir ancak gözden geçirilebilir