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ü, bunların nasıl saklandığını ve API davranışını nasıl etkilediğini 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 temel nedeni modelin kalitesizliği değil, bellek katmanının bozukluğudur.
Üç 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.
Popüler açık kaynaklı bir ajan bellek sistemi olan Hippo, biyolojik olarak ilham alan bir yaklaşım sunar: kısa süreli, uzun süreli ve epizodik belleği, insan belleğinin çalıştığı gibi ayrı ayrı modelliyor. Bu proje, geliştiricilerin ajan belleğini genellikle sonradan düşündüğünü ve üretimde hatalarla karşılaştıklarını ortaya koydu.
💡 Apidog'un Test Senaryoları, durum tabanlı çok adımlı ajan konuşmalarını yayına almadan önce test etmenizi sağlar. Oturum durumunun API çağrıları arasında aktarıldığını doğrulayabilir, bağlam yapısı üzerinde doğrulama yapabilir ve Smart Mock ile bellek hatalarını simüle edebilirsiniz. Bu test katmanı, bu makalenin ikinci yarısında ele alınacaktır. Daha geniş test yaklaşımı için [internal: api-testing-tutorial] bölümüne bakın.
Yapay Zeka Ajan Belleği Nedir?
Ajan belleği, bir yapay zeka sisteminin mevcut girdinin ötesindeki bilgilere erişmesini veya bu bilgileri korumasını sağlayan mekanizmadır. Bellek olmadan her API çağrısı durumsuzdur: model bir istem alır, 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 şeydir. Çoğu LLM tabanlı ajan için bu, bağlam penceresidir. Örneğin:
- GPT-4o: 128K belirteçlik bağlam penceresi
- Claude 3.5 Sonnet: 200K
- Gemini 1.5 Pro: 1M
Çalışma belleği hızlı ve hassastır ancak pahalıdır (belirteç başına ödeme yaparsınız) ve sınırlıdır. Limite ulaşıldığında, en eski bağlam sessizce düşer. Bu, uzun süreli görevlerdeki ajan hatalarının en yaygın kaynağıdır.
Epizodik Bellek
Epizodik bellek, geçmiş etkileşimlerin, kararların ve gözlemlerin günlüğüdür. Genellikle bir vektör veritabanı (Chroma, Pinecone, Qdrant) veya yapılandırılmış bir olay günlüğü ile uygulanır.
Ajan, yanıt oluşturmadan önce anlamsal arama ile ilgili geçmiş epizodları alır. Hippo'nun yaklaşımı, zaman damgaları ve bozunma ağırlıkları kullanarak son etkileşimlere öncelik verir.
Semantik Bellek
Semantik bellek, ajanın bildiği gerçekler ve sabit bilgiler, kullanıcı tercihleri ve alan bilgisini saklar. Zaman sıralı değildir.
- Önceden yüklenebilir (kullanıcı verileriyle sistem istemi),
- Dinamik oluşturulabilir (geçmiş konuşmalardan çıkarılan gerçekler, bilgi grafiği),
- Harici olarak temin edilebilir (belge deposuna karşı RAG).
Prosedürel Bellek
Prosedürel bellek, ajanın öğrendiği işlemler, araç kalıpları ve iş akışlarını saklar. Genellikle sistem istemine gömülü örnekler veya depolanmış eylem planı kütüphanesi olarak uygulanır.
Gerçek Sistemlerde Bellek Nasıl Saklanır?
Dört tür nadiren dört ayrı depolamaya net bir şekilde eşlenir. Tipik bir mimari:
- Bağlam penceresi (çalışma): Aktif istemdeki her şey. Ajan çerçevesi yönetir, konuşma bitince süresi dolar.
- Harici vektör deposu (epizodik + semantik): Chroma, Pinecone, Qdrant gibi veritabanları geçmiş etkileşim ve bilgi gömülülerini saklar. Ajan her adımda sorgular.
- 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ıyla erişilir.
- Bellek içi önbellek (çalışma taşması): 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 modeller: son erişilmeyen çalışma belleği epizodik belleğe, oradan da semantik belleğe özetlenir. Hatta "uyku" komutu ile bu konsolidasyon tetiklenir.
Ajan Belleği API Davranışını Nasıl Etkiler?
Ajan API'leri geliştirirken, bellek mimarisi API çağrılarının görünümünü ve olası hataları doğrudan etkiler. Dikkat edilmesi gereken başlıca noktalar:
-
Oturum Kimlikleri: Çoğu ajan API'si, çağrılar arasında belleği ilişkilendirmek için oturum/iş parçacığı kimliği kullanır (ör. OpenAI Assistants API'si
thread_id). Yanlış kimlik kullanımı, bağlam kaybına veya oturum karışmasına yol açar. - İstek yüklerindeki bağlam boyutu: Bellek enjekte eden ajanlar, zamanla çok büyük istek gövdeleri oluşturabilir. HTTP istemcisi yük sınırını aşarsanız istekler sessizce başarısız olur.
- Erişim gecikmesi: Vektör deposu aramaları her adımda 50-200ms gecikme ekler.
- Arızalardan sonra tutarsız durum: Bir araç çağrısı başarısız olursa, epizodik günlük kısmi eylemi kaydeder ve bir sonraki adım bozuk durumdan başlar. İyi uygulama: araç çağrısı öncesi ve sonrası kontrol noktası alma.
Apidog ile API Aracılığıyla Ajan Belleği Nasıl Test Edilir?
Durum tabanlı ajan API’lerini test etmek için sadece tek bir isteği doğrulamak yetmez. Çok adımlı çağrılarda bağlam aktarımını, belleğe dayalı yanıtların değişimini ve hata durumlarında sistemin davranışını test etmek gerekir.
Apidog Test Senaryoları ile bir ajan API’si için aşağıdaki adımlar uygulanabilir:
Test 1: Bağlam Aktarımı
Üç adımdan oluşan bir senaryo oluşturun:
-
POST
/agent/chat— Bir gerçek tanıtın.
{ "message": "Projem PostgreSQL 16 kullanıyor" }
-
POST
/agent/chat— Hafızadan bu bilgiyi kullanacak bir takip mesajı gönderin.
{ "message": "Hangi veritabanı için optimize etmeliyim?" }
- 2. adımın yanıtında,
"PostgreSQL"geçtiğini doğrulayın:
expect(response.message.content).toContain("PostgreSQL");
Başarılıysa, ajan gerçek bilgiyi epizodik veya semantik bellekten çekmiştir.
Test 2: Oturum İzolasyonu
Aynı iki adımlı senaryoyu farklı session_id’lerle iki kez çalıştırın. İkinci oturumun yanıtının, ilk oturumdan bağlam içermediğini doğrulayın. Bu, çoklu oturumlarda bellek sızıntılarını yakalamak için kritiktir.
Test 3: Bellek Hatası Simülasyonu
Apidog'un Smart Mock özelliğiyle vektör depolama uç noktasında hata (ör. 503) simüle edin. Konuşmayı çalıştırın ve şunları kontrol edin:
- Ajan çökmeden yanıt veriyor mu?
- Yanıtta zarif bir geri dönüş mesajı var mı? (örn. "Bunu yanıtlamak için yeterli bağlama sahip değilim")
- Mock kaldırılınca oturum sorunsuz devam ediyor mu?
Test 4: Bağlam Penceresi Taşması
Çalışma belleğini zorlamak için hızlıca 30’dan fazla mesaj gönderin. Şunları doğrulayın:
- Ajan
context_length_exceededhatası fırlatmıyor, bağlamı zarifçe kesiyor. - 30. adımda, epizodik erişim sayesinde doğru yanıt veriliyor.
- Yanıt içindeki token sayısı beklenen aralıkta.
Bu dört testi Apidog’da tek bir Test Senaryosu olarak zincirleyin; oturum kimlikleri ve yanıt verileri için paylaşılan değişkenler kullanın. Bağlam pencerelerinin neden böyle çalıştığına dair teknik arka plan için [internal: how-to-build-tiny-llm-from-scratch] bölümüne göz atın.
Yaygın Bellek Hatası Modları
-
Sessiz bağlam kesme: Bağlam penceresi dolar ve eski mesajlar uyarı olmadan kaybolur.
response.usage.prompt_tokensile doğrulama yapın, modelin bağlam sınırında kalmasını sağlayın. - Oturum sızıntısı: İki kullanıcının oturumları bellek ad alanını paylaşır. Oturum izolasyon testleriyle yakalanır.
- Eski semantik bellek: Güncel olmayan bilgi, mevcut gerçeklerle çelişir ve ajan yanlış bilgi verir. Test senaryonuza güncel veri doğrulaması ekleyin.
- Gömülü kayması: Gömülü modeli değişirse, vektör deposu bozulabilir. Doğrudan API ile test etmek zordur; ancak alınan bağlamın sorguyla anlamsal uyumunu kontrol edin.
- Bellek enjeksiyonu (prompt injection): Kötü niyetli kullanıcı girdisi depolanan bilgiyi manipüle eder. Test paketinize düşmanca girdiler ekleyin ve ajanın bunları göz ardı ettiğini doğrulayın. Daha fazla API güvenliği için [internal: rest-api-best-practices] rehberine bakın.
Sonuç
Ajan belleği, zeki bir asistan ile hafızasını kaybetmiş bir asistan arasındaki farkı belirler. Çalışma, epizodik, semantik ve prosedürel bellek türlerinin her biri ayrı bir rol oynar. Belleğin nasıl saklandığını ve işlendiğini anlamak, potansiyel hata noktalarını bulmanızı ve API testlerinizde neyi doğrulamanız gerektiğini belirlemenizi sağlar.
Hippo gibi projeler, ilkeli bellek mimarisine geçişin hızlandığını gösteriyor. Hangi sistemi kullanırsanız kullanın, Apidog Test Senaryoları ile özellikle ölçekli ortamlarda görülen hata durumlarına karşı ajanlarınızı güvenle test edebilirsiniz.
Sıkça Sorulan Sorular
Bir ajana bellek eklemenin en basit yolu nedir?
En basit yöntem, konuşma geçmişi üzerinde kayan bir pencere kullanmaktır: istemde son N dönüşü tutun. Bu, epizodik bellek değildir ama kısa görevler için yeterlidir. Daha uzun süreli ajanlar için 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 bir iş parçacığı nesnesinde saklar. Ayrıca dosya arama ve kod yorumlayıcı gibi araçlarla harici bilgiye erişim sağlar. Bellek yönetimi soyutlanmıştır, bu da hata ayıklamayı zorlaştırabilir.
Ajan belleği için en iyi vektör veritabanı hangisidir?
Yerel geliştirme için: Chroma. Üretim için: Qdrant veya Pinecone. Hippo kütüphanesi takılabilir depolama arka uçlarını destekler. Claude Code’un bellek katmanı hakkında daha fazla bilgi için [internal: claude-code] bakın.
Ajanların geçmiş etkileşimleri halüsinasyon olarak algılamasını nasıl önlerim?
Etkileşim günlüklerini meta verilerle (tarih, güven, kaynak) 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, yanlış güvenli halüsinasyonu azaltır.
Çalışan bir ajan olmadan ajan belleğini test edebilir miyim?
Evet. Apidog'un Smart Mock özelliğiyle ajanın API yanıtlarını, belleğe dayalı olanlar dahil, simüle edebilirsiniz. Oturum kimliğine veya istek gövdesine göre farklı mock yanıtlar tanımlayın. Böylece canlı ajan olmadan ön uç veya entegrasyon katmanınızın bellek davranışını test edebilirsiniz.
Üretimde vektör depolama maliyeti ne kadar?
Pinecone’un ücretsiz katmanı 100K vektör içerir. Ölçekte, 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. Büyük maliyet genellikle depolama değil, embedding oluşturmadır. MCP sunucu entegrasyonlarıyla ilgili daha fazla bilgi için [internal: what-is-mcp-server] bakın.
RAG ile ajan belleği arasındaki fark nedir?
RAG (retrieval augmented generation), sorgu anında sabit bilgi tabanından ilgili belgeleri çeker. Ajan belleği ise dinamiktir: ajan etkileştikçe büyür ve değişir. RAG sistemi "belgeler X hakkında ne diyor?" sorusunu yanıtlar; ajan bellek sistemi ise "bu kullanıcı hakkında ne biliyorum ve onunla ne yaptım?" sorusuna odaklanır.

Top comments (0)