Agent Systems · 21-c04
26 Haziran 2026 · Bellek mimarisi
Agent memory, sohbet geçmişini sonsuza kadar saklamak değildir. Doğru tasarlandığında memory; aktif görevi, geçmiş deneyimleri, dünya bilgisini, kullanıcı tercihlerini ve güvenlik sınırlarını ayrı ayrı yöneten bir okuma-yazma sistemidir.
- Yanılgı
- geçmiş != memory
- Çekirdek
- yaz / oku / güncelle
- Değer
- süreklilik + kişiselleştirme
- Risk
- stale + poisoned memory
Bu yazıdaki önemli terimler
- working memory
- episodic memory
- semantic memory
- procedural memory
- preference memory
- memory retrieval
- forgetting
- memory poisoning
Bir agent'in hafızalı olması kulağa basit gelir: konuşmaları sakla, gerektiğinde geri çağır. Üretimde ise bu tarif hızla dağılır. Neyi saklayacağız? Kim yazabilir? Ne zaman unutacağız? Çelişen iki hatıradan hangisi kazanacak? Kullanıcı “bunu unut” dediğinde hangi kayıtlar silinecek, hangi audit izi kalacak?
Bu yazının amacı memory kelimesini mistik bir yetenek olmaktan çıkarıp mühendislik yüzeyine indirmek. Memory; depolama, geri getirme, güncelleme, unutma, izin ve değerlendirme kararlarının birleşimidir. İyi memory agent'i tutarlı yapar; kötü memory ise onu kendinden emin biçimde yanlış yapan bir sisteme dönüştürür.
Memory nedir?
Agent memory, agent'in bir sonraki kararında kullanılmak üzere geçmişten taşıdığı seçilmiş bilgidir. Bu bilgi bazen aktif görev state'i, bazen önceki konuşma, bazen ürün kataloğu, bazen de kullanıcının “bana kısa cevap ver” tercihi olabilir. Kritik nokta şu: memory yalnızca depolama değildir; yazma, okuma, güncelleme ve unutma politikalarıyla birlikte anlam kazanır.
Bu yüzden “tüm sohbet geçmişini prompt'a koyarız” yaklaşımı memory mimarisi değildir. Geçmiş ham malzemedir. Memory ise ham malzemeden neyin saklanacağını, neyin özetleneceğini, neyin retrieved context'e taşınacağını ve neyin güvenlik nedeniyle dışarıda tutulacağını belirleyen sistemdir.
uzun vadeli bellek
working memory
Aktif hedef, son observation, geçici değişkenler, retrieved context. Şu anki karar döngüsünü taşır.
Şu anki karar masası. Modele yalnızca bu girer.
retrieve → ilgili ve izinli kayıtlar masaya taşınır.
← write yeni deneyim, çıkarım ve tercih geri yazılır.
Working memory
Working memory, agent'in şu anda düşündüğü masadır. Aktif hedef, son tool sonucu, geçici plan, retrieved memory parçaları ve modelin structured output'undan parse edilen alanlar burada durur. CoALA'nın önemli ayrımı şudur: working memory yalnızca LLM context'i değil, LLM çağrıları arasında yaşayan bir veri yapısıdır.
Bu ayrım pratikte büyük fark yaratır. Prompt, working memory'nin modele gösterilen dilimidir; working memory'nin tamamı değildir. Bir agent'in çalışma belleğinde `active_goal`, `pending_approval`, `selected_customer_id`, `retrieved_policy_ids`, `last_tool_error` gibi alanlar olabilir. Model her şeyi görmeyebilir; controller yalnızca o adım için gereken parçaları prompt'a taşır.
Working memory kısa ömürlüdür ama önemsiz değildir. Yanlış working memory, doğru long-term memory'yi bile yanlış kullandırır. Örneğin aktif müşteri kimliği yanlış kaldıysa, doğru iade politikası bile yanlış kişiye uygulanabilir.
working memory · tam state
active_goal
Müşterinin kayıp kargo talebini çöz.
latest_observation
Kargo API'si: paket 3 gündür transfer merkezinde.
retrieved_context
Müşteri kısa cevapları tercih ediyor; son konuşmada telafi kuponu reddedilmiş.
pending_decision
Kupon yerine ücret iadesi önerilsin mi?
guardrail
İade için insan onayı gerekli.
modele giden dilim (prompt)
Müşterinin kayıp kargo talebini çöz. Kargo API'sine göre paket 3 gündür transfer merkezinde. Müşteri kısa cevap sever. İade için insan onayı şart.
Controller her alanı değil, yalnızca bu adım için gerekenleri prompt'a taşır. id'ler ve ham loglar state'te kalır.
Episodic memory
Episodic memory, agent'in geçmiş deneyim defteridir. Bir kullanıcının önceki talepleri, bir test koşusunda alınan hata, daha önce denenmiş başarısız tool yolu, bir satış görüşmesindeki itiraz veya bir robotun önceki çevre gözlemi bu katmana yazılabilir. Episodic memory zaman, bağlam ve olay sırası taşır.
Generative Agents çalışmasındaki memory stream bu fikri çok görünür kılar: agent'in deneyimleri doğal dil kayıtları olarak tutulur; sonra relevance, recency ve importance sinyalleriyle geri çağrılır. Bu ham olaylar ayrıca reflection ile daha üst düzey çıkarımlara dönüştürülebilir. Yani “Klaus araştırma yapıyor” gibi olaylardan “Klaus araştırmasına çok bağlı” gibi bir reflection üretilebilir.
Ama burada ince bir tehlike var: reflection, hafızayı daha kullanışlı yaparken hatayı da fosilleştirebilir. Yanlış yorumlanmış bir olay, semantic inference olarak saklanırsa sonraki kararları gereğinden fazla etkiler. Bu nedenle episodic memory yazımı yalnızca “kaydet” değil, evidence pointer ve confidence meselesidir.
score = relevance × recency × importance
Dün: aynı test timezone yüzünden kırıldı
yüksek relevance + recency
Geçen ay: bir iade reddi yaşandı
yüksek importance
6 ay önce: sıradan kargo gecikmesi
düşük recency
Rutin teslimat bildirimi
düşük importance
Semantic memory
Semantic memory, olay değil bilgi taşır. Ürün kataloğu, iade politikası, API dokümantasyonu, kurum içi rehber, proje mimarisi, kullanıcı hakkında doğrulanmış profil bilgisi veya agent'in deneyimlerden çıkardığı genel kural bu katmana girebilir. RAG sistemlerinde external corpus çoğu zaman semantic memory gibi davranır.
Semantic memory iki kaynaktan gelebilir. Birincisi read-only bilgi tabanıdır: dokümanlar, kataloglar, mevzuat, runbook'lar. İkincisi agent-learned semantic memory'dir: agent'in episodic kayıtlar üzerinde reflection yaparak çıkardığı genel bilgi. Bu ikisini ayırmak gerekir; çünkü read-only katalog ile modelin çıkardığı “bu kullanıcı acelecidir” yargısı aynı güvenilirlikte değildir.
İyi semantic memory retrieval açıklanabilir olmalıdır. Agent “bunu biliyorum” dediğinde hangi doküman, hangi sürüm, hangi tarih, hangi tenant, hangi permission üzerinden bildiğini gösterebilmelidir.
read-only corpus
Ürün katalogları, policy dokümanları, resmi rehberler. Agent okumalı, doğrudan değiştirmemeli.
yüksek güven · kaynak gösterlearned facts
Episodic memory'den türetilmiş çıkarımlar. Confidence ve evidence pointer gerektirir.
hipotez · evidence ile doğrulatenant scope · her ikisine de uygulanır
Kurumsal sistemlerde her bilgi herkese açık değildir; retrieval authorization-aware olmalıdır.
freshness · her ikisine de uygulanır
Eski policy kaydı doğru formatta olsa bile güncel olmayabilir.
Preference memory
Preference memory, kullanıcının ne bildiğinden çok nasıl bir etkileşim istediğini taşır. Ton, cevap uzunluğu, formalite, bilgi yoğunluğu, çıktı formatı, dil tercihi, örnek isteme alışkanlığı ve bazı durumlarda erişilebilirlik tercihleri bu katmana girer. Bu bellek doğru çalışırsa ürün daha kişisel hissedilir; yanlış çalışırsa kullanıcıyı eski bir versiyonuna hapseder.
Preference memory'nin en zor tarafı değişimdir. İnsanlar sabit profil dosyaları değildir. Bir kullanıcı sabah hızlı checklist isterken, akşam mimari karar için detaylı gerekçe isteyebilir. PAMU gibi çalışmalar bu yüzden kısa dönem kaymaları sliding window ile, uzun dönem eğilimleri exponential moving average ile modellemeyi önerir.
Burada tasarım ilkesi şudur: preference memory öneri gücünde olmalı, izin veya güvenlik kararına dönüşmemelidir. “Kısa cevap seviyor” iyi bir tercih kaydıdır; “her zaman onaysız işlem yapılabilir” preference memory değildir, authorization policy meselesidir.
t1–t3: kısa, madde madde · t4: detay ve örnek istiyor
response policy
Detaylı anlat, ama başlık ve örneklerle okunabilir tut.
Memory pipeline
Memory mimarisini üç fiille okumak işe yarar: memory writing, memory reading, memory management. Writing, ham observation'ı saklanabilir kayda dönüştürür. Reading, aktif görev için ilgili kayıtları seçer. Management ise özetleme, birleştirme, silme, unutma, güçlendirme, çelişki çözme ve sürümleme kararlarını verir.
MemoryBank bu hattı storage, retrieval ve updating olarak kurar; MemGPT ise fixed context sınırını işletim sistemi benzeri bir memory katmanlamasıyla aşmaya çalışır: main context içinde olan bilgi inference'a girer, external context ise function call ile geri taşınmadıkça modele görünmez. Bu fikir üretimde çok önemlidir: saklanan her şey otomatik olarak prompt'a girmemelidir.
En iyi memory sistemleri seçicidir. Her şeyi saklayan sistem hem pahalı hem tehlikelidir. Hiç unutmayan agent, zamanla gereksiz, eski ve çelişkili kayıtlarla dolar. Her şeyi unutan agent ise kullanıcıyla ilişki kuramaz. Denge; retention, retrieval ve consent politikalarında kurulur.
Kullanıcı mesajı, tool sonucu, hata, onay veya dış olay gelir.
Kayıt türü seçilir: episodic, semantic, preference veya audit.
Embedding, zaman damgası, tenant, izin ve güven metadata'sı eklenir.
Aktif görev için relevance, recency, importance ve policy ile seçim yapılır.
Sadece gerekli ve izinli parçalar working memory üzerinden prompt'a girer.
Özetleme, decay, merge, conflict resolution veya deletion çalışır.
Saklanan her şey otomatik prompt'a girmez; sınırı yalnızca retrieve + inject geçer.
Memory poisoning
Memory poisoning, agent'in long-term memory veya RAG knowledge base katmanına kötü niyetli kayıt yerleştirerek gelecekteki davranışını değiştirme saldırısıdır. Bu saldırı model ağırlıklarını değiştirmek zorunda değildir; retriever gelecekte zehirli kaydı getirirse model onu normal bağlam gibi kullanabilir.
AGENTPOISON, long-term memory veya RAG knowledge base içine az sayıda malicious demonstration enjekte ederek tetikleyici sorgularda kötü kayıtların retrieved olmasını hedefler. PoisonedRAG ise knowledge database'i pratik saldırı yüzeyi olarak ele alır: saldırgan web sayfası, wiki edit'i, sahte haber veya içeriden erişimle retrieval corpus'una zehirli metin sokabilir.
Bu yüzden memory security, prompt injection filtresinden ibaret değildir. Tehlike bazen bugünkü prompt'ta değil, dün yazılmış ve yarın retrieval ile geri gelecek bir kayıttadır. Savunma; write-time validation, source trust, tenant isolation, retrieval anomaly detection, human review ve deletion yollarını birlikte ister.
t0 · saldırgan yazar
inject
Saldırgan corpus'a masum görünen ama hedefli kayıt ekler.
kayıt sessizce bekler
index
Kayıt embedding index'e girer ve normal memory gibi görünür.
t1 · masum sorgu tetikler
trigger
Gelecekteki sorgu zehirli kaydı retrieve eder.
condition
Model retrieved context'i güvenilir kabul eder.
effect
Yanlış cevap, hatalı tool seçimi veya riskli eylem oluşur.
Tehlike bugünkü prompt'ta değil; dün yazıldı, yarın retrieval ile geri gelip patlar.
Tasarım sözleşmesi
Agent memory tasarımında iyi soru “ne kadar hatırlasın?” değildir. İyi soru şudur: hangi memory türü, hangi amaçla, hangi süreyle, hangi izinle, hangi güven düzeyiyle, hangi silme hakkıyla ve hangi eval metriğiyle yaşayacak?
Memory eklendiğinde ürün yalnızca daha akıllı olmaz; daha sorumlu hale gelmek zorunda kalır. Kullanıcıya memory kontrolü verilmeli, hassas bilgiler redaction'dan geçmeli, otomatik memory write kararları audit edilebilmeli, retrieval sonuçları kaynak gösterebilmeli ve stale memory düzenli temizlenmelidir.
Benim üretim kuralım: Memory önce type edilir, sonra retrieve edilir, sonra prompt'a girer. Type edilmemiş memory çamurdur; retrieved edilmeyen memory maliyettir; doğrulanmadan prompt'a giren memory risktir.
type
Her kayıt episodic, semantic, preference, procedural veya audit olarak sınıflanıyor mu?
scope
Tenant, kullanıcı, workspace ve permission sınırları metadata'da mı?
evidence
Reflection ve learned facts ham kayıtlara pointer taşıyor mu?
freshness
Eski kayıtlar decay, expiry veya revalidation görüyor mu?
consent
Kullanıcı neyin hatırlandığını görebiliyor ve silebiliyor mu?
security
Write-time validation ve source trust kontrolü var mı?
eval
Memory recall, precision, stale harm ve poisoning testleri ölçülüyor mu?
Kaynaklar
- S1Sumers et al., Cognitive Architectures for Language Agents, TMLR 2024
- S2Park et al., Generative Agents, UIST 2023
- S3Zhong et al., MemoryBank, arXiv 2023
- S4Packer et al., MemGPT, arXiv 2023
- S5Zhang et al., Survey on Memory Mechanisms of LLM-based Agents, arXiv 2024
- S6Sun et al., Preference-Aware Memory Update, arXiv 2025
- S7Chen et al., AGENTPOISON, NeurIPS 2024
- S8Zou et al., PoisonedRAG, USENIX Security 2025
