Install
openclaw skills install depth-memory深层记忆系统。处理知识积累、技能经验、长期档案类任务时触发。提供关键字检索、记忆存取、索引更新功能。
openclaw skills install depth-memory分层记忆体系的第二层,负责结构化的知识与技能沉淀。日常高频信息存在 memory/ 和 MEMORY.md,遇到需要长期记住的概念、用法、经验时使用本层。
⚠️ 区分 memory_search 和 deep-memory:
memory_search(系统内置工具)只搜索MEMORY.md和memory/(日常记忆层)。 查询技术/工具类内容(如 "@xxx 怎么用")→ 走下面的决策树,先查 deep-memory。 不要用memory_search替代 deep-memory 查询流程。
用户问:"我的 xxx 怎么用" / "之前那个 xxx 是在哪个文件"
│
├─→ 检查 MEMORY.md / memory/(日常记忆)
│ └─→ 有 → 返回,无 → 继续
│
├─→ 检查 DEEP-MEMORY.md 索引(关键字匹配)
│ └─→ 命中 → 读取对应 deep-memory/*.md
│
└─→ 互联网搜索
什么时候用 deep-memory:
什么时候用 MEMORY/memory:
❌ 不要用 memory_search 查 deep-memory:
memory_search 是系统工具,只搜 MEMORY.md 和 memory/,不搜 DEEP-MEMORY.md 索引。
即使搜索结果为空,也不代表 deep-memory 里没有对应内容。
正确做法:手动读取 DEEP-MEMORY.md(索引表),匹配 keywords,再读对应文件。
❌ 不要跳过索引表直接搜记忆文件:
deep-memory/ 下的文件没有全文索引,必须通过 DEEP-MEMORY.md 索引表定位。直接遍历文件是无效的。
skill 安装后需要运行初始化脚本,才能在workspace创建 DEEP-MEMORY.md 和 deep-memory/ 目录:
node skills/depth-memory/scripts/setup.mjs
初始化脚本会自动:
deep-memory/ 目录DEEP-MEMORY.md 索引(若不存在)验证: 初始化完成后,搜索关键字 深层记忆系统验收测试 或 验收测试,应能命中测试记录。
deep-memory/ ← 记忆文件目录(setup.mjs 创建)
2026-04-27 13_06_20.md ← 格式:YYYY-MM-DD HH_MM_SS.md
2026-04-27 16_10_30.md
...
DEEP-MEMORY.md ← 索引文件(setup.mjs 创建)
memory/ ← 日常记忆(第一层)
YYYY-MM-DD.md ← 每日笔记
MEMORY.md ← 长期记忆索引(第一层)
skills/depth-memory/
SKILL.md ← 本文件
scripts/
setup.mjs ← 安装后初始化脚本(首次安装必运行)
query.mjs ← 关键字检索
add.mjs ← 新增记忆(交互式 / 命令行)
1. 读取 DEEP-MEMORY.md(索引表)
2. 从用户输入中提取关键字(@库名、英文术语、中文关键词)
3. 遍历索引表格,匹配 Keywords 列:
- 完全相等 → 优先
- 包含匹配 → 次之
- 反向包含(关键字 → 条目关键词)→ 兜底
4. 命中 → 读取对应 deep-memory/YYYY-MM-DD HH_MM_SS.md
5. 无命中 → 互联网搜索
1. 确定主题和关键字
2. 将完整内容写入 deep-memory/YYYY-MM-DD HH_MM_SS.md
(文件名用当前时间,格式固定)
3. 提取关键字更新 DEEP-MEMORY.md 索引表
(在表头分隔线后插入新行,保持按关键词字母序或时间倒序)
4. 可选:同步更新 memory/YYYY-MM-DD.md 记录本次操作
DEEP-MEMORY.md 为 markdown 表格,三列:Keywords | Description | File Path
| Keywords | Description | File Path |
| :--- | :--- | :--- |
| @k3000/store, 结构化存储, 本地数据库, 二进制存储, 版本化存储 | 结构化本地存储库,二进制文件 + 加密索引,支持索引查询/范围查询/分页/联合查询 | `deep-memory/2026-05-05 17_49_00.md` |
关键词提取原则:
@k3000/store)好的关键词示例:
@k3000/store, 结构化存储, 本地数据库, 二进制存储, 版本化存储
不好的关键词示例:
@k3000/store(缺少中文描述)
这个库很好用可以存很多东西(太模糊,无法检索)
node scripts/query.mjs <关键字>
返回 JSON:
{ found: true, keyword: "...", results: [{ keyword, description, filePath }] }{ found: false, keyword: "..." }匹配逻辑:
# 示例
node scripts/query.mjs @k3000/store
node scripts/query.mjs 结构化存储
支持两种模式:
交互模式(不带参数):
node scripts/add.mjs
# 按提示输入:标题 → 关键字 → 描述 → 内容(Ctrl+D 结束)
命令行模式(推荐在 agent 内使用):
node scripts/add.mjs <标题> <关键字1,关键字2> <描述> [正文内容...]
# 注意:正文内容为空格分隔,多行内容需用 stdin 或直接写文件
实际 agent 用法:直接用 write 工具写文件 + 手动编辑 DEEP-MEMORY.md,比调用脚本更可控。
此脚本目前不存在。如需列全部索引,直接读取 DEEP-MEMORY.md 即可。
每个 deep-memory/YYYY-MM-DD HH_MM_SS.md 文件应包含:
# <标题>
> 来源:<URL 或来源>
> 存入时间:<YYYY-MM-DD HH:MM>
## 概述
1-3 句话描述这是什么。
## 核心概念
关键术语和定义的简短列表。
## 快速上手 / 典型用法
可运行的最小示例代码。
## API 参考 / 常用操作
表格或列表形式的关键 API。
## 注意事项 / 已知限制
使用时的坑、版本兼容、常见错误。
---
## 其他补充(可选)
FAQ、对比类似工具的优劣、相关链接等。
更新已有记忆:
deep-memory/*.md 文件,用 edit 工具追加或修正内容DEEP-MEMORY.md 的索引行合并/整理:
定期检查(每 1-2 周):
DEEP-MEMORY.md 是否有未匹配的查询(用户说"我存过的"但没找到)Q: 用户问了一个问题,但 deep-memory 没有匹配到怎么办? → 先尝试互联网搜索,找到答案后按"新增流程"存入 deep-memory,下次即可命中。
Q: 关键词如何确定? → 思考:如果用户想找这个记忆,会怎么描述?把最能想到的 3-5 个词/短语写进 Keywords。
Q: 存进去之后怎么验证?
→ 用 node scripts/query.mjs <关键字> 测试,确认能返回对应文件路径。
Q: 需要删除一条记忆怎么办?
→ 从 DEEP-MEMORY.md 索引表中删除对应行,文件可以保留(标记为已废弃)或删除。
Q: list-index.mjs 不存在怎么列出全部索引?
→ 直接读取 DEEP-MEMORY.md 即可,或写一个简单的 grep 命令:
Select-String "|" DEEP-MEMORY.md | Select-Object -Skip 2
Q: 重新安装 skill 需要重新初始化吗?
→ 不需要。setup.mjs 做了幂等处理:索引和目录已存在时会跳过,不会覆盖已有数据。
如果需要重新生成测试记录,先删除 deep-memory/2026-05-07 11_01_00.md 和索引中的对应行,再运行 setup.mjs。
遇到以下任务时,先执行查询流程,再决定是否新增:
memory_search 查日常记忆,最后互联网搜索)MEMORY.md — 第一层日常记忆memory/YYYY-MM-DD.md — 每日会话日志DEEP-MEMORY.md — 本层索引表