利益相关声明:作者与文中产品有直接的利益相关(开发者、自家产品等)

AI 辅助声明:文章中提交到插件由 Codex 和 Kimi-K3 辅助开发。文章创作过程中使用了 AI 技术辅助启发思路,检验错别字,改动结构。但文章正文都是作者人写的。

我在 Obsidian 里有接近 20000 篇笔记。
读书摘录、笔记、项目记录、日记、发布的文章,
全部都在 Obsidian 里,Obsidian 就是我的第二大脑。

为了管理这些笔记,
笔者用过很多款知识管理软件,

  • 在印象笔记里折腾过目录分类法
  • 在 Notion 折腾过 DataBase
  • 在 Obsidian 和 Roam Research 里折腾过双向链接。

最后发现:维护笔记系统的时间,比写笔记的时间还长。

依靠人运行的系统中,任何有阻力的设计,都会慢慢腐朽。

知识管理过去是一个维护成本非常高的事
但是,进入 AI 时代以后,这一切都变了!


现在你只管记录就好了!其他的交给 AI。
知识管理的终极目标,就是能够被看见,能够被运用起来。 

这也就是我为什么开发 Analogy 的原因。
我做了一个 Obsidian 插件,让你和你的 Agent 都可以调用知识库。
 

Analogy for Obsidian

Analogy 最早做的是 Notion 版本。 

当时的想法很简单:我在 Notion 里阅读或写笔记时,希望右侧能自动出现知识库里的相似内容。新增一篇笔记,也能顺手看到以前写过的观点。 这个版本已经跑了一段时间。现在,我们把基本一致的能力带到了 Obsidian。

输入一个想法,就能找到之前关联过的笔记:

 

通过文章的内容,也可以匹配到几年前记录的笔记和文章:

 

在自由画布中,任何片段或者文本,开启语义漫游,在知识库里随机漫游

 

这次的 Analogy for Obsidian 有几个特点

  1. 完全本地化,无隐私风险;
  2. 自适应语义分块;
  3. 在知识库里随机漫步;
  4. 让 Agent 接入第二大脑;

 

Agent 也可以使用这样的能力来检索知识库。

结尾还附上我写的在 Obsidian 中使用知识库的教程。

 

01 完全本地化,无隐私风险

Obsidian 一直都以本地化,隐私安全性闻名。
所以在 Analogy 的 Obsidian 插件里,我们很在意用户数据的:完全本地化

两年前,我们做 Analogy for Notion 的时候,Embedding 模型的参数规模还非常大。
这就造成了一个很尴尬的局面
想要效果好的,就在本地跑不起来,只能把模型部署在云端。
参数规模小的呢,效果又非常差。
所以 Obsidian 版本拖了很久。

当然,得益于模型能力的快速发展。

今天我们在 MTEB leaderboard 上(一个评估 embedding 模型能力的 BenchMark)上,已经可以看到很多参数量在 300M 以下的模型,效果又好的模型,可以在本地跑起来,它们的效果又甚至比两年前的 SOTA 模型还要好。

同时在强大的 Codex 和 Kimi K3 模型的帮助下,
我们这次带来了 Analogy 的 Obsidian 插件版本。

 

Analogy for Obsidian 可以读取本地的笔记,完成文本清理、分割和向量化,再把索引写进本机的 Chroma 向量数据库。搜索时,查询内容也在电脑上转换成向量,进行相似性匹配。

一切的向量数据存储,搜索行为,都发生在本地,不会上传到云端。

这很符合我对 Obsidian 的理解。文件是自己的,索引也应该留在自己的电脑里。

 

02 自适应语义分块

Obsidian 存储的笔记,很多都是一篇几千字的文章。 长文章,一方面,因为模型字数的限制,没有办法直接塞进一个向量。另一方面,内容太长,多个话题挤在一起,生成的向量会变得含糊。切得太碎也有问题,一句话离开上下文以后,可能连它在讨论什么都看不出来。

所以要将长的文章,分割成多个片段。 最简单的做法,是每 500 字切一刀。它很省事,也很容易把一个完整观点从中间劈开。 Analogy 选择了更细致的文本分割方法。 它先清理 Markdown 里的格式噪声,保留文章的标题结构。 接着按照 H1、H2、H3 分段,为每段带上完整的标题链。这样,某个片段即使单独被搜出来,也知道自己原来属于哪一章。 标题之下的正文还会继续做语义分块:先拆成句子,给句子生成 Embedding,再计算相邻句子的余弦距离。当话题发生明显变化时,就在那里断开。 同时,我们给每个 chunk 设置了长度上限,避免一块内容膨胀得太大。 大致是这个过程: 

