• Claude Code में सेशनों के बीच context खोने की समस्या को हल करने के लिए, लोकल सर्च इंजन QMD और /recall skill को मिलाकर एक memory system बनाया गया
  • QMD, Obsidian vault को index करने वाला local search engine है, जो BM25, semantic और hybrid — इन तीन search modes को support करता है
  • /recall skill, temporal, topic और graph visualization — इन तीन modes में पिछले sessions का full context तुरंत restore करता है
  • 700 sessions के JSONL conversation logs को अपने-आप parse और embed करके QMD index में reflect करने वाली automated pipeline लागू की गई
  • यह context-centered workflow दिखाता है कि tool बदल जाएँ तब भी अगर context बना रहे, तो इसे किसी भी AI agent में इस्तेमाल किया जा सकता है

समस्या: हर session में reset हो जाने वाला Claude Code

  • Claude Code की हर बातचीत zero state से शुरू होती है, और 3 हफ्तों में 700 sessions चलाने के दौरान पुराने decisions और project context को track करना मुश्किल हो गया
  • Session के बीच में context limit (60%) तक पहुँचने पर compact या hand off करना पड़ता है, और इस प्रक्रिया में decisions का आधा हिस्सा खो जाता है
  • अगले दिन काम फिर से शुरू करते समय क्या किया था यह याद न रहने की असुविधा बार-बार होती थी
  • पुराना तरीका, यानी file grep based search, scale नहीं करता

QMD: vault के लिए बना local search engine

  • QMD, Shopify CEO Tobias Lutke द्वारा बनाया गया local search engine है, जो Obsidian vault को index करके 1 सेकंड के भीतर search results लौटाता है
  • Vault folders के हिसाब से QMD collection map करके (notes, daily logs, sessions, transcripts आदि) focused search की जा सकती है
  • यह qmd collection list, qmd search "video workflow" -c notes -n 3 जैसे single commands से काम करता है
  • Claude Code की default search, Haiku sub-agent द्वारा सभी files को grep करने वाला brute-force तरीका है; test में इसे 3 मिनट लगे, 300 files लौटीं, और result quality भी कम थी
  • QMD search तुरंत, ज्यादा accurate और token usage में हल्की है — sub-agent की जरूरत नहीं

Grep vs BM25 vs semantic search

  • BM25 (qmd search): deterministic full-text search, जो grep की तरह keywords match करती है, लेकिन हर file को score भी देती है
    — यह शब्द की आवृत्ति और पूरे document में उसकी rarity के आधार पर काम करती है, और AI या embeddings के बिना सिर्फ mathematical calculation इस्तेमाल करती है
    • sleep का 5 बार उल्लेख करने वाला छोटा note, 10,000 शब्दों वाली file में 1 बार आए उल्लेख से ज्यादा score पा सकता है
  • Semantic (qmd vsearch): embedding-based search, जिसमें exact शब्द न होने पर भी मतलब के आधार पर search संभव है
  • Hybrid (qmd query): BM25 और semantic का संयोजन
  • sleep search benchmark तुलना:
    • grep: 200 files लौटाता है, जिसमें sleep() programming command जैसे बहुत noise भी शामिल होते हैं
    • BM25: 2 सेकंड के अंदर sleep quality experiment, interrupted sleep logs जैसे relevant results देता है
    • लेकिन qmd search "insomnia" पर 0 result आता है, क्योंकि vault में वह शब्द मौजूद नहीं है
    • semantic: couldn't sleep, bad night search करने पर कई साल पहले सेट किए गए bedtime habit goals तक मिल गए — 5 में से 4 results में search phrase था ही नहीं
    • hybrid: sleep quality improvement 89%, sleep interrupted at 3am 51%, health sleep optimization 42% जैसी बेहतर ranking देता है
  • सुझाया गया usage pattern: searches का 80% BM25 से करें (structured notes के लिए उपयुक्त), और transcripts व unstructured memos के लिए semantic search जोड़ें

