--- summary: "Search and retrieve TekDek knowledge base using qmd (BM25 + semantic search + reranking)" read_when: - Searching for TekDek knowledge (personas, projects, storylines, brands, operations) - Looking up past decisions, context, or documentation - Answering questions that might be in the knowledge base - Adding new knowledge to the knowledge base --- # QMD — TekDek Knowledge Base qmd is our local search engine. It indexes all markdown docs in the workspace and knowledge base, and supports keyword, semantic, and hybrid search with reranking. ## Collections - **workspace** (`qmd://workspace/`) — Core agent files: IDENTITY.md, MEMORY.md, SOUL.md, USER.md, daily logs, etc. - **knowledge** (`qmd://knowledge/`) — TekDek KB: personas, projects, storylines, brands, operations ## Knowledge Base Structure ``` /data/.openclaw/workspace/knowledge/ ├── personas/ — One .md file per Coder persona ├── projects/ — One .md file per TekDek project ├── storyline/ — Storyline arcs, relationship dynamics ├── brands/ — Per-persona brand guides └── operations/ — Processes, decisions, meeting notes ``` ## Search Commands ```bash # Fast keyword search qmd search "query" # Semantic/vector search qmd vsearch "query" # Best quality: hybrid + reranking (use this for most queries) qmd query "query" # Search within a specific collection qmd search "query" -c knowledge qmd query "persona quirks" -c knowledge # Get a specific file qmd get "knowledge/personas/example.md" # Export results for agent use qmd query "topic" --json -n 10 qmd query "topic" --all --files --min-score 0.4 ``` ## MCP Tools (available via MCP server) - `query` — Hybrid search with reranking (best quality) - `get` — Retrieve document by path or docid - `multi_get` — Batch retrieve by glob or docids - `status` — Index health and collection info ## Adding Knowledge When new TekDek content is created (new persona, project, storyline beat, etc.), create a markdown file in the appropriate `knowledge/` subdirectory, then re-index: ```bash qmd collection sync workspace qmd collection sync knowledge # Then re-embed if needed: qmd embed ``` ## Re-indexing Run after adding/changing files: ```bash qmd collection sync workspace && qmd collection sync knowledge qmd embed # slow on CPU — only run when needed ``` ## Tips - `qmd query` is best quality but slowest (uses LLM reranking) - `qmd search` is fast and good for known terms - `qmd vsearch` is good for fuzzy/conceptual queries - Always check `qmd status` if results seem stale - The MCP server (`qmd mcp`) can be used for tighter tool integration