最近我把 Obsidian 打造成了一个中心知识库,然后把我所有进行内容生成的工具,如扣子空间、Trae、n8n、Coze 全部跟它进行了打通。现在我只需要维护这一套知识库,所有下游的 AI 工具就都能调用到了。
然而,在使用过程中我发现,Obsidian 原生的搜索方式对 AI 其实并不友好。特别是当内容量变大以后,仅靠关键词匹配,知识调用的准确率非常低。
举个最常见的例子:明明我的知识库里有一篇名为“Obsidian使用说明”的文章。当我问 AI:“Obsidian如何安装?”时,AI 可能会提取“Obsidian安装”这个关键词去搜索。结果呢?Obsidian 告诉我“找不到”!
为什么?因为文件名里没有“安装”这两个字。虽然我们可以通过 Prompt 让 AI 多尝试几次,但这种“碰运气”的方式效率太低,经常导致 AI 无法获取到关键资料。
而专业的知识库,通常会使用向量数据库技术。它会将知识通过大模型处理,转化为语义向量进行存储。通过这种技术,当我们搜索“Obsidian如何安装”时,系统通过语义匹配,就能自动关联到“Obsidian使用说明”、“Obsidian配置”等含义相近的内容。
这才是 AI 时代的知识库该有的样子。
为了让我的众多 AI Agent 能更精准地调用中心知识库,我决定引入一个基于向量存储的知识库。经过一番调研,我最终选择了 dify —— 它开源、生态成熟,且相对可靠。
选定 Dify 后,摆在我面前的问题就是:如何把 Obsidian 里的笔记自动同步到 Dify?
这也正是我喜欢 Obsidian 的原因:它的自由度太高了!如果是其他笔记软件,不支持 Dify 同步可能就只能手动“下载-上传”了,每写一篇笔记都要折腾一次,想想都头大。
但在 Obsidian 里,我们可以利用插件解决。虽然翻遍了社区也没找到现成的 Dify 同步插件,但这难不倒我,索性自己写一个!
经过几天的开发和优化,我终于搞定了这个同步插件。接下来,就把完整的配置过程分享给大家。
一、知识库准备
1、创建知识库
Dify 的官网地址是 https://dify.ai,大家可以直接注册使用。不过免费空间有限,我自己是部署了开源版。

进入 Dify 后,找到顶部的“知识库”菜单,点击“创建知识库”。

因为我们稍后会从 Obsidian 同步文档过来,所以这里选择创建一个空的知识库即可。输入知识库名称,点击“创建”。

2、配置 Embedding 模型(关键)
这一步非常重要! 很多人同步失败就是因为漏了这一步。
如前所述,为了实现语义检索,我们需要用到向量化存储技术,这就需要 Embedding 模型的支持。这里我推荐使用通义千问的 Embedding 模型,性价比很高。
首先进入 Dify,点击右上角头像,选择“设置”。

点击左侧的“模型供应商”,搜索“通义”,找到并点击安装/配置。

在配置模型之前,我们需要先去 阿里云百炼平台:https://bailian.console.aliyun.com/ 申请一个 API Key。

回到 Dify,在通义千问的配置窗口中填入刚刚申请的 API Key。

配置完成后,找到“系统模型设置”,将 Embedding 模型 的默认模型设置为通义千问的模型(例如 text-embedding-v3)。这一步不做,Obsidian 里的文档是传不上去的。

3、获取知识库 ID 和 API 密钥
打开我们刚刚创建好的知识库。

看浏览器地址栏,URL 中 datasets/ 后面那一串字符就是 知识库 ID,把它复制保存下来,后面要用。

接着点击左侧菜单的“API 密钥”,右上角的 API 端点是我们的请求地址(记下来)。然后点击“创建密钥”,生成一个新的 API Key 并保存。

二、Obsidian 同步配置
知识库准备好了,接下来就是配置 Obsidian,让它能一键把笔记同步过去。
因为找不到现成的插件,我找了一份开源代码,并在此基础上进行了重构和优化,完美实现了增量同步功能。
插件获取方式请看文末!
1、安装插件
按照下图指示,点击 Obsidian 设置里的“打开插件文件夹”。

将下载解压后的插件文件夹放入这个目录中。

回到 Obsidian 的“第三方插件”页面,点击刷新,就能看到 Dify Sync 插件了。启用它,并点击齿轮图标进入配置页面。

2、配置插件
进入配置页后,主要填写三个参数(就是我们在第一部分第 3 步获取的那些):
- Dify API URL:这里注意,只需要填域名即可,不要带 /v1 后缀(例如 http://localhost:5000 或你的公网地址)。
- DIfy API 秘钥:填入 Dify 知识库的密钥。
- DIfy 知识库 ID:填入知识库 ID。
其他选项(如自动同步间隔、同步文件夹限制)可以根据自己的需求设置。

配置无误后,点击侧边栏或命令面板中的“同步到 Dify”按钮。Obsidian 就会开始工作,将你的笔记一键同步到 Dify 中。
看,文档已经全部同步上来了!

三、使用知识库实战
知识库搭建好了,怎么用呢?
核心思路就是利用 Dify 提供的 API 来检索知识。这里我用 n8n 做一个简单的演示,展示如何在工作流中调用这个知识库。
首先,在 n8n 里搭建一个简单的 AI Agent 工作流:

我们需要在 AI Agent 的“Tools”部分,挂载我们的 Dify 知识库。点击 Tool 下方的 + 号,添加一个 HTTP Request 节点。

接下来,打开 Dify 的 API 文档(在知识库页面左侧有入口),找到“知识库检索”接口,点击右侧复制 cURL 代码。

回到 n8n,双击 HTTP 节点,点击“Import cURL”,把刚才复制的代码粘贴进去导入。

导入后,记得把参数修改为你自己的信息:
- URL:如果你是私有部署的,要把前面的域名换成你自己的 Dify 地址。
- Authorization:确认 API Key 是否正确。

然后修改请求体(Body)中的 query 参数。我们要让 AI 根据上下文自动生成搜索词,所以这里填入 {{ $fromAI("query") }}。

⚠️ 这里有个坑需要注意:
Dify 的知识库支持多种检索模式。如果不指定参数,默认可能会使用“混合检索”,这要求你在 Dify 知识库设置里开启“高质量”模式。

如果你没有开启高质量模式,或者只想用关键词检索,建议在 Body 里显式指定检索模式。完整的 JSON 参数参考如下:
{
"query":"{{ $fromAI('query') }}",
"retrieval_model":{
"search_method":"keyword_search",
"reranking_enable":true,
"top_k":3,
"score_threshold_enabled":true,
"score_threshold":0.5,
"weights":0.7
}
}
最后,别忘了给这个 HTTP 工具写一个详细的 Description(工具描述)。告诉 AI 这个工具是干嘛的、怎么用。

AI Agent 的 System Prompt(系统提示词)也需要相应调整,引导它在遇到不知道的问题时去调用这个工具。

测试一下:
我询问了一个关于 Obsidian 的具体问题,AI Agent 自动分析意图,调用了知识库检索接口,并根据检索到的信息给出了回答。

完美!至此,从 知识生产(Obsidian) 到 知识存储(Dify) 再到 知识消费(n8n/AI Agent) 的闭环彻底打通了。


