list_altİçindekilerexpand_more
- 01Neden Agent Belleği Gerekli?
- 02Araçlara Genel Bakış
- 03Mem0
- 04Zep
- 05Letta (eski adı: MemGPT)
- 06Karşılaştırma Tablosu
- 07Python Kod Örnekleri
- 08Mem0 ile Kullanıcı Belleği
- 09Zep ile LangChain Entegrasyonu
- 10Letta ile Agent Oluşturma
- 11Hangisini Seçmeli?
- 12Hızlı prototip veya API key ile başlamak
- 13LangChain veya LangGraph projesi ve production kullanım
- 14Agent-native bellek kontrolü veya araştırma
- 15Entegrasyon Patternleri
- 16LangGraph ile Bellek Entegrasyonu
- 17RAG ile Bellek Birleştirme
- 18n8n veya Make Workflow’larında Bellek
- 19Vektör Veritabanı Seçimi
- 20Hangi Agent Framework’üyle Kullanıyorsunuz?
- 21Sonuç
Bir AI agent ile uzun bir iş akışı kuruyor, tercihlerinizi paylaşıyor, geçmiş kararları aktarıyorsunuz. Ertesi gün aynı agent’a dönüyorsunuz; hiçbir şey hatırlamıyor. Sıfırdan başlamak zorunda kalıyorsunuz.
Bu, stateless LLM mimarisinin temel sınırı. Her oturum bağımsız bir bağlamla açılıyor; önceki oturumdan tek bir bit bile aktarılmıyor. Basit chatbot kullanımında bu sorun göze batmıyor. Ancak gerçek iş akışlarında çalışan AI agent’lar için bu durum ciddi bir kırılma noktası.
Bu noktada üç farklı yaklaşım öne çıkıyor: Mem0, Zep ve Letta (eski adıyla MemGPT). Her biri aynı sorunu farklı bir açıdan ele alıyor; mimari tercihler, hedef kitle ve kurulum zorluğu bakımından aralarında belirgin farklar var. Bu yazıda üçünü karşılaştırarak hangi projeye hangisinin uyduğunu netleştiriyoruz.
Neden Agent Belleği Gerekli?
Bir LLM, her inference çağrısında yalnızca prompt’taki bilgiyi görüyor. Geçmiş konuşma, kullanıcı tercihleri veya sistem kararları context window içine girilmemişse model bunlara erişemiyor.
Bu sınır birkaç kritik sorunu beraberinde getiriyor:
- Kullanıcı bağlamı kopukluğu: Kullanıcının mesleği, tercihleri, öncelikleri her oturumda yeniden sorulması gerekiyor.
- Karar sürekliliği yok: Agent bir hafta önce “A çözümünü kullan” diye karar verdi. Ertesi hafta bu kararı hatırlamıyor ve aynı soruyu yeniden tartışıyor.
- Context window dolması: Uzun belge veya tarihsel konuşmalar context window’u dolduruyor. Eski bilgi düşmeye başlıyor.
Persistent memory katmanı bu sorunları şöyle çözüyor: konuşmadan gerçekleri çıkar, vektör veya graph veritabanına depola, sonraki oturumda semantik arama yaparak ilgili parçaları geri getir. Temel fikir RAG mimarisinin bellek uygulamasıyla örtüşüyor.
Araçlara Genel Bakış
Mem0
Mem0, 2024 ortasında popülerleşen hibrit bir bellek katmanı. Hem managed cloud API hem de open-source self-hosted versiyonu mevcut.
Çalışma prensibi şu: agent ile her konuşmada bir LLM, diyaloğu analiz ederek “hatırlanmaya değer” gerçekleri otomatik olarak çıkarıyor (fact extraction). Bu gerçekler hem vektör veritabanına hem de opsiyonel olarak bir graph veritabanına yazılıyor. Sonraki sorgularda semantik arama ile ilgili anılar prompt’a ekleniyor.
Artıları: pip install mem0ai ile anında başlanıyor, cloud API ile hiç altyapı kurmadan çalışmaya başlayabiliyorsunuz. Fact extraction otomatik; konuşmayı kendiniz parse etmenize gerek kalmıyor. LangChain, LlamaIndex ve OpenAI Agents ile drop-in entegrasyon var. Türkçe içerik de düzgün işleniyor.
Eksileri: Managed versiyonda veriler Mem0’ın kendi cloud’unda duruyor; veri egemenliği gerektiren projelerde bu sorun olabilir. Self-hosted kurmak için birden fazla servis (vektör DB, graph DB, API sunucu) ayağa kaldırmanız gerekiyor. Fact extraction kalitesi kullandığınız LLM’e doğrudan bağlı; düşük kapasiteli modelle çalışırsanız gereksiz bilgi birikebiliyor.
Zep
Zep, özellikle LangChain ve LangGraph ekosistemine odaklanan, enterprise kullanıma yönelik bir agent bellek altyapısı. Apache 2 lisanslı açık kaynak versiyonunun yanı sıra Zep Cloud adında managed bir seçenek de sunuyor.
Çalışma prensibi Mem0’dan biraz farklı: diyalog geçmişini saklarken aynı zamanda entity extraction yapıyor. Kim olduğu, ne istediği, hangi projenin içinde çalıştığı gibi bilgiler bir knowledge graph’a dönüşüyor. Sonraki oturumlarda bu graph, semantik arama sonuçlarıyla birlikte agent’a sunuluyor.
Artıları: LangChain ZepChatMessageHistory ve LangGraph state entegrasyonu hazır geliyor, ayrıca bir şey yapmanıza gerek kalmıyor. Knowledge graph yapısı çok kullanıcılı ve uzun soluklu projelerde güçlü bir bağlam ortamı oluşturuyor. Docker Compose veya Kubernetes ile production deployment zaten destekleniyor. Konuşma özetleme mekanizması context taşmasını yönetiyor.
Eksileri: Başlangıç kurulumu Mem0’a kıyasla daha fazla adım gerektiriyor; Docker ve port yönetimi yapmanız gerekiyor. Cloud API olmadan sıfırdan başlamak mümkün değil, yerel bir servis ayağa kaldırmak şart. Küçük veya kısa ömürlü projelerde gerekenden fazla karmaşık hissettiriyor.
Letta (eski adı: MemGPT)
Letta, 2023 sonunda akademik bir makaleyle tanıtılan MemGPT projesinin geliştirilmiş ve üretim odaklı hale getirilmiş versiyonu. Yaklaşım tamamen farklı: belleği dışarıdan yönetmek yerine agent’ın kendi belleğini yönetmesini amaçlıyor.
Fikir basit ama güçlü: işletim sistemi nasıl RAM ile disk arasında paging yapıyorsa, Letta da LLM’in active context’ini ile archival (harici) belleği arasında benzer bir mekanizma kuruyor. Agent, “bu bilgiyi hatırlamam gerekiyor” dediğinde archival memory’ye yazıyor. “O kararı hatırlamak istiyorum” dediğinde recall search yapıyor ve ilgili parçaları context’ine çekiyor.
Artıları: Bellek yönetimi dışarıdan inject edilen bir middleware değil, agent’ın kendi mantığının bir parçası. In-context memory, archival storage ve recall search birlikte çalışıyor; bu yapı Mem0 veya Zep’e kıyasla çok daha ince ayar yapmanıza imkan tanıyor. Mimarisi akademik literatürde test edilmiş. Veriler tamamen sizin kontrolünüzde.
Eksileri: Letta server kurulumu ve agent tanımlama süreci öğrenme eğrisi gerektiriyor. Production’da tam güvenilirlik için ek hardening çalışması yapmanız gerekebiliyor. Managed cloud seçenek yok; her şeyi kendiniz yönetmek zorundasınız.
Karşılaştırma Tablosu
| Özellik | Mem0 | Zep | Letta (MemGPT) |
|---|---|---|---|
| Lisans | MIT + Managed | Apache 2 | Apache 2 |
| Kurulum zorluğu | Düşük | Orta | Orta-Yüksek |
| LangChain entegrasyonu | ✅ | ✅ Native | ✅ |
| Knowledge graph | ✅ | ✅ | ✅ |
| Fact extraction | ✅ Otomatik | ✅ Entity extraction | Manuel + otomatik |
| Cloud SaaS | ✅ | ✅ Zep Cloud | ❌ Self-hosted |
| Araştırma olgunluğu | Orta | Yüksek (prod-ready) | Yüksek (akademik) |
| Fiyat (managed) | Freemium | Freemium | Ücretsiz (self-hosted) |
Python Kod Örnekleri
Mem0 ile Kullanıcı Belleği
from mem0 import Memory
memory = Memory() # API key env'den alır
# Konuşmayı kaydet
messages = [
{"role": "user", "content": "Python yerine TypeScript kullanmayı tercih ediyorum."},
{"role": "assistant", "content": "Anladım, TypeScript ile devam edeceğiz."}
]
memory.add(messages, user_id="user_123")
# Sonraki oturumda belleği sorgula
results = memory.search("kullanıcı dil tercihi", user_id="user_123")
print(results) # [{"memory": "TypeScript kullanmayı tercih ediyor", ...}]
Zep ile LangChain Entegrasyonu
from langchain_community.memory import ZepChatMessageHistory
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_openai import ChatOpenAI
# Zep session belleği
history = ZepChatMessageHistory(
session_id="session_abc",
url="http://localhost:8000",
api_key="your-zep-api-key"
)
# LangChain prompt'a entegre et
prompt = ChatPromptTemplate.from_messages([
("system", "Sen yardımcı bir asistansın."),
MessagesPlaceholder(variable_name="history"),
("human", "{input}")
])
chain = prompt | ChatOpenAI(model="gpt-4o")
response = chain.invoke({"input": "Projem hakkında ne biliyorsun?", "history": history.messages})
Letta ile Agent Oluşturma
from letta import create_client
from letta.schemas.memory import ChatMemory
client = create_client() # yerel Letta server
agent = client.create_agent(
name="proje_asistani",
memory=ChatMemory(
human="Kullanıcı bir SaaS startup kurucusu.",
persona="Ben uzun dönemli hafızaya sahip bir proje asistanıyım."
)
)
# Agent'a mesaj gönder
response = client.send_message(
agent_id=agent.id,
role="user",
message="Geçen hafta konuştuğumuz API tasarımını hatırlıyor musun?"
)
print(response.messages[-1].text)
Hangisini Seçmeli?
Hızlı prototip veya API key ile başlamak
Mem0 açık ara en kolay başlangıç noktası. pip install mem0ai, bir API key ve birkaç satır Python ile konuşma belleği çalışmaya başlıyor. Prototip aşamasında ya da bellek altyapısını test etmek istiyorsanız ilk tercihiniz bu olmalı.
LangChain veya LangGraph projesi ve production kullanım
Zep bu kategoride ayrışıyor. LangChain ekosisteminde native destekle geliyor; ZepChatMessageHistory direkt olarak LangChain zincirlerine takılıyor. LangGraph ile state yönetimi yapıyorsanız, Zep’in knowledge graph’ı stateful agent akışlarını önemli ölçüde zenginleştiriyor. Enterprise projeler için de Docker tabanlı deployment hazır.
Agent-native bellek kontrolü veya araştırma
Letta farklı bir zihinsel model gerektiriyor. Belleği bir middleware olarak değil, agent davranışının bir parçası olarak tasarlıyorsanız; ya da akademik düzeyde bellek mimarisi üzerine çalışıyorsanız Letta’nın yaklaşımı daha uygun. Öğrenme eğrisi yüksek ama karşılığında tam kontrol elde ediyorsunuz.
Entegrasyon Patternleri
LangGraph ile Bellek Entegrasyonu
LangGraph’ta stateful bir agent genellikle iki katmanlı bellek kullanır: kısa dönemli durum (graph state) ve uzun dönemli kalıcı bellek (external memory). Zep veya Mem0 burada external memory katmanı olarak konumlanıyor. Her düğüm çalışmadan önce ilgili anılar sorgulanıyor, düğüm çıktıları ise belleğe yazılıyor.
RAG ile Bellek Birleştirme
Bellek ve RAG farklı şeyleri çözüyor: RAG statik belge koleksiyonlarından bilgi getirirken bellek sistemi dinamik, kullanıcı/oturum özelindeki gerçekleri saklıyor. İkisini birleştiren hibrit mimari, hem domain bilgisini hem de kullanıcı bağlamını tek bir retrieval adımında agent’a sunabiliyor. Bu pattern özellikle embedding modellerini verimli kullanan vektör tabanlı sistemlerde etkili.
n8n veya Make Workflow’larında Bellek
No-code/low-code orchestration araçlarında da bellek katmanı kullanılabiliyor. Mem0’ın REST API’si HTTP request düğümleriyle doğrudan entegre oluyor. Zep benzer şekilde webhook tabanlı akışlara bağlanabiliyor. Bu yaklaşım sıfırdan agent geliştirme yapmadan bellek özelliğini mevcut iş akışlarına eklemenin pratik yolu.
Vektör Veritabanı Seçimi
Her üç araç da arka planda vektör veritabanı kullanıyor. Mem0 Qdrant veya Chroma ile çalışabiliyor; Zep kendi vektör katmanıyla geliyor; Letta ise LanceDB tabanlı bir archival storage yapısı kullanıyor. Self-hosted kurulumlarda hangi vektör DB’yi tercih ettiğiniz, mevcut altyapınıza ve ölçek gereksinimlerinize bağlı.
Hangi Agent Framework’üyle Kullanıyorsunuz?
Agent framework karşılaştırmasında gördüğümüz gibi LangGraph, CrewAI ve AutoGen her birinin farklı bellek entegrasyon yolları var:
- LangGraph + Zep: Knowledge graph state ile LangGraph’ın kendi state yönetimini tamamlıyor.
- CrewAI + Mem0: CrewAI’nin dahili bellek katmanı yetersiz kaldığında Mem0 drop-in çözüm sunuyor.
- AutoGen + Letta: AutoGen’in çok-agent mimarisinde Letta’nın agent-native belleği her agent için ayrı kalıcı bağlam tutuyor.
Sonuç
2026 itibarıyla üç araç da olgunluk seviyesine ulaştı. Bellek sistemi seçerken şu soruları yanıtlamak yeterli:
Altyapı ne kadar yönetmek istiyorum? Az: Mem0 Cloud. Orta: Zep Cloud veya Docker. Tam kontrol: Letta self-hosted.
Hangi frameworkte çalışıyorum? LangChain/LangGraph ağırlıklıysa Zep native avantaj sunuyor. Framework bağımsız çalışıyorsanız Mem0’ın API’si en esnek seçenek.
Belleği kim yönetmeli? Dışarıdan inject edilen bir middleware istiyorsanız Mem0 veya Zep. Belleği agent’ın kendi mantığına katmak istiyorsanız Letta.
Üç araç da birbirinin alternatifi olmaktan çok tamamlayıcısı. Mem0 ile prototipi hızlıca çıkarmak, production’a geçerken Zep’e taşımak ya da araştırma bileşenleri için Letta’yı denemek: bunların hepsi mantıklı yollar. Önemli olan bellek katmanının projenizin gereksinimlerine göre şekillenmesi.



