打造本地AI知识库:Obsidian与Cursor的完美结合

先后用过不少笔记工具:从Evernote到为知笔记,再到语雀,其间,断断续续用过Notion、Day One和Bear,早期还用过微软的OneNote。

我最初是Evernote的重度使用者,甚至因为Evernote的早期版本不支持Markdown,我还花钱买过一款名为“马克飞象”的工具。它是一款专为印象笔记(Evernote)打造的Markdown编辑器,在马克飞象编辑markdown笔记,然后就能以markdown的格式同步到Evernote中。这主要为了解决代码块高亮显示的问题。后来,我告别Evernote,转为使用国内的为知笔记,原因在于它能支持无限层级的文件树结构,且能支持word文档的导出。我更因此成为为知笔记会员,创建了数百篇笔记。随着为知笔记版本的不断更新,我觉得它的使用体验反而不如以前,不得不见异思迁,又转战语雀。至今,我还是语雀的专业会员,我在语雀写的笔记也不下于200篇吧。

现在,我要和所有这些笔记工具说再见了,我又有了新欢,开始转向Obsidian。

Obsidian的知识链接

为何转向Obsidian?它有一个炫酷的特性吸引我,即通过`[[]]`符号就能轻易地创建文章之间的链接,并显示如下图所示的关系图。

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 1

这就是一种知识链接。通过一个节点,可以很容易通向其他与之相关的节点,以便于知识的整理、学习和参考。

除了可以链接到一篇笔记,也可以如添加“书签”一般进一步指定链接到笔记下的某一节(section)。阅读笔记时,可以非常自由地在多个文章节点之前不断切换。

除了核心插件外,Obsidian还提供了非常丰富的第三方插件,但我都没有用。我希望这个笔记工具变得纯粹一点,我也不想花费大量时间去学习如何使用以及如何用好这款笔记工具。我只希望它可以更好地管理我的知识。有时候,功能不是越多越好,less is more!

对日记的良好支持

吸引我的第二个特性是它对日记的良好支持。事实上,日记正是Obsidian核心插件之一,你可以在设置中对该功能进行配置:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 2

一旦配置好,每天写日记时,可以方便地用快捷键Cmd + P,打开对话框,输入“日记”,可看到与日记有关的三个常用操作:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 3

我一直喜欢写日记。至今我还保存了从高中到大学记录的厚厚几本日记。自有个人电脑开始,我反而很少写日记了。待我老了,回忆没有日记的那些年,或许很多陈年旧迹会变成一段难以弥补的空白。

我刚进入ThoughtWorks的时候,写了不少纸质的日记,至今我还没有来得及将其整理为电子文档。进入咨询项目后,我开始用Day One记录每天的心得体会,可以算是一本咨询日记。我的一些博客文章与书籍的内容都来自这些咨询日记。只可惜,后来又慢慢放弃了。现在,Obsidian这种超级方便的日记功能,又勾起我的旧习,我重又恢复每天写日记的好习惯。

我并不简单将日记当做日记,它除了可以记录我每天的活动、心得体会和知识收获,它还成了我的Todo记录,驱动我以良好的工作习惯、清晰的工作目标开始每一天。

我将任务分为计划任务和临时任务,下图所示就是我今天日记的任务安排:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 4

每完成一个任务,就用`~~`删除符号标记该任务或子任务已完成。未完成的任务会复制到下一天的日记中。

注意看,任务中也可以通过链接的方式指向对应的笔记,如图中显示为超链接的《14种主流Prompt技术》以及我正在写的这篇文章。

纯粹的markdown笔记

Obsidian最有价值的功能,我认为是它支持最纯粹的markdown笔记形式。

我之所以说“纯粹”,是因为Obsidian的每条笔记本质上就是存储在本地磁盘空间中的一个markdown文件,且这个文件是与笔记工具自身是完全解耦的。这才是其关键所在,也是它有别于大多数支持markdown的笔记工具所在。

以语雀为例。语雀的笔记当然支持markdown语法,也能以markdown的格式呈现,但在语雀写的每条笔记自身是“内嵌”到笔记工具中的。它并不以单独的文件存在,若想获得该笔记的markdown文件,只有通过下图所示的导出功能,导出为markdown文件:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 5

因此,Obsidian的这种纯粹性,实则体现为markdown文件与笔记工具的彻底解耦。虽说如此,Obsidian又能很好地照顾到撰写/修改/管理笔记的易用性。

