微信公众号文章:养虾日记3
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 615 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
@@ -1,46 +1,14 @@
|
||||
# 用 Obsidian + Gitea 为 AI 助手构建持久化记忆系统
|
||||
# 养虾日记3:用 Obsidian + Gitea 为 AI 助手构建持久化笔记系统
|
||||
|
||||
> **本文发表于**:2026-04-04
|
||||
> **更新于**:2026-04-09
|
||||
> **适用平台**:Mac mini(M4)、工作 Laptop(MacBook)、iCloud Drive
|
||||
> **前置工具**:Obsidian、Gitea(自建 Git 服务)、OpenClaw
|
||||
|
||||
---
|
||||
|
||||
## 背景:AI 的输出去哪儿了?
|
||||
## 背景:Agent的输出去哪儿了?
|
||||
|
||||
用 AI 助手多了,你一定有这个体验:一次对话里,AI 给了一大堆有用的分析、结论、操作步骤——对话一结束,这些内容就消失在聊天记录里了。下次要用,还得重新描述上下文。
|
||||
|
||||
我是用一个自建的 **Gitea**(`git.ishenwei.online`)结合 **Obsidian** 来解决这个问题的。AI 的输出直接写入 Obsidian 笔记,我的工作笔记在 Mac mini、工作 Laptop、iCloud Drive 三端同步,而所有历史版本都在 Gitea 中完整保留。
|
||||
我是用一个自建的 **Gitea**结合 **Obsidian** 笔记管理工具来解决这个问题的。OpenClaw Agent 的输出直接写入 Obsidian 笔记,我的工作笔记在 Mac mini、工作的Laptop、iCloud Drive 三端同步,而所有历史版本都在 Gitea 中完整保留。这样我可以直接在laptop上,或者是我的iPhone 手机端的Obsidian直接看到Agent最新输出的内容。
|
||||
|
||||
**一句话概括:用 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 笔记库采用分层结构:
|
||||
@@ -52,19 +20,15 @@ Obsidian 笔记库(~/Workspace/nexus)
|
||||
│ ├── xingshu/ ← 星枢专属笔记
|
||||
│ ├── xinghui/ ← 星辉专属笔记
|
||||
│ ├── xingyao/ ← 星曜专属笔记
|
||||
│ ├── xingjiang/ ← 星疆专属笔记
|
||||
│ ├── yunce/ ← 云策专属笔记
|
||||
│ ├── yunhan/ ← 云寒专属笔记
|
||||
│ └── fengchi/ ← 风驰专属笔记
|
||||
└── …(其他 Obsidian 笔记)
|
||||
```
|
||||
|
||||
**目录分工规则:**
|
||||
|
||||
| 目录 | 用途 | 示例 |
|
||||
|------|------|------|
|
||||
| `openclaw/knowledgebase/` | 经过整理、跨 Agent 共用的知识 | 工具评测、架构决策、最佳实践 |
|
||||
| `openclaw/<agentId>/` | 单一 Agent 的私有笔记 | Agent 专属思考、工作日志、任务记录 |
|
||||
| 目录 | 用途 | 示例 |
|
||||
| ------------------------- | ------------------ | ------------------------- |
|
||||
| `openclaw/knowledgebase/` | 经过整理、跨 Agent 共用的知识 | 工具评测、架构决策、最佳实践 |
|
||||
| `openclaw/<agentId>/` | 单一 Agent 的私有笔记 | Agent 专属思考、工作日志、任务记录、内容输出 |
|
||||
|
||||
**核心原则:** 研究过程写入 **Agent Archive**;经过验证、可复用的知识沉淀到 **Knowledge Base**。
|
||||
|
||||
@@ -94,8 +58,6 @@ OpenClaw 提供了一个 obsidian skill,功能覆盖笔记的读取、搜索
|
||||
|
||||
举一个我每天都在用的例子。我有一篇笔记记录了我的家庭网络环境概览:
|
||||
|
||||
**`Technical/Home Office/🟢家庭网络环境概览_2026-04-03.md`**
|
||||
|
||||
这篇文章记录了 Mac mini、NAS、两台 Ubuntu 服务器上所有运行的服务、FRP 端口映射、域名映射表。每次我新增一个服务(比如部署了新的 Docker 容器),只需要告诉 AI 助手:
|
||||
|
||||
> "帮我更新网络环境概览,把新部署的 n8n-workflows-docs 服务加进去"
|
||||
@@ -113,10 +75,10 @@ OpenClaw 会自动完成以下步骤:
|
||||
```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/ | |
|
||||
| Name | Docker? | Note | Internal Address |
|
||||
| ------------------- | ------- | --------------------------- | ------------------------------- |
|
||||
| n8n | Yes | 工作流自动化平台 | http://192.168.3.45:5678/ |
|
||||
| n8n_postgres | Yes | n8n PostgreSQL 数据库 | http://192.168.3.45:5432/ |
|
||||
```
|
||||
|
||||
**更新后(片段):**
|
||||
@@ -124,17 +86,16 @@ OpenClaw 会自动完成以下步骤:
|
||||
```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/ | |
|
||||
| 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。这意味着:
|
||||
@@ -143,31 +104,23 @@ OpenClaw 会自动完成以下步骤:
|
||||
- **变更有据可查** — "这个端口是什么时候改的?" → 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 LLM Wiki 思路的实践融合
|
||||
|
||||
**核心洞察(来自 Karpathy 2026-03 分享):** RAG 模式是"每次从零检索",知识不积累;而 LLM Wiki 是让 AI **增量构建和维护一个持久化的 Wiki**,页面之间互相链接,知识越积越厚。
|
||||
|
||||
我的系统天然契合这个思路——AI 在执行任务的过程中**顺手维护链接、更新摘要、标记新旧矛盾**,而不是被动等着被查询。
|
||||
我的系统天然契合这个思路——AI 在执行任务的过程中**顺手维护链接、更新摘要、添加Tag、标记新旧矛盾**,而不是被动等着被查询。
|
||||
|
||||
以下是几个可进一步融入实践的要点:
|
||||
|
||||
### 1. Obsidian Web Clipper:快速采集外部素材
|
||||
### 1. Obsidian Web Clipper:快速采集外部素材 - 目前正在使用
|
||||
|
||||
Karpathy 推荐用浏览器插件 **Obsidian Web Clipper** 随时采集网页文章。安装后,打开任意网页点击扩展图标即可将文章保存为 Markdown 到 Obsidian,配合图片本地化(见下),素材采集效率极高。
|
||||
|
||||
**用途:** 当我在网上看到有价值的文章想让 AI 分析,直接剪藏进 `openclaw/knowledgebase/`,AI 读完后可以直接在 Wiki 中做摘要、提取知识点、建立双向链接。
|
||||
|
||||
### 2. 图片本地化:保护素材的长期可读性
|
||||
![[IMG-20260409094504767.png]]
|
||||
### 2. 图片本地化:保护素材的长期可读性 - 目前正在使用
|
||||
|
||||
剪藏进来的文章图片通常是外链,几个月后链接失效,AI 也读不到。Karpathy 的两步方案:
|
||||
|
||||
@@ -176,7 +129,7 @@ Karpathy 推荐用浏览器插件 **Obsidian Web Clipper** 随时采集网页文
|
||||
|
||||
**价值:** AI 能直接读取本地图片做分析,不必依赖可能失效的外链。
|
||||
|
||||
### 3. Graph View:发现知识盲区
|
||||
### 3. Graph View:发现知识盲区 - 有待加强
|
||||
|
||||
Obsidian 的 **Graph View**(左侧边栏图谱图标,或 `Ctrl+G`)将所有 Wiki 页面以节点展示,双链关系自动连线。
|
||||
|
||||
@@ -184,14 +137,14 @@ Karpathy 的两个用法:
|
||||
|
||||
- **健康检查**:没有任何页面链接指向它 → 说明是"孤岛页面",需要让 AI 补上交叉引用
|
||||
- **发现盲区**:某个概念被很多页面提到但自己还没有独立页面 → 图谱里显示为灰色幽灵节点,提醒应该为它建一个专页
|
||||
|
||||
### 4. Git 自动同步:版本管理是必选项
|
||||
![[IMG-20260409094555923.png]]
|
||||
### 4. Git 自动同步:版本管理是必选项 - 目前正在使用
|
||||
|
||||
**Obsidian Git 插件**(社区插件市场安装)可设为 **Auto commit-and-sync interval**(如 10 分钟),插件自动 commit + push,完全不用手动操作。
|
||||
|
||||
Karpathy 的判断很到位:**AI 批量改文件的能力越强,你越需要版本管理来兜底。** 我们的 Gitea 方案同样实现了这一点,而且因为是自建服务,私有数据不出内网。
|
||||
|
||||
### 5. QMD:Wiki 规模变大后的精准搜索
|
||||
### 5. QMD:Wiki 规模变大后的精准搜索 - 目前正在使用
|
||||
|
||||
Wiki 规模小的时候,一个 `index.md` 目录文件足够 AI 导航。页面多了之后,Karpathy 推荐 **QMD**(`github.com/tobi/qmd`),一个完全本地运行的 Markdown 搜索引擎。
|
||||
|
||||
@@ -201,8 +154,8 @@ Wiki 规模小的时候,一个 `index.md` 目录文件足够 AI 导航。页
|
||||
|
||||
## 这个系统解决的核心问题
|
||||
|
||||
1. **AI 输出不再丢失** — 每次对话的有价值结论,直接落盘到笔记
|
||||
2. **多端一致** — iCloud Drive 保证 laptop 和 Mac mini 永远在同一版本
|
||||
1. **AI 输出不再丢失** — 每次对话的有价值结论,直接让agent落盘到笔记
|
||||
2. **多端一致** — iCloud Drive 保证 手机、laptop 和 Mac mini 永远在同一版本
|
||||
3. **版本可溯** — Git 历史记录每一次变更的来源和内容
|
||||
4. **被动更新** — 不需要主动维护文档,AI 在执行任务的过程中顺手更新
|
||||
5. **知识可发现** — Graph View + 双向链接让知识形成网络,不是孤岛
|
||||
@@ -220,4 +173,4 @@ Wiki 规模小的时候,一个 `index.md` 目录文件足够 AI 导航。页
|
||||
|
||||
---
|
||||
|
||||
*有问题或想法?欢迎通过 GitHub Issue 或直接 Telegram 联系我。*
|
||||
*有问题或想法?欢迎联系我。*
|
||||
Reference in New Issue
Block a user