feat: openclaw-memory-config skill - 记忆系统配置(Memory Search + Dreaming + Memory Wiki)

This commit is contained in:
OpenClaw Backup Bot
2026-04-21 11:08:32 +08:00
commit cfd76bed9a
2 changed files with 313 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
# openclaw-memory-config
OpenClaw 技能(Skill):一键配置 OpenClaw 记忆系统。
## 简介
本技能帮助用户在 OpenClaw 实例上配置完整的记忆系统,包含三大模块:
1. **Memory Search** — 基于向量的语义记忆搜索
2. **Dreaming** — 夜间自动记忆整理(短期 → 长期)
3. **Memory Wiki** — 结构化知识库(isolated 模式)
## Embedding 服务
默认使用传米科技 trapi 的 embedding 端点:
| 项目 | 值 |
|------|-----|
| Provider | `openai`OpenAI 兼容) |
| Base URL | `https://lapi.transiglobal.com/v1` |
| 模型 | `bge-large-zh-v1.5` |
复用 trapi API Key,无需单独配置 embedding provider。
## 使用方式
### 安装技能
```bash
openclaw skill install openclaw-memory-config.skill
```
### 配置
在 OpenClaw 对话中说:
> "配置记忆"
技能会引导完成:
1. **Memory Search**:配置 embedding → 构建索引 → 测试搜索
2. **Dreaming**:启用夜间记忆整理(每天 4:30 自动运行)
3. **Memory Wiki**:确认内容目录 → 初始化 vault → 导入内容 → 创建每日维护定时任务
### 安全说明
- API Key 必须由用户提供,技能中不存储默认密钥
- Memory Wiki 默认使用 isolated 模式,数据完全独立
- 所有配置通过 `gateway config.patch` 标准方式写入
## 许可证
MIT
+261
View File
@@ -0,0 +1,261 @@
---
name: openclaw-memory-config
description: |
配置 OpenClaw 记忆系统:Memory Search(向量搜索)、Dreaming(记忆整理)、Memory Wiki(知识库)。触发词:"配置记忆"、"配置 memory"、"memory search"、"配置搜索"、"配置 dreaming"、"配置梦境"、"配置 wiki"、"memory wiki"、"记忆配置"。使用本机已有 trapi embedding 端点,为用户提供完整的记忆系统初始化流程。
---
# OpenClaw 记忆系统配置
一键配置 OpenClaw 记忆系统,包含 Memory Search(向量语义搜索)、Dreaming(夜间记忆整理)、Memory Wiki(知识库)三大模块。
## Embedding 服务信息
- **Provider**`openai`OpenAI 兼容格式)
- **Base URL**`https://lapi.transiglobal.com/v1`
- **默认模型**`bge-large-zh-v1.5`
- **说明**:复用 trapi 的 API Key,不需要单独的 embedding provider
## 前置条件
1. 用户**必须提供 trapi API Key**(与 trapi provider 使用同一个 Key
2. OpenClaw 已安装并运行
3. 本机配置文件为 `openclaw.json`,使用 `gateway config.patch` 写入
---
## 模块 1Memory Search(语义记忆搜索)
### 步骤 1:配置 Embedding
向用户索要 trapi API Key。未提供则终止流程。
使用 `gateway config.patch` 配置 `agents.defaults.memorySearch`
```json
{
"agents": {
"defaults": {
"memorySearch": {
"provider": "openai",
"model": "bge-large-zh-v1.5",
"remote": {
"baseUrl": "https://lapi.transiglobal.com/v1",
"apiKey": "<用户提供的API_KEY>"
},
"chunking": {
"tokens": 200,
"overlap": 30
},
"query": {
"maxResults": 10,
"minScore": 0.35,
"hybrid": {
"enabled": true,
"vectorWeight": 0.85,
"textWeight": 0.15,
"candidateMultiplier": 8,
"mmr": {
"enabled": true,
"lambda": 0.5
},
"temporalDecay": {
"enabled": true,
"halfLifeDays": 30
}
}
}
}
}
}
}
```
### 步骤 2:构建索引
配置写入后,立即执行:
```bash
openclaw memory index --force
```
### 步骤 3:测试搜索
索引构建完成后,用 `memory_search` 测试是否生效:
1. 从用户的 memory 目录中找到已有内容的关键词
2. 执行 `memory_search` 搜索
3. 确认能返回相关结果,报告搜索质量
**测试关键词示例**(根据实际记忆内容选择):
- 搜索 "传米科技" → 应找到公司相关信息
- 搜索 "Tailscale" → 应找到网络配置信息
- 搜索最近的日期 → 应找到当天的日记
### 验证报告
| 测试项 | 关键词 | 结果 |
|--------|--------|------|
| 语义搜索 | <实际关键词> | ✅/❌ |
| 索引状态 | `openclaw memory status` | ✅/❌ |
---
## 模块 2Dreaming(夜间记忆整理)
### 配置
使用 `gateway config.patch` 启用 dreaming
```json
{
"plugins": {
"entries": {
"memory-core": {
"enabled": true,
"config": {
"dreaming": {
"enabled": true,
"frequency": "30 4 * * *",
"timezone": "Asia/Shanghai"
}
}
}
}
}
}
```
- **频率**:每天凌晨 4:30(在安全巡检和系统升级之后)
- **三个阶段**:Light(排序)→ REM(反思)→ Deep(提升到长期记忆)
- **输出**`memory/dreaming/` 下的阶段报告 + `DREAMS.md` 日记
- **长期记忆**:Deep 阶段会将高价值内容写入 `MEMORY.md`
### 验证
运行 `/dreaming status` 确认 dreaming 已启用并显示下次执行时间。
---
## 模块 3Memory Wiki(知识库)
### 前置确认
**必须先向用户确认**:是否有需要放入 Wiki 的内容目录。
- **有**:继续配置
- **没有**:跳过此模块,告知用户后续可随时配置
### 步骤 1:配置 Wiki
使用 `gateway config.patch` 启用 memory-wikiisolated 模式):
```json
{
"plugins": {
"entries": {
"memory-wiki": {
"enabled": true,
"config": {
"vaultMode": "isolated",
"vault": {
"path": "~/.openclaw/wiki/main",
"renderMode": "obsidian"
},
"bridge": {
"enabled": false,
"readMemoryArtifacts": true,
"indexDreamReports": true,
"indexDailyNotes": true,
"indexMemoryRoot": true,
"followMemoryEvents": true
},
"search": {
"backend": "shared",
"corpus": "all"
},
"context": {
"includeCompiledDigestPrompt": false
},
"render": {
"preserveHumanBlocks": true,
"createBacklinks": true,
"createDashboards": true
},
"ingest": {
"autoCompile": true,
"maxConcurrentJobs": 1
},
"obsidian": {
"enabled": true
}
}
}
}
}
}
```
### 步骤 2:导入内容
用户提供内容目录后,使用 CLI 导入:
```bash
openclaw wiki init
openclaw wiki ingest <用户提供的内容目录>
openclaw wiki compile
```
### 步骤 3:创建每日维护定时任务
创建定时任务(参考已有配置),每天凌晨 5:00 执行 Wiki 维护:
```
cron add:
name: "Wiki 每日维护(Sources 同步 + Lint"
schedule: "0 5 * * *" (Asia/Shanghai)
sessionTarget: "isolated"
payload:
kind: "agentTurn"
message: |
执行每日 Wiki 维护任务:
1. 执行 wiki_lint 检查
2. 自动修复可修复的问题(缺失 frontmatter、匹配 sourceIds
3. 无法自动修复的问题(broken wikilinks)跳过
4. 再跑一次 wiki_lint 确认
5. 汇报结果
toolsAllow: ["exec", "read", "edit", "write", "wiki_lint", "wiki_apply", "wiki_search", "wiki_get"]
timeoutSeconds: 600
delivery:
mode: "announce"
channel: "feishu"
```
### 验证
- `wiki_status` 确认 vault 模式和健康状态
- `wiki_search` 测试能否搜到导入的内容
- `wiki_lint` 检查结构完整性
---
## 完整验证报告
全部模块配置完成后,输出汇总表:
| 模块 | 配置项 | 状态 |
|------|--------|------|
| Memory Search | Embedding + 索引 | ✅/❌ |
| Memory Search | 语义搜索测试 | ✅/❌ |
| Dreaming | 启用 + cron | ✅/❌ |
| Memory Wiki | Vault 初始化 | ✅/❌(可能跳过) |
| Memory Wiki | 内容导入 | ✅/❌(可能跳过) |
| Memory Wiki | 定时维护任务 | ✅/❌(可能跳过) |
## 故障排查
- **索引为空**`openclaw memory index --force` 强制重建
- **只有关键词匹配**embedding provider 未配好,检查 API Key 和网络
- **CJK 搜索失败**`openclaw memory index --force` 重建 FTS
- **Dreaming 未运行**:检查 `/dreaming status` 和 cron 任务
- **Wiki bridge 无数据**isolated 模式下 bridge 关闭是正常的
- **Wiki ingest 失败**:确认目录路径和文件权限