我们在Obsidian的vault(相当于是一个工作空间)下创建的文件夹结构,实在就是valut对应磁盘空间下的文件夹结构。每条笔记,也就是对应文件夹下的一个文件,笔记内部嵌入的图片,同样是单独的一个图片文件。但是,你完全可以在Obsidian下自由地调整笔记(包括图片)的位置,调整之后,所有链接(引用)该笔记和图片的地方,都会相应做出调整,并不会破坏该链接。即便修改了文章的标题(实际上就是文章对应文件的文件名),链接位置显示的内容也会同步更改,图片文件也如此。

举例来说,我当前这篇笔记插入的图片默认文件名是Obsidian提供的随机名称。我可以在左侧的文件列表找到该图片文件,对其更名,则文中以markdown语法引入的图片链接,对应名称也会发生变化。之后,我将该图片移动到指定文件下,如attachments/2025/06之下,笔记对该图片的引用并不会受到影响,仍能正常显示。

同理,笔记链接的其他笔记倘若发生了文件名称或文件位置的变化,也不会破坏链接。

在没有安装其他第三方插件的支持下,上述提到的特性确实是最初吸引我的亮点功能。然而,拥有这些特性并不值得我专门写一篇文章来鼓吹它。根本原因是因为我为其引入了Cursor,它给Obsidian插上了飞翔的翅膀,从而变成了可以飞上天的智能知识库。

引入Cursor打造智能知识库

这其中的前提就是上述“markdown文件与笔记工具彻底解耦”的特性。

当我们在Obsidian下管理和编辑笔记时,它是一款笔记工具。一旦脱离了Obsidian,这些笔记本质就是主文件夹下的许多markdown文件。

在Obsidian,该主文件夹就是Vault;在Cursor,它就成了一个project,我们可以像打开一个项目那样,打开Obsidian创建的所有笔记。

Cursor是辅助开发人员编程的IDE,但它为了辅助编程,就被设计为一个具有RAG能力的知识库。当我们在Cursor下打开一个项目(自然也包括一个文档文件夹)时,它会自动扫描、索引这个项目(文件夹)下的所有文件,它甚至能把markdown这样的文件分块嵌入为向量。只有如此,项目下的内容才能成为它能理解的上下文。

当项目的代码变成由文本和图片构成的笔记时,Cursor就不再是编程助手,而是成为智能的知识库助手。

让我们试试看。

当我在Cursor下打开了Obsidian创建的vault之后,在其AI Pane中输入提示词:

为所有文件整理一份思维导图。

它就开始搜索并尝试理解当前文件夹下的所有文件,如下图所示:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 6

完成对所有笔记内容的搜索和理解之后,它自动为我创建了一份名为“项目思维导图.md”的文档,这同样是一个markdown文件,内容包括思维导图、详细内容分析、知识关联网络、核心价值主张与发展脉络。这就相当于给我的所有笔记做了一份总结,且输出了笔记的大体结构。其中,思维导图和知识关联网络使用了mermaid语法。

有趣的地方来了。由于Cursor输出的这份总结仍然是markdown文件,并存储在主文件夹下,当我切换界面到Obsidian时,能同步看到这个文档。由于Obsidian对markdown语法做了解析,可以支持对应格式的可视化,如思维导图(当然,在cursor中下载支持markdown的插件,也能以此格式呈现):

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 7

Cursor还可以为Obsidian笔记内容生成自己想要的读书笔记。例如,我每天写的日记都有“阅读”一节,记录了我每天读的人文书籍。通过编写提示词:

根据dairy中“阅读”一节的内容,按照阅读书籍分别编写读书笔记,并存储到单独的reading.md文件中。

Cursor会根据提示词的要求,查看所有日记中的“阅读”内容,然后创建笔记,如下图所示:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 8

来看看生成的效果如何?

这两天我拜读了田余庆先生的《秦汉魏晋南北朝简史》。我刚刚读完第一章,记录的读书笔记部分为书中的原文,其余则是我自己的感想和体会。Cursor有机地融合了这两部分内容,为我总计了一份如下图所示的读书笔记:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 9

我阅读的书籍除了田先生这本历史著作,还包括《苏轼传》、《庄子》、《四书集注》、《追忆似水年华》、《念楼学短》和《资治通鉴》,结果,Cursor还为我生成了如下的阅读总结:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 10

效果还不错吧。

Cursor还可以为你的笔记智能地“弥补”一些空白内容。例如,我在阅读《图解大模型》的第10章时,10.6.2节讲解的内容为“使用TSDAE进行领域适配”。该书的作者并未对此展开讲解,只对领域适配(domain adaptation)做了一个基本介绍,然后偷懒地指出:“运用本章所学的所有知识,你应该能够复现这个流程。首先,可以使用TSDAE在目标领域训练嵌入模型,然后使用常规监督训练或增强版SBERT进行微调。”