Semantic search से मिली वास्तविक खोजें

  • find the days when I was happy and what was the reason जैसी unstructured query पर Claude अपने-आप कई searches जोड़कर चलाता है:
    • qmd vsearch "happy, grateful, excited", "energy, great day, feeling good", "satisfaction, accomplishment" आदि कई searches चलती हैं
  • कई महीनों के daily notes से semantic connections निकले — ऐसा pattern मिला कि सबसे खुश दिन वे थे जब कुछ launch किया गया हो और sauna या 9 घंटे की नींद से अच्छी recovery मिली हो

/recall skill: काम शुरू करने से पहले context load करना

  • /recall QMD के ऊपर काम करने वाली Claude Code skill है, जो काम शुरू करने से पहले context अपने-आप load करती है
  • इसमें तीन modes हैं:
    • temporal: तारीख-आधारित session history scan (/recall yesterday, /recall last week)
    • topic: QMD collections पर BM25 search (/recall topic graph)
    • graph: sessions और files की interactive visualization (/recall graph last week)
  • /recall yesterday test में, पूरे दिन के 39 sessions को timeline के रूप में फिर से बनाया गया — हर session का समय, message count और काम का विवरण दिखा
  • /recall topic "QMD video" के result में sessions और notes से dashboard, production plan, to-do list जैसी relevant files 1 मिनट के भीतर मिल गईं — brute-force grep की तुलना में समय, tokens और result quality तीनों में बेहतर
  • graph mode, sessions को colored blobs की तरह visualize करता है; पुराने sessions फीके दिखते हैं और हाल के sessions purple में highlight होते हैं — files को goals, research, voice, docs, content, skills जैसे type-based clusters में रखा जाता है
  • उदाहरण: lunch के लिए जगह खोजने वाला session एक हफ्ते बाद graph में मिला, और उसका file path Claude Code में copy करके पुरानी बातचीत से काम फिर आगे बढ़ाया जा सका

700 sessions की automatic indexing

  • Claude Code सारी बातचीत JSONL files के रूप में local में save करता है — 3 हफ्तों में 700 sessions जमा हो गए
  • Original files में tool uses, system prompts, roles आदि शामिल होते हैं; इन्हें parse करके clean Markdown (असल user messages और signals) में बदला गया और फिर QMD index में embed किया गया
  • Terminal बंद होने पर automatic hook चलता है, जो session को QMD में export और embed कर देता है — बिना किसी manual step के index हमेशा up to date रहता है

लागू न किए गए ideas की खोज

  • find the ideas that I have never acted on search पर Claude ने QMD results को मिलाकर यह पाया:
    • 19 अक्टूबर — PhD writing dashboard बनाने की योजना थी, लेकिन उसे लागू नहीं किया गया
    • illustration-based app का idea था, लेकिन आगे कोई action नहीं हुआ
    • Obsidian workflow screen recording का idea था, लेकिन उसे भी लागू नहीं किया गया
  • कई महीने पहले लिखी और पूरी तरह भूल चुकी बातें फिर से सामने आईं
  • सभी embeddings local में store होते हैं

Context-centered workflow

  • Notes अब सिर्फ Obsidian के अंदर बंद नहीं रहतीं, बल्कि वास्तविक goals हासिल करने में काम आने वाला उपयोगी context बन जाती हैं
  • Tools बदल सकते हैं (नए models, नए agents), लेकिन अगर context बना रहे, तो यह Claude Code, Codex, Gemini CLI आदि कहीं भी काम कर सकता है
  • Memory layer skill के रूप में पूरे stack में काम करती है
  • वास्तविक setup: Obsidian Sync से Mac और हमेशा चालू रहने वाले Mac Mini के बीच vault sync होता है, और Mac Mini पर OpenClaw 24/7 चलता है — फोन से OpenClaw में लॉग इन करने पर वही vault, QMD index और skills कहीं से भी इस्तेमाल किए जा सकते हैं
  • पूरे stack की संरचना:
    • नीचे: Obsidian Vault
    • बीच में: QMD Search
    • ऊपर: Claude Code / OpenClaw
    • context नीचे से ऊपर की ओर flow करता है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.