分享一个我自己花几个月写 + dogfood 的 Obsidian 外挂,Vault Curate。
之前看到中文圈在问「Obsidian 中文搜寻方案」的讨论,市面上的语意搜寻外挂多半用多语通用模型(MiniLM 那系列的
distilled),中文准度真的不算好——人名、宗教词、生活杂事的查询命中率都偏低。我自己 dogfood 过,差距大到「能不能用」的程度。
Vault Curate 想做什么
一句话:用「意思」搜笔记,不只是关键字,而且对中文友善。
两个我比较在意的设计:
1. 中文用纯中文训练模型
内建 bge-small-zh-v1.5(纯中文训练,~110 MB 第一次自动下载)。比起多语 distilled 模型在中文人名 / 宗教词 /
口语的命中率大幅提升。也支援英文搜寻,只是不是优化重点。
2. AI 整理层 opt-in,预设关闭
新版有个 AI curation 区(用 clustering 自动把笔记分主题群、用 LLM 命名每群,产出 Map of Content;也可以为单篇笔记生
description),但预设是关的。要进 Settings 自己打开,然后手动触发才会跑。
我的立场是:你的 vault 不应该在你不知情的情况下被改。AI 可以帮你发现新分群、看见冷笔记,但要不要采用是你的决定。
技术细节
- 三路融合搜寻(RRF k=60 合流):BM25 纯 TS CJK trigram + 语意 embedding + Jaro-Winkler 模糊比对
- 三种 embedding mode:Built-in(装置端 WebGPU、预设、零设定)/ Ollama(本机 daemon)/ OpenAI-compatible(自选 endpoint)
- Discover Hot/Cold:根据连结密度 + recency 自动分类笔记,主动推荐你忘了的「冷笔记」
- WebGPU 加速:342 篇 / 5004 chunks 索引约 1m23s(WASM fallback 也能跑,约 27 分钟)
安装
Obsidian Settings → Community plugins → 搜 “Vault Curate” → Install → Enable。第一次开会跳一个 Welcome 视窗带你建索引。
欢迎试用、回馈、开 issue,特别是中文 vault 的 edge case,我会持续调整。
5 个赞
谢谢,若是有使用上的问题或是想提供新功能建议,欢迎在这里提出 
建议新增两项功能优化:一是支持鼠标悬浮时触发预览功能,二是增加当前文档锁定机制,以确保不会因点击关联文档而导致当前关联的文档信息发生变更。
1 个赞
延续上次的建议(hover 预览 + 锁定当前笔记),今天顺手就做了 
v1.0.3(UX patch)
- Hover 预览:Search / Discover 结果 Cmd/Ctrl + hover 跳出 Obsidian
原生 Page Preview。
- 锁定 Discover:sidebar 加
按钮锁定当前笔记,可以点关联结果偷看
而不打断 discovery context。删除或切到 Global 模式自动解除锁定。
- 调整 :内建 WebGPU embedding + AI 整理时 LLM 模型 dropdown ,有些人会一直停在 Loading。
列表标题显示有问题:如果正文有标题会显示正文标题而不是文档标题
1 个赞
哈哈,这算是设计上的规则,因为有些人的文件会有 YAML 定义,而档案名称以英数字编写,所以我的设计逻辑是:
- frontmatter 的 title: 栏位 ← 最优先
- 第一个 H1 heading ← H1
- file.basename ← 档名 fallback
您这个档案因为 YAML 没有 title
但有 H1 症状描述,所以就先抓这个了~
vvzeng
10
因为有些我的笔记有固定的模版,正文里面的标题都是一样的,推送机制结果就给我全部推送一样的,而不是基于文件名。
另外问一个:是否后续增加关联图,或者关联图上的编辑。哈哈
1 个赞
谢谢指出 — 这个 case 我之前没想到。H1 fallback 原本是为了
「档名是英数字编号 + 正文有更可读 H1」的场景设计的,但你
这种「模板生成的笔记 H1 大量重复」的情境,反而让 list 看起
来全长一样。
下版(1.0.4)会加 collision detection:同一个 H1 在 vault
里出现多次时,自动退回 file.basename。Frontmatter title:
优先级保持最高(这是 user 显式标记的,不参与防呆)。
是否后续增加关联图,或者关联图上的编辑
这个想法挺有意思 — 因为 semantic similarity 本来就内部算好
了,画 graph 在技术上不是问题。但 UI 工程量蛮大(layout、
节点交互、编辑),所以会放进 backlog 慢慢评估,短期不会
优先做。目前 Discover panel 的 Top-K 列表算是「graph 的一
维投影」。
1 个赞
v1.1.0 上线了 — @vvzeng 你在 #10 许愿的关联图做出来了 
(先补个账:#8 你报的标题问题在 1.0.4 已修——同一个 H1 在 vault 出现多次时,列表自动退回文件名显示,升级后跑一次「更新索引」即可生效,不用重建。)
这次的「关联图」长这样:
- 对任一笔记生成一张可编辑的 Obsidian Canvas:中心笔记 + top-K 语义邻居放射排列,每条边标注相似度分数
- 紫边 = 语义相近但你还没建立链接——原生关系图看不到的隐形关联
- 灰边(带方向箭头)= 已有 wikilink 的笔记
- 青色节点 = 很久没动的 Cold 旧笔记
- 三个入口:命令面板 / 笔记右键「VC: 生成关联图」/ Discover 侧栏的「关联图」按钮
- 每次生成都是带时间戳的新档(预设放 Vault Curate Canvases/,可在进阶设定改),你编辑过的图不会被覆写
- 想往外再走一层:对 Canvas 里任一节点右键 → 再生成一张,就是第二层
之所以选 Canvas 而不是自绘 graph view:Canvas 是 Obsidian 原生一等公民,拖拽、增删、连线、加卡片全部内 接满足,而且产出是开放的 .canvas格式,不锁在插件里,删掉插件图还在。
在 Community plugins 更新到 1.1.1 即可(1.1.1 是审查合规小补丁,功能同 1.1.0)。欢迎试用回报!
大佬好:
目前关联图谱基础视图已完成,想同步实现单点交互能力:在总图谱内点击任意节点,可展开该节点的二级关联图谱,同时兼顾页面渲染性能做优化处理。
关联图谱核心价值,在于挖掘笔记间的关联链路、梳理完整逻辑链条。比如从笔记 A 推导至笔记 E,中间会串联多层中转节点;后续可引入数学模型做随机路径推演、潜在关联挖掘,碰撞出全新的思维关联。
长远规划:搭建无边界的全域图谱画布,支持标记强绑定节点;依托海量节点关联数据,通过算法自动推演、梳理出潜在逻辑链列表乃至完整逻辑树。
十分感谢你开发的这套工具,个人yy,可能工程量浩大哈哈,再次谢谢大佬的作品
1 个赞
Vault Curate 在 Obsidian 官方社群,刚刚更新 1.2.2 版本了~
.
精神不变:全部文件都在你电脑上跑,Obsidian 第二大脑完全可以不用云端 LLM、不用付费、笔记不外传。搜寻只要输入一个概念一段话,就可以从自己的笔记里找出组织好的文件。繁中友好、表格友好、隐私友好 
.
▎ 1.2.2 这波更新:
▎ - 完整支援 关联图 Canvas ! 以任一笔记为中心生成可编辑的语意关联图,看见还没建立连结的隐形关联,自动帮你生成概念模板,再旧的资料也有机会被翻出来~
▎ - 中文检索更准,速度更快,8GB 的笔电都跑得很顺很好
▎ - 内建 WebGPU 模型 — 零设定就能跑,不再需要先装 Ollama
▎ - 免手动维护 — 升级自动增量重建索引,有进度提示,不用管
安装:Obsidian 社群外挂程式搜「Vault Curate」
我觉得速度还可以,我自己是 Macbook Air 8GB 都跑得很不错,各位的电脑一定比我更好,哈。
1.4.0 现在已经上了
- 右键点击任意生成的画布(或者用“将紫色边应用为维基链接”命令),会弹出一个勾选对话框,按来源笔记分组,每个页面都有 Cmd 或 Ctrl 悬停预览。勾上你想要的配对,它们就会被写成双向维基链接,写进两条笔记各自的“相关”区域(默认双向,不过你也可以改成只写来源端)。那些边会变成灰色,并显示方向箭头。没勾的保持原样——工具只负责建议,决定权在你。这也顺带解决了“持久性”的顾虑:一旦你接受了某个建议,它就成了真实链接,不会再作为建议出现。下周重新生成同一张画布,它已经是灰的了。
- 以前热度只看创建日期,所以一篇两年前的老孤儿笔记,就算你上周刚重写过,它仍然会被标成冷门。现在修好了:任何编辑都会给笔记回温(哪怕只打一个字再删掉也算,因为你毕竟对它做了一次判断),而插件自己的批量写入会被忽略。同时,层级现在是在查询时实时计算的,不再依赖旧索引,所以笔记也会按时真正降温。
- 加进了相关性排序:现在会把笔记的标签作为关键词信号跟嵌入向量融合,这样就过滤掉了最大的一类虚假邻居,那些仅仅因为写作风格跟锚点相似、而非话题本身相似的笔记。
- 在大概 2500 条笔记的真实仓库里测试发现,一旦层级做得真实,单纯冷门优先的排序反而会把相关结果压下去。所以现在,在当前笔记的 Discover 里,排序完全基于相关性(冷门笔记仍然保留视觉标识),而全局 Discover 则被重构成了针对你最近关注的内容来排序冷门笔记,包括最近编辑过的笔记、它们的话题标签、嵌入质心,并按文件夹分组,这样就不会让一个大仓库把所有其他内容都埋掉。
1 个赞
vault-curate 1.5.0: 手机也能查你的 vault 了
这次更新让桌机和手机分工:桌机负责建立与维护索引,手机端只负责读,不用额外设定,原本用 iCloud、Obsidian Sync 或 Syncthing 同步的 vault 直接就能用。
手机上可以用:关键字与模糊标题搜寻(接了远端伺服器的话还能用语意搜寻)、找相似笔记、两种 Discover 模式、忽略不想看到的建议,以及关联图和语意路径生成(平板上体验更好)。索引建立、AI 整理、MOC 产生、紫色关联线转真连结这些写入操作,仍然留在桌机端,避免多装置同步冲突。
另外,语意搜寻这条路如果暂时失效(伺服器挂掉之类),不会整个搜寻失败,关键字和模糊比对照样有结果,状态列会提示语意搜寻暂时不可用(这点桌机也一起修了)。
Community plugins 已经可以更新,完整 changelog 在 GitHub Release。
vault-curate 1.10.0:搜索结果直接显示命中的那一段
这次更新集中在搜索本身:
- 结果显示命中的段落:每笔结果不再只显示笔记开头,而是显示让它排上来的那一段,搜索词会高亮。点下去直接跳到那一段,跟 Obsidian 内置搜索一样。
- 长笔记的后段也搜得到了:内置模型一次只读得进约 512 个 token,以前超出的部分会被默默丢掉。现在笔记会切成模型读得完的大小,长笔记深处的内容也能用语意找到。
- 搜索预设涵盖全部笔记:以前预设只搜 Hot 笔记,刚好把最需要被翻出来的旧笔记排除在外。搜索框下方多了 Hot/Cold/All 快切按钮。
- 搜索窗口按 Alt+Enter,可以把选到的结果直接插入成链接。
用内置模型的话,更新后第一次打开会在背景自动重建索引(有进度提示,中途关掉下次会接着做)。用 Ollama 或 OpenAI 兼容端点的不受影响。
已知限制:编辑模式下,命中处在表格里时,点击不会卷到那一列(Obsidian 内置搜索也一样),阅读模式正常。
Community plugins 已经可以更新,完整 changelog 在 GitHub Release。