Files
nexus/openclaw/xingshu/obsidian-gitea-sync-blog.md

10 KiB
Raw Blame History

用 Obsidian + Gitea 为 AI 助手构建持久化记忆系统

本文发表于2026-04-04 更新于2026-04-09 适用平台Mac miniM4、工作 LaptopMacBook、iCloud Drive 前置工具Obsidian、Gitea自建 Git 服务、OpenClaw


背景AI 的输出去哪儿了?

用 AI 助手多了你一定有这个体验一次对话里AI 给了一大堆有用的分析、结论、操作步骤——对话一结束,这些内容就消失在聊天记录里了。下次要用,还得重新描述上下文。

我是用一个自建的 Giteagit.ishenwei.online)结合 Obsidian 来解决这个问题的。AI 的输出直接写入 Obsidian 笔记,我的工作笔记在 Mac mini、工作 Laptop、iCloud Drive 三端同步,而所有历史版本都在 Gitea 中完整保留。

一句话概括:用 Obsidian 做知识库,用 Gitea 做版本控制,用 OpenClaw 做写入接口。


系统架构

用户(手机/PC
    ↓  Telegram / 指令
OpenClaw运行在 Mac mini Docker 中)
    ↓ obsidian skill
Obsidian 笔记库(~/Workspace/nexus
    ↓ iCloud Drive 自动同步
    ├─ Mac mini → 本地路径
    ├─ Laptop   → iCloud Drive 路径
    └─ Gitea   → 自建 Git 仓库git.ishenwei.online

三层同步逻辑:

层级 工具 作用
实时同步 iCloud Drive Mac mini 与 Laptop 保持最新笔记同步
版本控制 Gitea自建 Git 记录每次变更历史,随时回溯
写入接口 OpenClaw obsidian skill AI 助手直接将输出写入笔记

笔记目录结构:每个 Agent 都有专属 Archive

根据 AGENTS.md 的设定Obsidian 笔记库采用分层结构:

/Users/weishen/Workspace/nexus/
├── openclaw/
│   ├── knowledgebase/       ← 知识库(经过整理的公共知识)
│   ├── xingshu/             ← 星枢专属笔记
│   ├── xinghui/             ← 星辉专属笔记
│   ├── xingyao/             ← 星曜专属笔记
│   ├── xingjiang/           ← 星疆专属笔记
│   ├── yunce/               ← 云策专属笔记
│   ├── yunhan/              ← 云寒专属笔记
│   └── fengchi/             ← 风驰专属笔记
└── …(其他 Obsidian 笔记)

目录分工规则:

目录 用途 示例
openclaw/knowledgebase/ 经过整理、跨 Agent 共用的知识 工具评测、架构决策、最佳实践
openclaw/<agentId>/ 单一 Agent 的私有笔记 Agent 专属思考、工作日志、任务记录

核心原则: 研究过程写入 Agent Archive;经过验证、可复用的知识沉淀到 Knowledge Base


核心OpenClaw 的 Obsidian Skill

OpenClaw 提供了一个 obsidian skill功能覆盖笔记的读取、搜索、创建和修改。当我让 AI 助手分析或总结某个话题时,可以直接让它把结果写入 Obsidian 笔记。

obsidian skill 支持的操作:

  • obsidian write — 创建或覆盖一篇笔记
  • obsidian append — 在已有笔记末尾追加内容
  • obsidian read — 读取笔记内容
  • obsidian search — 在笔记库中搜索关键词
  • obsidian update — 修改笔记的特定部分

所有笔记存放在统一路径:

/Users/weishen/Workspace/nexus/

实际例子:自动更新家庭网络环境文档

举一个我每天都在用的例子。我有一篇笔记记录了我的家庭网络环境概览:

Technical/Home Office/🟢家庭网络环境概览_2026-04-03.md

这篇文章记录了 Mac mini、NAS、两台 Ubuntu 服务器上所有运行的服务、FRP 端口映射、域名映射表。每次我新增一个服务(比如部署了新的 Docker 容器),只需要告诉 AI 助手:

"帮我更新网络环境概览,把新部署的 n8n-workflows-docs 服务加进去"

OpenClaw 会自动完成以下步骤:

  1. 读取当前笔记内容
  2. 找到对应的章节Ubuntu Server 2 的应用列表)
  3. 在正确的位置插入新服务条目
  4. 更新时间戳
  5. 写回笔记文件

更新前(片段):

### 安装的应用

| Name                | Docker? | Note                        | Internal Address                | Public Address |
| ------------------- | ------- | --------------------------- | ------------------------------- | -------------- |
| n8n                 | Yes     | 工作流自动化平台               | http://192.168.3.45:5678/       | n8n.ishenwei.online |
| n8n_postgres        | Yes     | n8n PostgreSQL 数据库         | http://192.168.3.45:5432/       |                |

更新后(片段):

### 安装的应用

| Name                    | Docker? | Note                        | Internal Address                | Public Address        |
| ----------------------- | ------- | --------------------------- | ------------------------------- | --------------------- |
| n8n                     | Yes     | 工作流自动化平台               | http://192.168.3.45:5678/       | n8n.ishenwei.online   |
| n8n_postgres            | Yes     | n8n PostgreSQL 数据库         | http://192.168.3.45:5432/       |                       |
| n8n-workflows-docs      | Yes     | n8n 工作流文档服务             | http://192.168.3.45:8001/       |                       |

