← portfolio
açık kaynak şablon open source template

memex

hibrit ajansal wiki hybrid agentic wiki

TypeScript orkestratör + Markdown bilgi tabanı
Kaynakları bırak. Ajanlar wiki'yi sen uyurken inşa eder.
TypeScript orchestrator + Markdown knowledge base
Drop sources in. Agents build the wiki while you sleep.

github.com/drader/memex

Vaat The promise

Uyurken büyüyen
bir wiki.
A wiki that grows
while you sleep.


$ cp paper.pdf wiki/raw/papers/
 
# Yarın sabah:
# Tomorrow morning:
 
$ ls wiki/papers/
2025-01-19-attention-is-all-you-need.md
 
$ ls wiki/authors/
vaswani-ashish.md shazeer-noam.md ...
 
# Manuel iş yok. Prompt yok. Bırak ve unut.
# No manual work. No prompts. Just drop and go.
Gerçek The reality

Her girişim aynı
dört duvara çarpar.
Every attempt hits
the same four walls.

Sorun 01 Problem 01

Nabız Heartbeat

Ajanlar kendiliğinden çalışmaz. Her döngü manuel tetikleme gerektirir. Agents don't run themselves. Every cycle needs a manual trigger.

Sorun 02 Problem 02

Hafıza kayması Memory drift

Ajan belleği ve paylaşılan wiki giderek ayrışır. Bilgi kaybolur. Agent memory and the shared wiki gradually diverge. Knowledge gets lost.

Sorun 03 Problem 03

İndeks ölçeklemesi Index scaling

wiki/index.md ~50 sayfadan sonra çalışmayı durdurur. Arama kalitesi çöker. wiki/index.md stops working past ~50 pages. Search quality collapses.

Sorun 04 Problem 04

Soğuk başlangıç Cold start

Boş bir wiki genel çıktılar üretir. Kullanışlı hale gelmesi haftalar alır. A blank wiki produces generic output. Weeks pass before it gets useful.

memex dördünü de çözer. memex solves all four.

Sorun 01 — Nabız Problem 01 — Heartbeat

Ajanların seni
hatırlamanı bekliyor.
Your agents are waiting
for you to remember them.

Durum The situation

Markdown tabanlı ajan sistemlerinin yerleşik bir zamanlayıcısı yok. Dosyada bir nabız tanımlarsın ama onu okuyan yok. Sistem yalnızca Claude'u açıp manuel olarak bir prompt yazdığında çalışır. Yani — zaten düşünürken çalışır, düşünmeyi bıraktığın anda durur. Markdown-based agent systems have no built-in scheduler. You define a heartbeat in a file, but nothing reads it. The system only runs when you manually open Claude and type a prompt. Which means — it runs when you're already thinking about it, and stops the moment you stop.

Çözüm The fix

Bir TypeScript daemon, her ajanın HEARTBEAT.md dosyasındaki schedule: alanını okur, node-cron ile kaydeder ve sonsuza dek arka planda çalıştırır. npm run install-daemon ile bir kez kur. A TypeScript daemon reads the schedule: field from each agent's HEARTBEAT.md, registers it with node-cron, and runs it in the background forever. Install once with npm run install-daemon.

Çözüm 01 — Zamanlayıcı Solution 01 — Scheduler

HEARTBEAT.md → node-cron → daemon


# agents/researcher/HEARTBEAT.md
---
schedule: "0 9 * * 2-5" # Sal–Cum 09:00 # Tue–Fri 09:00
token_limit: 8000
---
 
# src/scheduler/index.ts her HEARTBEAT.md'yi okur,
# src/scheduler/index.ts reads every HEARTBEAT.md,
# cron'u kaydeder, runner → Claude CLI çağrır.
# registers the cron, calls runner → Claude CLI.
 
$ npm run install-daemon
✓ registered: researcher (0 9 * * 2-5)
✓ registered: orchestrator (0 9 * * 1)
Daemon çalışıyor. Bu terminali kapatabilirsin.
Daemon running. You can close this terminal.
Sorun 02 — Hafıza kayması Problem 02 — Memory drift

Ajanlar wiki'nin
zaten bildiğini yeniden keşfeder.
Agents rediscover
what the wiki already knows.

Durum The situation

Her ajanın kendi MEMORY.md'si var. Paylaşılan wiki sentezlenmiş bilgi biriktirir. Zamanla ikisini birbirine bağlayan köprü yok. Ajanlar aynı örüntüleri kendi özel belleğine kaydetmeye devam eder. Wiki güncelliğini kaybeder çünkü yeni bulguları oraya taşıyan bir mekanizma yok. İki bilgi deposu, ikisi de eksik. Each agent has its own MEMORY.md. The shared wiki accumulates synthesized knowledge. Over time, no bridge connects them. Agents keep noting the same patterns in their private memory. The wiki grows stale because nothing promotes fresh findings into it. Two knowledge stores, neither complete.

