Hermes Agent LLM Wiki + Obsidian Git 免费替代 Obsidian Sync:保姆级配置教程

0 阅读11分钟

我已经使用 Hermes Agent 的 LLM Wiki 好一段时间了。看到喜欢的文章或帖子,我通常都会顺手转发给 Hermes Agent,再补一句“加入 wiki”。

最近我想把这套知识库再往前推一步:同步一份到本地电脑,接进 Obsidian,顺手也让日常高频使用的 Codex、Claude Code 能直接读到这些上下文。这样以后不管是写文章、查资料,还是让智能体接着干活,这些内容都不会只停在服务器上。

于是我找到 Hermes Agent 官方关于 Obsidian Headless 同步的文档链接,直接甩给小助理处理。

图片

然后按 1、2、3 把信息提供过去后,小助理卡在 Obsidian Sync 需要收费这一步,于是它主动找到一个免费替代方案:使用 GitHub 私有仓库 + Obsidian Git 插件进行同步。

图片

为什么用 Obsidian + Git 代替 Obsidian Sync?

后面我也去查了下,Obsidian Sync 是官方付费同步服务,当前最优惠的 Standard 套餐为年付 4 美元/月或月付 5 美元/月,支持多设备实时同步。

但如果你不嫌麻烦,完全可以用「Obsidian Git 插件 + GitHub 私有仓库」的方式进行平替,并且还免费

图片

我最后没选 Obsidian Sync,不是因为它不好用,而是我本来也需要 Git可追溯,可回滚,多版本的能力。并且通过这个方案,我能让养在云服务器上的 hermes agent 与 本地 Obsidian、以及日常开发主力 codex 完美协作,共享同一个 llm wiki 知识库。

但如果你不想折腾,没有版本管理的诉求,并且也有这个付费条件,那直接用 Obsidian Sync 就好啦。

先看效果:

我第一次跑通时,最直观的一个变化是:发一篇好文过去,Hermes Agent 处理完 wiki 入库后,GitHub 私有仓库里很快就会有一次 commit 提交。

图片图片

另一个变化更实在:本地打开 Obsidian,用 Git 插件拉一下,刚刚那批内容就下来了,LLM Wiki 的页面和关系图也会一起出现在本地。

图片

整体架构和处理流程

整个处理流程如下:

图片

关键组件:

  • GitHub 私有仓库:当中转仓库存储 llm wiki 内容

  • Obsidian Git 插件:本地自动 push/pull

  • post-commit hook:Agent 写完内容自动推送到 GitHub

工作原理:

Hermes Agent 运行在服务器上,新内容进来后触发的流程如下:

全程无需人工介入,并且延时通常在几秒内。

导读:保姆级配置教程,在第一第二部分,第一部分是push 设置:让 Hermes Agent 把 LLM Wiki 推送到 GitHub 私有仓库;第二部分 Pull 设置:本地配置 Obsidian + Git 插件拉取 GitHub 私有仓库信息

第一部分(Push 设置):让 Hermes Agent 把 LLM Wiki 推送到 GitHub 私有仓库

Step 1.1:创建 GitHub 私有仓库

  1. 登录 GitHub,点击右上角 + → New repository

  2. 创建页里重点看 4 个地方就够了:Repository name 自己定,Description 可写可不写,仓库可见性选 Private,先不要勾 Add a README,保持空仓库即可

  3. 点击 Create repository 完成创建

图片

Step 1.2:生成 GitHub Personal Access Token(关键步骤)

这是最关键的一步!GitHub 已停止支持密码认证,必须用 Personal Access Token (PAT) 来推送代码。

  1. 打开 github.com/settings/to… (路径:点击 GitHub 右上角头像 → Settings → Developer settings)

  2. Personal access tokens → Tokens (classic) → Generate new token (classic)

  3. 配置 Token 权限:

  • Note:填写 Hermes Agent Wiki Sync(方便识别)

  • Expiration:建议选 90 days 或自定义过期时间

  • Scopes:勾选 repo(Full control of private repositories)图片

  1. 点击 Generate token,页面会显示一串 Token 值

  2. 马上复制保存,因为页面关闭后无法再次查看

  3. 「Settings → Developer settings → Personal access tokens」路径下,Scopes 部分勾选 repo 权限的界面截图

图片

Step 1.3:把仓库地址和 Personal Access Token 发送给你的 Hermes Agent

把仓库地址,以及刚在 GitHub 上创建的 Personal Access Token 发送给你的 Hermes Agent。

图片

Hermes Agent 会按下面这套配置先把凭证存好。

# 先临时设置远程 URL(带上用户名)

git remote set-url origin https://crazyfzw@github.com/crazyfzw/ohmyllmwiki.git

# 用 credential helper 保存 Token

git config --global credential.helper store

Step 1.4:配置 LLM Wiki 更新后的自动化推送 post-commit hook

