用 Hermes 和 Obsidian 搭本地 AI 第二大脑:隐私、权限与回滚审计清单
从隐私分级、最小权限、备份回滚、审计日志、故障演练到团队采纳清单,给 Hermes + Obsidian 本地 AI 第二大脑划出安全边界。
先把第二大脑当成一个有权限的系统,而不是一个聪明的笔记插件
Hermes Agent 和 Obsidian 组合在一起,很容易被包装成“本地 AI 第二大脑”:Obsidian 负责保存 Markdown 笔记,Hermes 负责读取、整理、搜索、生成日程、沉淀技能和记忆。这个方向确实实用,因为官方文档明确说明 Hermes 可以运行在 CLI、桌面和多种消息平台上,支持工具、Skills、持久记忆、cron 调度、profiles、MCP,以及文件和终端等工具集。问题也在这里:一旦 Agent 能读写文件、调用终端、跨会话记忆,Obsidian vault 就不再只是一个文件夹,而是一个被自动化系统访问的数据资产。
所以,安全的起点不是“让 AI 记住我的一切”,而是给这个第二大脑做一次隐私审计。哪些笔记能读?哪些能写?哪些永远不能进入模型上下文?哪类总结可以写回 vault,哪类只能放在临时草稿?误删、误改、错误归档、错误记忆时如何回滚?这些问题没有解决之前,不应该把整个 vault、同步盘、聊天记录、客户资料和个人日记一股脑交给 Agent。
官方 Hermes 文档给出的几个事实决定了这套审计必须严肃:Hermes 的配置、密钥、OAuth 凭据、记忆、Skills、cron、sessions 和日志都在 ~/.hermes/ 目录下;持久记忆由 MEMORY.md 与 USER.md 这类受限文本组成,会在新会话开始时进入系统提示;Skills 是可复用的过程记忆;工具是否可用受平台、凭据和启用状态影响;本地终端后端直接在用户机器上运行,没有容器隔离。换句话说,Hermes 的能力不是抽象聊天能力,而是本地权限、配置文件、记忆文件和工具调用共同构成的执行环境。
数据分级:不要让“笔记”这个词掩盖敏感度差异
Obsidian vault 里常见的内容看起来都是 Markdown,但风险完全不同。搭建本地 AI 第二大脑前,先把文件分成四类,并把分类写进 vault 顶层的 AI-Policy.md 或 README-agent-boundary.md。分类要简单到每次提示词都能引用,不能复杂到只有安全负责人看得懂。
- 公开资料:公开网页摘录、开源项目笔记、读书卡片、技术学习记录。Agent 可以读取、改写摘要、生成索引,但仍要保留来源链接。
- 个人工作资料:项目计划、待办、会议纪要、草稿、工作复盘。Agent 可以在指定目录内整理,但写回前要说明修改范围。
- 敏感资料:客户名称、合同、财务、医疗、家庭信息、账户恢复码、身份证件、内部策略。默认只读或禁止访问,需要人工复制最小片段给 Agent。
- 秘密与凭据:API key、密码、token、私钥、OAuth 文件、生产服务器地址组合、未脱敏日志。不得进入 vault 的 AI 可读区,也不得让 Agent 自动总结进记忆或 Skills。
这个分类的实际意义是约束自动化行为。比如 Hermes 的持久记忆是有字符上限的、经过策展的长期信息,不适合塞入完整会议纪要;Skills 适合保存流程,不适合保存客户数据;session_search 能查历史对话,但不能替代当前源文件审计;cron 能定时运行任务,但不该每天自动扫描全库并把私人笔记提升成永久记忆。所谓第二大脑,应该是有选择地把经验结构化,而不是把所有文本都变成模型上下文。
权限边界:从目录白名单开始,而不是全库读写
最小权限的做法,是在 Obsidian vault 里建立 AI 专用工作区,而不是直接开放整个 vault。推荐的目录结构可以很朴素:AI-Inbox/ 放待处理材料,AI-Drafts/ 放 Agent 生成草稿,AI-Reviews/ 放审计记录,AI-Procedures/ 放可公开复用的流程,Private/ 和 Secrets/ 明确列为禁区。Hermes 的提示词应要求:先报告实际路径,再列出将访问的文件,再等待人工确认后进行批量修改。
本地 CLI 模式尤其要小心。官方配置文档说明,本地 terminal 后端默认直接在真实用户环境里运行,没有额外隔离;Docker、SSH、Modal、Daytona 等后端才提供不同程度的边界。若只是在个人电脑上整理笔记,未必需要容器化,但必须知道本地后端意味着 Agent 可以通过工具触达当前用户能触达的文件。若 vault 同步到 iCloud、Dropbox、OneDrive 或 Git 仓库,错误写入会被快速同步到其他设备,因此写权限更要从小目录开始。
一个可执行的权限策略应包含三条规则。第一,默认只读;写入仅限 AI-Drafts、AI-Inbox 或被用户点名的单个文件。第二,批量移动、重命名、删除、替换标题、修改 frontmatter 前必须先生成变更计划。第三,任何包含“密码、token、私钥、身份证、病历、合同、客户名单、工资、家庭地址”等关键词的文件,默认停止处理并要求人工决定。规则不需要完美,但要能挡住最常见的过度自动化。
记忆与 Skills:长期沉淀要保存规则,不保存私人原文
Hermes 的长期能力来自两层:一层是持久记忆,用来记住用户偏好、环境事实和项目约定;另一层是 Skills,用来保存可重复执行的流程。它们都很适合“第二大脑”,但边界不同。记忆适合写“用户的 Obsidian vault 位于某路径,AI 只能处理 AI-* 目录”;Skill 适合写“如何审计一次 vault 整理任务,先列清单、再备份、再改写、最后验证”。它们都不适合保存“某客户会议的完整内容”或“某人的私人情况”。
官方记忆文档强调持久记忆是有边界、被策展的,并且在会话开始时作为冻结快照注入系统提示。这意味着错误记忆不是小事:它可能影响后续许多会话。把一条临时偏好误写成长期偏好,或者把一次项目路径误写成永久路径,都会让后续任务偏航。采用 Hermes + Obsidian 时,应把“是否写入记忆”做成显式门槛:只有稳定偏好、长期目录约定、反复出现的流程教训才允许记忆;普通笔记摘要、个人情绪、客户细节和一次性任务不要自动提升。
Skills 也要防止数据污染。一个好 Skill 应该描述流程、触发条件、验证步骤、常见坑和回滚办法,而不是夹带具体项目的私密材料。比如可以保存“整理 Obsidian 读书笔记时,先检查重复标题,保留原文链接,输出变更 diff,再写入索引”;不应保存“某公司内部会议纪要的固定模板和真实参会人名单”。如果某次整理事故暴露了新坑,可以把坑写进 Skill,但要先脱敏。
备份与回滚:先能撤销,再谈自动整理
本地 AI 第二大脑最容易被低估的风险不是泄密,而是静悄悄的结构性损坏:标题被统一改坏,双链断掉,frontmatter 被转义错误,日期字段格式混乱,几百个文件被移动到错误目录,或者某个同步服务把错误版本覆盖到所有设备。解决办法不是让提示词写得更长,而是把备份和回滚变成每次批量操作的前置条件。
最稳的方式是让 vault 本身进入版本控制,至少对 AI 可写目录启用 Git。每次让 Hermes 批量整理前,先要求它只读检查当前状态,并执行不含秘密输出的差异检查。真正写入前创建一个快照分支或提交点。写入后再查看 diff,由人确认是否保留。若不想把整个 vault 放进 Git,也可以用压缩包或文件系统快照,但必须能回答三个问题:备份放在哪里、多久保留、如何恢复单个文件。
Hermes 自身也有会话和 checkpoint/rollback 相关能力,但不能把它当成 Obsidian vault 的唯一备份。Agent 运行环境的检查点更适合撤回一次文件系统操作,Obsidian vault 的长期安全仍应由独立备份承担。实际策略可以是:AI 可写目录用 Git,完整 vault 用同步盘版本历史或本地定时快照,敏感目录另做加密备份,并明确不交给 Agent 批量处理。
审计日志:记录 Agent 看过什么、改过什么、为什么改
如果一个人手工改笔记,事后还能凭记忆解释;Agent 自动整理时,必须留下机器可读又能给人看的审计日志。建议在 vault 里建立 AI-Reviews/,每次任务写一份日期文件,内容至少包括:任务提示词摘要、实际 vault 路径、读取目录、候选修改文件、写入文件、跳过文件、发现的敏感项、执行的验证命令、备份位置、回滚办法和人工确认结论。
不要只依赖聊天窗口。Hermes 的会话、日志和工具结果当然有排障价值,官方配置文档也说明 ~/.hermes/ 下有 sessions 与 logs,日志会做秘密自动脱敏;但 Obsidian 第二大脑的审计应靠近数据本身保存。半年后你需要知道“这批标签是谁改的、为什么改、能不能撤”,最方便的证据应该在 vault 的 AI-Reviews 中,而不是翻某次聊天历史。
审计日志还要记录负面结果。比如“发现 Private 目录,按策略跳过”“检测到疑似 token,未读取原文”“有 18 个文件标题重复,未自动重命名”“因 Git 工作区不干净,停止批量写入”。这些停止动作比成功摘要更重要,因为它们证明边界正在生效。一个成熟的第二大脑,不是永远顺滑执行,而是在遇到高风险材料时会停下来。
故障演练:至少演练六种失败
没有演练过的回滚方案,多半只是一句安慰。上线 Hermes + Obsidian 工作流前,建议做六个小演练,每个演练都限制在测试 vault 或 AI-Drafts 目录内。
- 误路径演练:故意不给
OBSIDIAN_VAULT_PATH,要求 Agent 先报告实际路径而不是猜测写入。 - 敏感文件演练:放一个含“FAKE_API_KEY”的测试文件,验证 Agent 会跳过并记录,而不是摘录进摘要。
- 批量修改演练:让 Agent 对十个测试文件加标签,要求先备份、再改写、再输出 diff。
- 回滚演练:故意制造一个错误标题,要求按备份或 Git diff 恢复单个文件。
- 记忆污染演练:在任务中给出一次性偏好,检查 Agent 不会把它写入长期记忆。
- cron 失控演练:模拟每日整理任务,确认它只处理 AI-Inbox,不扫描整个 vault,也不会自动推广所有新笔记。
演练的目的不是刁难 Agent,而是校准提示词和权限。每次失败都应转化成一条更清晰的策略:哪些目录禁读,哪些动作要确认,哪些关键词触发停止,哪些结果可以写入记忆,哪些只能写入审计日志。等这些规则在测试材料上稳定后,再让它处理真实笔记。
消息平台、cron 与团队共享:方便性越高,边界越要硬
Hermes 可以通过 Gateway 接入 Telegram、Discord、Slack、Feishu、Email 等平台,也支持 cron 定时任务。这对第二大脑很诱人:在手机上发一段想法,晚上自动整理成 Obsidian 笔记;每周生成项目复盘;每天从 AI-Inbox 抽取待办。可是入口越多,越要区分“收集”和“沉淀”。手机随手发来的内容可以进入 Inbox,不代表它应该进入长期记忆;群聊里的信息可以生成待确认草稿,不代表它应该写入个人 vault 的正式知识库。
团队场景还要考虑授权。官方配置中有 profiles、多平台会话、授权 DM 行为和平台配置等机制;实际使用时,应为个人 vault 和团队 vault 分开 profile 或至少分开路径与提示词。个人 profile 不应处理团队共享密钥,团队 profile 不应写入个人日记。若同一个 Gateway 服务多个聊天入口,必须明确哪些入口能触发 Obsidian 写入,哪些只能请求摘要,哪些完全不能触达 vault。
cron 的安全边界尤其重要。定时任务适合做低风险整理:扫描 AI-Inbox、生成待确认索引、列出过期任务、检查未归档草稿。它不适合自动删除、自动移动大量文件、自动重写私人笔记,也不适合“每天把所有新内容总结进长期记忆”。一个可靠的 cron 提示词应写明处理目录、最大文件数量、禁止动作、输出审计日志,以及遇到敏感词时停止。
一份可直接采用的上线清单
如果只想快速判断当前 Hermes + Obsidian 第二大脑是否可以进入真实使用,可以按下面清单验收。没有全部通过之前,不要开放全库写权限。
- 已确认官方 Hermes 文档地址与当前版本能力,未照搬过期第三方教程。
- vault 已分出 AI-Inbox、AI-Drafts、AI-Reviews 等可处理目录,并明确 Private、Secrets 等禁区。
- 已写入数据分级规则,公开资料、个人工作资料、敏感资料、秘密凭据有不同处理策略。
- Hermes 只在需要时启用文件和终端工具;本地后端无隔离这一点已被使用者理解。
- 所有批量写入前都有备份点,写入后能查看 diff,失败时能恢复单个文件。
- 长期记忆只保存稳定偏好和环境约定,不保存私人原文、客户细节和一次性任务。
- Skills 只保存可复用流程,不夹带敏感案例原文。
- AI-Reviews 中能看到每次任务的读取范围、修改范围、跳过原因、验证结果和回滚方式。
- cron 只处理低风险目录,不自动扫描全库,不自动推广每条新笔记。
- 至少完成误路径、敏感文件、批量修改、回滚、记忆污染和 cron 失控六类演练。
结论:本地优先不等于天然安全,审计过的边界才安全
Hermes + Obsidian 的好处,是把长期知识留在本地 Markdown 文件里,同时让 Agent 参与整理、检索和流程复用。它比纯云端知识库更可控,也比手工笔记更能形成闭环。但“本地”只是安全条件之一,不是安全结论。真正的安全来自数据分级、目录白名单、最小权限、独立备份、可读审计日志、回滚演练和明确的采纳清单。
把它当成一个有权限的本地系统来设计,第二大脑才会变成可靠助手;把它当成一个会自动理解边界的聊天机器人,迟早会把临时草稿、私人资料和长期记忆混在一起。最好的采纳节奏是慢一点:先只读,再小范围写入;先测试 vault,再真实 vault;先保存审计日志,再建立自动化;先让 Agent 学会何时停止,再让它处理更多笔记。