Remembrane – tek bir SQLite dosyasında aracı belleği, sıfır bağımlılık
Özgün başlık: Remembrane – agent memory in one SQLite file, zero dependencies
Bu, herhangi bir altyapıyı çalıştırmadan aracıya kalıcı bellek vermek için kullanılan küçük bir kitaplıktır. Mağazanın tamamı tek bir SQLite dosyasıdır ve varsayılan kurulumun hiçbir bağımlılığı yoktur. Bunu oluşturdum çünkü ne zaman bir aracının oturumlar boyunca bir avuç gerçeği hatırlamasını istesem, seçenekler barındırılan bir API, bir vektör veritabanı veya bir çerçeve olurdu ve bu genellikle birkaç bin kısa dize için çok fazla gibi geliyordu. En faydalı bulduğum kısım, hatırlamanın deterministik olmasıdır, böylece aracınızın neyi hatırladığını belirten birim testleri yazabilir ve bunları CI'da çalıştırabilirsiniz. Bunu başka bir yerde görmedim ve en çok güvendiğim şey bu. Bunun da ötesinde: hiçbir sunucu veya arka plan işlemi olmadan kopyalayabileceğiniz, inceleyebileceğiniz veya silebileceğiniz tek bir dosyadır; her sonuç kendi puan dökümünü gösterebilir, dolayısıyla sıralama bir kara kutu değildir; ve her değişiklik günlüğe kaydedilir, böylece mağazanın anlık görüntüsünü alabilir ve daha sonra farklılaştırabilirsiniz. Aynı zamanda bir MCP sunucusunu ortaya çıkarır, böylece Claude gibi MCP özellikli bir aracı onu doğrudan kullanabilir ve LangChain ve CrewAI bağdaştırıcıları vardır. Benzerlik artı yenilik, önem ve bir belleğin daha önce yararlı olup olmadığına göre sıralanır ve bu ağırlıklar, yeniliğin kapatılması da dahil olmak üzere yapılandırılabilir. Ayrıca, iki anı birbiriyle çeliştiğinde işaretleyen bir kontrol de var, ancak bu bir buluşsal yöntemdir ve çıktısını temel gerçeklerden ziyade gözden geçirilecek adaylar olarak ele alırım. Sınırlar, en başta: varsayılan yerleştirici anlamsal değil sözcükseldir, bu nedenle gerçek anlamsal hatırlama için cümle dönüştürücüleri veya OpenAI'yi tek satırla bağlarsınız.
Milyonlarca öğe yerine binlerce öğe içeren aracı ölçekli bellek içindir; Yaklaşık 50.000'i geçtikten sonra tasarımı aşmışsınızdır ve bir vektör veritabanı kullanmalısınız. Yenilik veya çatışma fikirlerinin hiçbiri yeni değil. Zep gibi sistemler bir süredir zamansal hafıza çalışması yapıyordu; tek iddiam, test edebileceğiniz, bağımlılık içermeyen bir dosyada bunun kullanışlı bir sürümünü alabileceğinizdir. Bunu mem0 ile karşılaştırdım ve bunun neyi gösterip neyi göstermediği konusunda net olmak istiyorum. Mem0'ı aynı yerleştiriciyle LLM olmayan modunda (infer=False) çalıştırdım, bu nedenle mem0'ın ana değeri olan LLM çıkarımını değil, yalnızca depolama ve sıralama katmanını ölçer. Bu dar ortamda hatırlama daha hızlıydı, daha az depolama alanı kullanıyordu ve yeniliği hesaba kattığı için güncellenmiş gerçekleri daha sık döndürüyordu. Bu bir alt tabaka karşılaştırması, genel olarak hafızanın daha iyi olduğu iddiası değil.