所以我们可以看到,一篇文章可以被切分成多个语义的片段。 更适合用来做语义匹配。

例如我搜索「文本分割」,就可以在我的知识库里面找到很多相关的笔记中的片段。

 

03 语义漫游

除了基础的语义搜索以外。 我们还参考了 flomo 的随机漫游功能,做了属于 Obsidian 的语义漫游

他可以让你在一个自由画布中,沿着一个语义,在知识库中随机漫步。

你可以沿着相关的知识,一直往下探索,找到更多关联的知识。 正如 Analogy 这个单词的意思 —— 类比 通过这样不断在知识之间类比,就可以:

  • 启发思考:通过将陌生概念与已知事物比较,激发新的思路和洞见
  • 促进知识分形增长:帮助发现不同领域间的联系,找到知识边缘的缝隙和增长机会
  • 促进记忆和理解:在知识卡片间建立关联,加深理解并强化记忆
  • 简化认知过程:把复杂、不熟悉的事物与熟悉事物类比,降低理解难度
  • 帮助范畴化:让人脑通过小样本学习,快速建立对世界的理解框架
  • 建立知识网络:把分散的知识点连接起来,形成更有机的第二大脑
  • 激发创新:通过跨领域联想,催生新的知识分支和创意

 

04 把知识库交给 Agent 调用

做完本地搜索以后,我们还给 Analogy 加了 MCP Server。 让本地的 Agent 也可以使用 Analogy 的语义搜索能力,真正接入你的第二大脑。 比如我发送了 

他就能找到这句

在依靠人运行的系统中,任何有阻力的设计,都会慢慢腐朽。 "间隔重复(主动复习)虽有效,却难以坚持,因此 Analogy 放弃让用户"复习知识",转而设计一条新的反馈回路——在阅读、思考、创作、工作的过程中,相关知识自动浮现。这既是回忆,又是创作素材,还可能在阅读中催生新视角,形成"知识复利"的正反馈循环。 它借用游戏化设计:明确目标、规则、正反馈、自愿参与,让"使用知识库"本身成为奖励。技术上用混合搜索(全文+稀疏+稠密向量+重排序)在合适时机呈现相关内容,在做笔记时自动发现潜在链接——链接即 Zettelkasten 最迷人的部分。 其理念凝练为一句:"知识要在流动中产生价值"**,而"能够快速调用的笔记,才是好笔记"。

类似的想法还有

  • 能够快速调用的笔记,就是好笔记
  • 当检索一个关键词瞬间浮现十几个相关笔记时,会产生"wow"的 Aha 时刻
  • 滑箱的价值就在于创建知识与知识之间的链接;而"当我们思考的东西就在眼前时,我们才能更好地思考"
  • 把这种"背景式唤醒"做成系统。设计上遵循发散-收拢的双钻模型,功能拆分为搜索/类比/向量搜索/问答等模块 一句话:知识要被看见,才产生价值。

这样的设计,很符合我的想法。 

添加方式也很简单。 只需要在设置页里启动 MCP 服务,然后给 Agent 添加 MCP,就可以使用。

 
{
 
  "mcpServers": {
 
    "analogy-vault": {
 
      "command": "node",
 
      "args": ["<mcp-server 所在目录>/dist/index.js"],
 
      "env": { "ANALOGY_VAULT_PATH": "<你的 Obsidian vault 绝对路径>" }
 
    }
 
  }
 
}

它会拿到相关的笔记片段、标题、文件路径和相似度,再把这些材料放进当前任务的上下文里。

 

 

Analogy  是我一直以来都想要做的产品。
即便他没什么人使用,我也是那最后一个用户。

Analogy 的想法萌发于我多年的知识管理经验。
把时间拉回到 2020 年,Zettelkasten 知识管理方法爆火。

Zettelkasten(卡片盒笔记法)是一种将知识拆分为原子化「永久笔记」的个人知识管理系统:阅读时先写临时笔记与文献笔记,再提炼成独立、可复用的卡片,并通过双向链接把卡片连接成网络,让思想在关联中自然生长,最终服务于写作与思考。

