====== QMD ====== [[https://github.com/tobi/qmd|QMD]] je lokální search engine pro markdownové dokumenty, poznámky, meeting notes a knowledge base. Podle README kombinuje BM25 fulltext, vektorové vyhledávání a LLM re-ranking, přitom běží on-device nad lokálními soubory. Dobře zapadá například jako doplněk k [[ai:zapisy-a-workflow:inspirace-a-strategie:karpathy-llm-wiki-prubezne-budovana-znalostni-baze|patternu LLM Wiki]], kde může sloužit jako vyhledávací vrstva nad rostoucí wiki. ===== Co to je ===== QMD není samotná knowledge base ani agent memory platforma. Je to nástroj pro indexaci a prohledávání dokumentů, které už někde máš – typicky markdown, dokumentaci, zápisky nebo interní wiki. Hlavní hodnota je v tom, že nad těmito soubory umí dělat jak rychlé keyword search, tak i sémantické hledání a následný re-ranking výsledků. README ho popisuje jako „Query Markup Documents“ a cílí hlavně na agentic workflows, kde agent potřebuje rychle: * najít relevantní soubory * získat jejich cestu nebo docid * stáhnout konkrétní dokument * omezit hledání jen na vybranou kolekci ===== Jak funguje ===== Podle dokumentace používá QMD hybridní pipeline: * **BM25 / FTS5** pro klasické fulltextové hledání * **vector search** pro sémantickou podobnost * **query expansion** pro rozšíření dotazu * **LLM re-ranking** pro přesnější finální pořadí výsledků V README je architektura popsaná jako kombinace více retrieval kroků, které se spojují přes RRF (Reciprocal Rank Fusion) a následně se přerovnají pomocí lokálního rerankeru. Prakticky je důležité hlavně to, že nejde jen o jednoduché grepování souborů. ===== Co umí ===== QMD umí pracovat jak přes CLI, tak přes MCP server. V praxi nabízí hlavně: * správu kolekcí nad adresáři se soubory * indexaci markdownu a dalších textových zdrojů * ukládání kontextu k adresářům a cestám * vyhledávání v režimech ''search'', ''vsearch'' a ''query'' * načítání jednoho nebo více dokumentů přes ''get'' a ''multi-get'' * JSON nebo file-oriented výstup vhodný pro agenty * MCP server pro přímé napojení do LLM klientů Pro větší bázi je důležité i to, že QMD nevrací jen seznam výsledků, ale umí dodat i snippet, skóre, docid a kontext. Agent tak může udělat dvoukrokový workflow: nejdřív hledat, potom stáhnout konkrétní dokumenty. ===== Lokální běh a modely ===== QMD běží lokálně a podle README využívá ''node-llama-cpp'' a GGUF modely pro embeddingy, reranking a query expansion. To je důležitý rozdíl oproti cloudovým službám – obsah dokumentů nemusí odcházet mimo lokální stroj. README uvádí tři hlavní lokální modelové role: * embedding model * reranker * model pro query expansion Výhodou je soukromí a přímý běh nad lokálními soubory. Nevýhodou jsou vyšší nároky na lokální prostředí a nutnost počítat s tím, že pokročilejší kvalita retrievalu něco stojí i výpočetně. ===== K čemu je to dobré ===== QMD dává smysl hlavně v těchto situacích: * máš větší markdownovou knowledge base * agent nad ní potřebuje opakovaně hledat * nechceš pokaždé ručně procházet index nebo adresáře * chceš lokální, souborově orientovaný search bez nutnosti stavět vlastní retrieval stack * potřebuješ rychle připojit vyhledávání do Claude Code, MCP klienta nebo jiného agentního workflow Typický use-case je právě větší osobní nebo týmová wiki, kde samotná struktura souborů a ruční index přestávají stačit, ale pořád chceš zůstat u lokálního markdownového workflow. ===== Jak se liší od LLM Wiki ===== Tady je dobré rozlišit pattern a nástroj. [[ai:zapisy-a-workflow:inspirace-a-strategie:karpathy-llm-wiki-prubezne-budovana-znalostni-baze|LLM Wiki]] je způsob práce s knowledge base. Řeší, jak se zdroje průběžně kompilují do wiki, jak vznikají syntézy, jak se udržují vztahy mezi stránkami a jak se dělá linting. QMD oproti tomu řeší hlavně retrieval nad již existujícími soubory. Jinými slovy: * **LLM Wiki** = pattern pro průběžně udržovanou znalostní vrstvu * **QMD** = search vrstva nad markdownem a dokumenty Nejsou to konkurenti. QMD může být praktický stavební blok uvnitř workflow LLM Wiki. ===== Základní použití ===== README uvádí například tento rychlý start: # instalace npm install -g @tobilu/qmd # přidání kolekce qmd collection add ~/notes --name notes # vytvoření embeddingů qmd embed # fulltext search qmd search "project timeline" # semantické vyhledávání qmd vsearch "how to deploy" # hybridní query qmd query "quarterly planning process" Pokud se má QMD používat přímo z agenta, dává smysl i MCP server: qmd mcp README uvádí také HTTP variantu MCP serveru pro sdílený běh bez opakovaného načítání modelů. ===== Na co dát pozor ===== * QMD není náhrada za kvalitní strukturu knowledge base * výsledky budou jen tak dobré, jak dobré jsou indexované dokumenty a kontext * lokální modely zvyšují nároky na runtime prostředí * hybridní retrieval je užitečný, ale pořád neřeší sám o sobě syntézu, konsolidaci a údržbu wiki Jinými slovy: QMD dobře řeší hledání, ale neřeší za tebe znalostní architekturu. ===== Kdy ho zvažovat ===== QMD má smysl zvažovat ve chvíli, kdy už máš větší množství markdownu a agent nad ním dělá opakované dotazy. Pokud máš jen malou sadu souborů, může stačit obyčejný filesystem a jednoduché fulltextové nástroje. Jakmile ale knowledge base roste, QMD dává smysl jako hotová lokální retrieval vrstva. ===== Zdroje ===== * [[https://github.com/tobi/qmd|tobi/qmd – GitHub]] * [[https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f|Karpathy – LLM Wiki gist]] * [[https://www.marigold.cz/item/karpathy-llm-knowledgebase/|Marigold.cz – Karpathy přišel na to, jak používat AI jinak. A má pravdu.]]