loci 是一个面向分散笔记与文档的可查询「第二大脑」工具,同时提供 MCP 服务器,让 AI 智能体也能使用同一套记忆。
用途
loci 用来解决项目文档、笔记和聊天日志散落在十几个目录中的检索问题。它的核心思路是:不构建另一个聊天应用,而是构建每个聊天应用都能挂载的记忆层。Claude Desktop、Cursor、Cline 或任何 MCP 主机都可以成为它的界面。它并不与 Obsidian 等笔记应用竞争,而是作为跨库搜索引擎与它们分层协作:Obsidian 负责记录,loci 负责跨目录检索。
主要能力
- 混合检索:向量检索与内置约 60 行的 BM25(支持 CJK 分词器)通过 Reciprocal Rank Fusion(RRF)融合。中文查询可以找到英文文档(反之亦然),关键词证据能捕捉嵌入遗漏的内容。
- 段落级引用:每条引用指向具体段落(path > section 形式),而不仅是文件级别。
- 可选重排序:通过 --rerank 对融合后的候选结果重新排序以提升精度,支持两种提供方;本地模型首次使用时下载(约 1.1 GB)。
- 多格式支持:PDF(通过 [pdf] 附加组件,PyMuPDF4LLM 将页面提取为 markdown,表格以管道行形式呈现,纯 pypdf 文本作为回退)、Word(通过 [docx] 附加组件索引 .docx 段落与表格行)、HTML(.html/.htm 转为保留标题的文本,使用标准库 html.parser,零依赖)、org-mode(.org 笔记忠实转换,#+TITLE 成为 h1,#+FILETAGS 成为可搜索标签)、聊天导出(将 ChatGPT 或 Claude 的 conversations.json 放入任意源目录,每个对话成为一个可搜索文档,标记为 chatlog)。
- Obsidian 原生细节:理解 frontmatter tags:(可用 search --tag 过滤)、[[wikilinks]](可用 links 遍历图谱)、代码块不会被从中间截断、单行笔记仍可搜索。
- 增量索引:写入路径为 loaders → chunker(标题感知切分)→ embedder → store(ChromaDB 持久化),按内容哈希去重。
使用方式
需要 Python 3.11+(使用标准库 tomllib)。[llm] 和 [embed] 可以指向不同的提供方(例如对话用 DeepSeek、嵌入用 OpenAI),唯一规则是 [embed] 端点必须提供 OpenAI 风格的 /embeddings API。API 密钥也可来自环境变量 BRAIN_LLM_API_KEY / BRAIN_EMBED_API_KEY(优先于配置文件)。
搜索与 ask 支持自由组合的过滤操作符。
MCP 服务器暴露三个工具,并支持完整协议:Resources(resources/list 暴露 brain://stats 以及每个索引文件的 brain://note/… 资源,通过 resources/read 获取原始 markdown)、Prompts(三个现成模板:brain-briefing、study-plan、contradiction-check)。
记忆以纯 markdown 形式保存在 memories 目录(便于 git 管理,无锁定),并标记为 memory,可用 loci search --tag memory 限定检索。跨 IDE 提示:默认 store / memories 路径相对于启动 loci 的目录;若各 IDE 从不同项目文件夹启动,可在 config.toml 中指向同一绝对位置(如 store.path = "~/.loci/store"、memories.path = "~/.loci/memories"),使所有 IDE 共享同一记忆库。
loci-dsh 是 DeepSeek Harness 的可视化插件:在 dsh Web UI 侧边栏中进行搜索、提问、快速捕获记忆并查看索引统计,通过本地 REST 与 loci serve-http 通信。
完全离线方案:索引本地存储,嵌入/对话调用也可本地化。任何 OpenAI 兼容服务器均可,Ollama 已端到端验证。使用该配置后,ingest / search / ask 零云端调用。
适用场景
- 跨多个目录检索项目文档、笔记和聊天记录。
- 让 Claude Desktop、Cursor、Cline 等 MCP 主机共享同一记忆库,在一个工具中写入的记忆可从另一个工具召回。
- 中文与英文混合语料库的检索。
- 需要段落级可验证引用的问答。
- 需要完全本地/离线运行的场景(配合 Ollama)。
限制与设计决策
- 核心约 300 行,不使用 LangChain,便于阅读与修改。
- MCP 优先,没有需要维护的 Web 应用。
- 混合检索默认开启。
- 引用始终带路径与段落,便于快速验证。
- 防御性加载器会跳过无法解析的内容,不会挂起。
- 单行笔记不做最小分块过滤,仍然可索引。
- 密钥不写入代码,只放在 config.toml(已 gitignore)或环境变量中。
参与贡献请参阅 CONTRIBUTING.md(规则:不用框架、测试保持离线、引用不可妥协)。路线图见 docs/roadmap.md,包含重排序、GraphRAG 实验和更多加载器。
关于具体的价格、收费、安装命令细节,目前资料中暂未提供完整信息。