132
// 项目简介
QMD 是一款设备端搜索引擎,用于索引 Markdown 笔记、文档和转录内容,以实现高效的本地检索。它采用混合方法,结合了 BM25 全文搜索、向量语义搜索和基于 LLM 的重排序,从而提供高质量的搜索结果。该工具专为 Agent 工作流设计,提供命令行界面和 MCP 服务器,以便与 AI Agent 无缝集成。
// 技术分析
QMD 是一个端侧搜索引擎,旨在通过结合 BM25 全文搜索、向量语义搜索和基于 LLM 的重排序的混合架构,对个人知识库(如 markdown 笔记和文档)进行索引和检索。通过 node-llama-cpp 和 GGUF 模型在本地运行,它解决了在不依赖外部云 API 的情况下维护私有、可供 Agent 使用的搜索能力的挑战。该项目采用了一种复杂的检索流水线,具有倒数排名融合 (RRF) 和位置感知混合功能,平衡了关键词匹配的精确度与语义搜索的上下文理解,从而确保为 Agent 工作流提供高质量的结果。
// 核心亮点
01
实现了结合 BM25、向量嵌入和 LLM 重排序的混合搜索流水线,以实现卓越的检索准确性。
02
提供原生的 MCP (Model Context Protocol) 服务器,以实现与 Claude Desktop 和 Claude Code 等 AI Agent 的无缝集成。
03
支持使用 tree-sitter 进行 AST 感知代码分块,以提高编程语言源文件内的搜索相关性。
04
允许用户定义分层上下文元数据,这有助于 LLM 在选择相关文档时做出更好的决策。
05
为 Node.js 和 Bun 提供灵活的 SDK,使开发人员能够将搜索引擎直接嵌入到自定义应用程序中。
06
具有本地优先的设计,将所有数据和模型处理保留在设备上,确保隐私和离线功能。
// 典型使用场景
01
使用关键词、语义和 LLM 重排序查询,在个人知识库中执行混合搜索。
02
通过 Model Context Protocol (MCP) 将本地文档检索集成到 AI Agent 工作流中。
03
管理和索引具有描述性上下文的各类文档集合,以提高搜索相关性和 LLM 的决策能力。
// 快速开始
首先,使用 'npm install -g @tobilu/qmd' 或 'bun install -g @tobilu/qmd' 全局安装该工具。安装完成后,使用 'qmd collection add [path] --name [name]' 从本地目录创建集合,然后运行 'qmd embed' 生成必要的搜索索引。之后,您可以使用 'qmd search' 进行关键词搜索,使用 'qmd vsearch' 进行语义查询,或使用 'qmd query' 进行完整的混合搜索体验。