Yapay zeka ajanlarının proje hafızasını paylaşmasını sağlayan 'memorize'ı geliştirdim — ve yardıma ihtiyacım var
(github.com/shakystar)Tek başıma geliştirirken her gün yaşadığım bir sorundan yola çıktım. Tedarikçiler her gün daha iyi modeller çıkarıyor ve o modellerle geliştirmeye devam etmek için her geçiş yaptığımda (örneğin Opus 4.7'den GPT 5.5'e), projenin çalışma hafızası benimle gelmiyordu. Ajanlar kendi bellek silolarını biriktirirken, ben kopan bağlamı her seferinde elimle yeniden canlandırmak zorunda kaldım. Ajanların ilk dönem hafıza özellikleri çok zayıftı; oturum bittiğinde bağlam da ölüyordu ve tek bir makineye hapsolduğu için masaüstünde yaptığım işe dizüstünde devam edemiyordum.
Projelerin kendi hafızasına ihtiyacı var. Bu yüzden şunu yaptım: projenin kendisinin hafızaya sahip olmasını sağlayan, local-first açık kaynak bir çözüm.
Teknik olarak güvendiğim noktalar
-
Beynin tamamlayıcı öğrenme sisteminden (CLS) esinlenen iki katmanlı hafıza — çalışma sırasında LLM olmadan, düşük maliyetle sadece gözlemleri yakalama (hipokampus); oturum sınırlarında arka planda birleştirme (neokorteks). Unutma, silme ile değil geri getirme anındaki puan rekabetiyle olur (önem × 14 günlük yarı ömürlü güncellik × görev ilgisi) ve hiçbir anı silinmez.
-
Sıfır API anahtarı — entegrasyon için ayrı bir LLM gerekmez. Zaten giriş yapılmış
claude -p/codex execdoğrudan çalıştırılır. Yapı, ajanın kendi hafızasını düzenlemek için yine kendisini kullanır; burada ortaya çıkan sonsuz özyineleme (birleştirme→hook tetiklenmesi→birleştirme→…) ise ortam değişkeni korumasıyla kesilir. -
Kayıpsız birleştirme — watermark yalnızca olay kalıcılaştırıldıktan sonra ilerler; bu yüzden LLM zaman aşımı ya da ayrıştırma hatası olursa, bir sonraki sınır aynı aralığı yeniden dener. Watermark'ın kendisi kaybolsa bile kaynak tabanlı dedup, yinelenen birleştirmeleri engeller.
-
Sunucusuz çoklu makine yakınsaması — append-only olay günlüğünü senkronize ettiğinizde, saat senkronizasyonu olmadan yalnızca içerik tabanlı deterministik kurallarla tüm makineler aynı duruma yakınsar. İki makine aynı aralığı aynı anda birleştirse bile tüm kopyalar aynı kazananı seçer.
-
Çelişki tespitinde embedding'e güvenmeme — kosinüs benzerliği olumsuz cümlelere karşı kördür (
merge etilemerge etmeneredeyse aynı vektördür). Bu yüzden benzerlik yalnızca adayları geri getirmek için kullanılır, asıl kararı LLM verir. Kaybeden anı silinmez; yalnızca geçerlilik süresi kapanır, böylece "o zaman doğruydu" durumu geri yüklenebilir. -
Paralel oturumlarda gerçek zamanlı paylaşım — aynı projede çalışan oturumlar birbirinin ne yaptığını görebilir ve aynı dosyaya dokunurlarsa çakışma uyarısı çıkar.
-
Şemayı teoriyle değil ölçümle evrimleştirme — hafıza sınıflandırma sistemini değiştirip değiştirmemeye, her hafızaya eklenen gözlem odaklı yaşam süresi alanı ve davranış telemetrisi (ne zaman enjekte edildi, ne zaman geçersiz kılındı) birkaç hafta toplanıp veriyle karar veriliyor. Bu tartışmanın tamamı depo Discussions bölümünde açık şekilde yürütülüyor.
Neden şimdi paylaşıyorum
Dürüst olmak gerekirse bunu daha olgun bir halde yayımlamak istiyordum. Ama OpenAI'ın dreaming benzeri hafıza özellikleri çıkardığını görünce fikrim değişti — aynı problemi büyük tedarikçilerin de kazmaya başlaması, yönün doğru olduğuna işaret ediyor; ayrıca hafızanın tedarikçi duvarları içine hapsolduğu bir standart oluşmadan önce tedarikçiden bağımsız bir alternatifin var olması gerektiğini düşündüm. Bu yüzden şimdi yayımlıyorum.
Nereye kadar gitmek istiyorum
Fable 5 seviye modeller ortaya çıktıkça, ajanlar artık birbirleriyle iş birliği yapabilecek seviyeye geldi; ama iş birliği yapabilecekleri ortak altyapı yok. Uzun vadede, Git'in kod için yaptığını ajan hafızası ve iş birliği için yapan kamusal fayda odaklı bir platform kurmak istiyorum. Param olmadığı için sunucuyla başlayamadım — ama bu kısıt, ironik şekilde sunucusuz da yakınsayan local-first bir tasarım ortaya çıkardı. Şu anda bunun ilk parçası olan "yerelde proje hafızası paylaşımı" tamamen çalışıyor. Aslında bu projenin tasarım tartışmaları, uygulaması ve bugün sabaha karşı yapılan dağıtımın önemli bir kısmı da ajanlarla birlikte ilerledi — tam olarak bu aracın teşvik etmek istediği iş birliği biçimi gibi.
Somut olarak ihtiyaç duyduğum yardım
- Deneyip kırılan noktaları bildirin — tek satırlık kurulumdan sonra issue açın. Bugünkü yayın öncesi doğrulamada bile kurulum betiğinde 2 hata yakaladım (PowerShell 5.1 tırnaklama, Linux EACCES); kesinlikle daha fazlası vardır.
- Başka ajan adaptörleri — Cursor, Gemini CLI, Windsurf tarafındaki hook yapısını bilenler.
- Hafıza sınıflandırma sistemi tartışmasına katılın — "hafızanın türleri nelerdir" sorusunu veriyle kararlaştırmak için Discussions açık.
Kurulum tek satır: (Windows için README'deki PowerShell komutuna bakın)
curl -fsSL https://raw.githubusercontent.com/shakystar/memorize/… | sh
Veya Claude/Codex oturumuna tek satır: "Set up memorize in this project. Follow
https://github.com/shakystar/memorize/…;
Depo: https://github.com/shakystar/memorize · Korece README
(https://github.com/shakystar/memorize/blob/main/docs/i18n/README.ko.md) · Mimari belgesi
(https://github.com/shakystar/memorize/blob/main/docs/ARCHITECTURE.md)
AGPL, tüm veriler yerelde saklanır, telemetri yok. Her türlü geri bildirime açığım.
1 yorum
Ben yaptım.
Bu projenin lansmanından hemen önceki gün, tam da bu aracın hedeflediği iş birliği biçimi gibiydi. Ajanla "hafıza sınıflandırmasında etiket doğru mu, beynin içinde etiket yok ki" diye tasarım tartışması yaptık, varılan uzlaşı GitHub Discussions ve issue'larda kalıcı hale geldi, uygulama PR'ı merge edildi ve ajan, kendi kendisini (
claude -p) çıkarıcı olarak kullanıp gerçek çalışma kayıtlarını uzun vadeli hafızaya entegre eden dogfooding'i bile doğruladıktan sonra dağıtım düğmesine bastım. O süreçteki tasarım tartışmalarının tamamı depo içindeki Discussions'ta açık olarak duruyor.Yazının ana kısmında yer vermediğim ama sık gelecek bir soru muhtemelen "yavaşlamaya ya da maliyete yol açmıyor mu" olacak, o yüzden peşinen yanıtlayayım: çalışma sırasında LLM hiç devreye girmez. Yakalama tarafı kural filtresi olduğu için hissedilen gecikme 0, LLM'in çalıştığı tek an oturum sınırındaki tek seferlik entegrasyon ve o da ayrılmış bir arka plan süreci olduğu için ajanı bir saniye bile bekletmez. O çağrı bile zaten kullanmakta olduğunuz claude/codex aboneliği üzerinden gider; ayrıca API ücreti çıkmaz. Bugünkü dogfooding ölçümünde, bir oturumlük 44 gözlem tek bir arka plan çağrısında (yaklaşık 30 saniye) birleştirildi ve oturum başlangıcındaki enjeksiyon da 4.000 karakter bütçesi içindeki bir metin olduğu için token yükü neredeyse yok. Hedefim, kurup unuttuğunuz bir şey olmasıydı.
Lansman öncesi gerçek cihaz doğrulamasında yakaladığımız şeylerden sadece birini paylaşayım: README'deki doğrulama komutu
npx memorizeşeklindeydi ama npm'deki scope'suzmemorizebaşkasına ait bir paketmiş. Bu tür, "yalnızca gerçek cihazda görülen" noktalar daha da vardır diye düşünüyorum; o yüzden bildirimler gerçekten çok değerli.Rica: Windows ve WSL/Linux'u doğrudan gerçek cihazda doğruladım ama elimde gerçek bir macOS cihazı yok. CI'da macOS test suite'inin tamamı geçiyor ama tek satırlık kurulum → hook → oturum başlangıcı enjeksiyonuna kadar olan tam döngüyü gerçek cihazda çalıştıramadım. macOS kullananlardan biri kurup çalışıyor mu / bozuluyor mu diye yorumda ya da issue açarak haber verirse çok yardımcı olur.
Tasarım soruları da memnuniyetle karşılanır (neden karar vermede embedding kullanılmadığı, neden silme olmadığı, saat olmadan cross-machine yakınsamanın nasıl sağlandığı gibi) — hepsini yanıtlarım.