Yapay zeka ajanı belleği, bir ajanın yararlı bilgiyi bir oturumdan diğerine taşıma biçimidir. Bir modelin bağlam penceresi sınırlı olduğu için ajanlar, o anki görev için kısa bir çalışma belleği ve olguların, olayların ve tercihlerin tutulduğu ayrı bir kalıcı depo tutar; bunları seçerek geri çağırır, özetler, günceller ve bilerek unutur.
- Çalışma belleği eldeki görevi tutar; kalıcı bellek oturumdan uzun yaşar ve bilerek geri çağrılması gerekir.
- Daha büyük bir bağlam penceresi sorunu ortadan kaldırmaz: modeller uzun girdilerin ortasına gömülü bilgiyi daha güvenilmez kullanır.
- Epizodik bellek ne olduğunu, anlamsal bellek neyin doğru olduğunu kaydeder; ikisini karıştırmak tek seferlik olayları kurala çevirir.
- Geri çağırma isabeti depolama boyutundan daha önemlidir; çünkü güvenle hatırlanan yanlış bir anı, hiç anı olmamasından daha çok zarar verir.
- Saklanan her olgunun bir tarihi ve kaynağı olmalı ki süresi dolabilsin ya da geçersiz kılınabilsin.
- Unutmak bakımdır: zamanla zayıflat, geri plana al ve takvime göre sil.
Ajan belleği nedir?
Ajan belleği, bir yapay zeka sisteminin konuşma bittikten sonra tuttuğu ve sonraki bir konuşmada geri getirebildiği bilgidir. Durumsuz bir asistan her seferinde sıfırdan başlar: projeni, tercihlerini ve kısıtlarını her oturumda yeniden anlatırsın. Belleği olan bir ajan zaten bildiğinden yola çıkar. Bu saf kazanç gibi duyuluyor, ama hatırlanan her şeyin bir maliyeti var ve bir şey ne kadar uzun tutulursa yanlış anda hatırlanma ihtimali o kadar artar.
Araştırma sözlüğü burada yararlı. CoALA çerçevesi (Cognitive Architectures for Language Agents; Sumers, Yao, Narasimhan ve Griffiths), modüler bellek bileşenleri olan bir dil ajanını tarif eder ve dört türü ayırır. Çalışma belleği o anki kararda aktif olanı tutar. Epizodik bellek önceki etkileşimlerden gelen deneyimi saklar. Anlamsal bellek dünya ve ajanın kendisi hakkındaki bilgiyi saklar. İşlemsel bellek ise ajanın nasıl davrandığıdır; kısmen modelin ağırlıklarında, kısmen ajanın kodunda durur.
"Bu müşteri sabah aramalarını tercih ediyor" diye hatırlayan bir randevu asistanını düşün. O satırı saklamak önemsiz. Zor kısımlar başka her yerde: saklanmaya değer olduğunu fark etmek, bir toplantı isteği geldiğinde onu yeniden bulmak ve müşteri başka bir saat dilimine geçtiğinde onu bırakmak. Oturumlar arası bellek çoğunlukla bir erişim sorunudur ve tasarım emeği geri çağırma tarafında toplanır.
Çalışma belleği ile kalıcı bellek
Çalışma belleği, güncel görevin malzemesidir: istek, açık dosyalar, son birkaç adım. Kullanması hızlı ama dar; görev bitince anlamını yitirir. Kalıcı bellek geniş ve dayanıklı, ama herhangi bir anda yalnızca küçük bir kısmı modelin önünde. İki katmanı ayrı tutmak bir zorunluluk. Geçici ayrıntılar kalıcı depoya sızarsa tek seferlik bir durum kalıcı bir kural gibi davranmaya başlar. Dayanıklı olgular yalnızca çalışma belleğinde kalırsa oturum kapanınca kaybolur ve ajan onları her seferinde yeniden öğrenir.
İyi kurulmuş sistemler katmanlar arasında bir terfi kuralı tanımlar. Bir not çalışma belleğinden kalıcı belleğe ancak bir eşiği geçtiğinde taşınır: birden fazla kez işe yaradığı kanıtlanmıştır, güncel görevin ötesinde de geçerlidir ya da kişi ajandan açıkça bunu hatırlamasını istemiştir. Çok gevşek bir kural kalıcı belleği gürültüyle doldurur; çok sıkı bir kural ajanın hiç öğrenmemesi demektir.
| Boyut | Durumsuz asistan | Kalıcı belleği olan ajan |
|---|---|---|
| Bilginin ömrü | Oturumla biter | Oturumlara yayılır |
| Başlangıç noktası | Her seferinde sıfırdan | Tuttuklarından |
| Ana risk | Bağlamı tekrar tekrar yeniden kurmak | Bayat ya da yanlış bir anıyı hatırlamak |
| Bakım | Neredeyse hiç | Bayatlığı, çelişkileri ve gürültüyü yönetmek |
| Gizlilik yüzeyi | Küçük | Saklanan her şeyle büyür |
Daha büyük bağlam penceresi neden yetmez?
Bağlam penceresi, bir modelin aynı anda değerlendirebildiği metin miktarıdır. Pencereler çarpıcı biçimde büyüdü ve bu cazip bir kısayol çağırıyor: bütün geçmişi tut ve modelin ayıklamasına izin ver. İki bulgu buna karşı çıkıyor.
Birincisi, modeller uzun girdileri eşit kullanmaz. "Lost in the Middle" çalışmasında (Liu ve arkadaşları, TACL'de yayımlandı) performans, ilgili bilgi girdinin başında ya da sonunda yer aldığında çoğunlukla en yüksekti ve ortasında durduğunda, uzun bağlamlar için kurulmuş modellerde bile belirgin biçimde düştü. İkincisi, daha fazla bağlam doğrudan zarar verebilir. Anthropic'in mühendislik ekibi buna bağlam çürümesi (context rot) diyor: pencere doldukça modelin ondaki bilgiyi hatırlama yeteneği azalır; yani bağlam, azalan getirili sınırlı bir kaynaktır.
Böylece hatırlamak sıkıştırmaya dönüşür. Anthropic'in sıkıştırma (compaction) dediği yaygın teknik, sınıra yakın bir konuşmayı özetler ve özetten yeni bir pencere başlatır. Sıkıştırma her zaman bir şey kaybeder ve yarınki sorunun hangi ayrıntıya ihtiyaç duyacağını önceden bilemezsin. Olgun sistemler ikisini katmanlar: yakın geçmiş ayrıntılı, eski geçmiş özetlenmiş; özet de genel bir tekrar olarak değil, bir amaçla yazılır ("sonraki oturum bu projeye devam etmek için neye ihtiyaç duyar?").
Epizodik, anlamsal ve işlemsel bellek
Belleği işine göre ayırmak tasarım kararlarını netleştirir; çünkü her tür farklı yaşlanır.
- Epizodik bellek
- Ne olduğu ve ne zaman: "3 Mart'ta müşteri mavi logoyu reddetti". Geçmişin kaydı olarak sonsuza dek doğru kalır, ama bugünle ilgisi solar.
- Anlamsal bellek
- Şu anda neyin doğru olduğu: "müşterinin marka rengi yeşil". Genel olduğu için yararlıdır ve koşullar değiştiğinde sessizce yanlış hale gelebilir.
- İşlemsel bellek
- İşlerin nasıl yapılacağı: ajanın talimatları, araçları ve öğrenilmiş rutinleri. En seyrek değişir ve genellikle insanlar tarafından düzenlenir.
- Geri çağırma isabeti
- Ajanın geri getirdiği anının o an için doğru olanın ne sıklıkla olduğu.
Klasik hata, bir olayı olguya terfi ettirmektir. Bir kullanıcı bir hukuki e-postada resmî bir ton istedi; ajan "kullanıcı resmî tonu tercih ediyor" diye saklıyor ve bunu aylarca her gündelik mesaja uyguluyor. Olayı tarihi ve bağlamıyla bir olay olarak tutmak aşırı genellemeyi önler. Anlamsal olgular ise dönemsel yeniden kontrol ister; çünkü içlerindeki hiçbir şey doğru olmaktan çıktıklarını duyurmaz.
Ajanlar neyi geri çağıracaklarına nasıl karar verir?
Saklamak kolay; neyi geri getireceğini seçmek asıl iş. Etkili tasarımlardan biri Park ve arkadaşlarının Generative Agents makalesinden geliyor (UIST 2023). Ajanları deneyimlerin eksiksiz bir kaydını doğal dilde tutuyor ve davranışı planlamak için bunları dinamik olarak geri çağırıyor. Her anı üç sinyalle puanlanıyor: anının son kullanıldığı andan itibaren üstel biçimde azalan yakınlık; anı oluşturulurken modelin 1 (sıradan) ile 10 (çarpıcı) arasında verdiği önem; ve mevcut duruma benzerlik olarak ölçülen ilgi. En yüksek birleşik puanlar isteme girer.
Formül ne olursa olsun başarının ölçüsü, yanlış anının ne kadar nadir hatırlandığıdır. Hiçbir şey hatırlamayan bir sistem en azından bilmiyormuş gibi davranır. Bayat bir olguyu hatırlayan sistem hatalı bir temel üzerine kurar ve kendinden emin konuşur; bu sessiz hata dürüst bir boşluktan daha zor yakalanır. Büyüme bunu kötüleştirir: bir ajan ne kadar çok saklarsa geri çağırma anında o kadar çok neredeyse-kopya ve çelişki yarışır.
İki alışkanlık yardımcı olur. Kullanmadan önce geçerliliği kontrol et: bu anı hâlâ güncel mi ve nereden geldi? Güven düşükken varsaymak yerine sor: "Geçen sefer sabah aramalarını tercih ediyordun; hâlâ doğru mu?" bir mesaja mal olur ve yanlış bir rezervasyonu önler.
Bir ajan nasıl unutmalı?
Anılar bayatlar. Geçen çeyrekte doğru olan şey şimdi doğru olmayabilir ve hiç unutmayan bir ajan kendi geçmişiyle tartışmaya başlar. Unutmak, belleği yararlı tutan şeydir. Pratik bir öncelik sırası:
- Saklanan her öğeye bir tarih, bir kaynak ve bir güven düzeyi iliştir.
- Olayları ve olguları ayrı tut; böylece tek bir olay kazara kurala dönüşmez.
- Nadiren kullanılan öğelerin ağırlığını hemen silmek yerine zamanla azalt.
- İki anı çeliştiğinde daha iyi kaynağı ve daha yeni doğrulaması olanı tercih et ve eskisinin geçersiz kılındığını kaydet.
- Bir anıya göre davranmadan önce geçerliliğini yeniden kontrol et; şüphe varsa kullanma ya da sor.
- İnsanlara ajanın kendileri hakkında neyi hatırladığını görme, düzeltme ve silme yolu ver.
Yumuşak zayıflatma ile kesin silme farklı amaçlara hizmet eder. Bir anının ağırlığını azaltmak onu arka plana iter ama önemli çıkarsa geri dönüş yolunu bırakır. Silme nihaidir ve hassas olan her şey, kişinin kaldırılmasını istediği her şey ve basitçe yanlış olan her şey için doğru seçimdir.
Bugün kullanabileceğin pratik bellek kalıpları
Çalışan ajanların çoğu tek bir ayrıntılı bellek sistemi yerine birkaç basit kalıbı birleştirir. Anthropic uzun süren işler için üçünü tarif ediyor: sıkıştırma; ajanın bağlam penceresinin dışındaki bir depoya (bir yapılacaklar listesi ya da NOTES.md dosyası) düzenli not yazıp sonra geri okuduğu yapılandırılmış not alma; ve temiz bağlam pencereleriyle keşif yapıp öncü bir ajana özetlenmiş sonuçlar döndüren alt ajanlar.
| Kalıp | Neyi tutar | Ne için iyi | Dikkat edilecek nokta |
|---|---|---|---|
| Yapılandırılmış not dosyası | Kararlar, açık işler, temel olgular | Tek sahipli uzun projeler | Notların eskimesi |
| Oturum özetleri | Her oturumun sıkıştırılmış kaydı | Günler sonra işe devam etmek | Kimsenin geri getiremediği kayıp ayrıntılar |
| Aranabilir bellek deposu | Anlama göre geri çağrılan çok sayıda küçük kayıt | Birçok kullanıcıya hizmet eden asistanlar | Neredeyse-kopyalar ve bayat isabetler |
| Özetli alt ajanlar | Her alt görevin yalnızca sıkıştırılmış sonucu | Araştırma ve çok adımlı işler | Hataları gizleyen özetler |
Bir ajan kuruyorsan işe yarayabilecek en basit kalıpla başla: ajanın her oturumun başında okuyup sonunda güncellediği bir not dosyası. Oturumlar uzayınca özetler ekle ve anlama göre aramayı yalnızca notlar artık sığmadığında ekle. Her katman yanlış olmanın yeni bir yolunu ekler; bu yüzden onu daha basiti açıkça yetersiz kaldığında ekle ve geri çağırmayı küçük bir "hatırlamalı" ve "hatırlamamalı" vaka kümesiyle test et.
Her adımda pencereye neyin gireceğini seçmek, bilgi mimarisi olarak bağlam mühendisliği yazımızın derinlemesine ele aldığı disiplindir. Birkaç ajan belleği paylaştığında bellek yeniden zorlaşır; bu çok ajanlı orkestrasyon yazısında anlatılıyor ve ajanlar hatırladıklarına göre eyleme geçtiğinde riskler yükselir; bu geçiş araç kullanan ajanlar yazısında tartışılıyor.
WisyLink ile projenin bağlamını tek yerde tut
Aynı ilkeler, bir yapay zekayla sohbet ederek uygulama kurarken de geçerli. WisyLink'te her projenin (bir bağlantının) kendi sohbet konuşması var ve o konuşmadaki takip mesajları aynı uygulamayı değiştirir. Yenilerini başlatmak yerine o konuşmada çalışmaya devam et; böylece karar geçmişi projeye bağlı kalır. Geliştiriciler aynısını API üzerinden, bir bağlantıyı kimliğiyle sürdürerek yapabilir; bu API başvurusunda (İngilizce) ve yapay zeka site oluşturucu API'si rehberimizde anlatılıyor.
Yine de sohbet geçmişini tek belleğin olarak kullanma. Ayakta kalması gereken kararların (uygulama kimin için, randevu ya da iade kuralları, metnin tonu) kısa yazılı bir brifini tut ve daha büyük bir değişiklik istediğinde onları yeniden söyle. Bu brif senin anlamsal belleğin ve şartname odaklı geliştirme yazımız, ürünün kendisi kadar özeni neden hak ettiğini açıklıyor. Sırları sohbetin tamamen dışında tut: ödeme ve e-posta anahtarları, şifrelendikleri Entegrasyonlar altına girer.
Denemeye hazır olduğunda ücretsiz başla ve ilk uygulamanı tek, iyi yapılandırılmış bir mesajla anlat.
S.S.S.