Çözüm The fix

Haftalık bir konsolidatör tüm agents/*/MEMORY.md dosyalarını tarar ve 2+ ajanda veya 3+ ardışık haftada tekrarlayan örüntüleri wiki/concepts/'a yükseltir. Puanlama sistemi yok. Manuel etiketleme yok. Tek bir kural, her Pazartesi otomatik çalışır. A weekly consolidator scans all agents/*/MEMORY.md files and promotes patterns appearing in 2+ agents or recurring across 3+ consecutive weeks into wiki/concepts/. No scoring system. No manual tagging. One rule, runs automatically every Monday.

Çözüm 02 — Konsolidatör Solution 02 — Consolidator

İki hafıza katmanı. Haftalık tek köprü. Two memory layers. One weekly bridge.

süreç hafızası process memory
agents/*/MEMORY.md
──▶
her pazartesi every monday
consolidator
──▶
domain bilgisi domain knowledge
wiki/concepts/
yükseltir: 2+ ajan aynı örüntüyü paylaşıyor  ·  VEYA  ·  3+ ardışık hafta promotes if: 2+ agents share the pattern  ·  OR  ·  3+ consecutive weeks
Katman Layer Konum Location İçerik Content
Süreç hafızası Process memory agents/*/MEMORY.md Örüntüler, anti-paternler, hipotezler Patterns, anti-patterns, hypotheses
Domain bilgisi Domain knowledge wiki/ Kavramlar, kararlar, sentezler Concepts, decisions, syntheses
Sorun 03 — İndeks ölçeklemesi Problem 03 — Index scaling

wiki/index.md yaklaşık
50 sayfada bir duvara çarpar.
wiki/index.md hits a wall
at around 50 pages.

Durum The situation

Her sorgu tam indeksi okuyarak, bir sayfaya giderek ve ardından cevabın başka yerde olduğunu anlayarak başlar. 100+ sayfayla indeks tek başına gerçek iş olmadan önce bağlam pencerenizi doldurur. Wiki büyüdükçe daha yavaş ve daha az doğru hale gelir. Every query starts by reading the full index, navigating to a page, then realizing the answer is somewhere else. With 100+ pages, the index alone fills your context window before any real work happens. The more your wiki grows, the slower and less accurate it gets.

Çözüm The fix

obsidian-hybrid-search, wiki/ klasörü üzerinde bir MCP sunucusu olarak çalışır. BM25 (anahtar kelime) + trigram (bulanık) + vektör (anlamsal) arama, Reciprocal Rank Fusion ile. Bir kez global olarak kur. Her proje için .claude/settings.json ile yapılandır. Wiki binlerce sayfaya büyüyebilir, hiçbir şeyi değiştirmene gerek yok. obsidian-hybrid-search runs as an MCP server over the wiki/ folder. BM25 (keyword) + trigram (fuzzy) + vector (semantic) search with Reciprocal Rank Fusion. Install globally once. Configure per-project via .claude/settings.json. The wiki can grow to thousands of pages without changing anything.

Çözüm 03 — obsidian-hybrid-search Solution 03 — obsidian-hybrid-search

Wiki üzerinde anlamsal arama. Sorgu başına sıfır yapılandırma. Semantic search over your wiki. Zero config per query.


# .claude/settings.json (proje başına)
# .claude/settings.json (per project)
{
  "mcpServers": {
    "wiki-search": {
      "command": "obsidian-hybrid-search",
      "args": ["--vault", "./wiki"]
    }
  }
}
 
# Herhangi bir Claude oturumunda sorgu:
# query in any Claude session:
/query what did vaswani et al say about positional encoding?
→ BM25 + trigram + vector → RRF → ranked snippets
→ wiki loaded: 3 pages (not 847)
Sorun 04 — Soğuk başlangıç Problem 04 — Cold start

İlk gün çıktısı her zaman
yüzeysel ve genel.
Day one output is
always shallow and generic.

Durum The situation

Şablonu kurdun. Wiki boş. Ajan çalışır ve "alanındaki temel kavramlar" hakkında bir Wikipedia stub'ı gibi okunan bir sayfa üretir. Bağlam yok demek özgünlük yok demek. Sistem gerçekten kullanışlı hale gelmeden önce haftalarca manuel ingest gerekir — eğer daha önce vazgeçmezsen. You set up the template. The wiki is empty. The agent runs and produces a page about "key concepts in your domain" that reads like a Wikipedia stub. No context means no specificity. It takes weeks of manual ingestion before the system becomes genuinely useful — if you don't give up first.

Çözüm The fix