作者轻飘飘地这么一说,可真要实现,还是需要花费一些时间。我也想偷懒,考虑到我在Obsidian下详细地做了第10章的读书笔记,于是,就想到让Cursor来帮我完成。输入提示词:

根据训练模型基础知识这篇文章“使用TSDAE进行领域适配”部分的内容,它提出“使用TSDAE在目标领域训练嵌入模型,然后使用常规监督训练或增强版SBERT进行微调”,请结合该文章提供的背景知识和相关代码,运用本章的所有知识,实现领域适配,并提供对应的实现代码,写入到“训练模型基础知识”文章的“实现领域适配”一节中。

Cursor忠实地学习了笔记中的内容,实现了完整的领域适配功能。

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 11

根据我的提示词要求,Cursor如修改代码一般修改了原来的笔记文件,正确地将生成的领域适配内容包括代码加到了指定位置,如下图所示:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 12

即便我们忽略AI的生成能力,Cursor通过RAG对笔记内容检索的增强,也能让我们获益匪浅。其实,Obsidian自身的检索能力也很不错,如下图所示,它支持对path、file、tag甚至section进行检索:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 13

有了Cursor的加持,搜索的能力就变得更强,我们甚至可以通过不同的提示词,演变为满足各种颇具个人特色的搜索需求。

想象一下,你是一位笔耕不辍的笔记记录者,两年之后,你已经记录了上千篇高质量的笔记。某天,你因为想要写一篇深入讲解AI大模型的文章,你依稀记得自己收集了某本书上所讲的“余弦相似度”的笔记,只是因为时间久远,你已不记得这一内容究竟放在哪几篇笔记中。于是,你寻求Cursor的帮助,输入提示词:

帮我查找笔记中余弦相似度的内容,得到内容后,请给出对应的笔记文件。

Cursor就会吭哧吭哧开始深度挖掘,它不仅找到如下图所示的各个笔记文件:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 14

还对这些笔记内容做了高度凝练的总结:

打造本地AI知识库:Obsidian与Cursor的完美结合 - Image 15

这一检索能力,不比单纯的关键词搜索强很多?!只要你对笔记内容有一个依稀印象,Cursor都可以帮你把想要的知识“挖掘”出来,是不是很酷?

为何还要用Obsidian

问题来了,既然如此,还要Obsidian干什么?这就回到前面讲到的它吸引我的亮点特性:

  • 清晰直观的知识链接与链接图
  • 对日记的天生支持,且有助于形成每日的Todo列表

Cursor毕竟是基于Visual Code打造的IDE,虽然也可以安装相关的插件来支持对笔记的编辑和管理,但它毕竟不是专门的笔记工具。

Cursor加持的文本智能检索与生成能力并非我们需要频繁使用的功能。尤其对于一个重度笔记写作者,大多数时间还是和笔记工具打交道。写笔记时,我就切换到Obsidian下工作;只有需要智能检索并对知识展开问答时,才切换到Cursor。二者相得益彰,又各行其道,真可以说是“相啕以湿,相濡以沫”,却又通过解耦的markdown文件实现了二者的“相忘于江湖”。

笔记内容的同步

最后,更重要的一点在于Obsidian是一款免费的笔记工具。倘若你希望在多台设备之间同步笔记,才需要付费。这又要回到Obsidian的纯粹性了。既然Obsidian创建的笔记都是一个个存储在本地文件夹下的文件(包括markdown文件和图片文件),为何不用git对其进行同步呢?

我们可以在github或gitee下创建repository。如果不想公开笔记,还可以创建私有的repository;然后,将整个笔记文件夹当做一个项目,通过git push和git pull就可以完成笔记的同步,多么简单!同时,还有效地实现了所有笔记内容的云备份。

唯一的遗憾是无法支持移动端的笔记同步!若你真的需要时刻在手机上记录下你每天的感悟,不妨为Obsidian的母公司贡献每月4美元的服务费吧。一旦购买了该服务,你不仅拥有了同步功能,还将拥有端到端的加密能力、笔记的版本控制(其实git也提供了)以及强大的笔记协同创作能力(好吧,倘若你把git repository开放给指定的人,也可以部分完成笔记的协同创作)。

这一切的魔力,正在于Obsidian的重要设计理念:markdown文件与笔记工具彻底解耦。这一设计理念给了我们薅羊毛的机会(同步、协同及版本历史功能通过git支持),也创造了结合Cursor形成智能知识库的机会。

出处:微信公众号 @逸言

吉ICP备2020006555号

ai987.cn

⌜ 免 责 声 明 ⌝
本站仅为个人学习AI(人工智能)知识的相关日志,网页内容(如有图片或视频亦包括在内)短期缓存均无商业目的。
遇有侵害您合法权益之处欲申诉删改,可联络处理(删/改)!