homelab-brain Mimarisi

Tarih: 2026-06-27 · Durum: kabul edildi

Bağlam / sorun

Claude’un, Ahmet ile yaptığı sohbetlerdeki ve projelerdeki bilgiyi kalıcı hafıza yapması isteniyor. Erişim hızlı ve odaklı olmalı; PDF/ofis/resim eklenerek hafıza büyütülebilmeli; 3 bilgisayardan çalışmalı; otonom olmalı; mevcut Claude/CLAUDE.md standartlarıyla uyumlu olmalı.

Karar

Karpathy “LLM Wiki” deseninin sade, bize özel bir uygulaması. Plain markdown + git

  • Obsidian substrat; erişim Claude’un doğal agentic dosya araması (router → frontmatter/özet → bölüm → grep → eşanlamlı → semantik); merkezi bir konteyner servisle 3-konum + otonomi.

Bileşenler

  1. Vault (bu repo, ahmetem/homelab-brain, private): CLAUDE.md (şema, hep yüklü), index.md (router), log.md, alan klasörleri, _sablonlar/, kaynaklar/.
  2. CT 210 (192.168.1.33, yeni LXC): canonical vault clone + brain-mcp + ingest izleyici + web wiki; otonom commit+push ile GitHub’a senkron.
  3. brain-mcp (FastMCP, proxmox-mcp pattern’i): brain_search/read/get_index/get_moc, brain_write_note/update_note/supersede/log, brain_ingest_file, brain_lint. 3 makinedeki Claude Desktop NPM ile brain.ahmetkaraca.com’a bağlanır.
  4. Semantik katman (1000+ not için): CT 200 PostgreSQL VectorChord üzerinde ayrı brain DB; agentic grep yetmediğinde devreye girer (lokal, bulut vektör DB yok).
  5. Ingest hattı: _gelen/ → kademeli dönüştürücü (Docling/MarkItDown/pandoc/PyMuPDF, tarama→Tesseract/Claude vision, resim→vision açıklama) → sidecar .mdkaynaklar/ekler/ → manifest (SHA-256) → commit.
  6. Obsidian (3 makine): insan düzenleme/görselleştirme; Obsidian Git ile senkron.
  7. Web wiki (Quartz): telefon/tarayıcıdan okuma, NPM + kimlik doğrulama arkasında.

Gerekçe (araştırmaya dayalı)

  • Agentic arama > önceden-kurulu vektör RAG (navigasyonel dosya bilgisi için): bayatlamaz, altyapı yok, gerçek-zamanlı; yüzlerce-binlerce notta grep, vektör RAG’ı eşitler/geçer. Anthropic hibrit önerir (az şeyi önden yükle = index.md; gerisini anında getir).
  • Yapı, asıl performans kaldıracıdır (motor değil): router, frontmatter, özet, etiket, atomik notlar.
  • obsidian-wiki’den şema + provenance işaretleri + manifest deseni ödünç alındı; ama tek kullanıcı için ağır + ~/.claude iç yapısına kırılgan olduğundan bağımlılık olarak alınmadı.
  • Mevcut altyapı yeniden kullanıldı: VectorChord (CT 200), n8n (ingest tetikleyici), NPM, git/GitHub.

Değerlendirilen alternatifler

  • Saf-git, her makinede lokal clone (merkezi servis yok): daha basit ama Claude Desktop’a ve otonomiye zayıf hizmet eder → reddedildi (merkezi brain-mcp seçildi, git yine source of truth).
  • obsidian-wiki’yi fork/kur: hızlı ama bağımlılık + kırılganlık + tek-geliştirici riski → reddedildi.
  • Bulut vektör DB / embeddings’i baştan kur: bayatlama + maliyet + gizlilik; yaşanmamış bir sorunun erken çözümü → ertelendi (VectorChord lokal, gerektiğinde).

Doğrulamadan gelen düzeltmeler (tasarımı etkileyen)

  • CLAUDE.local.md deprecated değil; @import onu tamamlar (context tasarrufu sağlamaz).
  • # ile hızlı-hafıza-ekleme artık çalışmıyor → doğal dil / /memory / dosya düzenleme.
  • Doğru terim “managed policy”; CLAUDE.md’ler birleştirilir (override değil), kök /compact sonrası tekrar yüklenir, alt-dizindekiler yüklenmez → şema kökte.
  • Anthropic “RAG öldü” demiyor → hibrit (bizim index.md = bilinçli önden-yükleme).

Sonuçlar / etkiler

  • (+) Hızlı/odaklı erişim, sıfır bayatlama, git ile tam denetlenebilirlik + off-site yedek.
  • (+) Multimodal genişleme, 3-konum, otonomi, mevcut altyapıyla uyum.
  • (−) CT 210 + brain-mcp + ingest bakım yükü; otonom yazımlar git diff ile denetlenmeli.
  • Risk yönetimi: provenance işaretleri + supersession + lint, kişisel hafızanın güvenilirliğini korur.

Faz planı

  1. Faz 1 ✅ — vault iskeleti, CLAUDE.md, şablonlar, tohum notlar.
  2. Faz 2 ✅ kod — brain-mcp sunucusu.
  3. Faz 3 ✅ kod — ingest hattı + VectorChord semantik.
  4. Deploy — CT 210 kurulumu, NPM, Obsidian (3 makine), web wiki. Bkz. _sistem/deploy/.

İlgili