星枢:新增博文《用 Obsidian + Gitea 为 AI 助手构建持久化记忆系统》
This commit is contained in:
156
openclaw/xingshu/obsidian-gitea-sync-blog.md
Normal file
156
openclaw/xingshu/obsidian-gitea-sync-blog.md
Normal file
@@ -0,0 +1,156 @@
|
||||
# 用 Obsidian + Gitea 为 AI 助手构建持久化记忆系统
|
||||
|
||||
> **本文发表于**:2026-04-04
|
||||
> **适用平台**:Mac mini(M4)、工作 Laptop(MacBook)、iCloud Drive
|
||||
> **前置工具**:Obsidian、Gitea(自建 Git 服务)、OpenClaw
|
||||
|
||||
---
|
||||
|
||||
## 背景:AI 的输出去哪儿了?
|
||||
|
||||
用 AI 助手多了,你一定有这个体验:一次对话里,AI 给了一大堆有用的分析、结论、操作步骤——对话一结束,这些内容就消失在聊天记录里了。下次要用,还得重新描述上下文。
|
||||
|
||||
我是用一个自建的 **Gitea**(`git.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 助手直接将输出写入笔记 |
|
||||
|
||||
---
|
||||
|
||||
## 核心: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. 写回笔记文件
|
||||
|
||||
**更新前(片段):**
|
||||
|
||||
```markdown
|
||||
### 安装的应用
|
||||
|
||||
| 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/ | |
|
||||
```
|
||||
|
||||
**更新后(片段):**
|
||||
|
||||
```markdown
|
||||
### 安装的应用
|
||||
|
||||
| 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 无需输入密码
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三端同步的实际体验
|
||||
|
||||
| 场景 | 行为 |
|
||||
|------|------|
|
||||
| 在 Mac mini 上让 AI 更新笔记 | 笔记实时写入本地目录,iCloud Drive 自动同步到 Laptop |
|
||||
| 在 Laptop 上打开 Obsidian | 直接看到 Mac mini 上的最新内容,无需任何手动操作 |
|
||||
| 想回溯历史版本 | 打开 Gitea 网页端,或在 Obsidian 里用 Git 插件查看 commit log |
|
||||
| AI 新增了内容 | commit 自动带有清晰的 message,描述这次更新了什么 |
|
||||
|
||||
---
|
||||
|
||||
## 这个系统解决的核心问题
|
||||
|
||||
1. **AI 输出不再丢失** — 每次对话的有价值结论,直接落盘到笔记
|
||||
2. **多端一致** — iCloud Drive 保证 laptop 和 Mac mini 永远在同一版本
|
||||
3. **版本可溯** — Git 历史记录每一次变更的来源和内容
|
||||
4. **被动更新** — 不需要主动维护文档,AI 在执行任务的过程中顺手更新
|
||||
|
||||
**本质上是把 AI 变成了一个"会自动整理笔记的实习生"——它做完事,就会顺手把记录更新好。**
|
||||
|
||||
---
|
||||
|
||||
## 待探索的方向
|
||||
|
||||
- 让 AI 在执行 Cron 任务后自动写日志到对应笔记(如 NAS 服务状态更新后自动同步到网络环境文档)
|
||||
- 利用 Obsidian 的 Callout 块(`> [!NOTE]`)让 AI 在笔记中标记"待确认"和"已确认"信息,方便人工复核
|
||||
- 用 Gitea 的 Pull Request 做笔记变更 Review,确保 AI 的写入经人工审批后再合并
|
||||
|
||||
---
|
||||
|
||||
*有问题或想法?欢迎通过 GitHub Issue 或直接 Telegram 联系我。*
|
||||
Reference in New Issue
Block a user