npm run setup 7 soruluk bir alım görüşmesi çalıştırır. LLM cevaplarını kullanarak başlangıç wiki sayfaları, MEMORY.md'de Bootstrap Hipotezleri ve HEARTBEAT.md'de bir Uyandırma rutini oluşturur. İlk gün çıktısı senin bağlamınla başlar — sıfırdan değil. npm run setup runs a 7-question intake interview. The LLM uses your answers to generate starter wiki pages, Bootstrap Hypotheses in MEMORY.md, and a Wakeup routine in HEARTBEAT.md. Day one output starts from your context — not from scratch.

Çözüm 04 — /setup görüşmesi Solution 04 — /setup interview

7 soru. İlk dakikadan domain farkındalığı. 7 questions. Domain-aware from minute one.


$ npm run setup
 
Q1 › Bu vault ne için?
Q1 › What is this vault for?
   Tracking state-of-the-art in retrieval-augmented generation
Q3 › İlk günden takip edilecek 5 temel kavramı say.
Q3 › List 5 key concepts to track from day one.
   RAG, dense retrieval, re-ranking, hybrid search, long context
Q5 › Şu an yanıtlayamadığın 3 açık soru?
Q5 › 3 open questions you currently can't answer?
   Does re-ranking always beat dense-only? ...
 
Başlangıç wiki sayfaları oluşturuluyor ...
Generating starter wiki pages ...
✓ wiki/concepts/retrieval-augmented-generation.md
✓ wiki/concepts/dense-retrieval.md
✓ agents/researcher/MEMORY.md (Bootstrap Hipotezleri)
✓ agents/researcher/MEMORY.md (Bootstrap Hypotheses)
✓ agents/researcher/HEARTBEAT.md (Uyandırma rutini)
✓ agents/researcher/HEARTBEAT.md (Wakeup routine)
Mimari Architecture

TypeScript motor · Markdown içerik · MCP arama TypeScript motor · Markdown content · MCP search

TypeScript Motor
  • scheduler
  • runner
  • locker
  • validator
  • budget
  • consolidator
Markdown İçerik Markdown Content
  • wiki/
  • agents/
  • memory/
  • commands/
  • journal/
  • scratch/
Bağlam Katmanları Context Tiers
  • T1 · 4k — memory/
  • T2 · 8k — wiki/index
  • T3 · istek üzerineon demand
  •  
  • MCP · hybrid search
  • locker · yarış yokno races

TypeScript makine işini halleder. Markdown insan tarafından okunabilir kalır.
Koda dokunmadan sistemin herhangi bir parçasını okuyabilir ve düzenleyebilirsin.
TypeScript handles the machine work. Markdown stays human-readable.
You can read and edit any part of the system without touching code.

memex üzerine inşa edildi Built on memex

Aynı motor. Farklı domainler. Same engine. Different domains.

papervault
Araştırma makaleleri Research papers

arXiv PDF'lerini ingest eder. Katkıları, yöntemleri, kısıtlamaları çıkarır. Yazarları ve etkinlikleri bağlar. Ingests arXiv PDFs. Extracts contributions, methods, limitations. Links authors and venues.

wiki/papers/ · authors/ · methods/ · venues/
podvault
Podcastler Podcasts

Bölüm transkriptlerini ingest eder. Öngörüleri, alıntıları, kaynakları çıkarır. Konukları, şovları, konuları bağlar. Ingests episode transcripts. Extracts insights, quotes, resources. Links guests, shows, topics.

wiki/episodes/ · shows/ · guests/ · topics/
docvault
Geliştirici dokümanları Developer docs

Changelog'ları, API referanslarını, RFC'leri ingest eder. Breaking change'leri işaretler. Kütüphaneleri ve örüntüleri bağlar. Ingests changelogs, API refs, RFCs. Flags breaking changes. Links libraries and patterns.

wiki/libraries/ · changelogs/ · patterns/

Şablonu kopyala. /setup çalıştır. INGEST becerisi ve wiki yapısı
otomatik olarak domainine uyum sağlar.
Copy the template. Run /setup. The INGEST skill and wiki structure
adapt to your domain automatically.

Başla Get started

Üç komut. Three commands.


$ git clone github.com/drader/memex my-vault
$ npm install && npm run setup
$ npm run install-daemon
 
✓ Ajanlar planlandı.
✓ Agents scheduled.
✓ Wiki bağlamından tohumlandı.
✓ Wiki seeded from your context.
✓ Daemon arka planda çalışıyor.
✓ Daemon running in background.
 
Bu terminali kapatabilirsin. Sistem çalışmaya devam eder.
You can close this terminal. The system keeps going.
 
github.com/drader/memex
github.com/drader/papervault
github.com/drader/podvault
github.com/drader/docvault
1 /