# 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:::group:` | Belirli bir kanalda grup sohbeti | | `agent:::channel:` | Kanal/oda konuşması | | `cron:` | Zamanlanmış iş yürütmesi | | `hook:` | 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 `/new` veya `/reset` komutuyla 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? 1. **Tespit**, Bağlam kullanımını izleyin (varsayılan tetikleyici: bağlam penceresinin %80'i) 2. **Özetleme**, Eski mesajlar bir sıkıştırma girdisine özetlenir 3. **Yeni oturum**, Başa enjekte edilmiş özetle taze bir oturum başlar 4. **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: 1. **Dizinleme**, Bellek dosyaları, gömmeler kullanılarak dizinlenir 2. **Arama**, Ajanlar belleği doğal dille sorgular ("Kullanıcı API tercihleri hakkında ne dedi?") 3. **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 `.jsonl` dosyaları 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