Persona hafızasını (memory) ürün ihtiyacına göre ayarla
Üç katmanlı (tiered) hafıza mimarisini (kısa vadeli pencere, uzun vadeli geri çağırma, soğuk arşiv) ve oturumlar arası (cross-session) opt-in seçeneğini ürün yüzeyine göre yapılandır.
Moonborn'un hafıza (memory) mimarisi üç katmanlıdır: kısa vadeli pencere (son N tur istemde — prompt'ta — aynen yer alır), uzun vadeli geri çağırma (özetlenmiş ve vektörlere — embedding — dönüştürülmüş eski turlar), soğuk arşiv (cold archive) (eski parçalar — chunks — yavaş depolamaya taşınır). Üstünde de bir opt-in çıkış yolu (escape hatch) var: oturumlar arası hafıza (cross-session memory) — bir persona'nın oturumlar arası bilgi taşımasına izin verir.
Dördü de yapılandırma (config) maddeleri ile yönetilir. Doğru ayar ürün yüzeyine göre değişir: bir müşteri destek oturumu uzun bir destek geçmişini hatırlamalıdır; yaratıcı bir RPG sahnesi her oturuma temiz başlamalıdır. Bu rehber dört kolu somut değerlerle gezer.
Bu rehberi bitirdiğinde
- Kısa vadeli pencere (
window_turns) ile maliyet / hatırlama ödünleşmesini (trade-off) yönetebileceksin. - Uzun vadeli geri çağırma (long-term retrieval) için ürün yüzeyine uygun
top_kve strateji seçebileceksin. - Soğuk katmanın (cold tier) ne zaman devreye girdiğini ve nasıl geçersiz kılındığını (override) bileceksin.
- Oturumlar arası hafızayı mahremiyet (privacy) sonuçlarıyla birlikte etkinleştirebileceksin.
- Belirli bir bilgiyi persona'nın hafızasından elle (manuel olarak) silebileceksin.
Ön koşul: API anahtarı + en az bir sohbet (chat) oturumu deneyimi. Sohbet akışı yeniyse önce Bir persona ile sohbet oturumu kur.
1. Kısa vadeli pencere
Son N tur isteme aynen girer. Persona bu pencereyi tam bilgi olarak görür.
| Değer | Davranış | Maliyet |
|---|---|---|
8 | Hafif hafıza; çok uzun oturumda eski tur kaybolur | Düşük token |
12 (varsayılan) | Dengeli; çoğu sohbet ürünü için makul | Orta token |
16 | Geniş bağlam; uzun destek dizileri (threads) için | Yüksek token |
24+ | Uzun yapılandırılmış görüşmeler (mülakat tarzı) | Çok yüksek token |
await client.config.setItem({
key: 'chat.memory.short_term.window_turns',
value: 16,
scope: 'workspace',
scopeId: 'ws_...',
});2. Uzun vadeli geri çağırma
Penceredeki son N tur dışındaki eski turlar özetlenir, vektörlere dönüştürülür (embed) ve pgvector'de saklanır. Her yeni tur en yakın K ilgili parçayı (chunk) geri çağırır (retrieve) ve isteme ekler (inject).
İki ana parametre:
| Yapılandırma maddesi | Varsayılan | Anlamı |
|---|---|---|
chat.memory.long_term.top_k | 4 | Her turda kaç parça geri çağrılır |
chat.memory.long_term.retrieval_strategy | hybrid | Geri çağırma algoritması |
top_k ayarı
await client.config.setItem({
key: 'chat.memory.long_term.top_k',
value: 8,
scope: 'workspace',
scopeId: 'ws_...',
});| Yüzey | top_k | Neden |
|---|---|---|
| Uzun müşteri destek dizileri | 8 | Geçmiş bildirimi (ticket) kapsayan geri çağırma |
| Varsayılan sohbet ürünü | 4 | Dengeli |
| Yaratıcı oyun (her sahne taze başlasın) | 2 | Az geri çağırma, tutarlılık önceliği yok |
| Araştırma paneli görüşmeleri | 6 | Önceki yanıtları tutarlı tutacak geri çağırma |
Geri çağırma stratejisi
| Strateji | Davranış |
|---|---|
hybrid (varsayılan) | Anlamsal (semantic) benzerlik + BM25 + yeniden sıralayıcı (reranker) + MMR çeşitlilik (diversity) |
semantic | Yalnız vektör uzaklığı — basit, hızlı |
bm25 | Yalnız anahtar kelime eşleşmesi (keyword match) — voyage-3-large vektörlerini istemiyorsan |
3. Soğuk katman (cold tier)
Belirli bir süreden eski hafıza parçaları soğuk depolamaya (cold storage) taşınır — varsayılan geri çağırma bunları atlamak ister, çünkü çok eski bilgi genelde alakasızdır.
await client.config.setItem({
key: 'chat.memory.long_term.cold_tier_after_days',
value: 90,
scope: 'workspace',
scopeId: 'ws_...',
});Varsayılan 90 gündür. Bu süreden eski parçalar yavaş depolamaya taşınır ve varsayılan geri çağırma tarafından atlanır — yine var, ama sorgu performansını yavaşlatmazlar.
Soğuk parçayı sorgulamak
Kullanıcı açıkça eski bir şeye referans verirse ("geçen yıl konuştuğumuz şu konuyu hatırlıyor musun?"), çalışma zamanı (runtime) soğuk katmanı da sorguya dahil eder. Bu davranış chat.memory.long_term.include_cold_on_reference ile kontrol edilir (varsayılan true).
4. Oturumlar arası hafıza (Team ve üzeri)
Varsayılanda hafıza oturum kapsamlıdır (session-scope) — bir persona bir oturumdan diğerine bilgi taşımaz. Oturumlar arası sürekliliği isteğe bağlı (opt-in) olarak etkinleştirebilirsin:
await client.config.setItem({
key: 'chat.memory.cross_session.enabled',
value: true,
scope: 'workspace',
scopeId: 'ws_...',
});Kullanıcı başına ve çalışma alanı başına kapsam
await client.config.setItem({
key: 'chat.memory.cross_session.scope',
value: 'user', // 'user' veya 'workspace'
scope: 'workspace',
scopeId: 'ws_...',
});user(önerilen): Hafıza aynı kullanıcı kimliği için oturumlar arası taşınır, farklı kullanıcılar hafıza paylaşmaz.workspace: Hafıza tüm çalışma alanı (workspace) genelinde paylaşılır — sadece tek bir kullanıcının kullandığı dahili (internal) araç veya CI çalıştırıcısı için.
5. Elle (manuel olarak) unutma
Belirli bir hafıza parçasını silmek için:
await client.chat.sessions.memory.delete({
sessionId: 'ses_01H...',
chunkId: 'mem_01H...',
});Persona o belirli bilgiyi oturum için unutur. Oturumlar arası hafıza etkinse, aynı silme işlemi diğer oturumlar için de geçerli olur (parça karması — chunk hash — ile eşleştirilir).
Hangi yapılandırmayı nereden değiştir
| Değişiklik | Tipik kapsam |
|---|---|
window_turns | workspace — tüm sohbet ürünüm için |
top_k, retrieval_strategy | workspace — genel (global) ayar |
cold_tier_after_days | workspace — alan bazlı saklama |
cross_session.enabled | workspace — isteğe bağlı (opt-in) özellik |
cross_session.scope | workspace — kullanıcı seviyesi zorunlu |
Daha ayrıntılı (granular) davranış için persona kapsamında geçersiz kılma mümkündür — bir destek botu için top_k: 8, bir yaratıcı NPC için top_k: 2 aynı çalışma alanında yan yana.
Plan gereksinimi
- Kısa vadeli + uzun vadeli hafıza: her plan
- Soğuk katman yönetimi: Pro ve üstü
- Oturumlar arası hafıza: Team ve üstü
- Özel vektör modeli (custom embedding model) geçersiz kılma: Enterprise
İlgili
Üç katmanlı mimarinin teknik anatomisi: parçalama (chunking), vektör çıkarma (embedding), geri çağırma hattı.
Hafıza ve konuşma kaydının oturum içinde nasıl göründüğü.
Hafıza uzadığında karakter sesinin nasıl izlendiği.
Uzun hafıza + akış kombinasyonunda kullanıcı deneyimi desenleri.