AI Ajanlarında Bellek Yönetimi: Pratikte Nasıl Çalışır?
Bir AI ajanı görev yaparken önceki konuşmaları, kararları ve bağlamı unutmaz, çünkü bellek yönetimi sistemi bunu sağlıyor. Eğer chatbot'u inşa ediyorsan veya otonom bir sistem geliştiriyorsan, belleğin nasıl çalıştığını anlamak kritik.
AI ajanlarının belleği üç ana katmandan oluşur: kısa vadeli bellek (conversation context), uzun vadeli bellek (vektör veritabanları ve dosyalar) ve işlemsel bellek (sistem durumu ve değişkenler). Kısa vadeli bellek genellikle LLM'ye gönderilen prompt bağlamıdır, son birkaç mesaj veya relevans skoru yüksek bilgiler. Uzun vadeli bellek ise öğrenilen bilgiyi, geçmiş etkileşimleri veya özel veri setlerini depolamak için vektör embedding'i ve semantik arama kullanır. İşlemsel bellek ise ajanın çalışma süresi boyunca tuttuğu durum değişkenleridir.
Pratikte bunu LangChain, AutoGen veya CrewAI gibi çerçevelerle uyguluyorsun. Örneğin, bir müşteri hizmetleri ajanı geçmiş biletleri vektör veritabanında tutabilir, yeni bir sorgu gelince semantik benzerlik ile ilgili biletleri bulabilir ve bağlama ekleyebilir. Böylece ajan her seferinde aynı soruyu tekrar sormaz.
1# Basit bellek örneği2from langchain.memory import ConversationBufferMemory3from langchain.chat_models import ChatOpenAI4from langchain.chains import ConversationChain56memory = ConversationBufferMemory()7llm = ChatOpenAI(model="gpt-4")89conversation = ConversationChain(10llm=llm,11memory=memory,12verbose=True13)1415# Konuşma devam ediyor, bellek otomatik tutulur16response = conversation.run(input="Adım Ali, yazılım mühendisiyim.")17response = conversation.run(input="Benim mesleğimi hatırla.")Bellek yönetiminde temel zorluk ise maliyet ve gecikme. Çok uzun belleği tutarsan token sayısı artar, API maliyeti yükselir ve yanıt hızı düşer. Uzun konuşmalarda belleği "özetleme" veya "filtreleme" stratejileri kullanılır, sadece önemli bilgileri tutar, detayları atarsın. Vektör veritabanları (Pinecone, Weaviate, Milvus) burada devreye girer; sadece relevans skoru yüksek bilgileri prompt'a eklersin.
Geliştirici olarak şunu yapmalısın: ajanın hangi bilgiyi tutması gerektiğini tanımla, bellek türünü (basit buffer mı, vektör arama mı, hibrit mi) seç ve temizleme/güncelleme politikası koy. Örneğin, müşteri hizmetleri ajanı eski biletleri 6 ayda bir silebilir, ama öğrenilen sorun çözümleri kalıcı tutabilir.
Bellek doğru yapılandırıldığında ajan daha akıllı, tutarlı ve verimli olur. Yanlış yapılandırıldığında ise pahalı, yavaş ve hataya eğilimli bir sistem elde edersin. Başlangıçta basit buffer belleği ile başla, sonra vektör arama ekle.
0 yorum