Brand LogoBrand Logo (Dark)
首页智能体广场工具包广场GitHub 精选提交智能体博客

分类

  • AI 绘画
  • AI 音频
  • 自动化工具
  • 聊天机器人
  • 编程工具
  • 金融工具

分类

  • 大语言模型
  • 营销工具
  • 零代码/低代码
  • 研究与搜索
  • 视频与动画
  • 视频编辑

GitHub 精选

  • DeerFlow — 字节跳动开源超级智能体框架

最新博客

  • OpenClaw vs Composer 2 Which AI Assistant Delivers More Value
  • Google AI Studio vs Anthropic Console
  • Stitch 2.0 vs Lovable Which AI Design Tool Wins in 2026
  • Monetizing AI for Solopreneurs and Small Teams in 2026
  • OpenClaw vs MiniMax Which AI Assistant Wins in 2026

最新博客

  • OpenClaw vs KiloClaw Is Self-Hosting Still Better
  • OpenClaw vs Kimi Claw
  • GPT-5.4 vs Gemini 3.1 Pro
  • Farewell to Bloomberg Terminal as Perplexity Computer AI Redefines Finance
  • Best Practices for OpenClaw
LinkStartAI© 2026 LinkstartAI. 版权所有。
联系我们关于
  1. 首页
  2. GitHub 精选
  3. QMD
QMD logo

QMD

本地运行的 Markdown 检索引擎:BM25 + 向量检索 + 本地 LLM 重排,并提供 MCP Server 让智能体直接调用。
9.6kTypeScriptMIT
typescriptbunbm25vector-searchhybrid-searchmcp-server
markdown-notes-search
agentic-retrieval
alternative-to-ripgrep
alternative-to-obsidian-search
alternative-to-notion-search
alternative-to-rag

项目简介

QMD 是一套“设备内运行”的 Markdown 搜索引擎,把你的笔记、会议纪要、文档与知识库索引成一个可被智能体直接调用的检索层。它用 SQLite 的 FTS5(BM25)做关键词召回,用向量相似度做语义召回,再用本地 GGUF 模型在 node-llama-cpp 上完成重排与查询扩展,让结果既快又像人类在翻资料。工程上它把输出格式做成 agent-friendly:支持 --json/--files/--csv,并内置 Model Context Protocol (MCP) Server,把 search/get/status 等能力暴露成工具接口,适合接入各类自动化与“读你自己的文档再回答”的工作流。

痛点 vs 创新

✕传统痛点✓创新方案
本地 Markdown 内容规模一大,纯 grep/关键词检索会漏掉同义表达与跨段线索,难以给智能体提供“可用上下文”。QMD 用 FTS5(BM25)+向量召回+本地 LLM 重排构成混合检索链路,把“召回率”和“可回答性”分层优化。
把检索接入智能体时,常见做法要么把大量原文塞进上下文,要么依赖远端向量库,成本与隐私边界都不稳定。通过内置 Model Context Protocol (MCP) Server 将检索能力工具化,配合结构化输出,让智能体只拿需要的片段而不是整库扫读。

架构深度解析

混合检索流水线(FTS5 + 向量 + 重排)
把检索拆成三段:先用 SQLite FTS5 的 BM25 做快速关键词召回,再用向量相似度补齐语义相近内容,最后用本地 GGUF 模型在 node-llama-cpp 上做重排,把“匹配到”升级为“能回答”。
查询扩展与融合排序
对用户原始查询生成变体并并行检索,随后用 RRF 融合与位置感知的混合策略稳定高置信度命中,避免扩展查询稀释精确匹配,同时把候选集控制在可重排的规模内。
面向智能体的接口层(CLI + MCP)
同一套能力同时提供 CLI 与 MCP Server:CLI 用结构化输出承接脚本/管道,MCP 把 qmd_search/qmd_get/qmd_status 等变成工具调用,让“检索”成为智能体工作流里的可组合步骤。

部署指南

1. 安装运行时与依赖(需要 Bun)

bash
1bun --version

2. 全局安装 QMD

bash
1bun install -g https://github.com/tobi/qmd

3. 添加集合并生成向量索引(首次会下载本地模型缓存)

bash
1qmd collection add ~/notes --name notes && qmd embed

4. 执行检索(按需求选择模式)

bash
1qmd search "auth"  # BM25\nqmd vsearch "login flow"  # vector\nqmd query "how to deploy"  # hybrid+rerank

5. 启用 MCP Server(让智能体以工具方式调用)

bash
1qmd mcp  # 作为本地 stdio MCP server 运行

落地场景

核心场景目标人群解决方案最终收益
给 Claude Code/桌面端做本地检索工具用智能体写代码/写文档的个人与团队把本地笔记与项目文档索引成检索工具并输出 JSON智能体减少“扫全库”的 token 浪费,只取高相关片段再回答
企业内私有知识库的零出网检索层对数据出网敏感的研发/合规团队在员工电脑或内网机器上跑本地混合检索与重排在不把内容上传到外部向量库的前提下提升可检索性与答复质量
会议纪要/日志的持续索引与回溯需要追踪决策与行动项的管理者与工程师把会议纪要、变更日志、运维记录按集合组织并定期更新索引用自然语言回溯“当时怎么决定的、在哪里写过”

避坑指南

避坑指南
  • 首次启用语义检索与重排会下载本地模型,磁盘与时间成本不可忽视;建议先在小集合上试跑再扩展。
  • macOS 上为获得扩展能力可能需要额外安装 SQLite 版本;在受限环境中要提前打通依赖与 PATH。

常见问题

如何把 QMD 作为智能体工具而不是“跑命令截屏”?▾
启用内置的 Model Context Protocol (MCP) Server,让智能体用工具调用拿到结构化结果;再用 --json/--files 控制返回粒度,只喂必要片段。
为什么同一个问题 search/vsearch/query 的结果差异很大?▾
三种模式对应不同检索链路:search 偏关键词精确命中,vsearch 偏语义相似召回,query 会在召回后再做融合与重排,更适合“我想找到相关段落并回答”的任务。
怎样避免把敏感笔记泄露到外部?▾
把索引与检索留在本机:内容进 SQLite 索引,语义与重排走本地模型缓存;同时检查你的终端历史、脚本与日志,避免把搜索结果转发到不可信的远端。
在 GitHub 上查看

项目指标

Star 数9.6 k
编程语言TypeScript
开源协议MIT
部署难度中等

Table of Contents

  1. 01项目简介
  2. 02痛点 vs 创新
  3. 03架构深度解析
  4. 04部署指南
  5. 05落地场景
  6. 06避坑指南
  7. 07常见问题

相关项目

Pi Monorepo
Pi Monorepo
14.1 k·TypeScript
zvec
zvec
8.2 k·C++
ZeroClaw
ZeroClaw
15.6 k·Rust
NanoClaw
NanoClaw
8.6 k·TypeScript