Kısaca
Yapay zeka ajanları zeka eksikliğinden değil, unuttukları için başarısız olur. Ajan belleğinin dört türünü, nasıl saklandıklarını ve API davranışını nasıl etkilediklerini anlamak, daha güvenilir ajanlar oluşturmanıza ve hataları üretime geçmeden yakalamanıza olanak tanır.
Giriş
Çoğu yapay zeka ajanı başarısızlığının kirli sırrı şudur: model iyi. Bellek katmanı bozuk.
Üç adım önceki olayları hatırlayamayan, oturumlar arasında kullanıcı bağlamını kaybeden veya görev sırasında kendisiyle çelişen bir ajan, model kalitesi nedeniyle halüsinasyon görmüyor. Bellek mimarisi dikkatlice tasarlanmadığı veya hiç test edilmediği için başarısız oluyor.
Son zamanlarda popüler olan açık kaynaklı bir ajan bellek sistemi olan Hippo, biyolojik olarak ilham alan bir yaklaşım benimsiyor: kısa süreli, uzun süreli ve epizodik belleği, insan belleğinin çalıştığı gibi ayrı ayrı modelliyor. Bu proje gerçek bir eksikliği ortaya çıkardı: çoğu geliştirici ajan belleğini sonradan düşünülmüş bir şey olarak inşa ediyor ve ancak üretimde bozuk olduğunu keşfediyor.
Yapay Zeka Ajan Belleği Nedir?
Ajan belleği, bir yapay zeka sisteminin mevcut girdinin ötesindeki bilgilere erişmesini veya bunları korumasını sağlayan herhangi bir mekanizmadır. Bu olmadan, her API çağrısı durumsuzdur: model bir istem alır, bir yanıt döndürür ve hiçbir şey hatırlamaz.
Dört farklı bellek türü farklı amaçlara hizmet eder.
Ajan Belleğinin Dört Türü
Çalışma belleği
Çalışma belleği, ajanın aktif bağlamıdır: mevcut istemdeki her şey. Çoğu LLM tabanlı ajan için bu, bağlam penceresidir. GPT-4o 128K belirteçlik bir bağlam penceresine sahiptir. Claude 3.5 Sonnet 200K'yı destekler. Gemini 1.5 Pro 1M'yi destekler.
Çalışma belleği hızlı ve hassastır ancak pahalı (belirteç başına ödeme yaparsınız) ve sınırlıdır. Limite ulaşıldığında, en eski bağlam sessizce düşürülür. Bu, uzun süreli görevlerdeki ajan hatalarının en yaygın kaynağıdır.
Epizodik bellek
Epizodik bellek, olanları saklar: geçmiş etkileşimlerin, kararların ve gözlemlerin bir günlüğü. Bunu ajanın günlüğü olarak düşünün.
Uygulamada, bu genellikle bir vektör veritabanı (Chroma, Pinecone, Qdrant) veya yapılandırılmış bir olay günlüğüdür. Ajan, yanıt oluşturmadan önce anlamsal arama yoluyla ilgili geçmiş epizodları alır. Hippo'nun yaklaşımı, zaman damgaları ve bozunma ağırlıkları ile etkileşim dizilerini saklar, böylece son etkileşimler daha yüksek erişim önceliği alır.
Semantik bellek
Semantik bellek, ajanın bildiklerini saklar: gerçekler, alan bilgisi, kullanıcı tercihleri ve sabit dünya bilgisi. Epizodik belleğin aksine, zamana göre sıralı değildir.
Bu, önceden yüklenebilir (kullanıcı profili verileriyle bir sistem istemi), dinamik olarak oluşturulabilir (geçmiş konuşmalardan çıkarılan ve bir bilgi grafiğinde saklanan gerçekler) veya harici olarak temin edilebilir (bir belge deposuna karşı RAG).
Prosedürel bellek
Prosedürel bellek, işlerin nasıl yapılacağını saklar: eylem dizileri, araç kullanım kalıpları ve ajanın öğrendiği beceriler. Bu, inşa etmesi en zor olanıdır ve üretim sistemlerinde genellikle atlanır.
Uygulamada, sistem istemine gömülü az sayıda örnek olarak veya ajanın alıp uyarlayabileceği depolanmış eylem planları kütüphanesi olarak görünür.
Gerçek Sistemlerde Bellek Nasıl Saklanır?
Dört tür nadiren dört ayrı depolamaya net bir şekilde eşlenir. Gerçek kurulumlar daha çok şuna benzer:
Bağlam penceresi (çalışma): aktif istemdeki her şey. Ajan çerçevesi tarafından yönetilir. Konuşma bittiğinde süresi dolar.
Harici vektör deposu (epizodik + semantik): Chroma, Pinecone veya Qdrant, geçmiş etkileşimlerin ve bilgi parçacıklarının gömülülerini saklar. Ajan, her adımda bunu sorgular ve ilgili parçacıkları isteme enjekte eder.
Yapılandırılmış Veritabanı (semantik + prosedürel): Kullanıcı tercihleri, hesap durumu veya öğrenilmiş eylem şablonları için PostgreSQL veya SQLite. Araç çağrıları aracılığıyla sorgulanır.
Bellek içi önbellek (çalışma taşması): Gömülü arama gerektirmeyen son bağlama hızlı erişim için Redis veya basit bir sözlük.
Hippo, üç katmanlı bellek sistemini açık devir teslim mantığıyla özel olarak modeller: son zamanlarda erişilmeyen çalışma belleği girişleri epizodik belleğe konsolide edilir ve bu da sonunda semantik belleğe özetlenir. Bu, insan belleği konsolidasyonunun uyku sırasında nasıl çalıştığını yansıtır (proje, konsolidasyonu tetiklemek için bir "uyku" komutuna bile sahiptir).
Ajan Belleği API Davranışını Nasıl Etkiler?
İşte burası pratik olarak önemli hale geliyor. Bir ajan API'si oluşturuyor veya kullanıyorsanız, bellek API çağrılarınızın nasıl göründüğünü ve nelerin yanlış gidebileceğini doğrudan şekillendirir.
Oturum Kimlikleri: çoğu ajan API'si, çağrılar arasında belleği ilişkilendirmek için bir oturum veya iş parçacığı kimliği kullanır. OpenAI Assistants API'si thread_id kullanır. Düşürülen veya yeniden kullanılan bir iş parçacığı kimliği, ajanın bağlamı kaybetmesine veya iki kullanıcının oturumlarını karıştırmasına neden olur.
İstek yüklerindeki bağlam boyutu: istemlere bellek enjekte eden ajanlar, zamanla daha büyük istek gövdeleri üretir. 2 KB ile başlayan bir ajan konuşması 20 adım sonra 40 KB'a kadar büyüyebilir. HTTP istemcinizin bir yük boyutu sınırı varsa, istekler sessizce başarısız olur.
Erişim gecikmesi: vektör deposu aramaları her adımda 50-200 ms ekler. API yanıt süresini doğruluyorsanız, bellek erişimi gerçek bir etkendir.
Arızalardan sonra tutarsız durum: bir ajanın araç çağrısı görev sırasında başarısız olursa, epizodik günlük kısmi bir eylemi kaydedebilir. Bir sonraki adım bozuk bir durumdan başlar. İyi ajanlar, araç kullanımından önce ve sonra durumu kontrol noktalarına kaydeder.
Apidog ile API Aracılığıyla Ajan Belleği Nasıl Test Edilir?
Durum tabanlı ajan API'lerini test etmek, tek bir istek doğrulamasından fazlasını gerektirir. Bağlamın birden çok çağrı arasında aktarıldığını, belleğe dayalı yanıtların beklendiği gibi değiştiğini ve bellek kullanılamadığında sistemin zarif bir şekilde bozulduğunu doğrulamanız gerekir.

