Bir Asistan Neden Unutuyor — Mnemo'nun Doğuşu · Mnemo Serisi 1/5
Bir gün Claude'a "geçen hafta Vault'a hangi raporu yüklemiştim" diye sordum. Boş baktı. Hiç yüklememişim gibi cevap verdi. Aslında yüklemiştim, hatta ona göstermiştim — ama o sohbet bitince benimle birlikte unutmuştu. O an aklımdan geçen ilk şey "demek ki bütün asistanlar Alzheimer hastası" oldu. İkinci şey: belki ben buna bir çözüm yazabilirim.
Bu, Mnemo'yu yazmaya nasıl başladığımın hikâyesi. Beş yazılık bir serinin birincisi. Burada kod yok; bir fikrin nasıl olgunlaştığı, bir ihtiyacın nasıl bir servise dönüştüğü var.
Asistanım benimle birlikte unutuyor
Geçen bahar bir gün Claude'a basit bir şey sordum: "Geçen hafta Vault'a yüklediğim aylık raporu hatırlıyor musun? Linkini bana yine ver, paylaşacağım." Cevap, üç satırlık nazik bir karışıklıktı: "Hangi rapor olduğunu hatırlamıyorum, daha fazla bilgi verir misin?"
Aslında o raporu ona iki gün önce göstermiştim. Hatta birlikte düzenlemiştik. Ama aramızdaki konuşma kapandığı an, hafıza da kapanmıştı. Sanki her sabah uyandığında beni yeniden tanışacağımız biri gibi yaşıyordu.
Bu his bir süredir vardı aslında ama o sabah net bir şekilde oturdu: asistanım her sohbette sıfırdan başlıyor. Ve daha kötüsü — ben de farkında olmadan, ona her şeyi her seferinde yeniden anlatmaya alışmıştım. Bağlam vermek için 200 kelime harcayıp, asıl soruyu sormak için 20 kelime kullanıyordum. Bu adil bir bölüşüm değildi.
Sorun "model" değil, "altyapı"
İlk içgüdü tabii ki "bunu LLM'in kendisi çözmeli" demek. Ama bir saniye düşününce yanlış soru olduğu belli. Çünkü:
- Modelin bağlam penceresi büyüse de, ben hangi bağlamın o pencereye girmesi gerektiğini söylemeliyim.
- Bir modelin ne hatırlayacağını seçmek tek başına model meselesi değil, veri meselesi.
- Üstelik benim sadece Claude'la değil, Foreman'la (PR review eden başka bir aracım), Vault'la (dosya paylaşımı), ileride sesli bir asistanla aynı şeyleri konuşmam gerekiyor.
Yani hafıza, modelin değil ekosistemin ortak ihtiyacıydı. Bir modelin içine gömerek değil, dışına yerleştirerek çözülmesi gereken bir şey.
O an Mnemo'nun fikri kafamda netleşti: her aktörün uzanıp sorgulayabileceği, tek kullanıcılı ama çok aktörlü bir hafıza servisi.
Tek kullanıcı, çok aktör
"Tek kullanıcılı" kısmı önemli. Çünkü çoğu hafıza/RAG sistemi multi-tenant düşünülüyor: binlerce kullanıcı, milyonlarca embedding, izolasyon, kota, faturalama. Bunların hiçbiri benim sorunum değildi.
Benim sorunum şuydu:
- Vault her dosya yüklediğimde, sildiğimde, link oluşturduğumda olay üretiyor.
- Foreman her PR'a yorum yaptığında, her sabah digest gönderdiğinde olay üretiyor.
- Claude Code ile her oturduğumda yeni bir bağlamla başlıyor.
Eğer bu üçü ortak bir hafızaya yazsa ve ortak bir hafızadan okusa, o zaman:
- Claude'a "geçen hafta hangi PR'lar review edildi" diye sorabilirdim.
- Foreman, daha önce review ettiği bir PR'ın yazarı için bağlam çekebilirdi.
- Vault'a dosya yüklediğimde, hafıza otomatik olarak "şu tarihte şu dosya yüklendi" diye not düşerdi — kimse manuel yazmazdı.
Bu üçü tek bir asistan hissi yaratırdı. Üç farklı araç değil; benimle birlikte yaşayan tek bir şey.
"Hafıza" bir özellik değil, bir altyapıdır
Burayı vurgulamak istiyorum çünkü atlanması kolay: hafızayı bir özellik gibi düşünmek (yani Claude'un içine sıkıştırılacak küçük bir uzantı gibi) yanlış zihinsel model. Hafıza, modern yazılım yığınımızda kayıp olan bir katmandır.
Bunun analojisi şu: 20 yıl önce uygulamalar veri tabanı kullanmıyordu, kendi dosyalarını yazıyordu. Sonra Postgres/MySQL ortaya çıktı ve "veri katmanı" diye ayrı bir altyapı olduğu kabul edildi. Bugün AI uygulamaları aynı evrim aşamasında: her biri kendi hafızasını kendi içinde kuruyor, kötü kuruyor, taşımıyor. Mnemo'nun yapmaya çalıştığı şey, bu hafıza katmanını dışarı çıkarmak.
Bu fikir bir kez kabul edildiğinde, kararların çoğu kendiliğinden yerli yerine oturuyor:
- Hafıza servisi olmalı, kütüphane değil — birden çok aktör erişecek.
- Sorgulanabilir olmalı, sadece yazılabilir değil — hafıza okumadan işe yaramaz.
- Otomatik beslenmeli, sadece manuel girilmemeli — kullanıcı her şeyi yazmaz.
- Anlamı taşımalı, sadece string değil — "geçen hafta yüklediğim rapor" bir anahtar kelime sorgusu değildir.
İlk gün masa başına geçtiğimde bunların hepsi yazılı değildi. Ama bir hafta sonra dökümanlaştırdığımda hepsi oradaydı. Çünkü asıl karar fikrin kendisi: "AI ekosistemim için ayrı bir hafıza servisi yazıyorum." Geri kalanı bu kararın çocukları.
Tek bir cümlelik manifesto
Mnemo'yu yazmaya başlarken kendime bir cümlelik bir manifesto kurdum, hâlâ orada duruyor:
"Mnemo, asistanlarımın birlikte hatırlayabileceği yerdir."
Bu cümlede üç şey var ve hiçbiri rastgele değil:
- Asistanlarım → çoğul. Tek asistan için tutmuyorum. Yarın bir başkası daha gelecek.
- Birlikte → ortak. Vault'un yazdığını Claude okuyacak.
- Hatırlayabileceği → aktif. Pasif log değil, sorgulanabilir bir şey.
Bu manifesto sonradan beni iki üç kez kötü kararlardan kurtardı. Bir özellik eklemek istediğimde "bu cümleye hizmet ediyor mu?" diye sordum. Hizmet etmiyorsa, eklemedim. Bu kadar basit bir filtrenin ne kadar işe yaradığını söyleyemem.
Sen de unutuyor musun? Yoksa asistanın mı?
Eğer buraya kadar okuduysan, muhtemelen kendi araçların arasında da bu kopukluğu yaşıyorsundur. Slack'te yazdığın bir karar, Linear'da açtığın bir issue, Notion'a düştüğün bir not, GitHub'daki bir PR yorumu — hepsi ayrı silolarda yaşıyor, hiçbiri ortak bir hafızaya bağlanmıyor.
Bunun çözümü illa kendi Mnemo'nu yazmak olmak zorunda değil. Ama bir yere oturup şu soruyu kendine sormaya değer:
"Asistanlarım benim hakkımda ne hatırlamalı? Ve bunu hatırlamayı kim yapacak?"
Cevap "ben" ise, zaten yapıyorsundur — her bağlamı yeniden anlatarak. Cevap "asistan" ise, hangi asistanın hangi parçayı hatırladığını biliyor olman gerekir. Cevap "ekosistem" ise, o zaman muhtemelen senin de bir hafıza katmanına ihtiyacın var.
Bir sonraki yazıda Mnemo'nun ilk teknik kararlarına bakacağız: vector veri tabanı seçimi (ve neden Pinecone'un sayfasından geri kaçtığım), tek tablo vs ayrı tablo tartışması, ve "şu anda lazım olmayan ama gelecek için bırakılan" şeylerin diplomatik dengesi.
Ama hepsinden önce şunu söylemek istiyorum: Mnemo bir ürün değil, bir alışkanlık. Yazılım sadece o alışkanlığın altyapısı. Asistanlarınızın unutmadığı bir gelecek için yazmaya değer bir altyapı.