为什么要配置 post-commit hook?

这一步配好后,后面基本就不用盯着推送了。Hermes Agent 每次往 wiki 里写新内容,后面的 git addgit commitgit push 都会自己走完,你在本地 Obsidian 里拉一下就能看到更新。

图片

效果测试:

图片

从这里能看出来,文章已经先被抓成 Markdown,再按 LLM Wiki 的 ingest 流程落到库里,最后推到了 GitHub。

图片

Hermes Agent 背后执行的是这样一套固定流程:

 图片

1. 输入任意好文链接/资料 - 浏览器 URL / 微信文章 / X 帖子 / 小红书帖子

2. 抓取 → urllib 脚本取正文并清洗成干净的 Markdown 文档

3. 原始文件 → raw/articles/.md,带 YAML frontmatter

4. 概念提炼 → concepts/.md,标准 frontmatter + ≥2 个 wikilinks

5. 更新 index.md → 追加条目 + 更新 Total pages

6. 追加 log.md → 记录 ingest 动作

7. Commit + Hook → 自动推送到 GitHub

我后来回头看这套库,真正值钱的不是那篇被抓下来的原文本身,而是原文、概念页、log 都还留着。等你隔一阵子再翻旧资料,不会只剩一个当时转发过的链接。

第二部分(Pull 设置):本地配置 Obsidian + Git 插件拉取 GitHub 私有仓库信息

Step 2.1:下载并安装 Obsidian

图片

Step 2.2:克隆 GitHub 仓库为本地 Vault

这一步做完后,本地这个文件夹就可以直接当 Obsidian vault 用。

# 把仓库克隆到本地

git clone https://github.com/crazyfzw/ohmyllmwiki.git ~/Documents/ohmyllmwiki

cd ~/Documents/ohmyllmwiki

# 以后每次进入这个文件夹就是 Obsidian vault

克隆完以后,回到 Obsidian,点击「打开本地仓库」→ 选择刚克隆的文件夹。

Step 2.3:安装 Obsidian Git 插件(核心)

社区插件商店中搜索「Git」的界面截图

图片图片

Step 2.4:配置 Obsidian Git 插件参数

在 Obsidian 设置 → 插件选项 → Obsidian Git 中,配置以下关键项:

如果你打开的就是项目根目录(目录下有 .git),则可以不做额外配置;如果你打开的不是项目根目录,则需要在 Custom base path 中指定相对路径。

图片

然后回到主界面,在右侧边栏点击拉取按钮,就可以把 GitHub 私有仓库上的内容同步过来。

图片图片

知识库关系图谱如下

图片

第三部分:Wiki 目录结构与 Obsidian 集成原理

同步工作流回顾

图片

我自己是这么确认它真的跑通的:服务器那边只要写进一篇新笔记,过一会儿去看 GitHub,仓库里通常已经有新的提交了;再回到 Obsidian 拉一下,新页面和关系图就会出来。看到这一步,基本就知道整条链路已经闭合了。

Wiki 目录结构说明