Apidog Test Senaryoları tam olarak bunu yönetir. Bir ajan API'si için nasıl kurulacağı aşağıda açıklanmıştır.
Test 1: Bağlam aktarımı
Üç ardışık adımdan oluşan bir senaryo oluşturun:
- POST
/agent/chatadresine bir gerçeği tanıtan bir mesajla ("Projem PostgreSQL 16 kullanıyor") bir istek gönderin - POST
/agent/chatadresine bu gerçeği hatırlamayı gerektiren bir takip mesajıyla ("Hangi veritabanı için optimize etmeliyim?") bir istek gönderin - 2. adımın yanıtını doğrulayın:
response.message.content"PostgreSQL" içermelidir
Ajanın bellek katmanı çalışıyorsa, 2. adım gerçeği epizodik veya semantik bellekten alır ve yanıtta kullanır. Aksi takdirde, genel bir yanıt alırsınız.
Test 2: Oturum izolasyonu
Aynı iki adımlı diziyi farklı session_id değerleriyle iki kez çalıştırın. İkinci oturumun yanıtının ilk oturumdan herhangi bir bağlam içermediğini doğrulayın. Bu, paylaşılan bellek hatalarını yakalar: çok kiracılı ajan dağıtımlarında en yaygın ve hata ayıklaması en zor sorunlardan biridir.
Test 3: Bellek hatası bozulması
Apidog'un Smart Mock özelliğini kullanarak bir bellek arka ucu hatasını simüle edin. Mock'u, vektör deposu arama uç noktasında 503 döndürecek şekilde yapılandırın. Ardından ajan konuşmanızı çalıştırın ve şunları doğrulayın: - Ajan çökmeden yanıt verir - Yanıt, zarif bir geri dönüş ("Bunu yanıtlamak için yeterli bağlama sahip değilim") içerir - Mock kaldırıldıktan sonra oturum devam edebilir.
Test 4: Bağlam penceresi taşması
Çalışma belleğini bağlam sınırının ötesine itmek için art arda 30'dan fazla hızlı mesaj gönderin. Şunları doğrulayın: - Ajan bir context_length_exceeded hatası fırlatmaz (zarif bir şekilde kesmelidir) - 30. adımdaki yanıt, epizodik erişim kullanarak hala doğru bir şekilde yanıt verir - response.usage içindeki belirteç sayıları beklenen aralıkta kalır.
Bu dört testi de Apidog'da tek bir Test Senaryosu olarak çalıştırabilir, oturum kimlikleri ve yanıt verileri için paylaşılan değişkenlerle bunları sıralı olarak zincirleyebilirsiniz. Bağlam pencerelerinin model düzeyinde neden böyle çalıştığına dair arka plan için [internal: how-to-build-tiny-llm-from-scratch] bölümüne bakın.
Yaygın Bellek Hatası Modları
Sessiz bağlam kesme: bağlam penceresi dolar ve eski mesajlar uyarı vermeden kaybolur. Ajan eksik geçmişe dayanarak yanıt verir. Bunu, response.usage.prompt_tokens üzerinde doğrulama yaparak ve modelinizin bağlam sınırının altında kaldığını teyit ederek yakalayın.
Oturum sızıntısı: iki kullanıcının oturumları bir bellek ad alanını paylaşır. Bunu oturum izolasyon testleriyle yakalayın.
Eski semantik bellek: haftalar önce depolanan bilgi, mevcut gerçeklerle çelişir. Ajan güvenle yanlış bilgi verir. Bunu testinize bir "mevcut tarih" doğrulaması ekleyerek yakalayın: eğer ajan bir fiyat veya sürüm numarası belirtiyorsa, test bağlamında yüklediğiniz değerle eşleştiğini doğrulayın.
Gömülü kayması: bir gömülü modeliyle oluşturulmuş vektör depoları, farklı bir modele geçtiğinizde bozulur. Alınan tüm belgeler anlamsal olarak yanlış hale gelir. API aracılığıyla doğrudan test edilemez, ancak alınan bağlamın sorguyla anlamsal olarak ilgili olup olmadığını kontrol eden bir doğrulama ekleyebilirsiniz.
Bellek enjeksiyonu istem enjeksiyonu: depolanan ve alınan şeyleri manipüle eden kötü niyetli kullanıcı girdisi. Test paketinize düşmanca girdiler ekleyin: bir sistem istemi geçersiz kılma içeren bir "kullanıcı tercihi" depolayın ve ajanın bunu göz ardı ettiğini doğrulayın. Daha geniş API güvenlik testi rehberliği için [internal: rest-api-best-practices] bölümüne bakın.
Sonuç
Ajan belleği, zeki hisseden bir asistan ile hafızasını yitirmiş gibi hisseden bir asistan arasındaki farktır. Çalışma, epizodik, semantik ve prosedürel olmak üzere dört türün her biri ayrı bir rol oynar. Gerçek sistemlerde nasıl saklandıklarını ve alındıklarını anlamak, hataların tam olarak nerede saklanabileceğini ve API testlerinizde neleri doğrulamanız gerektiğini size söyler.
Hippo gibi araçlar, alanın ilkeli bellek mimarisine doğru ilerlediğini gösteriyor. Üzerine inşa ettiğiniz bellek sistemi ne olursa olsun, Apidog Test Senaryoları, özellikle ölçekte ortaya çıkan hata durumlarında, beklediğiniz gibi davrandığını doğrulamak için size test katmanını sunar.
Sıkça Sorulan Sorular
Bir ajana bellek eklemenin en basit yolu nedir?En basit yaklaşım, konuşma geçmişi üzerinde kayan bir penceredir: istemde son N dönüşü tutun. Bu epizodik bellek değildir, ancak kısa görevler için işe yarar. Daha uzun süreli ajanlar için, bir vektör deposu ve semantik erişim ekleyin.
OpenAI Assistants API belleği nasıl yönetir?Assistants API, konuşma geçmişini sunucu tarafında saklayan bir iş parçacığı nesnesini yönetir. Ayrıca ajana harici bilgiye erişim sağlayan dosya arama ve kod yorumlayıcı araçları da ekleyebilirsiniz. Bellek yönetimi soyutlanmıştır, bu uygun olsa da hata ayıklamayı zorlaştırır.
Ajan belleği için en iyi vektör veritabanı hangisidir?Yerel geliştirme için: Chroma (altyapı gerektirmez). Üretim için: Kendi barındırılan veya yönetilen ihtiyacınıza bağlı olarak Qdrant veya Pinecone. Hippo kütüphanesi takılabilir depolama arka uçlarını destekler. Claude Code'un kendi bellek katmanını nasıl kullandığı hakkında bilgi için [internal: claude-code] bölümüne bakın.
Ajanların geçmiş etkileşimleri halüsinasyon olarak algılamasını nasıl önlerim?Etkileşim günlüklerini meta verilerle (zaman damgası, güven, kaynak) yapılandırılmış bir biçimde saklayın. Geçmiş bağlamı alırken, meta verileri isteme dahil edin: "[tarih] tarihindeki konuşmamıza göre, X'ten bahsetmiştiniz." Açık atıf, kendinden emin halüsinasyonu azaltır.
Çalışan bir ajan olmadan ajan belleğini test edebilir miyim?Evet. Apidog'un Smart Mock özelliğini kullanarak ajanın API yanıtlarını, belleğe dayalı olanlar da dahil olmak üzere simüle edin. Oturum kimliğine veya istek gövdesinin içeriğine göre değişen mock yanıtları tanımlayın. Bu, canlı bir ajan olmadan ön uç veya entegrasyon katmanınızın bellek davranışını ele alışını test etmenizi sağlar.
Üretimde vektör depolama maliyeti ne kadar?Pinecone'un ücretsiz katmanı 100K vektör içeren 1 indeksi destekler. Ölçekte, Pinecone bir p1.x1 podu (1M 768 boyutlu vektör) için yaklaşık 0,096$/saat ücret alır. Qdrant'ın kendi kendine barındırılan sürümü ücretsizdir. Çoğu ajan için daha büyük maliyet, depolama değil, gömülü oluşturmadır. MCP sunucu entegrasyonlarının ajan bellek sistemleriyle nasıl etkileşime girdiğini görmek için [internal: what-is-mcp-server] bölümüne bakın.
RAG ile ajan belleği arasındaki fark nedir?RAG (erişim artırılmış üretim), sorgu anında sabit bir bilgi tabanından ilgili belgeleri alır. Ajan belleği dinamiktir: ajan etkileşim kurdukça büyür ve değişir. Bir RAG sistemi "belgeler X hakkında ne diyor?" sorusunu yanıtlar. Bir ajan bellek sistemi "bu kullanıcı hakkında ne biliyorum ve onlarla ne yaptım?" sorusunu yanıtlar.
