OpenClaw + Obsidian Vault 永久记忆体系
用 Obsidian 风格的本地知识库增强 OpenClaw 的记忆能力,实现双通道检索 + 自动归档。
兼容平台:Linux / macOS / Windows(Node.js 跨平台,无需 bash)
⚡ 一键初始化(首次使用必读)
用户只需说:
"帮我搭建 obsidian 记忆体系" "配置 openclaw vault 知识库" "启用双通道记忆"
AI 收到后,自动按以下步骤完成所有配置,无需用户手动操作:
Step 1:确认 Vault 路径
询问用户 Obsidian Vault 的位置。如果用户不知道,使用默认路径:
| 平台 | 默认路径 |
|---|---|
| Linux / macOS | $HOME/.obsidian-vault |
| Windows | %USERPROFILE%\.obsidian-vault 或 WSL 下 $HOME/.obsidian-vault |
如果用户的 Vault 已经存在(比如已有的 Obsidian 库),直接使用该路径。
Step 2:创建目录结构
VAULT="<用户确认的路径>"
mkdir -p "$VAULT/notes/areas" "$VAULT/notes/projects" "$VAULT/notes/daily"
mkdir -p "$VAULT/references/ai-chats" "$VAULT/references/web-clips" "$VAULT/references/books"
mkdir -p "$VAULT/templates" "$VAULT/scripts"
Step 3:部署脚本
将技能自带的脚本复制到 Vault:
# 技能安装后的 scripts 目录(OpenClaw 自动解压到 skills 下)
SKILL_DIR="$(dirname "$(dirname "$0")")" # 技能根目录
cp "$SKILL_DIR/scripts/obsidian-search.js" "$VAULT/scripts/"
cp "$SKILL_DIR/scripts/obsidian-links.js" "$VAULT/scripts/"
Step 4:创建初始永久笔记
在 notes/areas/ 下创建以下笔记(参考 references/templates.md 中的模板):
| 笔记文件 | 内容 |
|---|---|
user-preferences.md | 从当前 AGENTS.md / USER.md / SOUL.md 中提取用户偏好 |
system-config.md | 从当前 MEMORY.md 中提取系统配置信息 |
installed-skills.md | 列出当前已安装的技能 |
known-issues.md | 从当前 MEMORY.md 中提取已知问题 |
每篇笔记必须包含:
- 至少一个
[[双向链接]]到其他笔记 - 标签(如
#永久笔记)
Step 5:更新 AGENTS.md 记忆规则
在 AGENTS.md 中追加或替换记忆规则部分为以下内容:
## 记忆规则
### 检索机制(双通道,按需触发)
**不是会话开始盲搜,而是根据用户问题按需检索:**
1. **先检索 Obsidian Vault**:提取用户问题中的关键词,执行
`exec node <VAULT路径>/scripts/obsidian-search.js <关键词>`
2. **再检索本地 memory**:`memory_search` 最近 3 天记忆
3. 两步结果合并,优先使用 Vault 中的知识内容
**触发时机**:
- 用户提出知识性、概念性问题时
- 用户询问历史决策、偏好、配置时
- 任务完成后需要记录结论时
- 每次重要对话结束时(对话存档)
### 写入机制(双写 + 去重)
**任务完成后,同时写入两个位置:**
1. **Obsidian Vault**:写入对应分类笔记
- 知识/概念 → notes/areas/<主题>.md
- 项目进展 → notes/projects/<项目>.md
- 每日思考 → notes/daily/YYYY-MM-DD.md
2. **本地 memory**:写入 memory/YYYY-MM-DD.md,更新 MEMORY.md 索引
**写入前必须去重**:先用检索检查 Vault 和 memory 是否已有类似记录,有则合并更新,不重复堆积。
### 笔记规范(Obsidian 风格)
- **双向链接**:新建笔记时至少链接到 1 个已有笔记([[笔记名]]),避免孤立
- **标签**:每篇笔记必须有标签(#永久笔记、#项目/xxx、#daily 等)
- **原子化**:一个笔记只记录一个主题,不混杂
- **上下文**:写结论时不写过程,只写最终答案和关键依据
### 对话存档
每次重要对话结束时,将摘要存入 references/ai-chats/YYYY-MM-DD-slug.md:
- 提取关键结论、决策、待跟进事项
- 不复制原始对话,只写加工后的摘要
- 加上标签和双向链接
### 维护规则
- 定期用 node <VAULT路径>/scripts/obsidian-links.js --orphans 检查孤立笔记,补充链接
- 每周 cron 自动归纳 7 天笔记,去重合并到永久笔记
⚠️ 替换
<VAULT路径>为 Step 1 中确认的实际路径。
Step 6:精简 MEMORY.md
将 MEMORY.md 精简为以下内容(详细内容写入 Vault):
# 记忆索引
> 轻量索引,详细内容见 Obsidian Vault(<VAULT路径>)
## 数据存储
- **Obsidian Vault**: <VAULT路径>
- **本地 memory**: memory/ 目录(近3天热记忆)
- **检索顺序**: 先 Vault → 再 memory → 合并结果
Step 7:配置定时归档(询问用户)
询问用户是否需要自动归档:
"是否需要配置自动记忆归档?每天凌晨自动整理对话记录到 Vault。"
如果用户同意,创建两个 cron 任务:
每日归档:
openclaw cron add \
--name "daily-memory-archive" \
--cron "0 2 * * *" \
--tz "Asia/Shanghai" \
--timeout-seconds 120 \
--session "isolated" \
--no-deliver \
--message "每日记忆归档:总结过去24小时会话,写入 Vault/notes/daily/YYYY-MM-DD.md 和 memory/YYYY-MM-DD.md"
每周归纳:
openclaw cron add \
--name "weekly-memory-summary" \
--cron "0 3 * * 1" \
--tz "Asia/Shanghai" \
--timeout-seconds 180 \
--session "isolated" \
--no-deliver \
--message "每周记忆归纳:汇总7天笔记,去重合并写入 Vault/notes/areas/ 永久笔记"
Step 8:完成提示
初始化完成后,告知用户:
✅ Obsidian 记忆体系已搭建完成!
Vault 路径:<路径>
脚本位置:<路径>/scripts/
笔记目录:<路径>/notes/
对话存档:<路径>/references/ai-chats/
现在你可以:
- 直接问我任何问题,我会自动检索 Vault 中的知识
- 任务完成后我会自动记录到 Vault
- 重要对话结束我会自动存档
手动检索:告诉我"搜索 Vault 中的 xxx"
日常使用
配置完成后,用户正常对话即可,AI 会自动:
| 场景 | AI 行为 |
|---|---|
| 知识性问题 | 自动搜索 Vault + memory,合并回答 |
| 任务完成 | 自动写入 Vault 对应笔记 + memory |
| 重要对话结束 | 自动存档到 references/ai-chats/ |
| 用户说"搜索 xxx" | 手动触发 Vault 检索 |
检索命令参考
# 基础检索
node <VAULT>/scripts/obsidian-search.js "关键词"
# 自定义 Vault 路径
OBSIDIAN_VAULT=/path/to/vault node <VAULT>/scripts/obsidian-search.js "关键词"
# 多关键词(AND 语义)
node <VAULT>/scripts/obsidian-search.js "关键词1" "关键词2"
# 调整结果数和上下文
node <VAULT>/scripts/obsidian-search.js "关键词" --limit 5 --context 3
# 链接图谱
node <VAULT>/scripts/obsidian-links.js
# 孤立笔记检测
node <VAULT>/scripts/obsidian-links.js --orphans
笔记规范
双向链接
## 关联笔记
- [[系统配置]]
- [[用户偏好]]
标签
#永久笔记 #系统配置 #openclaw
笔记类型
| 类型 | 目录 | 说明 |
|---|---|---|
| 永久笔记 | notes/areas/ | 经过加工的核心知识 |
| 项目笔记 | notes/projects/ | 项目相关记录 |
| 每日笔记 | notes/daily/ | 每日思考摘要 |
| 对话存档 | references/ai-chats/ | AI 对话摘要(只存结论) |
| 文献笔记 | references/ | 外部资料加工 |