Memmy: VPS'te AI Ajanları İçin Yerel Bellek
Memmy ile AI ajanlarının ortak SQLite belleğini Ubuntu'da kaynak koddan kurun. Bellek hizmetini 18960 portunda çalıştırıp notları VPS dışına çıkarmayın.
Memmy nedir ve ne depolar
Memmy, kendi VPS'niz (sanal özel sunucu) üzerinde çalışan, yapay zeka ajanları için yerel bir bellek merkezidir. Ajanlarınızın öğrendiklerini tek bir SQLite veritabanında tutar ve sunucudaki her ajan aynı depoya okuma ve yazma yapar. Proje, 1 Kasım 2026 itibarıyla 1.2.401 sürümünde olup MemTensor tarafından memmy-agent olarak sunulmuştur ve MIT lisansına sahiptir; Memory ise bağımsız olarak 2.1.7 sürümündedir.
Bunun yalnızca bir kısmı sunucuda önem taşır. Memmy, http://127.0.0.1:18960 üzerinde dinleme yapan bir bellek servisi, bu servisle iletişim kuran bir memmy-memory komut satırı arayüzü (CLI) ve bir masaüstü çalışma alanı sunar. Çalışma alanı yalnızca macOS ve Windows için paketlenmiştir, bu nedenle Linux VPS üzerinde yalnızca servisi ve CLI'ı çalıştırırsınız. Claude Code, Codex ve Cursor'a paylaşımlı bir bellek sağlamak için bu yeterlidir.
Memmy, depoladığı verileri dört katmana ayırır. Capture, önce ayrı bir Raw Turn depolar, ardından istekler, yanıtlar, araç çağrıları ve sonuçlar dahil olmak üzere yakalanan her adım için bir L1 Trace öğesi yazar. L2 Policy, izlerden türetilen ve yararlı olduğu kanıtlanmış bir prosedürdür. L3 World Model, bir proje veya ortam hakkındaki kararlı bilgidir. Skill ise bir politikadan kristalize edilmiş, çağrılabilir bir prosedürdür. Capture, L1 izlerini oluşturur; arka plan işleri daha üst katmanları geliştirir ve açık yazma işlemleri bir katman seçebilir. Bu ayrımlar soyut geliyorsa, bellek ajan oluşturmayı öğrenmek için aşamalı bir yol içindeki sonraki aşamalardan biridir ve kendi başınıza basit bir ajan döngüsü yazıp onun çalıştırmalar arasında her şeyi unuttuğunu gözlemlediğinizde bu katmanlar daha anlamlı hale gelecektir.
Paylaşımlı bir bellek merkezinin araç bazlı bellekten farkı
Günümüzde her ajan kendi belleğini beraberinde getirir. Claude Code talimat dosyalarını depoda tutar. Cursor kuralları çalışma alanı veritabanında saklar. Codex oturum günlüklerini ~/.codex altında tutar. Her depo tek bir araca aittir; bu nedenle Pazartesi günü bir araçta öğrettiğiniz bir bilgi, Salı günü diğerinde bilinmez. Bunun bedelini iki kez ödersiniz: birincisi aynı projeyi tekrar açıklamak için harcanan tokenlar, ikincisi ise bir ajan başka bir yerde düzelttiğiniz bir varsayıma göre hareket ettiğinde ortaya çıkan hatalı işler.
Bir merkez, depoyu aracın dışına taşır. Memmy mevcut depoları da okur, böylece boş bir veritabanıyla başlamazsınız. Tarayıcısı on yerleşik kaynağı tanır: ~/.claude/projects/**/*.jsonl üzerinde Claude Code, ~/.codex/sessions/<YYYY>/<MM>/<DD>/rollout-*.jsonl üzerinde Codex, ~/.local/share/opencode/opencode.db üzerinde OpenCode, Cursor'ın state.vscdb dosyaları, ~/.openclaw altındaki OpenClaw SQLite veritabanları, ~/.hermes üzerinde Hermes, ~/.dsh/sessions üzerinde DeepSeek Harness, ~/.workbuddy/projects üzerinde WorkBuddy, ~/.pi/agent/sessions üzerinde Pi ve ~/.qwenworkcn/projects üzerinde QwenWork. Masaüstü çalışma tezgahı ismen başka bir ajan ekleyebilir ve geçmiş yolunu yalnızca ajanın kendisini bulamadığında sorar. Sunucu tarafındaki tarayıcının özel kaynakları yoktur, bu nedenle başsız (headless) bir VPS üzerinde yalnızca yerleşik olanları alırsınız.
İçe aktarma sayaçları eşleşmeyecektir ve bu beklenen bir durumdur. Tarayıcı mesajları kaynağa ve konuşmaya göre gruplandırır, ardından her tam tur için bir L1 bellek yazar. Bir tur, boş olmayan kullanıcı içeriğine sahip olduğunda ve boş olmayan bir asistan mesajıyla bittiğinde tamamlanmış sayılır; bu nedenle tamamlanmamış bir tur, daha sonraki bir eşitleme onu tamamlayana kadar hiçbir şeye katkıda bulunmaz. Mesajlar, konuşma kontrol noktaları ve kararlı tur kimlikleri ile tekilleştirilir. Taranan sayı, içe aktarılan mesaj sayısı ve yeni bellek sayısı aynı çalıştırmada birbirinden farklıdır.
Bu parça, Claude Code'un tek bir oturum içinde bağlamı nasıl yönettiği ile eşleşen kısımdır. Bağlam yönetimi, tek bir pencereye neyin sığacağına karar verir. Bir bellek merkezi ise o pencere kapandıktan sonra neyin hayatta kalacağına karar verir.
VPS üzerinde gereksinimler
- Node.js 22 veya daha yeni bir sürüm. Memmy dokümantasyonu bunu gerektirir; Ubuntu 24.04 ise Node 18 ile gelir.
gitve bir derleme araç zinciri; çünkübetter-sqlite3, kurulum sırasında derlenmesi gerekebilecek yerel bir modüldür.- Kök çalışma alanı kurulumu ve ön uç derleme zinciri için yeterli RAM.
node_modulesve veritabanı için boş disk alanı.
sudo apt update
sudo apt install -y git build-essential python3 curl ca-certificates sqlite3
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
node --versionnode --version, belgelenen kaynak derlemesi için v22 veya daha yüksek bir sürüm çıktısı vermelidir. Buradaki bir v18, NodeSource adımının uygulanmadığı anlamına gelir. npm'in engine-strict ayarı varsayılan olarak false değerindedir; bu nedenle uyumsuz bir motor bildirimi genellikle kurulumu otomatik olarak durdurmak yerine yalnızca bir uyarı üretir.
Ubuntu 24.04 üzerinde Memmy uygulamasını kaynaktan kurma
git clone https://github.com/MemTensor/memmy-agent.git
cd memmy-agent
cp .env.example .env
npm install
npm run memory:buildnpm run memory:build, @memmy/memory çalışma alanını Memory/dist içine derler. Ayrıca AgentSourceCore, bellek görüntüleyici ve bu çalışma alanı için gereken entegrasyon varlıklarını oluşturur. Yerel modülün yüklendiğini doğrulayın:
node -e "const Database = require('better-sqlite3'); const db = new Database(':memory:'); db.close(); console.log('better-sqlite3 loads')"Eğer bu satır çıktı vermek yerine hata döndürürse, yükleme veya veritabanı başlatma hatasını belirlemek için hata mesajını inceleyin. Yerel modül uyuşmazlığı durumunda, projenin kendi başlatma betiğinin herhangi bir işlem yapmadan önce çalıştırdığı npm rebuild better-sqlite3 komutunu çalıştırın.
README dosyası, bash scripts/dev-start.sh komutunu tek komutla başlatma yöntemi olarak belgeler. Bu komutu başsız (headless) bir VPS üzerinde çalıştırmayın. Bu komut, Electron masaüstü kabuğunu ve bellek servisinin yanında 19000 numaralı portta bir Vite geliştirme sunucusunu başlatır. Electron bir görüntüleme ortamına ihtiyaç duyduğundan, grafik oturumu olmayan bir sunucuda betik takılır veya sonlanır.
Son sürümler, Linux x64 ve arm64 için memmy-agent-linux-cli.tar.gz ve bir install.sh içerir. Yükleyici; 22.x sürümü içinde Node.js 22.23.4+, 24.x sürümü içinde 24.22.1+ veya 26.x sürümü içinde 26.12.1+ sürümlerini ve bir systemd kullanıcı oturumunu gerektirir; diğer ana sürümleri reddeder. memmy ve memmy-memory başlatıcılarını ~/.local/bin dizinine yerleştirir ve bellek servisini 127.0.0.1:18960 üzerinde bir kullanıcı birimi olarak başlatır. Bu kılavuz, her betiği çalıştırılmadan önce inceleyebileceğiniz bir yöntem olduğu için kaynak koddan derleme yolunu izler.
Bellek servisini başlatın ve yanıt verip vermediğini kontrol edin
npm run memory:serve:devBu, bellek servisini kaynak koddan çalıştırmanın belgelenmiş yoludur. Servis 127.0.0.1:18960 adresine bağlanır, veritabanını ~/.memmy/memory-service/memory.sqlite konumunda tutar ve yapılandırmayı ~/.memmy/config.yaml dosyasından okur. Sunucu, değerleri açıkça belirtmek istediğinizde aynı değerleri bayrak olarak da kabul eder:
npm run memory:serve:dev -- \
--host 127.0.0.1 --port 18960 \
--db ~/.memmy/memory-service/memory.sqlite \
--config ~/.memmy/config.yamlİkinci bir kabuk üzerinden servise canlı olup olmadığını sorun:
curl -sS http://127.0.0.1:18960/api/v1/healthHealth (sağlık) kontrolü bir token gerektirmez, bu yüzden doğru denetim yöntemidir. Eğer curl 7 kodlu bir hata ve Failed to connect to 127.0.0.1 port 18960 mesajı ile sonlanırsa bağlantı başarısız olmuş demektir; ancak bu tek başına bir dinleyicinin var olup olmadığını kanıtlamaz. Adresi, portu ve yerel güvenlik duvarını kontrol edin; ayrıca servisi çalıştıran terminaldeki başlatma hatalarını okuyun. ss -lntp | grep 18960, servis ayağa kalktığında soketi doğrular.
HTTP API'sinin (uygulama programlama arayüzü) geri kalanı /api/v1 altında yer alır.
POST /api/v1/memory/addbir bellek yazar vePOST /api/v1/memory/searchsorgulama yapar.GET /api/v1/memory/:idveDELETE /api/v1/memory/:idtek bir girdiyi okur ve siler.POST /api/v1/sessions/openvePOST /api/v1/sessions/:sessionId/closebir aracı oturumunu başlatır ve sonlandırır.POST /api/v1/turns/startvePOST /api/v1/turns/:turnId/completebir tur kaydeder.GET /api/v1/panel/overview,/api/v1/panel/analysisve/api/v1/panel/itemskontrol panelini besler.
Memmy bir port bloğu ayırır; başsız (headless) kullanımda yalnızca ilkini kullanırsınız: bellek için 18960, ağ geçidi sağlığı için 18970, web arayüzü ve yönetici HTTP için 18980, memmy serve tarafından başlatılan OpenAI uyumlu API için 18990, masaüstü ön yüzünün Vite geliştirme sunucusu için 19000 ve sıcak yeniden yükleme (hot reload) soketi için 19001. Projenin portlar sayfası hala sıcak yeniden yükleme için 19010'u listelese de, Vite yapılandırması 19001'i kullanır. Eğer sisteminizde bu portlardan birini halihazırda kullanan bir servis varsa, bakmanız gereken yer bu listedir.
memmy-memory komutunun gerçekte nereden geldiği
İlk kurulum genellikle burada hatalı yapılır. Bu nedenle tahmin yürütmek yerine bilgiyi paketten okuyun. Komut adının repository adıyla ilgisi yoktur. Komut, onu tanımlayan workspace'in bin alanından gelir:
node -p "JSON.stringify(require('./Memory/package.json').bin)"Bu komut {"memmy-memory":"./dist/src/cli/index.js"} çıktısını verir. Buna göre derlenen giriş noktası Memory/dist/src/cli/index.js olur. Bu dosya yalnızca npm run memory:build sonrasında mevcut olur. Çünkü dist dosyasını oluşturan ve dosyayı çalıştırılabilir olarak işaretleyen işlem derlemedir. Dosyayı doğrudan çalıştırın:
node Memory/dist/src/cli/index.js healthKısa adı PATH üzerinde kullanmak istiyorsanız aynı dosyaya bağlantı oluşturun:
sudo ln -s "$PWD/Memory/dist/src/cli/index.js" /usr/local/bin/memmy-memory
memmy-memory healthCLI varsayılan olarak http://127.0.0.1:18960 değerini kullanır ve --url, --token, --config, --source ve --user-id seçeneklerini kabul eder. Alt komutları init, health, search, add, get ve delete komutlarıdır. Ayrıca insanların değil, agent'ların kullandığı session ve turn çağrıları ile servisin kendisini yönetmek için install, upgrade, service ve stop komutları bulunur. memmy-memory search "deploy steps" ve memmy-memory add "staging migrates on deploy", bir agent'ın en sık çalıştırdığı iki komuttur.
Claude Code, Memmy'ye nasıl bağlanır?
Memmy, Claude Code içerisinde kendisini bir sunucu olarak kaydetmez. Claude Code'un halihazırda okuduğu dosyalar üzerinden bağlantı kurar ve erişim kapsamı, çalıştırdığınız memmy-memory sürümüne bağlıdır. Kaynak kod üzerinden yapılan kurulumda memmy-memory init --agent claude, ~/.claude/skills/ içerisine bir memmy-memory yeteneği ve ~/.claude/CLAUDE.md içerisine işaretlenmiş bir bellek bloğu yazar; Claude Code ise talimatlar gerektirdiğinde memmy-memory komutunu sıradan bir shell komutu olarak çalıştırır. Linux yükleyicisinin ~/.local/bin içerisine yerleştirdiği başlatıcı daha ileri gider: aynı komut, SessionStart, UserPromptSubmit, Stop, PostCompact ve SessionEnd için ~/.claude/settings.json içerisinde kancalar (hooks) oluşturur. Bu kancalar, modelin karar vermesine gerek kalmadan ilgili belleği enjekte eder ve tamamlanan her oturumu kaydeder.
Talimatı manuel olarak bir kez yazın; böylece aracın tam olarak neyle bilgilendirildiğini bilirsiniz. Claude Code, her oturumun başında proje kök dizinindeki CLAUDE.md dosyasını okur, bu nedenle aşağıdaki gibi bir bölüm, kaynak yolundaki tüm entegrasyonu sağlar:
## Memory
Before starting a task, run `memmy-memory search "<topic>"` and read what comes back.
When a task is done, run `memmy-memory add "<what you learned>"` for anything that will matter next session.Bunun size ne kazandırdığını netleştirin. Kancalar olmadan entegrasyon yalnızca talimat seviyesindedir; yani model komutu çalıştırmaya karar verdiğinde çalışır, aksi takdirde çalışmaz. Çağrıyı zorunlu kılan bir mekanizma yoktur. Bir oturum add olmadan sona ererse, talimatın kendisi hiçbir şey kaydetmemiş olur; ancak daha sonra yapılacak bir geçmiş taraması ile tamamlanan oturum yine de içe aktarılabilir. Bu durum, Claude Code'un kendi bellek dosyaları ile aynı ödünleşime sahiptir, tek bir farkla: depolama alanı paylaşımlıdır, bu nedenle not aynı makinedeki Codex ve Cursor uygulamalarına da ulaşır. Kancalar, rica etmek yerine boşluğu doğrudan kapatır; kalıcı belleğin bütçe sınırları ve izin kuralları ile birlikte yüklenmeye değer DeepSeek Harness eklentileri arasında yer almasının nedeni de budur.
Diğer yön için herhangi bir kurulum gerekmez. Memmy tarayıcısı, Claude Code'un oturum dökümlerini yazdığı ~/.claude/projects/**/*.jsonl dizinini zaten okur. Memmy'yi, tmux oturumu içinde Claude Code çalıştırdığınız sunucu üzerinde çalıştırın; dünkü çalışmalarınız herhangi bir yapılandırma yapmanıza gerek kalmadan belleğe dönüşecektir.
Memmy, Claude Code için MCP sunucusu olarak çalışır mı?
Hayır. Yönü bilmek zaman kaybını önler. MCP (model context protocol) istemcilerden ve sunuculardan oluşur. Memmy bir istemcidir. MCP sunucularına dışarıdan bağlanır ve bu sunucuların araçlarını kendi aracı çalışma zamanına sunar. claude mcp add öğesinin bağlanabileceği bir MCP uç noktası yayımlamaz. Depodaki tek MCP köprüsü, masaüstü yerel API'si içindeki Composio entegrasyonuna aittir. Bu API, kendi x-memmy-mcp-token başlığının arkasında 127.0.0.1 üzerinde rastgele bir portu dinler.
İstemci tarafı ~/.memmy/config.yaml içinde yapılandırılır. MEMMY_CONFIG dosyasının işaret ettiği konum olan tools.mcpServers altında bulunur:
tools:
mcpServers:
example:
type: stdio
command: npx
args:
- "-y"
- "your-mcp-server"
toolTimeout: 30
enabledTools:
- "*"type, stdio, sse ve streamableHttp değerlerini kabul eder. Bir stdio sunucusu, Memmy'nin alt işlemi olarak çalışır. Bu nedenle komutun aynı makinede bulunması ve aynı kullanıcı olarak çalışması gerekir. VPS üzerinde çalışan MCP sunucularını zaten kullanıyorsanız burada listelenmesi gerekenler bunlardır.
Bellek deposunu gizli tutma
Memmy'nin sahip olduğu her şey ~/.memmy altında yaşar: config.yaml, çalışma alanı, memory-service/memory.sqlite ve çalışma zamanı dosyaları. Tarama ve veri alımı yerel olarak gerçekleşir ve bellekler bu yerel SQLite dosyasına yazılır, bu nedenle varsayılan durum gerçekten yereldir.
Bulut bağlantısı izlenmesi gereken bir yoldur. MEMMY_CLOUD_SERVICE bulut kaynağını adlandırır. Kod bunun için varsayılan bir değer belirlemez, ancak kurulum adımlarının .env konumuna kopyaladığı .env.example, bunu https://api.memmy.cn olarak ayarlar. Bu, deneme belirteçleriyle hesap modunu destekler ve ayarlandığında Memmy'nin analiz kodu, API anahtarı modunda bile kullanım etkinliklerini buraya gönderir: etkinlik ve komut adları, sürümler ve bir kurulum kimliği. CLI yalnızca sabit komut sözcüklerini raporlar, asla arama sorgularını veya bellek metnini göndermez ve analiz kodu değer ayarlanmadığında hiçbir şey göndermez; bu nedenle yalnızca API anahtarları kullanan bir sunucuda, herhangi bir işleme başlamadan önce .env içindeki o satırı boşaltın. Bellek iyileştirme programı, gizlilik ayarlarında ayrı bir anahtardır.
Model çağrıları başka bir yoldur. Barındırılan bir yerleştirme (embedding) sağlayıcısı yapılandırırsanız, yerleştirilen bellek metni vektöre dönüştürülebilmesi için o sağlayıcıya gönderilir. Yerel depolama bu noktada yardımcı olmaz. Bu yolu kapatmak için yerleşik yerel yerleştirme sağlayıcısını veya kendi barındırdığınız bir yerleştirme uç noktasını kullanın. Barındırılan özet, evrim ve alaka düzeyi filtresi modelleri de bu işler çalıştırıldığında bellek içeriğini alır, bu nedenle bu model ayarlarını da kontrol edin.
18960 numaralı portu loopback adresinde tutun. Herhangi bir güvenlik duvarı kuralına ihtiyaç duymaz, çünkü 127.0.0.1 adresine bağlı bir servis, sunucu dışından hiçbir şekilde erişilemez durumdadır. Bunun yerine dizüstü bilgisayarınızdan SSH üzerinden erişin:
ssh -N -L 18960:127.0.0.1:18960 you@your-vpsMevcut bellek servisi, loopback dışındaki bağlama adreslerini reddeder. Yapılandırmada storage.token değerini ayarlamak veya MEMMY_MEMORY_TOKEN ya da MEMORY_SERVICE_TOKEN ortam değişkenini kullanmak, sıradan bellek API çağrılarını bir bearer token ile korur; sağlık durumu kimlik doğrulaması gerektirmez ve tarayıcı görüntüleyici yerel istekler için ayrı kontroller kullanır. Yapılandırma değerleri ${ENV_NAME} referanslarını destekler, böylece belirteç ve model API anahtarlarınız dosyanın kendisinin dışında kalır. Bu, her yerde yapay zeka ajanlarından sırları uzak tutma ile aynı alışkanlıktır ve gelecekteki bir sürüm varsayılan bağlama adresini değiştirirse varsayılan ufw reddetme politikası sizin son güvenlik önleminizdir.
Güvenmeden önce ~/.memmy dizinini yedekleyin
memory.sqlite tüm veri deposudur. Vektörler aynı dosya içerisinde sqlite-vec uzantısıyla tutulur, bu nedenle tek bir dosya yedekleme için yeterlidir. Servis yazma işlemi yaparken cp ile kopyalama almak, veritabanının bozulmasına (torn database) neden olabilir. SQLite'ın kendi yedekleme komutunu kullanın:
mkdir -p ~/memmy-backup
sqlite3 ~/.memmy/memory-service/memory.sqlite ".backup '$HOME/memmy-backup/memory.sqlite'"Bu komut, servis çalışmaya devam ederken tutarlı bir kopya oluşturur. Bu kopyayı düzenli bir zamanlamayla sunucu dışına aktarın; restic ile sunucu dışı depolama bunun için tasarlanmıştır. config.yaml dosyasının kaybedilmesi, yeniden girilebilecek sağlayıcı ayarlarının kaybı anlamına gelir. memory.sqlite dosyasının kaybedilmesi ise son kullanılabilir yedekten bu yana kaydedilen anıların kaybı demektir; servis ayrıca şema geçişlerinden önce yerel bir yedek oluşturur ancak bu güncel bir sunucu dışı kopya değildir.
Bellek servisini systemd altında çalıştırma
npm run memory:serve:dev kabuk üzerinde çalıştırıldığında, kabuk kapandığında servis de sonlanır. Bir unit dosyası, servisin yeniden başlatmalar sonrasında da ayakta kalmasını sağlar. Servis, /opt/memmy dizinindeki bir checkout üzerinden, memmy kullanıcısı ile ve bu kullanıcının ev dizinindeki yapılandırma dosyasıyla çalıştırılır. Kabukta çalışan kopyayı durdurun, ardından checkout ve yapılandırma dosyalarını taşıyıp memmy-memory bağlantısını güncelleyin:
sudo useradd -m -s /bin/bash memmy
sudo mkdir -p /opt/memmy
sudo mv ~/memmy-agent /opt/memmy/memmy-agent
sudo chown -R memmy:memmy /opt/memmy
sudo ln -sfn /opt/memmy/memmy-agent/Memory/dist/src/cli/index.js /usr/local/bin/memmy-memory
sudo install -d -o memmy -g memmy -m 700 /home/memmy/.memmy
sudo install -o memmy -g memmy -m 600 ~/.memmy/config.yaml /home/memmy/.memmy/config.yaml
sudo install -d -m 755 /etc/memmyServis, veritabanını /home/memmy/.memmy altında tutar; bu nedenle servis boş bir depo ile başlar.
[Unit]
Description=Memmy memory service
After=network-online.target
[Service]
Type=simple
User=memmy
WorkingDirectory=/opt/memmy/memmy-agent
EnvironmentFile=/etc/memmy/memory.env
ExecStart=/usr/bin/npm run memory:serve:dev
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targetToken bilgisini unit dosyası içinde tutmayın. Dosyayı, sahibi root olacak ve 600 izinlerine sahip olacak şekilde /etc/memmy/memory.env içine yerleştirin:
MEMMY_CONFIG=/home/memmy/.memmy/config.yaml
MEMMY_MEMORY_TOKEN=replace-this-with-a-long-random-stringsudo systemctl daemon-reload
sudo systemctl enable --now memmy-memory
systemctl status memmy-memory --no-pager
curl -sS http://127.0.0.1:18960/api/v1/healthDurum çıktısında status=203/EXEC görülmesi, systemd'nin ExecStart dosyasını hiç çalıştıramadığı anlamına gelir; bu durumda which npm yolunu kontrol edin: NodeSource kurulumlarında bu yol /usr/bin/npm iken, nvm kurulumlarında kullanıcının ev dizini altındadır ve systemd bunu bulamaz. Başlar başlamaz kapanan bir unit dosyasının çıkış durumu ve günlük kayıtları incelenmelidir: 0 kodu temiz bir çıkışı ifade ederken, diğer sonuçlar sıfır olmayan çıkış kodlarını, sinyalleri ve zaman aşımlarını içerir. Servisin çıktılarını görmek için journalctl -u memmy-memory -n 50 komutunu çalıştırın. İşleyiş, bir VPS üzerindeki diğer tüm systemd servisleri ile aynıdır.
Proje artık kullanıcı seviyesinde iki alternatif sunmaktadır. README dosyasındaki kaynak derleme yolu, sabitlenmiş Memory çalışma zamanını indiren ve bir kullanıcı servisi kaydeden memmy-memory install --service-only yöntemidir; Linux yükleyicisi ise memmy-memory.service dosyasını bir systemd --user unit dosyası olarak yapılandırır. Her iki yöntem de linger özelliğini otomatik etkinleştirmez; bu nedenle, kullanıcı servis yöneticisinin oturum kapatıldıktan sonra da çalışmaya devam etmesi ve açılışta başlaması için sudo loginctl enable-linger <user> komutunu çalıştırın.
Memmy'nin henüz yapmadıkları
- Linux masaüstü sürümü bulunmamaktadır. Paketleme betikleri macOS ve Windows'u kapsadığından, çalışma alanı (workbench) ve kurulum sihirbazı sunucunun kendisinde kullanılamaz. Bellek servisi artık yukarıdaki SSH tüneli üzerinden erişilebilen
http://127.0.0.1:18960/viewer/adresinde bir tarayıcı görüntüleyici içermektedir. Linux için bunun yerine bir CLI tarball dosyası veinstall.shsunulmaktadır. memory:serve:dev, TypeScript giriş noktasını bir geliştirme yolu olantsxüzerinden çalıştırır. Depo ayrıca derlenmiş çıktı içinmemory:serveiçerir. Mevcut kurulumunuzda hangi betiklerin bulunduğunu görmek içinnpm runkomutunu argümansız çalıştırın.- Geri getirme (retrieval) işlemi, arama penceresini en son 2.000 vektör satırından oluşturur ve ardından bu pencere içinde Top-K seçimi uygular. Çok büyük bir depoda, eski bir bellek bu pencerenin dışında kalabilir.
- Vektörleştirme (embedding) yakalama işleminden sonra gerçekleşir ve bir hata oluşması durumunda işlem, aracının sırasını engellemek yerine bir yeniden deneme kuyruğuna alınır. Kısa süre önce eklenen bir bellek, vektör aramasıyla henüz bulunamayabilir.
- Kendi yerel SQLite veritabanına sahip ikinci bir sunucunun belleği ayrıdır.
1 Kasım 2026 itibarıyla 1.2.401 sürümü, hızla gelişen yeni bir projeyi tanımlamaktadır. Bayraklar, yollar ve betik isimleri sürümler arasında değişebilir. Burası dahil herhangi bir yerden kopyalanan komutlara güvenmek yerine, kendi kurulumunuzdaki bin alanını ve npm run çıktısını okuyun.
FAQ
Saglik kontrolü neden baglanti reddedildi hatasi veriyor?
Failed to connect to 127.0.0.1 port 18960 ile alinan 7 numarali curl cikis kodu, Memmy'nin durdugu, çöktügü, baska bir yerde dinleme yaptigi veya erisilemez oldugu anlamina gelmez; sadece baglantinin kurulamadigini belirtir. Adresi ve portu kontrol edin, ss -lntp | grep 18960 komutunu çalistirin ve servisin baslatildigi terminali veya journal kayitlarini okuyun. Günlük kaydi yerel bir SQLite modülü uyumsuzlugu bildiriyorsa npm rebuild better-sqlite3 komutunu çalistirin. Node sürümünüzü de kontrol edin: kaynak belgeler Node 22 veya daha yenisini gerektirirken, Linux yükleyicisi 22.x serisinde 22.23.4+, 24.x serisinde 24.22.1+ veya 26.x serisinde 26.12.1+ sürümlerini kabul eder.
Kaynaktan derleme yaptiktan sonra memmy-memory komutu nereden geliyor?
Depo adindan degil, @memmy/memory çalisma alani paketinin bin alanindan gelir. Checkout dizini içinde node -p "JSON.stringify(require('./Memory/package.json').bin)" komutunu çalistirdiginizda {"memmy-memory":"./dist/src/cli/index.js"} çiktisini verir. Bu dosya yalnizca npm run memory:build sonrasinda mevcuttur, çünkü derleme islemi dist dosyasini olusturur ve dosyayi çalistirilabilir olarak isaretler. Komutu node Memory/dist/src/cli/index.js health olarak çalistirin veya kisa adla kullanmak için /usr/local/bin dizinine sembolik baglanti (symlink) olusturun.
Memmy'yi claude mcp add ile Claude Code'a ekleyebilir miyim?
Hayir. Memmy bir MCP sunucusu degil, bir MCP istemcisidir. ~/.memmy/config.yaml içindeki tools.mcpServers altinda listelenen sunuculara disariya dogru baglanir ve onlarin araçlarini kendi çalisma zamanina sunar. Claude Code, Memmy'ye ters yönden, yani memmy-memory CLI aracini bir kabuk komutu olarak çalistirarak erisir. memmy-memory init --agent claude, bir Yetenek (Skill) ve ne zaman çalistirilacagini belirten bir CLAUDE.md blogu yazar; Linux yükleyicisinden gelen baslatici da Claude Code kancalarini ekleyerek hamleleri (turns) otomatik olarak kaydeder.
Memmy'yi çalistirmak anilarimi bir bulut servisine gönderir mi?
Tarama ve veri alimi yerel olarak gerçeklesir ve anilar kendi diskinizdeki ~/.memmy/memory-service/memory.sqlite dosyasina yazilir. .env.example içinde https://api.memmy.cn olarak ayarlanan MEMMY_CLOUD_SERVICE, hesap modu ve deneme jetonlarina hizmet eder; ayarlandigi sürece anilarin metin içerigini içermeyen kullanim analizlerini alir, bu yüzden yalnizca API anahtarlari kullaniyorsaniz bu alani bos birakin. Ani iyilestirme programinin ayri bir gizlilik anahtari vardir. Barindirilan bir yerlestirme (embedding) modeli, vektöre dönüstürdügü ani metnini alir; bu islemi yerel tutmak için yerlesik yerel saglayiciyi veya kendi çalistirdiginiz bir uç noktayi kullanin. Barindirilan özetleme, evrim ve alaka düzeyi filtreleme modelleri de bu görevler çalistiginda ani içerigini alir.