# Memory, State, and Long-Term Context

> Source: https://sukruyusufkaya.com/en/learn/claude-ustaligi/agent-memory
> Updated: 2026-05-11T13:48:36.330Z
> Category: Claude Ustalığı
> Module: 10. Agent Design
**TLDR:** Memory layers in multi-step / multi-session agents: scratch, episodic, semantic, user profile.

# 4 Hafıza Katmanı

1. **Scratch:** Mevcut adım, geçici değişkenler. Her loop'ta yenilenir.
2. **Episodic:** Bu oturumdaki olaylar. Konuşma özeti olarak saklanabilir.
3. **Semantic:** Genel gerçekler / kullanıcı tercihleri. Vektör DB veya KV store.
4. **Profile:** Kullanıcının kalıcı kimlik / tercih bilgisi.

Her katman farklı şekilde update edilir ve farklı maliyettedir.

### Vector DB seçimi

Pinecone, Weaviate, Qdrant, pgvector. Düşük başlangıç → pgvector ile aynı Postgres'de tut. Büyük ölçek → managed çözüm.

### Konuşma özetleme

Her N mesajda bir konuşmayı 100-200 kelimeye özetlet. Eski mesajlar düşür; özet kal. Bu hem context tasarrufu hem latency düşüşü.

### PII ve unutma hakkı

Kullanıcı 'beni unut' derse:

- Profile + episodic + semantic katmanlarından silme.
- Vector DB'de embedding'i ve metadata'yı kaldır.
- Logları redact et veya sil (politikana göre).

```python
# Konuşma özetleyici örneği
def summarize_history(messages, model="claude-sonnet-4-6"):
    conv = "\n".join(f"{m['role']}: {m['content']}" for m in messages)
    resp = client.messages.create(
        model=model,
        max_tokens=400,
        messages=[{"role":"user","content": f"Bu konuşmayı 150 kelimede özetle:\n{conv}"}],
    )
    return {"role":"system","content": "Geçmiş özet: " + resp.content[0].text}
```

**Boşluk doldurma egzersizi (text):**
```text
Hafıza katmanları: scratch, episodic, _____ ve profile. Vektör DB için başlangıçta _____ pratiktir. Kullanıcı 'beni unut' diyince embedding'leri _____ etmek gerekir.
```

> ✋ Kontrol noktası: `q-1004-mc1`