---
title: 养虾日记3：用 Obsidian + Gitea 为 AI 助手构建持久化笔记系统
source:
author: shenwei
published:
created:
description:
tags: []
---

# 养虾日记3：用 Obsidian + Gitea 为 AI 助手构建持久化笔记系统

## 背景：Agent的输出去哪儿了？

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

我是用一个自建的 **Gitea**结合 **Obsidian** 笔记管理工具来解决这个问题的。OpenClaw Agent 的输出直接写入 Obsidian 笔记，我的工作笔记在 Mac mini、工作的Laptop、iCloud Drive 三端同步，而所有历史版本都在 Gitea 中完整保留。这样我可以直接在laptop上，或者是我的iPhone 手机端的Obsidian直接看到Agent最新输出的内容。

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

---
## 笔记目录结构：每个 Agent 都有专属 Archive

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

```
/Users/weishen/Workspace/nexus/
├── openclaw/
│   ├── knowledgebase/       ← 知识库（经过整理的公共知识）
│   ├── xingshu/             ← 星枢专属笔记
│   ├── xinghui/             ← 星辉专属笔记
│   ├── xingyao/             ← 星曜专属笔记
└── …（其他 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/
```

---

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

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

这篇文章记录了 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                | 
| ------------------- | ------- | --------------------------- | ------------------------------- | 
| n8n                 | Yes     | 工作流自动化平台               | http://192.168.3.45:5678/       | 
| n8n_postgres        | Yes     | n8n PostgreSQL 数据库         | http://192.168.3.45:5432/       | 
```

**更新后（片段）：**

```markdown
### 安装的应用

| Name                    | Docker? | Note                        | Internal Address                | 
| ----------------------- | ------- | --------------------------- | ------------------------------- | 
| n8n                     | Yes     | 工作流自动化平台               | http://192.168.3.45:5678/       | 
| 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 的权限体系天然支持

---

## 进阶补充：Karpathy LLM Wiki 思路的实践融合

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

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

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

### 1. Obsidian Web Clipper：快速采集外部素材 - 目前正在使用

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

**用途：** 当我在网上看到有价值的文章想让 AI 分析，直接剪藏进 `openclaw/knowledgebase/`，AI 读完后可以直接在 Wiki 中做摘要、提取知识点、建立双向链接。
![[IMG-20260409094504767.png]]
### 2. 图片本地化：保护素材的长期可读性 - 目前正在使用

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

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

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

### 3. Graph View：发现知识盲区 - 有待加强

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

Karpathy 的两个用法：

- **健康检查**：没有任何页面链接指向它 → 说明是"孤岛页面"，需要让 AI 补上交叉引用
- **发现盲区**：某个概念被很多页面提到但自己还没有独立页面 → 图谱里显示为灰色幽灵节点，提醒应该为它建一个专页
![[IMG-20260409094555923.png]]
### 4. Git 自动同步：版本管理是必选项 - 目前正在使用

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

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

### 5. QMD：Wiki 规模变大后的精准搜索 - 目前正在使用

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

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

---

## 这个系统解决的核心问题

1. **AI 输出不再丢失** — 每次对话的有价值结论，直接让agent落盘到笔记
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

---

*有问题或想法？欢迎联系我。*
