Files
nexus/raw/微信公众号/养虾日记3:用 Obsidian + Gitea 为 AI 助手构建持久化笔记系统.md

187 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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. QMDWiki 规模变大后的精准搜索 - 目前正在使用
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
---
*有问题或想法?欢迎联系我。*