整个过程不需要我打开 Obsidian、不需要复制粘贴只需要一条指令。AI 理解了文档结构Markdown 表格),理解了服务信息的语义(端口、域名、用途),自动完成了插入。


版本管理的价值

因为笔记全部纳入 Gitea 管理,每次更新都对应一个 Git commit。这意味着

  • 任何时候都能回溯 — 三个月前某台服务器上跑的什么服务,一个 git log 就能找到
  • 变更有据可查 — "这个端口是什么时候改的?" → commit message 里写得清清楚楚
  • 多人协作预留 — 未来如果想让其他 AI Agent 也参与协作Gitea 的权限体系天然支持

Gitea 仓库信息:

仓库地址ssh://git@192.168.3.189:2222/admin/nexus.git
本地路径:/Users/weishen/Workspace/nexus
SSH 认证:已配置 osxkeychain每次 push 无需输入密码

进阶Karpathy LLM Wiki 思路的实践融合

核心洞察(来自 Karpathy 2026-03 分享): RAG 模式是"每次从零检索",知识不积累;而 LLM Wiki 是让 AI 增量构建和维护一个持久化的 Wiki,页面之间互相链接,知识越积越厚。

我的系统天然契合这个思路——AI 在执行任务的过程中顺手维护链接、更新摘要、标记新旧矛盾,而不是被动等着被查询。

以下是几个可进一步融入实践的要点:

1. Obsidian Web Clipper快速采集外部素材

Karpathy 推荐用浏览器插件 Obsidian Web Clipper 随时采集网页文章。安装后,打开任意网页点击扩展图标即可将文章保存为 Markdown 到 Obsidian配合图片本地化见下素材采集效率极高。

用途: 当我在网上看到有价值的文章想让 AI 分析,直接剪藏进 openclaw/knowledgebase/AI 读完后可以直接在 Wiki 中做摘要、提取知识点、建立双向链接。

2. 图片本地化:保护素材的长期可读性

剪藏进来的文章图片通常是外链几个月后链接失效AI 也读不到。Karpathy 的两步方案:

  1. 设置 → 文件与链接 → 附件存储路径 → 设为当前文件夹下的 attachments/ 子目录(不要设到全局目录,混在一起不好管理)
  2. 绑定下载快捷键(如 Ctrl+Shift+D)→ 剪藏完按一下快捷键,所有图片自动下载到本地

价值: AI 能直接读取本地图片做分析,不必依赖可能失效的外链。

3. Graph View发现知识盲区

Obsidian 的 Graph View(左侧边栏图谱图标,或 Ctrl+G)将所有 Wiki 页面以节点展示,双链关系自动连线。

Karpathy 的两个用法:

  • 健康检查:没有任何页面链接指向它 → 说明是"孤岛页面",需要让 AI 补上交叉引用
  • 发现盲区:某个概念被很多页面提到但自己还没有独立页面 → 图谱里显示为灰色幽灵节点,提醒应该为它建一个专页

4. Git 自动同步:版本管理是必选项

Obsidian Git 插件(社区插件市场安装)可设为 Auto commit-and-sync interval(如 10 分钟),插件自动 commit + push完全不用手动操作。

Karpathy 的判断很到位:AI 批量改文件的能力越强,你越需要版本管理来兜底。 我们的 Gitea 方案同样实现了这一点,而且因为是自建服务,私有数据不出内网。

5. QMDWiki 规模变大后的精准搜索

Wiki 规模小的时候,一个 index.md 目录文件足够 AI 导航。页面多了之后Karpathy 推荐 QMDgithub.com/tobi/qmd),一个完全本地运行的 Markdown 搜索引擎。

判断标准: Wiki 到几百个页面之前,index.md 完全够用;等 AI 找东西开始变慢,再接入 QMD 也不迟。


这个系统解决的核心问题

  1. AI 输出不再丢失 — 每次对话的有价值结论,直接落盘到笔记
  2. 多端一致 — iCloud Drive 保证 laptop 和 Mac mini 永远在同一版本
  3. 版本可溯 — Git 历史记录每一次变更的来源和内容
  4. 被动更新 — 不需要主动维护文档AI 在执行任务的过程中顺手更新
  5. 知识可发现 — Graph View + 双向链接让知识形成网络,不是孤岛

本质上是把 AI 变成了一个"会自动整理笔记的实习生"——它做完事,就会顺手把记录更新好。


待探索的方向

  • 让 AI 在执行 Cron 任务后自动写日志到对应笔记(如 NAS 服务状态更新后自动同步到网络环境文档)
  • 利用 Obsidian 的 Callout 块(> [!NOTE])让 AI 在笔记中标记"待确认"和"已确认"信息,方便人工复核
  • 用 Gitea 的 Pull Request 做笔记变更 Review确保 AI 的写入经人工审批后再合并
  • 用 Web Clipper + AI 分析工作流:将感兴趣的文章剪藏进来,让 AI 做摘要、建立双链,形成真正的 LLM Wiki

有问题或想法?欢迎通过 GitHub Issue 或直接 Telegram 联系我。