分享一个我自己花几个月写 + 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,可能工程量浩大哈哈,再次谢谢大佬的作品