LLM Wiki 采用固定目录结构(Karpathy's LLM Wiki 规范):

~/.hermes/wiki/           # 根目录 = Obsidian vault
├── SCHEMA.md           # Layer 3: 约定、结构规则、领域配置
├── index.md            # 分段内容目录,带单行摘要
├── log.md              # 按时间顺序的操作日志
├── raw/                # Layer 1: 不可变源材料
│   ├── articles/       # 网络文章、剪报
│   ├── papers/         # PDF、arxiv论文
│   ├── transcripts/    # 会议记录、访谈
│   └── assets/         # 源材料引用的图片、图表
├── entities/           # Layer 2: 实体页面(人物、组织、产品、模型)
├── concepts/           # Layer 2: 概念/主题页面
├── comparisons/        # Layer 2: 对比分析
└── queries/            # Layer 2: 存档的查询结果

三层架构的核心设计原则:

  • • Layer 1 — Raw Sources(raw/):不可变。Agent 只读不改写,保留原始内容。

  • • Layer 2 — The Wiki(entities/ + concepts/ + comparisons/ + queries/):Agent 创建、更新、互联;所有提炼、分析、对比都在这一层完成。

  • • Layer 3 — The Schema(SCHEMA.md):知识库的“宪法”,定义领域范围、文件命名规范、YAML frontmatter 标准、标签分类法、页面阈值和更新策略。

LLM Wiki 与 Obsidian 的深度集成

hermes agent llm wiki 的目录结构设计上天然就是开箱即用的 Obsidian vault,支持 Graph View 查看知识网络图,Dataview 查询 以及 通过 [[wikilinks]] 支持在笔记间自由跳转。

这里不仅人可以通过 Obsidian 进行可视化查阅检索这个 llm wiki 知识库。

而且还可以把这个本地知识库集成进你日常高频使用的 codex/ claude code 等智能体,让这个独一无二的知识库复用最大化,价值最大化,并且通过 agent 的维护可以让这个知识库持续积累和进化。

第四部分:常见问题与解决方案

Q1:git push 报 "could not read Username" 错误

原因:Git Credential Helper 没有配置好,无法读取 Token。

解决:重新配置凭证

git remote set-url origin https://YOUR_GITHUB
_PRIVIATE.git

git config --global credential.helper store

echo 'https://xxxx:<YOUR_GITHUB_TOKEN>@github.com' > ~/.git-credentials

注意:~/.git-credentials 是明文凭证文件,这种方式配置简单,但一定要确保服务器账户和文件权限可控。如果是长期使用,建议优先考虑系统 Credential Helper、SSH key 或权限更细的 token。

Q2:Obsidian Git 插件显示 "No remote configured"

原因:Obsidian Git 插件没有设置 Remote repository URL。

解决:在 Obsidian 设置 → Obsidian Git → Remote repository,填入:https://YOUR\\_GITHUB\\_PRIVIATE.git

如果仓库是私有的,在插件设置中找到「Personal Access Token」输入框,粘贴你的 GitHub PAT 即可。

Q3:GitHub Token 过期了怎么办?

nano ~/.git-credentials  # 更新里面的 Token
  1. 3. Obsidian 设备端:Obsidian Git 插件设置 → Personal Access Token → 更新为新 Token

Q4:两台设备同时修改同一文件产生冲突怎么办?

建议:尽量避免多人同时在同一分支编辑,或每个设备用不同分支(高级用法)。

Q5:.git 在子目录,Obsidian 打开上级目录无法识别仓库怎么办?

方案一:Obsidian Git 插件指定 Local repository(推荐)

在插件设置里,手动指定 Local repository 路径指向含有 .git 的子目录,这样 vault 本身可以不含 .git。

方案二:移动 .git 到上级目录

mv /path/to/ohmyllmwiki/ohmyllmwiki/.git /path/to/ohmyllmwiki/

mv /path/to/ohmyllmwiki/ohmyllmwiki/* /path/to/ohmyllmwiki/

rmdir /path/to/ohmyllmwiki/ohmyllmwiki

注意:会把上级目录所有其他文件暴露到 vault 里

第五部分:进阶玩法

定时自动同步脚本:wiki-sync.sh

如果你不想把自动化完全绑在 post-commit hook 上,也可以再加一个定时脚本主动推送。我更把它当成兜底方案:哪怕某次 hook 没跑,定时任务也会把改动补推上去。

比如:加入 crontab 定时执行(每 5 分钟一次):

crontab -e

*/5 * * * * /root/.hermes/scripts/wiki-sync.sh

GitHub Actions 自动同步(替代 post-commit hook)

如果你不想在服务器侧配 hook,也可以把自动化迁到 GitHub Actions。

我的建议是先把前面的 hook 跑稳,再碰 Actions。它的好处是把同步逻辑从服务器上挪走,但排查时也会多一层 CI。真要用的话,就在仓库根目录创建 .github/workflows/sync.yml;这部分更适合作为进阶方案,本文先不展开完整 YAML。

收尾一下

回顾下整套方案具备下面几个特性:

  •  零成本:GitHub 私有仓库免费 + Obsidian 免费 + Obsidian Git 插件免费

  •  全链路自动化:Agent 写 → 自动 commit → 自动 push → Obsidian 自动 pull

  •  具备版本管理能力:每次变更都有完整记录可回溯,支持多版本管理,必要时可进行回滚

另外,对我来说,这套方案最有价值的地方,不是省掉了一笔 Obsidian Sync 的费用,而是解决了[远程Agent-人-本地编程智能体] 知识复用的问题。资料进来以后,能沉淀、能检索、能回溯,也能继续被本地智能体拿来直接用。

  •  实现远程 agent 与 人 共享知识库,人也可以通过 Obsidian 进行可视化查阅检索这个 llm wiki 知识库,而不仅仅让知识库停留在服务端。

  •  可实现人与本地编程智能体 共享知识库,让codex/claude code 等编程智能体能共查阅检索维护这份知识库,让知识库发挥最大价值。

扩展阅读

这是我写 LLM Wiki 的第三篇,如果你想完整理解这套个人知识库工作流,可以搭配前两篇一起看:

《终结“收藏夹吃灰”:深度拆解 Hermes Agent 是如何跑通 LLM Wiki 知识闭环的》mp.weixin.qq.com/s/A5TmthNeL…

《个人知识库为什么总会腐烂?Karpathy 的 LLM Wiki,如何搭建一套会持续自我维护的知识工程框架》mp.weixin.qq.com/s/YOPAk6bVA…


AI 趣实验 出品 (全平台同名)

谢谢你读我的文章,既然看到这里了,如果觉得不错,关注我,顺手点个赞、在看、转发三连吧~