Obsidian+WorkBuddy+Gitee:打造本地优先的AI知识库与自动同步体系 先抛个结论我用 Obsidian 记了快 2000 条笔记后才发现真正让知识库“活”起来的不是笔记软件本身而是背后那条链路。一条链路里要有一个人负责存储和整理一个 AI 负责理解和生成一个远端仓库负责同步和备份。落到具体工具上就是 Obsidian WorkBuddy Gitee 这套三联组合。这套组合解决的三个问题很具体第一笔记永远以本地 Markdown 文件存在可控、可迁移、不依赖任何在线服务的续费第二知识库不再是你单向查看的旧文本而是能随时被 AI 检索、问答、总结、成文的新资产第三Gitee 作为私有远端仓库让多设备同步变成标准 Git 操作任何一台电脑出问题笔记都不会消失。这篇文章不讲虚的直接从我实际跑的这套体系出发把选型思路、目录规划、密钥配置、自动同步、AI 接入、排障经验全部拆开讲。适合已经有 Obsidian 基础、想把 AI 能力真正用起来、又对数据安全比较在意的朋友。1. 为什么是这三件套定位与选型逻辑1.1 Obsidian 当底座不是因为它好看而是因为它“不过期”笔记类工具我用过非常多从系统自带备忘录到各类云笔记最后都停了。原因很一致文件格式封闭、导出麻烦、速度越来越慢、厂商策略不确定。Obsidian 让我放心的是它把一切建立在纯文本 Markdown 上你的库本质上就是一个本地文件夹里面躺着一个个 .md 文件。这点对 AI 时代非常关键。WorkBuddy 这类工具能直接读取本地纯文本文件不需要经过云端同步中转。你可以想象如果你的笔记都在一个私有云数据库里AI 要取数据就得先过一层 API权限和隐私都不可控但本地 Markdown 文件可以直接被程序读取、索引和检索。我甚至做过一个极端测试把 Obsidian 的文件夹直接打包放到另一台电脑上解压打开所有笔记、链接、标签全部原样出现。这种“不过期”的底层特性让我敢把上千条笔记继续往里堆。Obsidian 的双向链接和标签系统也十分关键。单纯给笔记建文件夹本质上还是传统文件柜思维知识之间很难产生关联。而在 Obsidian 里每条笔记可以通过 [[]] 语法指向另一条笔记比如你写了一条关于“RAG 召回机制”的笔记再写一条“个人知识库设计”时直接用链接把它们串起来知识图谱里就会出现一条边。AI 在读取这些文件时也能顺着链接找到上下文回答问题时精度明显更高。1.2 WorkBuddy 不是花瓶它把“死笔记”变成“活知识”很多人对大模型工具的印象还停留在网页聊天框把文字复制进去问一句得到一段回答。但个人知识库场景里最大的痛点是上下文太分散你总不能把 2000 条笔记一次性塞进对话框。WorkBuddy 这类 AI 工作台工具解决的就是这个问题它允许你把一个本地项目或笔记文件夹作为工作区加载AI 能直接读取其中的文件内容并基于这些内容和你对话。我当时搭这套体系时最直接的使用场景有三个。第一问答式检索不再用关键词在 Obsidian 的搜索框里翻半天而是直接用大白话问“我之前整理过哪些关于任务管理的方法论”它会先搜索库内相关文件再把答案组织出来附带出处。第二内容生成周报、月度总结、读书笔记、项目复盘它可以根据我的笔记记录自动起草。第三Skill 工作流把固定动作固化成技能比如“weekly-report”这个 Skill每次我只要触发它它就会自动扫描本周日记按模板生成一份周报草案。我举个具体例子。以前我每个月末写总结至少要花一个半小时翻日记、翻工作记录、回忆项目进展。现在我把写总结的规范包括覆盖维度、引用格式、输出长度全部写进一个 Skill 里。每次月末我只需要让 WorkBuddy 运行这个 Skill它会把一个月内的相关笔记先扫一遍然后按规范生成初稿。我再花十五分钟改改重点和措辞就够了。这就是 AI 在知识库体系里真正的价值不是替你想而是把检索、归纳、起草这些体力活全部替你干了。1.3 Gitee 在这一环里承担什么为什么我用它不用别的在选定 Gitee 之前我尝试过把 Obsidian 库放到网盘里同步也试过官方付费同步服务。网盘的问题在于文件锁和版本冲突几乎无解笔记本端的同步目录偶尔还会出现幽灵冲突文件。官方同步服务体验确实顺滑但对本地文件依赖强、价格也不便宜而且要额外考虑数据留在哪里的问题。综合下来我最终选择了 Gitee 作为远端仓库本质上就是把知识库当作一个代码仓库来管理。选择 Gitee 而不是其他境外平台最直接的原因是速度和可用性。知识库的同步频次虽然不高但每次 push 和 pull 都希望干脆利落。Gitee 在国内服务器上命令行操作时几乎没有等待感这对日常维护体验很重要。另外Gitee 个人空间的私有仓库是免费的对个人知识库这种规模完全够用。虽然协作人数有限制但我的场景就是自己多台设备之间同步不是团队协作所以没有影响。Git 作为同步协议还有一个网盘给不了的优势版本历史。每一次提交都意味着某个时间点的完整快照。比如我某次重构笔记目录原来整理了三天结果发现新分类方式不好用想回退。网盘系统基本没法做到这种程度的历史回滚但 Git 一条命令就解决了。Gitee 在这里充当的角色其实就是“远程保险柜”我本地一份远端一份永远不会出现“电脑坏了笔记全没了”的情况。2. 搭建之前先把这四件事定下来2.1 仓库结构先“分类”还是先“链接”很多人搭建知识库的第一步是建一堆文件夹生活、工作、学习、项目、灵感……结果不到半年目录结构就乱了同一个主题的知识被拆到多个地方笔记越来越多但查找效率越来越低。我的建议是放弃复杂的目录分类用一个足够简单、带临时入口的结构。我在 Obsidian 里的目录结构是下面这样your-vault/ ├── 00_inbox/ # 临时收件箱快速记录 ├── 01_notes/ # 常驻笔记按主题写不建子文件夹 ├── 02_daily/ # 日记按日期命名 ├── 03_projects/ # 项目相关一个项目一个文件夹 ├── 04_assets/ # 图片、PDF 等附件 ├── 05_archive/ # 归档的旧笔记 └── .obsidian/ # Obsidian 配置文件这套结构的核心逻辑是分类只分到一级知识之间的网状关联全部交给双向链接。比如我有一条笔记叫“如何构建 RAG 知识库”它不需要同时出现在“AI”和“开发”两个文件夹里我只要在笔记正文中用 [[]] 链接关联到“Embedding 模型选型”“向量数据库对比”等笔记即可。搜索时我靠 Obsidian 的图谱和 WorkBuddy 的语义检索而不是靠文件夹层级去找内容。inbox 的设计特别重要。人脑在快速记录时是不适合做分类决策的。过去我强迫自己每次记录前先想这条该放到哪个文件夹结果很多想法因为没有立刻归档而丢失。现在我不管三七二十一先在收件箱里丢下一段文字每周固定时间统一整理该链接的链接该归档的归档。你可以把这个过程理解成座舱里的临时储物格先保底再分拣这套机制比强制分类靠谱得多。2.2 私有仓库与开源许可证这一步一开始就要想清楚在 Gitee 上创建仓库时有一项“选择开源许可证”的选项很多人容易卡住。其实判断标准非常简单你的知识库准备公开分享吗如果不是那就选择“私有仓库”开源许可证那一项可以直接跳过。私有仓库意味着只有你自己能访问你的笔记不会出现在别人的搜索里这个对个人隐私来说是最核心的保障。我强烈建议个人笔记默认全部走私有哪怕你觉得“里面好像也没什么见不得人的”也建议先私有。因为笔记里很可能包含朋友的联系方式、项目未公开信息、工作中的临时判断这些内容一旦公开影响很难控制。如果将来你真的想把某一部分整理成公开内容分享再单独建一个公开库把要分享的笔记复制过去然后重新选一个许可证。知识库公开时许可证怎么选也有门道如果你希望别人能用你的内容做商业用途选 MIT 或 Apache-2.0如果你希望别人修改后也必须以同样方式共享选 GPL如果仅仅是个人分享不想管那么多选 CC BY 也可以。但这是“分享用”的选择和“个人存储”是两套逻辑不要混在一开始就纠结。2.3 SSH 密钥配置一次性做好之后免密推送整个组合里Gitee 连接配置是最容易劝退新人的一环。其实核心就两步生成本地密钥把公钥加到 Gitee。在 Windows 上如果已经装好了 Git for Windows直接打开 Git BashmacOS 上打开终端即可。先检查是否已有密钥ls -al ~/.ssh如果看到了 id_ed25519.pub 或 id_rsa.pub 文件说明之前生成过可以跳过生成步骤。如果没有执行ssh-keygen -t ed25519 -C your_emailexample.com执行过程中会让你指定保存路径和解锁密码默认路径直接回车解锁密码不设置也行密码留空意味着每次推送不需要额外输入方便很多。生成完成后查看公钥cat ~/.ssh/id_ed25519.pub把这端内容完整复制下来然后打开 Gitee 的“设置 → SSH 公钥”粘贴并保存。最后测试连接ssh -T gitgitee.com如果返回类似欢迎信息说明密钥已经生效。这一步做完后面所有的 git push 和 git pull 都是丝滑的。需要提示的是如果你有多台设备每台设备都可以生成独立的密钥对把各自的公钥都加到同一个 Gitee 账号下即可。我自己的电脑和笔记本各配了一把这样两边都能直接推送和拉取不需要反复输入密码。2.4 冲突处理策略这件事必须提前摆到桌面上用 Git 做笔记同步最大的风险不是丢数据而是冲突。冲突本质上是因为同一个文件在两个不同的时间点被两台不同的设备分别修改了git 不知道以谁为准。拿笔记场景来说你下午在笔记本上改了一条“Python 学习路线”晚上又用台式机对同一条笔记做了完全不同的修改下一次 push 或者 pull 时git 就会报冲突。解决冲突的策略不需要懂很深奥的 Git 原理最有效的经验其实就三条。第一条尽量保持“一个时间点只在一台设备上写”。出门前把当前电脑上的修改先 push 掉回家后先 pull 再动笔。第二条冲突发生时不要慌git 会把冲突标记注在文件里Obsidian 打开后你能看到以 和 包裹的两份内容手动保留想要的那个版本重新提交一次就行。第三条如果自己搞不定先把冲突文件复制出来单独备份然后把库回退到没有冲突的那个版本再把你备份里的新增内容手动粘贴回去。这招虽然原始但永远不会把内容搞丢。我最开始用这套同步时经历过一次比较痛苦的冲突恢复从那以后就立了规定提交前看一眼有没有未同步的修改pull 和 push 之间不要隔太久。把这两条养成习惯冲突出现的概率会直线下降。3. 实操把三联真正打通3.1 Obsidian 端准备目录、附件路径、核心插件在把库交给 Git 管理之前有几步 Obsidian 端的设置可以先做好否则后面会出很多奇怪问题。第一步是设置附件路径。默认 Obsidian 会把粘贴进来的图片放在与笔记相同的目录时间一长notes 目录里会杂七杂八堆满图片和 PDF不但 Git 提交体积变大库的结构也变得混乱。按我上面给的目录结构建议打开“设置 → 文件与链接”将“新附件位置”改为“附件文件夹”并指定为 04_assets 目录。这样所有图片默认归档到一起提交和回滚时边界更清楚。第二步是开启核心插件里的“日记”和“模板”。日记插件可以让我用快捷键随时新建当天的日记模板插件则是为了让日记格式统一。日记的命名我建议用 YYYY-MM-DD 格式比如 2025-06-10.md这样文件在文件系统里按名称排序时天然就是时间轴顺序WorkBuddy 扫描日记时也更容易按日期筛选。第三步是关键也就是安装 Git 管理插件。Obsidian 的社区插件中心里有一个叫 Obsidian Git 的插件它本质上把 Git 的核心操作拉到了 Obsidian 界面里比如一键提交、一键拉取、定时自动备份。你不需要在 Obsidian 里配置复杂的 SSH因为它在你的电脑上调用的是系统里的 Git 命令而你已经在第 2.3 节配置好密钥了。安装后在插件设置里开启“自动备份”并设置间隔时间比如每四十分钟提交一次。这一步实际用下来非常稳定。Obsidian Git 插件在后台运行完全不用你手动操作。我也试过它偶尔在笔记本合盖睡眠时没有执行备份但下次打开时会自动补上不影响整体体验。需要注意的是插件会把 Git 仓库入口默认指向当前库所在的根目录只要你的库本身是 Git 仓库它就能直接识别。3.2 在 Gitee 建仓库并推送首批笔记推送到 Gitee 的流程和推送代码项目几乎一模一样。用浏览器打开 Gitee 新建仓库页面填写仓库名称比如 knowledge-base仓库设置为“私有”创建时相关 README 文件先不勾选保持一个空仓库。这样做的目的是避免生成初始提交和本地库的历史冲突后面接起来干净。随后打开终端或 Git Bash进入你的 Obsidian 库目录cd /path/to/your-vault git init git add -A git commit -m init: 初始化个人知识库 git remote add origin gitgitee.com:你的用户名/knowledge-base.git git push -u origin master如果你是第一次在这个仓库上使用 Git注意看 Gitee 仓库首页提示的远程地址。如果页面提示分支是 main而你本地推的是 master也没有问题可以在推送前执行git branch -M master统一分支名或者直接用页面提示的默认分支名。推送完成后建议到 Gitee 网页端刷新一下能看到笔记文件已经出现在远端。这一步做完你的本地 Obsidian 库就正式拥有了“远端保险柜”。随后在另一台设备上只需要执行git clone gitgitee.com:你的用户名/knowledge-base.git就可以把整个库拉到另一台电脑上。仓库里出现的“备份还原点”概念从此就成了你知识库管理的基本操作。3.3 WorkBuddy 接入知识库让它真正“看得懂”你的笔记WorkBuddy 接入本地知识库本质上就是你把本地项目目录加载给它然后让它基于这些文件来对话和生成。以我实际使用的流程来看操作路径大概是启动 WorkBuddy选择“打开项目”或“添加工作区”定位到你 Obsidian 库的根目录随后 WorkBuddy 会扫描目录内文件建立索引扫描完成后再进入对话界面请它“阅读这个目录下所有与 RAG 相关的笔记”它就能基于库内内容回答了。我踩过的一个坑是一开始我把整个库直接丢给它所有文件它确实能读取但当库文件数量变多后它回答时偶尔会把不同笔记里相似但不同的概念混在一起。比如我有两条笔记一条讲“向量数据库选型”一条讲“图数据库选型”AI 回答时可能会把它们当成同一个主题来混着讲。后来我的做法是在提问时主动给它限定搜索范围比如“先扫 01_notes 里标题或内容包含数据库对比的文件再回答我的问题”。把边界划清楚之后准确率明显提升。另外Skill 是知识库场景里提升工作效率的大杀器。我举个我自己写的周报 Skill 的结构作为参考触发条件用户说“生成本周周报”执行步骤先检查当前日期再扫描 02_daily 目录下最近七天的日记输出要求按“本周工作成果”“问题与风险”“下周计划”三部分输出引用笔记中具体事实个性化规则陈述尽量使用“完成”“推进”“确认”这类动词避免模糊描述你可以在 WorkBuddy 的技能管理界面把上述规则结构化填写。自此以后每次我只要说“生成本周周报”它就会自动扫描我的日记目录并按固定格式生成内容省去了我反复粘贴笔记、整理日报的时间。这种能力不是网页聊天框能给到的因为网页聊天框没有上下文基础而工作台类工具天然拥有“项目上下文”这个概念。3.4 自动同步的落地方法别让手动提交成为负担如果每次同步都要手动执行 git add 和 git commit那么时间一长维护成本一定会感人尤其是工作忙起来的时候很容易就忘了。我在实际操作中用到了两层自动化第一层是 Obsidian Git 插件的自动备份第二层是一个终端脚本双保险。Obsidian Git 插件的自动备份在设置里可以配置提交间隔我建议设置得不要过于激进比如 30 到 60 分钟一次就足够了。因为知识库不像代码项目不需要每一次按键都留历史太频繁的提交只会让 Git 历史变得冗长也会给远端仓库增加不必要的压力。设置完间隔后只要你开着 Obsidian修改过的笔记会在后台自动提交并推送整个过程不需要打开终端。如果想更进一步或者你不希望每次都要打开 Obsidian 才触发备份可以用一个简单脚本挂到系统的定时任务里#!/bin/bash cd /path/to/your-vault git add -A if git diff --cached --quiet; then echo 没有变化跳过提交 else git commit -m auto backup $(date %Y-%m-%d %H:%M:%S) git push origin master fi在 macOS 上你可以把这个脚本保存为 backup.sh并给它执行权限然后用 crontab 设置每天定时执行。在 Windows 上可以把脚本适配为 PowerShell 版本然后使用任务计划程序定时触发。我自己的习惯是Obsidian Git 插件负责平时工作时的频繁备份crontab 脚本负责兜底即使某天我没有打开 Obsidian只要电脑开着每天至少也会有一个版本推送到 Gitee。用这套机制跑了几个月我从未因为忘记同步而丢过笔记。4. 常见问题与排查技巧实录4.1 提交冲突导致的笔记内容错乱这是我在多设备同步中遇到的最高频问题。场景很常见白天在公司电脑上改了好几条笔记下班回家后打开笔记本忘了先拉取远端更新就直接继续写。笔记本上弹出“合并冲突”的提示打开笔记一看文件里多了几段以 HEAD 和 开头的标记内容。遇到这个情况第一步先不要急着删标记。用 Obsidian 打开文件你会看到两个版本的内容都被保留在文件里中间用分隔线分开。你需要做的是手动判断保留真正需要的那一版把另外一版的对应内容删掉同时把 、、 这些标记全部删除让文件恢复成一条干净的内容。处理好之后执行一次 git add 和 git commit冲突状态就会被解除。预防这件事我后来给自己定了一条铁律换设备前至少执行一次同步。比如我离开公司前会在 Obsidian Git 面板里点一下“提交并推送”到家后第一件事就是“拉取”。五分钟的动作换来的是再也不用在半夜处理乱七八糟的冲突标记这笔账非常划算。4.2 图片和 PDF 附件到底要不要纳入 Git 管理知识库跑一段时间后04_assets 目录里会有大量图片比如 PDF、截图、扫描件、导出素材等。这些文件不会影响到 Markdown 内容的版本管理但会让 Git 仓库的体积快速膨胀导致每次 clone 和 pull 的时候数据量很大远端仓库空间也会告急。我对附件的策略是区分对待。小于几 MB 的图片比如截图、图表直接放在 04_assets 里随笔记一起提交因为它们是笔记内容的一部分版本回滚时需要一起恢复。大文件比如动辄几十 MB 的 PDF、视频、设计源文件建议不要进入 Git 仓库。这些内容可以通过本地目录或者其他文件同步方式单独保存知识库里只保留链接或引用说明。如果你不想让大文件纳入 Git 管理可以在 .gitignore 里把包含大文件的目录排除掉。比如你单独建了一个 04_assets_big 目录来放大文件就在 .gitignore 里加一行/04_assets_big/。这样 Git 仓库保持轻量敏感大文件也不会上传到远端双保险。4.3 AI 回答总答错或者答不到点子上问题出在哪接入 WorkBuddy 之后最让人挫败的不是它不会用而是它看着你的库却答不到点子上。遇到这类问题大多数情况不是 AI 的问题而是你的笔记结构不够“机器可读”。AI 检索的本质是先通过文件名、标题、标签或者文件片段来锁定候选内容如果你的笔记通篇没有小标题也没有任何标签全文就是一个没有结构的文本框那么再强的模型也很难准确找到你想要的内容。我自己在修正这个问题时做了一件很笨但很有效的事给每个长期使用的常驻笔记在开头加了一个“摘要区”。摘要区里用两到三句话概括这条笔记的核心观点然后列出三个左右的关键标签。比如一条笔记叫“RAG 知识库的构建”摘要区可能长这样“本文整理 RAG 知识库的组成模块包括文档解析、向量化、检索、生成四个环节适用于个人知识库与项目文档问答场景。标签#RAG #知识库 #向量检索”。你别小看这个改动它让 AI 的召回精度直接上升了一个量级。因为摘要区相当于给每条笔记做了一个简明的“推荐位”AI 在检索时能迅速命中摘内容再根据摘要决定是否深入阅读全文。这个方法比单纯堆标签好用得多实测下来错答率下降明显。做这项工作虽然需要一点维护成本但它也正是知识库沉淀的过程中最有复利效应的部分。4.4 同步节奏和频率不是越勤越好很多人刚开始用 Git 管理笔记时会把自动提交间隔设得极短比如每五分钟一次导致 Git 历史里全是“小碎步”式的提交记录实际回滚时反而看不出哪个时间点是重要的。我在前期也犯过这个毛病后来把间隔调整到三十到六十分钟一次同时保留手动提交入口用于标记重要节点比如完成一次大规模整理、一篇完整的文章初稿或一个阶段性的知识梳理。同步频率的把握有一些经验性的判断标准。如果你处于一场快速输入的会议中随手记了很多碎片内容这些内容不需要立刻推送到远端等到会议结束、整理成文后再提交一次历史记录会更干净。如果你有几小时的大块时间在做知识梳理中间可以有少量自动提交但最重要的提交一定是在你完成某一阶段清理、确认内容质量不错之后手动触发的那一次。这里的底层逻辑是Git 历史的真正价值是提供“有意义的还原点”而不是记录每一次击键。把提交节奏从“疯狂快进”调成“按阶段走”之后你回看历史时能快速找到“上周五那一版整理得不错”之类的关键时间点使用体验会好很多。最后再分享一个我实际沉淀下来的体会无论工具组合怎么变知识库的核心永远是“你敢不敢放心地往里面存”。存储、检索、同步、AI 回答所有这些能力本质上都是为了降低你记录和调用的阻力。当你有了一套本地纯文本兜底、Gitee 版本守护、AI 随时可读的体系之后笔记就不再是堆积的文字而是一块能反复生长、可被检索、甚至能替你产出的私人知识土壤。我这套组合跑了大半年最明显的感受是打开笔记的动作变少了真正用知识产出的时间变多了。后续我还在尝试把更多重复性整理动作做进 Skill 里比如自动合并同主题笔记、定期清理收件箱一步步让这套体系离“第二大脑”更近一点。