9.5 KiB
title, source, author, published, created, description, tags
| title | source | author | published | created | description | tags |
|---|---|---|---|---|---|---|
| 养虾日记3:用 Obsidian + Gitea 为 AI 助手构建持久化笔记系统 | shenwei |
养虾日记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 会自动完成以下步骤:
- 读取当前笔记内容
- 找到对应的章节(Ubuntu Server 2 的应用列表)
- 在正确的位置插入新服务条目
- 更新时间戳
- 写回笔记文件
更新前(片段):
### 安装的应用
| Name | Docker? | Note | Internal Address |
| ------------------- | ------- | --------------------------- | ------------------------------- |
| n8n | Yes | 工作流自动化平台 | http://192.168.3.45:5678/ |
| 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/ |
| 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 中做摘要、提取知识点、建立双向链接。
!
2. 图片本地化:保护素材的长期可读性 - 目前正在使用
剪藏进来的文章图片通常是外链,几个月后链接失效,AI 也读不到。Karpathy 的两步方案:
- 设置 → 文件与链接 → 附件存储路径 → 设为当前文件夹下的
attachments/子目录(不要设到全局目录,混在一起不好管理) - 绑定下载快捷键(如
Ctrl+Shift+D)→ 剪藏完按一下快捷键,所有图片自动下载到本地
价值: AI 能直接读取本地图片做分析,不必依赖可能失效的外链。
3. Graph View:发现知识盲区 - 有待加强
Obsidian 的 Graph View(左侧边栏图谱图标,或 Ctrl+G)将所有 Wiki 页面以节点展示,双链关系自动连线。
Karpathy 的两个用法:
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 也不迟。
这个系统解决的核心问题
- AI 输出不再丢失 — 每次对话的有价值结论,直接让agent落盘到笔记
- 多端一致 — iCloud Drive 保证 手机、laptop 和 Mac mini 永远在同一版本
- 版本可溯 — Git 历史记录每一次变更的来源和内容
- 被动更新 — 不需要主动维护文档,AI 在执行任务的过程中顺手更新
- 知识可发现 — Graph View + 双向链接让知识形成网络,不是孤岛
本质上是把 AI 变成了一个"会自动整理笔记的实习生"——它做完事,就会顺手把记录更新好。
待探索的方向
- 让 AI 在执行 Cron 任务后自动写日志到对应笔记(如 NAS 服务状态更新后自动同步到网络环境文档)
- 利用 Obsidian 的 Callout 块(
> [!NOTE])让 AI 在笔记中标记"待确认"和"已确认"信息,方便人工复核 - 用 Gitea 的 Pull Request 做笔记变更 Review,确保 AI 的写入经人工审批后再合并
- 用 Web Clipper + AI 分析工作流:将感兴趣的文章剪藏进来,让 AI 做摘要、建立双链,形成真正的 LLM Wiki
有问题或想法?欢迎联系我。
