概述 链接到标题
本文介绍如何配置 OpenClaw AI Agent 来管理 Obsidian 笔记,实现多设备实时同步和 AI 辅助笔记管理。
架构 链接到标题
flowchart TB
subgraph "本地设备 (Mac Mini)"
A["OpenClaw
AI Agent"] -->|obsidian CLI| B["Obsidian CLI
~/Documents/vault"] A -.->|skills| C["obsidian-skills"] end B -.->|"LiveSync"| D[("CouchDB
couchdb:5984")] E["其他设备"] -.->|"LiveSync"| D style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px style B fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px style C fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px style D fill:#fff3e0,stroke:#e65100,stroke-width:2px style E fill:#fce4ec,stroke:#c62828,stroke-width:2px
AI Agent"] -->|obsidian CLI| B["Obsidian CLI
~/Documents/vault"] A -.->|skills| C["obsidian-skills"] end B -.->|"LiveSync"| D[("CouchDB
couchdb:5984")] E["其他设备"] -.->|"LiveSync"| D style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px style B fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px style C fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px style D fill:#fff3e0,stroke:#e65100,stroke-width:2px style E fill:#fce4ec,stroke:#c62828,stroke-width:2px
架构说明:
- OpenClaw:AI Agent Gateway,通过自然语言管理笔记
- Obsidian CLI:命令行工具,依赖 Obsidian 图形界面
- Vault:~/Documents/
- LiveSync + CouchDB:多设备实时同步方案
- obsidian-skills:让 AI 理解如何正确使用 Obsidian 语法的技能包
准备工作 链接到标题
Obsidian CLI 链接到标题
Obsidian 提供官方 CLI 工具,需要配合 Obsidian 图形界面使用。
安装方式:在 Obsidian 中启用 CLI
- 打开 Obsidian → 设置 → 第三方插件 → 社区插件市场
- 安装 Obsidian CLI (obsidianmd) 插件
- 启用插件后,终端即可使用
obsidian命令
依赖条件:
- Obsidian 应用必须处于打开状态(前台或后台均可)
- 允许 CLI 连接:首次使用时会提示授权
Vault 路径:~/Documents/
Obsidian LiveSync 链接到标题
LiveSync 插件实现多设备间的增量实时同步,优于文件级同步方案。
为什么选择 LiveSync 而非 Remotely Save:
| 特性 | LiveSync | Remotely Save |
|---|---|---|
| 同步方式 | 数据库增量同步 | 文件级同步 |
| 实时性 | 接近实时 | 手动/定时 |
| 冲突处理 | 自动解决 | 需手动处理 |
| 离线支持 | 支持 | 支持 |
CouchDB 服务器(已配置):
- 地址:http://
:5984 - 账号:
- 密码:
安装步骤:
- Obsidian → 设置 → 第三方插件 → 社区插件市场
- 搜索 Self-hosted LiveSync 并安装
- 启用插件,按需配置:
- Database: CouchDB
- URI: http://
:5984 - Username:
- Password:
- 启用同步
OpenClaw Skills 安装 链接到标题
安装步骤 链接到标题
在
git clone https://github.com/kepano/obsidian-skills.git ~/.opencode/skills/obsidian-skills
目录结构 链接到标题
安装后结构:
~/.opencode/skills/obsidian-skills/skills/
├── obsidian-markdown/ # Obsidian 语法的详细说明
├── obsidian-cli/ # CLI 命令参考
├── obsidian-bases/ # Bases 视图编辑
├── json-canvas/ # Canvas 编辑
└── defuddle/ # 网页内容提取
配置已存在 链接到标题
~/.openclaw/openclaw.json 已包含 skills 配置:
"skills": {
"load": {
"extraDirs": [
"~/.opencode/skills/obsidian-skills/skills"
]
}
}
验证安装 链接到标题
重启 OpenClaw 后,可通过以下方式验证:
# 询问 OpenClaw 可用的 skills
/list skills
目录结构 链接到标题
Vault 结构:~/Documents/
<vault-name>/
├── Daily/ # 每日日记(Obsidian Daily Notes 插件自动生成)
├── Inbox/ # 收件箱,日常记录
├── Knowledge/ # 知识沉淀
├── Archive/ # 归档(按 yyyy/mm/ 分层)
├── Bases/ # Obsidian Bases 视图
└── *.md # 根目录长期笔记
目录说明:
| 目录 | 用途 | 示例 |
|---|---|---|
| Daily | 每日日记 | 2026-05-16.md |
| Inbox | 临时记录 | 2026-05-16 会议记录.md |
| Knowledge | 知识库 | 算法笔记.md |
| Archive | 归档 | 2026/05/旧笔记.md |
使用流程 链接到标题
日常笔记创建 链接到标题
通过 OpenClaw 创建笔记:
创建一条笔记,标题「2026-05-16 工作记录」,内容是今天的工作进展
OpenClaw 会执行:
obsidian vault=<vault-name> create name="Inbox/2026-05-16 工作记录" content="..." silent
搜索笔记 链接到标题
搜索包含「项目进度」的笔记
obsidian vault=<vault-name> search query="项目进度" limit=10
读取笔记 链接到标题
查看「项目笔记」的内容
obsidian vault=<vault-name> read file="项目笔记"
归档流程 链接到标题
当 Inbox 中的笔记需要归档时:
-
设置
archived: true属性:把「旧笔记.md」的 archived 属性设为 trueobsidian vault=<vault-name> property:set name="archived" value="true" file="Inbox/旧笔记.md" -
OpenClaw 自动移动到 Archive 目录:
将「旧笔记.md」移动到 Archive/2026/05/ 目录mv ~/Documents/<vault-name>/Inbox/旧笔记.md ~/Documents/<vault-name>/Archive/2026/05/旧笔记.md
日常维护 链接到标题
- Inbox:收件箱,仅保留待审核笔记
- 审核后:设置
archived: true,OpenClaw 自动归档 - Knowledge:长期知识积累,无需频繁整理
命令参考 链接到标题
基础命令 链接到标题
# 读取笔记
obsidian vault=<vault-name> read file="笔记名"
# 创建笔记
obsidian vault=<vault-name> create name="路径/标题" content="# 内容" silent
# 追加内容
obsidian vault=<vault-name> append file="笔记名" content="追加内容"
# 搜索
obsidian vault=<vault-name> search query="关键词" limit=10
日记命令 链接到标题
# 读取今日日记
obsidian vault=<vault-name> daily:read
# 追加到今日日记
obsidian vault=<vault-name> daily:append content="- [ ] 新任务"
属性命令 链接到标题
# 设置属性
obsidian vault=<vault-name> property:set name="archived" value="true" file="笔记名"
# 读取属性
obsidian vault=<vault-name> property:get name="date" file="笔记名"
开发命令 链接到标题
# 重载插件
obsidian vault=<vault-name> plugin:reload id=插件ID
# 查看错误
obsidian vault=<vault-name> dev:errors
# 截图
obsidian vault=<vault-name> dev:screenshot path=screenshot.png