持久记忆引擎
|-. 适合需要persistent memory engine相关能力的开发场景,提供完整工作流程和配置指南. 该工具经过差异化增强,结合实际使用痛点进行了优化。Use。Use when 需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于需要100%确定性的关键决策。适用于独立开发者、企业团队和自动化工作流场景。
天轰穿
@thcjp
Install
$ openclaw skills install @thcjp/persistent-memory-engine-2核心功能: 本技能提供完整工作流程和配置指南、化工作流场景等能力。
持久记忆引擎(Persistent Memory Engine)
面向 AI Agent 的无限分层持久记忆系统,在内置记忆之上构建并行、可扩展、可检索的结构化本地存储,解决跨会话遗忘与记忆膨胀问题。本系统完全位于 ~/memory/,与内置 Agent 记忆并行运作,永不修改内置 MEMORY.md 与 workspace memory/ 目录.
功能特性总览
1. 无限分层结构化存储
用户自定义分类,无预设结构限制。常见分类如 projects/、people/、decisions/、knowledge/、collections/,每个条目以独立 Markdown 文件存储,支持 frontmatter 元数据(状态、版本、重要度、标签、关联条目、过期时间).
处理: 解析无限分层结构化存储的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回无限分层结构化存储的响应数据,含执行状态与操作日志.
2. 三层索引体系
根索引 ~/memory/INDEX.md 列出所有分类 → 分类索引 ~/memory/{分类}/INDEX.md 列出该分类所有条目 → 条目文件本身。三层导航确保 500+ 文件规模也能 O(1) 定位,无需全量扫描.
处理: 解析三层索引体系的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回三层索引体系的响应数据,含执行状态与操作日志.
- 通过
input_params参数指定操作类型(创建/查询/导出)
3. 混合检索策略
小规模(< 50 文件)用 grep 直接搜;大规模(50-500 文件)走索引导航;超大规模(500+ 文件)建议接入向量检索(语义回退)。按规模自动适配最优检索路径.
处理: 解析混合检索策略的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回混合检索策略的响应数据,含执行状态与操作日志.
- 通过
input_params参数指定操作类型(创建/查询/导出)
4. 记忆生命周期管理
每个条目经历"写入→激活→归档→遗忘"四阶段。超过 90 天未更新提示归档,归档超过 180 天无引用提示遗忘,过期条目移入 .trash/ 保留 30 天可恢复,避免记忆膨胀拖慢检索.
处理: 解析记忆生命周期管理的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回记忆生命周期管理的响应数据,含执行状态与操作日志.
- 通过
input_params参数指定操作类型(创建/查询/导出)
5. 冲突检测与版本化
写入前扫描同分类同主题条目,发现矛盾时不直接覆盖,保留旧版本并递增 version,主动提示用户"检测到冲突,已保留两版本"。从内置记忆单向同步,反向永不修改内置记忆.
处理: 解析冲突检测与版本化的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回冲突检测与版本化的响应数据,含执行状态与操作日志.
- 通过
input_params参数指定操作类型(创建/查询/导出) 能力覆盖范围:支持的场景关键词如下:解决跨会话遗忘、检索不准、记忆膨胀冲突的无、限分层持久记忆引、Agent、的无限分层持久记、忆系统、直击跨会话遗忘、新旧冲突四大痛点、适用于长周期项目、人脉网络、决策归档、领域知识库等场景、核心能力含三层索、适用关键词、长期记忆、跨会话记忆、记忆管理、记忆检索、持久化存储、persistent等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.
场景示例
| 场景类型 | 输入 | 输出 | 是否适用 |
|---|---|---|---|
| 长周期项目记忆 | 项目名 + 关键决策、技术栈、背景 | 结构化项目条目 + 索引 | ✅ 适用 |
| 人脉网络管理 | 姓名、公司、关系、上次互动 | 每人一档的完整档案 | ✅ 适用 |
| 决策推理归档 | 决策内容、备选方案、参与人 | 可按时间/主题回溯的决策库 | ✅ 适用 |
| 领域知识库构建 | 领域概念、学习笔记 | 按领域分层的知识树 | ✅ 适用 |
| 收藏与清单管理 | 收藏项、清单条目 | 可检索的收藏库 | ✅ 适用 |
| 多项目并行记忆 | 多个项目上下文 | 各自独立的项目条目 | ✅ 适用 |
不适用场景:
- 临时性、一次性信息(如本次会话的代码片段)→ 保留在内置记忆
- 需要多设备实时云同步的场景 → 本技能不提供云同步,需配合 Git 或云盘
- 需要极高安全级别的敏感凭证存储 → 永不存储 API Key、密码、凭证
- 单次会话内的快速上下文 → 内置 Agent 记忆已足够
操作步骤
Step 1:首次初始化
输入参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 持久记忆引擎处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
mkdir -p ~/memory
cat > ~/memory/INDEX.md << 'EOF'
# 记忆索引
# ...
| 分类 | 描述 | 条目数 | 更新时间 |
|---:|---:|---:|---:|
EOF
Step 2:与用户确认分类结构
首次使用时询问用户需要存储什么,按需创建分类:
| 用户说... | 创建分类 |
|---|---|
| "我有很多项目" | ~/memory/projects/ |
| "我认识很多人" | ~/memory/people/ |
| "我想记录决策" | ~/memory/decisions/ |
| "我在学某领域" | ~/memory/knowledge/{领域}/ |
| "我收藏某类东西" | ~/memory/collections/{类型}/ |
Step 3:写入记忆条目(立即写入,不等待不批量)
当用户分享重要信息时:
- 执行写入前预检:grep 同分类去重、检查同主题冲突
- 写入对应
~/memory/{分类}/{条目}.md(含 frontmatter) - 更新该分类的
INDEX.md - 然后才响应用户
Step 4:检索记忆(优先走索引)
1. 查根索引 INDEX.md → 找到目标分类
2. 查分类 INDEX.md → 找到目标条目
3. 读取条目文件详情
4. 索引找不到再用 grep 全文搜索
Step 5:周期性维护
- 每周(5 分钟):更新 INDEX.md、归档已完成/不活跃条目
- 每月(15 分钟):审查分类规模(> 100 条目自动分裂子分类)、清理过期条目、检查冲突版本
响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤.
项目概要
技术栈:React + TypeScript + Tailwind 目标:构建客户管理系统
...
关键决策
- 2026-07-18:选定 React 而非 Vue(团队熟悉度) EOF
...
更新分类索引
echo "| Alpha | active | 2026-07 | alpha.md |" >> ~/memory/projects/INDEX.md
代理响应:"已将 Alpha 项目记忆写入 `~/memory/projects/alpha.md` 并更新索引。"
### 示例 2:检索记忆并处理冲突(输入→输出)
**输入**:新会话中用户说"我之前偏好深色模式,现在改成浅色模式了"
**输出**(代理执行流程):
```text
1. 检索:cat ~/memory/INDEX.md → 找到 preferences 分类
2. cat ~/memory/preferences/INDEX.md → 找到 ui-preferences.md
3. 读取发现旧记录:"用户偏好深色模式(2026-06)"
4. 冲突检测:新信息与旧记录矛盾
5. 不直接覆盖,递增版本:
# ...
---
title: UI 偏好
version: 2
---
# ...
## 版本历史
- v1 (2026-06-01):用户偏好深色模式
- v2 (2026-07-18):用户偏好浅色模式(冲突,已确认最新)
代理响应:"检测到与旧记忆冲突(旧:深色模式,新:浅色模式),已保留两版本,当前版本号 v2。"
错误处理指引
- 边界输入处理: 空输入返回提示信息, 超长输入自动截断
- 降级策略: 异常时返回默认值, 确保流程不中断
- 执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令机制: 失败时自动执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令, 最多3次
| 场景 | 原因 | 处理方式 |
|---|---|---|
| 找不到记忆条目 | 索引未同步更新 | 检查 INDEX.md 是否含该条目,手动补录 |
| 检索结果过多噪音大 | 单分类过大(> 100 条目) | 按状态/时间分裂为子分类,缩小检索范围 |
| 同一信息重复存储 | 写入前未执行去重检查 | 执行 grep 去重,合并重复条目 |
| 版本冲突混乱 | 长期未做月度维护 | 执行月度审查,与用户确认后合并或删除旧版本 |
| 记忆文件损坏/丢失 | 写入过程中断或磁盘错误 | 从 .trash/ 或 Git 备份恢复 |
| 误修改了内置 MEMORY.md | 违反隔离规则 | 立即恢复内置记忆,本系统只允许写入 ~/memory/ |
| 条目过期但仍被引用 | 自动归档误判 | 将条目 status 改回 active,移出 archived/ |
| 超大规模检索变慢 | 500+ 文件未接入语义检索 | 启用可选的向量检索增强(见依赖说明) |
前置条件
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
文件系统(可写 ~/memory/) | 本地存储 | 必需 | 操作系统自带 |
| grep / find | 系统命令 | 必需 | 操作系统自带 |
| cat / mkdir / echo | 系统命令 | 必需 | 操作系统自带 |
| 向量数据库(Chroma/LanceDB/Qdrant) | 外部依赖 | 可选 | 超大规模(500+ 文件)语义检索增强时启用 |
| Transformers.js(本地 embedding) | 运行时库 | 可选 | 语义检索增强时启用 |
运行环境:Windows / macOS / Linux;支持 SKILL.md 的任意 AI Agent( Code / Cursor / Codex / CLI 等). API Key:核心功能无需任何 API Key;语义检索增强如用云向量服务,需对应服务 Key. 可用性分类:MD+EXEC(Markdown 指令驱动,需 exec 执行文件操作命令).
疑问汇总
Q1:这会和我 Agent 自带的记忆冲突吗?
A:不会。本系统完全并行,位于 ~/memory/,永不修改内置 MEMORY.md 与 workspace memory/。内置记忆负责当前会话快速上下文,本系统负责长期深度与规模,两者协同.
Q2:记忆文件越来越多会不会很慢?
A:三层索引体系确保即使 500+ 文件也能快速定位。单分类 INDEX.md 超过 100 条目会自动分裂为子分类。超大规模建议接入向量检索(见依赖说明的可选项).
Q3:能不能多设备同步?
A:本技能不提供云同步。可通过 Git 或云盘同步 ~/memory/ 目录实现多设备。注意 .trash/ 与 .vectors/ 可加入 .gitignore.
Q4:冲突版本太多怎么办?
A:定期审查冲突条目,与用户确认后合并或删除旧版本。建议每月维护时处理。每个冲突都保留版本历史,不会丢失信息.
Q5:遗忘的数据能恢复吗?
A:遗忘阶段移到 ~/memory/.trash/,保留 30 天后彻底删除。30 天内可恢复。如需更长的保留期,可在 config.md 中调整 trash_retention_days.
限制条件
- 不提供云同步:所有数据在本地
~/memory/,无网络请求。多设备同步需用户自行通过 Git 或云盘实现,本技能不处理同步冲突. - 不存储敏感凭证:永不存储 API Key、密码、证书、敏感个人信息。这类数据应使用专门的密钥管理工具.
- 语义检索为可选增强:默认零依赖,仅用 grep + 索引。超大规模(500+ 文件)场景下关键词检索召回率有限,需用户主动接入向量数据库.
- 依赖用户主动维护:归档、分裂、冲突合并等生命周期管理需要用户在周/月回顾中确认,完全自动化的决策可能误判.
- 不访问内置记忆(除单向同步):仅在用户明确要求同步时读取内置记忆,反向永不修改。这意味着内置记忆中的临时上下文不会自动进入本系统.
输出说明
处理结果以结构化格式返回, 包含状态码、消息和数据字段.
安全提示
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 通过系统环境变量设置,严禁硬编码密钥 |
| 命令执行风险 | 执行命令受限于安全白名单,不拼接用户输入 |
| 网络通信安全 | 采用HTTPS加密传输并校验证书 |
| 敏感数据暴露 | 返回数据中不含凭证信息 |
使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。
效能分析
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
特色对比
| 对比维度 | 持久记忆引擎 | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | 解决跨会话遗忘、检索不准、记忆膨胀冲突的无限分层持久记忆引擎。面向 AI Age | 通用场景 | 通用场景 |
用户常见咨询
Q1: 持久记忆引擎支持哪些输入格式?
A1: 解决跨会话遗忘、检索不准、记忆膨胀冲突的无限分层持久记忆引擎。面向 AI Agent 的无限分层持久记忆系统,直击跨会话遗忘、检索不准、记忆膨胀、新旧冲突四大痛。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
Q2: 需要配置API Key吗?
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
Q3: 命令行执行失败怎么办?
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
故障恢复
针对持久记忆引擎使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |
持久记忆引擎通用排查步骤
- 检查输入参数: 确认所有必填参数已提供且格式正确
- 查看日志输出: 定位具体错误行和异常类型
- 验证环境配置: 确认依赖库版本和运行环境满足要求
- 逐步调试: 缩小问题范围,隔离故障模块
高频问答
操作入门
- 配置API密钥: 在环境变量中设置对应的API Key
- 初始化连接: 使用提供的凭证建立API连接
- 调用接口: 传入必要参数执行API调用
- 准备文件: 确认文件路径正确且格式受支持
- 执行处理: 调用对应的处理函数
- 查看结果: 检查输出文件或返回数据
- 检查环境: 确认运行时和依赖已安装
- 执行命令: 使用正确的参数格式执行
- 查看输出: 检查命令输出和退出码
前置条件
- 已安装所需运行环境(参考依赖说明)
- 已获取必要的API密钥或访问凭证(如适用)
- 输入数据已准备就绪
依赖说明
运行环境
- Agent 平台: 支持SKILL.md的任意AI Agent
- 操作系统: Windows / macOS / Linux
可用性分类
- 分类: MD(纯Markdown指令,通过自然语言驱动Agent完成操作)
- 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作。
Top skills in this category
Self-Improving + Proactive Agent
@ivangdavilaSelf-reflection + Self-criticism + Self-learning + Self-organizing memory. Agent evaluates its own work, catches mistakes, and improves permanently. Use when...
ontology
@oswalpalashTyped knowledge graph for structured agent memory and composable skills. Use when creating/querying entities (Person, Project, Task, Event, Document), linkin...
Humanizer
@biostartechnologyRemove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
Obsidian
@steipeteWork with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
YouTube Watcher
@michaelgatharaFetch and read transcripts from YouTube videos. Use when you need to summarize a video, answer questions about its content, or extract information from it.