甚至有很多读者,
第一次认识潦草学者,
也是在少数派看到了我那篇被首页推荐的文章。

《我的阅读工作流(2021版)》

《AI时代,我的知识管理系统(2025版)》

 

在过去的几年里,我写了很多篇文章,都是关于知识管理的。

《我如何在Notion中实践Zettelkasten》

《使用Zettelkasten笔记强化学习》

《如何搭建知识库》

 

回想起来 无论是 Zettelkasten 方法,还是 Obsidian 和 Roam Research 带火的双向笔记。

 这些方法都是希望我们在记录笔记的同时,引发自己的思考,让新加入的笔记,和过去记录的笔记关联起来。

通过记忆增强笔记之间的链接。 新加入的知识,在和已经有的知识关联以后,变得更加容易理解,更加容易记忆。

 

美妙的语义搜索

而 AI 时代带来了语义搜索,也就是Embedding 技术带来了的语义搜索的功能。

《The Semantic Hub Hypothesis: Language Models Share Semantic Representations Across Languages and Modalities》这篇论文中,作者提出并验证了一个假设:

大语言模型中心的内部,有一个语义中心,来自不同模态的信息,经过大语言模型处理后,都会到达这个语义中心,并在这个语义中心内进行运算」

也就是说,不同模态的内容,文字,图片,音频,视频,代码等等,在输入到大语言模型之后,都会共享一个语义中心。

  • 输入中文的「你好」和英文的「hello」,在语义中心中的位置都是相似的。
  • 输入代码 print(’hello world’) 和文字 「打印‘你好,世界’」,在语义中心中的位置也是相似的。
  • 输入数学公式 3x5 和 「三的五倍」,在语义中心中的位置也是相似的。

某种程度上说,我们可以把「语义搜索」看作为一种不需要维护的「双向链接」,通过笔记之间语义的相似性,就可以关联彼此。

此前传统双链,保存的是自己阅读过程中思考,并确认过的关系,他的印象会更深刻,但维护成本也会变得更高。而语义搜索实时生成一组可能相关的关系,则是摩擦力更低的选择。

 前者很确定,维护成本也高。 
后者带一点模糊,偶尔会搜出奇怪的东西,但这种奇怪有时反倒是灵感的来源。 

而知识库就像冰山,大量隐藏的知识沉在表面之下。

那些"奇怪的东西",可能就是冰山下的隐藏知识。

 

写在最后

Analogy 就是我自己的需求开发的产品。
它不能替你思考,但会在你需要的时候,把你过去写下的东西推到你面前,启发你的思考。

双向链接帮我们建立了一些连接,但我没那么多时间给每条笔记想它该连向哪里。

而 Embedding 技术的出现,仿佛是技术对知识管理者的眷顾。
基于语义的搜索,仿佛就是这个链接最好的载体。

知识管理的终极目标,从来不是建立一个完美的分类系统,而是让写下来的东西,在需要时被看见,被调用。

而且 Agent 时代来临以后,
我又写了 Obsidian+ClaudeCode 的教程用Kimi-K2+ClaudeCode做了条Agent流水线,节省90%的时间 | Subagent+Skills的最佳实践

如果你也想试试这种"记录即关联"的方式,可以安装 Analogy for Obsidian: 产品地址:https://community.obsidian.md/plugins/analogy-rag-in-your-vault 

让你的知识库成为 Agent 最好的上下文。Analogy 也提供了让 Agent 调研的能力。

你和你的 Agent 都可以调用你的知识库。

 

如果你也在使用 Obsidian ,可以试试 Analogy:
产品地址:https://community.obsidian.md/plugins/analogy-rag-in-your-vault

或者在 Obsidian 中搜索 Analogy,就可以安装。

首次使用需要下载本地模型并建立索引。笔记多的话,初次索引会花一点时间。

 

目前产品的商业化模式是,2500 篇笔记以内免费,超过了可单次 $9.9 买断许可证。

评论区随机抽几个读者,赠送许可证,体验看看~

 

 

你现在的笔记系统维护成本高吗?

Analogy 搭配之前分享过的已经可以把知识管理的成本降得很低。

还有什么样的痛点,欢迎在评论区聊聊。