
1. 为什么我最终选了 Obsidian WorkBuddy Gitee 这套组合做知识管理这件事我折腾了差不多五年。从最早的印象笔记到后来的 Notion、飞书文档、语雀再到本地优先的 Obsidian几乎每一代工具我都深度用过至少半年。踩过的最大一个坑就是笔记越写越多但真正能被“调用”的越来越少。你写了三百篇笔记结果要用的时候还是靠搜索框硬翻这跟没写区别不大。真正让我下定决心重构整套体系的是去年年底的一次经历。当时我在做一个技术方案明明记得自己半年前写过一篇关于消息队列选型的详细对比但翻了二十分钟才从一堆文件夹里刨出来。那一刻我意识到问题不在于我写得不够多而在于知识没有被结构化地组织也没有一个智能层帮我做检索和关联。所以我开始重新设计自己的知识库架构核心目标就三个本地数据主权、AI 语义检索、多端版本同步。最终落地的方案就是标题里说的这套三联组合——Obsidian 做本地知识容器WorkBuddy 做 AI 智能层Gitee 做版本管理和多端同步。下面我把整套方案的选型逻辑、搭建过程、踩坑记录全部拆开讲。1.1 三个组件各自解决什么问题先把三个东西的定位说清楚不然后面搭建的时候容易混淆职责。Obsidian是整个体系的地基。它本质上是一个基于本地 Markdown 文件的笔记工具你的所有笔记就是硬盘上一个个.md文件不依赖任何云端服务。这一点非常关键——意味着你的知识资产永远在你自己的掌控之下哪怕哪天 Obsidian 公司倒闭了你的文件照样能用任何文本编辑器打开。它还有一个核心能力是双向链接和关系图谱这让笔记之间可以形成网状结构而不是树状目录。WorkBuddy是这套体系里的 AI 大脑。它负责对你本地的知识库做语义索引然后在你提问的时候从你的笔记里检索相关内容并生成回答。跟直接用通用 AI 聊天最大的区别在于它回答的内容是基于你自己的知识库的不是网上泛泛的信息。你问它“我之前记录的那个 Redis 缓存穿透方案是怎么处理的”它能直接从你的笔记里找到答案。Gitee在这里扮演的是版本控制和同步的角色。Obsidian 本身是本地工具多设备之间同步一直是个痛点。官方同步服务要付费用网盘同步又容易产生冲突文件。用 Git 来管理笔记仓库是一个被很多人验证过的方案而 Gitee 作为国内代码托管平台访问速度快、私有仓库免费非常适合做这件事。1.2 为什么不用 Notion 或飞书这类一体化方案很多人会问Notion 不是也能做知识库吗为什么还要折腾三个工具我自己的体会是这样的Notion 这类云端一体化工具的优势是开箱即用但劣势也很明显。第一数据不在你本地你的笔记存在别人的服务器上导出格式也经常不完整。第二AI 功能受限于平台你没法自己控制 AI 用什么模型、怎么检索。第三离线可用性差网络不好的时候基本没法用。第四长期成本高AI 功能基本都是付费墙后面的。Obsidian 这套组合虽然搭建成本高一些但搭好之后你会发现数据是你的、AI 是你可控的、同步是你自己管的。这种掌控感是用一体化工具永远给不了的。1.3 适合什么样的人参考这套方案说句实在话这套方案不是给所有人准备的。如果你只是偶尔记记待办事项手机自带备忘录就够了。但如果你符合下面几种情况这套方案会非常值得投入笔记数量已经超过两百篇靠文件夹和搜索已经管不过来了对数据隐私有要求不希望笔记内容存在第三方服务器需要 AI 辅助检索但希望 AI 基于自己的知识库回答而不是网上泛泛内容有多台设备比如公司电脑 家里台式 笔记本需要同步愿意花一个周末的时间做一次性搭建我搭建这套体系大概花了两个整天其中大部分时间花在调试 AI 索引和 Git 同步的细节上。下面我把整个过程完整还原出来你照着做基本能避开我踩过的坑。2. 搭建前的环境准备与核心原理在动手之前有必要先把几个核心概念和原理讲清楚。不然你照着步骤做遇到问题也不知道从哪排查。2.1 Obsidian 的仓库机制与文件结构Obsidian 里最重要的概念叫Vault仓库。一个 Vault 就是一个文件夹你所有的笔记、附件、配置都放在这个文件夹里。Obsidian 打开一个 Vault本质上就是读取这个文件夹里的所有 Markdown 文件并渲染出来。这里有个很多人不知道的细节Obsidian 的配置文件放在 Vault 根目录下的.obsidian文件夹里。这个文件夹包含了你安装的插件、主题、快捷键设置等。如果你用 Git 管理 Vault.obsidian文件夹要不要纳入版本控制是一个需要想清楚的问题。我的建议是插件配置纳入缓存文件排除。因为插件配置是你花时间调好的换设备的时候能直接复用但缓存文件比如.obsidian/workspace.json记录的是当前窗口布局不同设备屏幕尺寸不一样同步过去反而会出问题。一个典型的 Vault 目录结构大概长这样my-knowledge-base/ ├── .obsidian/ # 配置文件夹 │ ├── plugins/ # 已安装插件 │ ├── themes/ # 主题 │ └── workspace.json # 窗口布局建议排除 ├── .gitignore # Git 忽略规则 ├── 00-Inbox/ # 收集箱 ├── 10-Projects/ # 项目笔记 ├── 20-Areas/ # 领域笔记 ├── 30-Resources/ # 资源笔记 ├── 40-Archive/ # 归档 └── 99-Attachments/ # 附件这套编号前缀的目录结构是我用了很久之后固定下来的灵感来自 PARA 方法。编号前缀的好处是文件夹排序稳定不会因为字母顺序变化而乱掉。2.2 WorkBuddy 的索引原理与工作方式WorkBuddy 这类工具的核心能力叫RAG检索增强生成。这个词听起来很技术但原理其实不复杂我用一个生活化的类比来解释。想象你有一个巨大的图书馆里面有几万本书。现在有人问你一个问题你不可能把每本书都翻一遍再回答。RAG 的做法是先给每本书做一个“内容摘要卡片”然后根据问题去匹配最相关的几张卡片最后只把这几张卡片对应的书页拿给 AI 看让 AI 基于这些内容回答。具体到技术层面这个过程分三步索引阶段把你的每篇笔记切分成小块chunk然后用嵌入模型把每块转换成一串数字向量存到向量数据库里检索阶段你提问时问题也被转成向量然后在向量数据库里找最相似的几个块生成阶段把检索到的块作为上下文连同你的问题一起发给大语言模型让它生成回答理解了这三步你就能明白为什么有些问题 AI 答得好、有些答得差。如果检索阶段没找到相关笔记生成阶段再强的模型也答不出来。所以索引的质量直接决定了整个系统的可用性。2.3 Gitee 仓库的选型与配置要点用 Gitee 做笔记同步有几个关键决策点需要提前想清楚。仓库公开还是私有这个不用犹豫笔记内容涉及个人思考和工作内容必须选私有仓库。Gitee 的私有仓库对个人用户是免费的容量也够用。用 HTTPS 还是 SSH 协议我强烈建议用 SSH。HTTPS 每次推送都要输账号密码或者配置凭据缓存而 SSH 配置一次密钥之后就可以免密操作。配置 SSH 密钥的步骤后面会详细讲。大文件怎么处理笔记里如果插入了大量图片、PDF 附件仓库体积会迅速膨胀。Gitee 对单文件大小和仓库总容量都有限制。我的做法是附件单独管理不纳入 Git。具体来说把附件文件夹加到.gitignore里然后用其他方式同步附件比如网盘。这样 Git 仓库只存纯文本体积小、同步快、冲突少。开源许可证选什么个人私有笔记仓库不需要选许可证。许可证是给公开项目用的私有仓库不涉及这个问题。3. 分步实操从零搭建整套体系这一部分是全文的核心我会把每个步骤拆到能直接照着做的粒度。整个过程分四大块Obsidian 基础搭建、WorkBuddy 接入、Gitee 同步配置、三者联动调试。3.1 Obsidian 安装与仓库初始化第一步去 Obsidian 官网下载对应平台的安装包。Windows 和 macOS 都有原生客户端Linux 有 AppImage 格式。安装过程没什么好说的一路下一步就行。安装完成后第一次打开会让你创建或打开一个 Vault。这里我建议不要用默认路径而是自己指定一个专门的目录比如D:\KnowledgeBase或者~/Documents/KnowledgeBase。原因有两个一是方便后面配置 Git二是避免路径里有中文或空格导致各种奇怪问题。创建好 Vault 之后先别急着装插件。我建议先做三件事第一调整核心设置。进入设置把“文件与链接”里的“新建链接格式”改成“相对路径”这样笔记之间移动位置时链接不会断。把“附件默认位置”设置成“指定文件夹”指向99-Attachments。第二建立目录骨架。按照前面说的 PARA 结构建好文件夹。这一步不用太纠结后面可以随时调整。第三写一篇测试笔记。随便写点内容用[[ ]]语法创建几个双向链接感受一下 Obsidian 的链接机制。这是后面 AI 索引能工作的基础。3.2 必装插件清单与配置说明Obsidian 的强大很大程度上来自插件生态。但插件不是装得越多越好装太多会拖慢启动速度还容易冲突。下面是我实际在用的核心插件清单每一个都有明确的用途。插件名称用途是否必装Templater模板自动化新建笔记时自动填充结构强烈推荐Dataview用类 SQL 语法查询笔记做动态列表强烈推荐Git在 Obsidian 内直接执行 Git 操作必装Calendar日历视图方便管理日记推荐Excalidraw手绘风格图表按需Advanced Tables表格编辑增强推荐Templater是我用得最多的插件。它允许你定义模板新建笔记时自动套用。比如我的技术笔记模板会自动填入创建日期、标签占位、以及一个“相关笔记”区块。这样每篇笔记的结构都是统一的AI 索引的时候也更容易识别内容边界。Dataview解决的是“动态聚合”的问题。比如我想看所有标记为#待整理的笔记不需要手动维护一个列表写一段 Dataview 查询语句就行LIST FROM #待整理 SORT file.ctime DESCGit 插件是这套方案的关键。它让你不用离开 Obsidian 就能执行提交和推送操作。配置好之后你可以设置成每隔一段时间自动提交或者手动点击按钮提交。注意插件安装后一定要重启 Obsidian 才能生效。有些插件还需要在设置里单独开启别装完就以为好了。3.3 WorkBuddy 的安装与知识库接入WorkBuddy 的安装方式取决于你用的版本。我用的桌面版安装流程大致是下载安装包、安装、登录、然后在设置里指定要索引的本地文件夹。这里有几个关键配置项需要重点说明索引路径设置。把路径指向你的 Obsidian Vault 根目录。WorkBuddy 会递归扫描所有 Markdown 文件。注意要排除.obsidian文件夹因为里面的配置文件不是知识内容索引进去只会干扰检索结果。文件类型过滤。默认可能只索引.md文件这正好符合我们的需求。如果你有 PDF 或 Word 文档也想纳入需要额外配置但要注意这些格式的解析质量参差不齐。分块策略。这是最影响检索效果的一个参数。分块太大检索精度下降分块太小上下文丢失。我的经验值是每块 500 到 800 个中文字符重叠部分设 100 字左右。这个范围在大多数场景下表现比较均衡。嵌入模型选择。如果 WorkBuddy 支持多种嵌入模型优先选对中文支持好的。嵌入模型决定了“语义相似度”判断的准确度中文笔记用英文模型效果会打折扣。配置完成后触发一次全量索引。索引时间取决于笔记数量几百篇笔记大概几分钟到十几分钟。索引完成后你可以开始测试提问了。3.4 Gitee 仓库创建与 SSH 密钥配置现在来处理同步这一块。首先去 Gitee 注册账号如果还没有的话然后创建一个新的私有仓库。创建仓库时注意几点仓库名称建议用英文比如knowledge-base是否开源选私有初始化仓库建议勾选“使用 Readme 文件初始化”这样仓库创建后就有个初始提交方便后面推送。接下来配置 SSH 密钥。打开终端Windows 用 Git Bash 或 PowerShell执行ssh-keygen -t ed25519 -C your_emailexample.com一路回车使用默认路径。然后在~/.ssh/目录下会生成两个文件id_ed25519是私钥id_ed25519.pub是公钥。用文本编辑器打开id_ed25519.pub复制里面的全部内容。回到 Gitee进入“设置” - “SSH 公钥”把内容粘贴进去起个名字比如“我的笔记本”保存。验证配置是否成功ssh -T gitgitee.com如果看到类似“Welcome to Gitee”的提示说明配置成功。3.5 本地仓库初始化与首次推送回到你的 Obsidian Vault 目录在终端里执行cd /path/to/your/vault git init git remote add origin gitgitee.com:your_username/knowledge-base.git在推送之前先创建.gitignore文件把不该纳入版本控制的内容排除掉.obsidian/workspace.json .obsidian/workspace-mobile.json .obsidian/cache .trash/ 99-Attachments/ .DS_Store然后执行首次提交和推送git add . git commit -m 初始化知识库 git branch -M main git push -u origin main如果推送成功刷新 Gitee 页面就能看到你的笔记文件了。提示首次推送如果遇到网络超时可以多试几次。Gitee 对单次推送的文件数量和体积有限制如果笔记特别多建议分批推送。4. 三者联动让知识库真正“活”起来三个组件各自跑通只是第一步真正的价值在于它们联动之后形成的完整工作流。这一部分我讲几个实际使用中的关键场景。4.1 日常写作到 AI 检索的完整链路我每天的工作流大概是这样早上打开 Obsidian用 Templater 新建一篇日记记录当天的计划和想法。工作中遇到值得记录的东西随手丢进00-Inbox文件夹不纠结分类。晚上花十分钟整理 Inbox把笔记归到合适的目录打上标签建立双向链接。WorkBuddy 设置成每隔几小时自动增量索引一次。这样我白天写的内容下午就能被 AI 检索到。当我需要查某个知识点时直接问 WorkBuddy它会从我的笔记里找答案。这里有个使用技巧提问时尽量用你笔记里出现过的关键词。比如你笔记里写的是“缓存击穿”你问“缓存穿透怎么解决”虽然语义相近但检索效果可能不如直接用“缓存击穿”这个词。这是因为嵌入模型对专业术语的语义理解有限精确匹配往往更可靠。4.2 多设备同步的冲突处理策略用 Git 做同步最怕的就是冲突。两台设备同时改了同一篇笔记推送的时候就会冲突。我的应对策略有三条第一养成“先拉后推”的习惯。每次开始工作前先执行git pull结束工作时执行git commitgit push。这样能最大程度避免冲突。第二冲突发生时不要慌。Git 会把冲突内容用和标记出来你手动选择保留哪个版本就行。Obsidian 里也能直接看到这些标记编辑起来很方便。第三重要笔记单独处理。如果某篇笔记你正在大改建议改完立刻提交推送不要拖。拖得越久冲突的概率越大。我实际用下来冲突发生的频率其实很低大概一个月一两次。而且大部分冲突都是因为忘了拉取导致的养成习惯之后基本不会出问题。4.3 用 Dataview 做知识库的“仪表盘”Dataview 插件可以让你用查询语句动态生成列表这相当于给你的知识库做了一个实时仪表盘。我在首页放了一个 Dashboard 笔记包含几个常用查询最近修改的十篇笔记TABLE file.mtime AS 修改时间 SORT file.mtime DESC LIMIT 10所有未完成的待办TASK WHERE !completed某个标签下的所有笔记LIST FROM #技术/数据库这个 Dashboard 让我一眼就能看到知识库的活跃状态比翻文件夹高效得多。5. 常见问题排查与避坑经验这一部分是我踩过的坑的集中整理。很多问题在官方文档里找不到答案都是实际用的时候才暴露出来的。5.1 Obsidian 打不开或启动卡顿这是最常见的问题之一。可能的原因和排查方法现象可能原因解决方法启动卡在加载界面插件冲突安全模式启动逐个禁用插件排查打开特定笔记卡死笔记内容过大拆分笔记单篇控制在 5000 字以内整体运行缓慢仓库文件过多检查是否有大量小文件考虑归档同步后打不开配置文件损坏删除.obsidian/workspace.json重启我遇到过一次启动卡死排查了半天发现是某个插件和 Obsidian 版本不兼容。安全模式启动启动时按住 Shift是排查插件问题的利器能快速定位是哪个插件的问题。5.2 WorkBuddy 检索结果不准确AI 检索不准通常不是模型的问题而是索引的问题。按下面顺序排查检查索引是否完整。看看 WorkBuddy 的索引状态确认所有笔记都被索引了。有时候新增的笔记需要手动触发索引才会被纳入。检查分块设置。如果笔记里有很长的段落分块设置又太大检索时可能匹配到一大段无关内容。适当调小分块尺寸试试。检查笔记格式。WorkBuddy 对结构清晰的 Markdown 解析效果最好。如果你的笔记里大量使用表格、代码块、特殊符号可能影响解析质量。建议重要笔记保持结构清晰。换个问法试试。有时候是提问方式的问题。把问题拆解得更具体或者用笔记里出现过的原词往往能改善结果。5.3 Gitee 推送失败或速度慢推送失败的原因比较多我整理了几个常见的认证失败。检查 SSH 密钥是否配置正确用ssh -T gitgitee.com测试。如果提示权限拒绝重新生成密钥并添加到 Gitee。文件过大。Gitee 对单文件有大小限制。如果推送时报错提示文件过大检查是不是误把附件文件夹纳入了版本控制。用git rm --cached把大文件从暂存区移除然后加到.gitignore。网络超时。推送大仓库时可能超时。可以尝试分批推送或者调整 Git 的缓冲区大小git config http.postBuffer 524288000分支冲突。如果远程分支有你本地没有的提交先git pull --rebase再推送。5.4 我的独家避坑清单最后分享几条用血泪换来的经验不要在 Vault 里放敏感信息。哪怕是私有仓库也不建议放密码、密钥这类内容。Git 的历史记录是永久的一旦推送就很难彻底删除。定期备份。Git 仓库本身是一种备份但不要只依赖它。我每个月会把整个 Vault 打包压缩存到移动硬盘里。鸡蛋不要放在一个篮子里。插件更新要谨慎。Obsidian 插件更新频繁但新版本不一定稳定。我一般会等一周看看社区有没有反馈问题再决定要不要更新。笔记命名用英文或拼音。中文文件名在某些系统上会有编码问题Git 处理起来也容易出岔子。用英文或拼音命名标题写在笔记内容里。索引和同步分开做。不要让 WorkBuddy 索引和 Git 推送同时进行容易互相干扰。我一般设置成 WorkBuddy 在凌晨索引Git 在白天工作时段同步。这套体系我用了大半年笔记检索效率提升非常明显。以前找一篇旧笔记要翻好几分钟现在问 WorkBuddy 几秒钟就有答案。当然它也不是万能的AI 检索偶尔也会答非所问但作为辅助工具已经足够好了。如果你也在为知识管理发愁不妨花个周末试试这套组合搭好之后你会发现之前那些散落的笔记终于串成了一张网。