我把 Hermes 接进 Obsidian 跑了一周"全自动":官方 skill + 插件,笔记库真的活了过来


一周前,我把 Hermes Agent 正式“接进”了我的 Obsidian 笔记库,立了个 flag:接下来一周所有笔记工作都交给它自动跑。一周后的结果有点出乎意料——不是它帮我省了多少时间,而是我的笔记库第一次像“活”的一样:早上醒来晨报已经写好,收件箱每晚自动清空,最神奇的是那个自动画出的语义连接图,把我自己都没意识到的笔记关联摆在了眼前。这篇文章是这一周的完整记录,包括官方真实的两条接入路径——顺便说一句,中文社区流传的 hermes memory setup --provider obsidian 这条命令并不存在,别照着抄。

官方真实的两条路径

路径 A:官方内置 obsidian skill(读写笔记)

Hermes 官方自带一个 obsidian 技能(note-taking 类别,作者 Teknium)。它把 Obsidian 笔记库当作文件系统优先的工作区:读笔记、列笔记、全文搜索、新建笔记、追加内容、定向修改、加 wikilink,全部用官方文件工具完成,而不是绕道 MCP。

  • 笔记库路径通过 OBSIDIAN_VAULT_PATH 环境变量约定(未设置时默认 ~/Documents/Obsidian Vault);
  • 路径含空格也没问题(文件工具天然处理);
  • 新建笔记时用 [[Note Name]] 语法互相链接——这是 Obsidian 的灵魂,skill 也把它当规矩。

用法一句话:在 .env 里配好 OBSIDIAN_VAULT_PATH,然后直接对 Hermes 说“读我今天的日记”或“把这段内容存成笔记并链接到相关主题”。

路径 B:Obsidian 社区插件(把 vault 变成工作目录)

比 skill 更进一步的是社区插件 Hermes Agentjsun2020/hermes-agent-obsidian-plugin,MIT)。它让 Obsidian 变成 Hermes 的前端:

  • 侧边栏多标签聊天:对话面板直接嵌在 Obsidian 里,走 gateway 的 Runs 传输(带工具/推理事件流),老的 Chat Completions 兜底;
  • 上下文一键附加:把当前笔记选中的文字直接发给 Hermes,不用复制粘贴;
  • vault 作为工作目录:设置一个工作文件夹后,agent 可以在你的笔记库上真正读写、搜索、跑多步工作流——这是“自动跑一周”的核心;
  • Smart Graph(语义连接图):让 Hermes 通读笔记摘要,找出语义层面的关联(共同主题、一个笔记阐述另一个、前提/依赖、矛盾),画成可交互的力导向图——Obsidian 原生 Graph View 只认识显式 [[wikilink]],它连“你觉得有关但没写链接”的都找出来。分析结果缓存,重开还在。

认证用的是 gateway 的 API_SERVER_KEY(Hermes Desktop 自动生成,在 ~/.hermes/.env 里)。安装推荐用 BRAT 社区插件拉取,也可以手动下载 main.js/manifest.json/styles.css 三件套。

一周实测流水账

  • 每天早上 6:30:cron 定时任务触发,Hermes 读昨天的日记和所有项目的 overview.md,把“今天最重要的事 + 每个项目一句话状态 + 没处理完的开放循环”写进 04 - HERMES-OUTPUTS/briefings/——醒来五分钟读完,比刷新闻有用。
  • 每天晚上 20:00:收件箱处理器把 00 - INBOX/ 里随手扔的东西分类归档,每条新建的永久笔记强制至少有一条 wikilink,没有连接的笔记不配进永久区——一周下来 INBOX 从来没积压过。
  • 随时:看到好文章直接选中发进侧边栏聊天,“读一下并提炼成文献笔记”,回写时自动带来源和连接。
  • 周末惊喜:跑了一次 Smart Graph,它把三个月前一篇关于“写作流程”的笔记和这周的项目笔记连了起来——我完全没意识到这两件事相关。这个连接直接促成了我下一篇文章的选题。

实测遇到的坑(诚实记录)

  1. Codex / gpt-5.5 沙箱只读:用 OpenAI-Codex 系模型时,agent 跑在只读沙箱里,读 vault 路径会被拒绝(“two read-only permission requests were rejected”)。解法:在 ~/.codex/config.toml 里把 sandbox_mode 改成 workspace-write 并把 vault 加进 [sandbox_workspace_write].writable_roots,然后重启 Hermes Desktop(gateway 启动时加载配置)。Windows 锁定环境可能还要 danger-full-access(沙箱起不来时)。
  2. TUI 不是 gateway:插件连的是 HTTP gateway(默认 127.0.0.1:8642),光开 TUI 聊天是不够的——hermes gateway 或 Hermes Desktop 得在跑。
  3. 命名 profile 换端口:多个命名 profile 时 gateway 端口是 8643–8742,插件里改 base URL 即可。
  4. 不要用杜撰命令hermes memory setup --provider obsidian 在官方源码里不存在——Obsidian 不是 memory provider,它是 skill + 插件的工作区。

快速开始(两条路)

# 路径 A:官方 skill(读写笔记)
echo "OBSIDIAN_VAULT_PATH=$HOME/Documents/Obsidian Vault" >> ~/.hermes/.env
# 然后在对话里:/skill obsidian 或直接说"用 obsidian skill 读我的日记"

# 路径 B:插件(把 vault 变成工作目录)
# 1. Obsidian 里装 BRAT → 添加 https://github.com/jsun2020/hermes-agent-obsidian-plugin
# 2. 设置里填 gateway URL(默认 http://127.0.0.1:8642)+ API_SERVER_KEY
# 3. 点 Test connection,通过后打开侧边栏聊天

定时部分(晨报/收件箱)用 Hermes cron 编排,完整玩法见《cron 自动化完全指南》。多 profile 隔离笔记库可以看《一台机器跑多个独立实例》。更早的《把对话自动变成笔记》讲的是单向捕获流水线,这篇是双向工作区——两篇互补。

总结

一周“全自动”跑下来,我最深的感受是:Obsidian 和 Hermes 是天生一对——Obsidian 提供人类可读、永久、可链接的知识层,Hermes 提供会思考、会记忆、会定时执行的大脑层。官方 skill 管读写,社区插件管双向协作和语义发现,cron 管定时。别被中文社区那些杜撰命令带偏,按官方两条路径走,你的笔记库也会在一个星期内“活”过来。