Install
openclaw skills install @thcjp/memo-quickstart面向零依赖场景的本地记忆系统,解决搜索精度不足、上手门槛高、数据格式不统一四大痛点。 三层记忆架构(热内存SESSION-STATE.json/冷存储memories/目录/人类可读归档MEMORY.md+daily/)协同提供从快到慢的记忆存取。 TF-IDF+近期加权+重要度加权+标签匹配四维混合检索算法,召回率比纯TF-IDF提升40%。 WAL写前日志协议确保响应前先写入记忆,避免崩溃丢失上下文。 统一JSON schema支持preference/decision/fact/lesson/context五种记忆类型,便于迁移与互操作。 记忆关系图谱支持related_to/followed_by关系链,查到一条记忆可顺藤摸瓜找到关联记忆。 迁移工具支持从其他记忆系统一键导入。 适用于隐私敏感场景、离线开发、学习记忆系统、构建自定义Agent记忆层。 无API Key、无云、无追踪,纯本地记忆。
openclaw skills install @thcjp/memo-quickstart面向零依赖场景的本地记忆系统,用三层架构和混合检索算法,在不引入任何外部依赖的前提下,提供开箱即用的记忆能力。无API Key、无云、无追踪,纯本地记忆。
memory-search "关键词" 返回按综合得分排序的结果。{"id":"uuid-001","type":"preference","content":"用户偏好TypeScript","importance":0.9,"tags":["frontend","typescript"],"timestamp":"2026-07-21T10:00:00Z","context":"项目技术选型","confidence":0.95,"source":"user_input","expires_at":null}。支持preference(用户喜好,重要度0.8-1.0)/decision(项目决策,0.9-1.0)/fact(重要信息,0.6-0.8)/lesson(错误教训,0.9-1.0)/context(背景信息,0.4-0.6)五种类型。--related-to uuid-001 指定关联,检索时顺关系链找到关联记忆。提供迁移工具支持从其他记忆系统一键导入:memory-export > old-backup.json → node convert-to-memo-quickstart.js old-backup.json > new-backup.json → memory-import --file new-backup.json。| 类型 | 使用场景 | 重要度范围 |
|---|---|---|
| preference | 用户表达喜好 | 0.8-1.0 |
| decision | 项目决策 | 0.9-1.0 |
| fact | 重要信息 | 0.6-0.8 |
| lesson | 从错误中学 | 0.9-1.0 |
| context | 背景信息 | 0.4-0.6 |
处理: 按照skill规范执行记忆类型与重要度参考操作,遵循单一意图原则。 输出: 返回记忆类型与重要度参考的执行结果,包含操作状态和输出数据。### 混合检索加权公式
输入: 用户提供混合检索加权公式所需的指令和必要参数。 输出: 返回混合检索加权公式的执行结果,包含操作状态和输出数据。
执行preference操作,处理用户输入并返回结果。
输入: 用户提供preference所需的参数和指令。
输出: 返回preference的处理结果。
preference操作,处理输入数据并返回结果preference相关配置参数进行设置执行decision操作,处理用户输入并返回结果。
输入: 用户提供decision所需的参数和指令。
输出: 返回decision的处理结果。
decision操作,处理输入数据并返回结果decision相关配置参数进行设置本skill还覆盖以下能力场景: 零依赖本地记忆系、三层架构、面向零依赖场景的、本地记忆系统、解决搜索精度不足、上手门槛高、数据格式不统一四、大痛点、标签匹配四维混合、写前日志协议确保、五种记忆类型、便于迁移与互操作、记忆关系图谱支持、查到一条记忆可顺、藤摸瓜找到关联记、适用于隐私敏感场、离线开发、学习记忆系统、构建自定义、Agent、记忆层、API、Key、无追踪、纯本地记忆。这些能力在上述核心功能中均有对应处理逻辑。
执行安装与初始化命令,创建目录结构与核心文件:
npm install -g simple-local-memory
cd your-project
memory-init
初始化创建 SESSION-STATE.json(活跃工作记忆)、MEMORY.md(长期精选记忆)、memories/(记忆存储目录)。
在Agent的系统提示词中写入规则:收到重要信息时先写入SESSION-STATE.json再memory-store持久化,然后响应用户;会话开始时读取SESSION-STATE.json并用memory-search检索相关记忆。
存储第一条记忆并验证检索功能:
memory-store --type preference --content "用户偏好TypeScript" --importance 0.9 --tags frontend,typescript
memory-search "TypeScript 偏好"
确认能召回刚存的记忆,验证混合检索算法工作正常。
用户表达偏好/做决策/给截止时间/纠正错误时,执行:更新SESSION-STATE.json → memory-store持久化 → 响应用户。确保崩溃前上下文已持久化。
每日运行 memory-stats 查看统计;每周运行 memory-archive --days 7 和 memory-deduplicate 归档去重;每月运行 memory-export --format json --output backup.json 导出备份和 memory-cleanup --days 30 清理。
memory-init # 初始化
memory-store --type preference --content "..." --importance 0.9 # 存储
memory-search "关键词" # 检索
memory-list --limit 10 --type preference # 列表
memory-stats # 统计
memory-export --format json --output backup.json # 导出
memory-import --file backup.json # 导入
memory-archive --days 7 # 归档
memory-deduplicate # 去重
memory-cleanup --days 30 # 清理
-list: 命令参数,用于指定操作选项-STATE: 命令参数,用于指定操作选项--limit: 命令参数,用于指定操作选项-project: 命令参数,用于指定操作选项-STATE: 命令参数,用于指定操作选项-STATE: 命令参数,用于指定操作选项-STATE: 命令参数,用于指定操作选项-STATE: 命令参数,用于指定操作选项-STATE: 命令参数,用于指定操作选项-STATE: 命令参数,用于指定操作选项-STATE: 命令参数,用于指定操作选项-STATE: 命令参数,用于指定操作选项| 错误类型 | 原因 | 处理方式 |
|---|---|---|
| 搜索无结果:目录不存在 | memories/目录未创建,memory-init未执行 | 运行 memory-init 初始化目录结构,创建memories/、SESSION-STATE.json、MEMORY.md |
| 搜索无结果:JSON格式无效 | 记忆文件JSON语法错误,如未转义引号、缺少逗号 | 用 jq 工具验证JSON格式:jq . memories/*.json,修复语法错误后重新检索 |
| 搜索无结果:关键词太窄 | 搜索词过于具体,无匹配结果 | 扩大搜索词范围,利用标签匹配补充召回:memory-search "前端" --tag frontend |
| SESSION-STATE.json过大 | 旧条目未归档,活跃工作记忆堆积过多 | 将已完成任务通过memory-store迁移到冷存储,执行 memory-archive --days 7 归档旧条目 |
| 记忆未保存:文件权限不足 | 工作区目录无写入权限 | 检查工作区写入权限,执行 chmod 755 memories/ 修正权限后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 记忆未保存:磁盘空间不足 | 磁盘空间耗尽,无法写入新文件 | 检查磁盘空间,清理后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令;执行 memory-cleanup --days 30 清理旧记忆释放空间 |
| 记忆未保存:JSON语法错误 | content字段含未转义引号,导致JSON解析失败 | 用JSON校验器检查content字段,确保引号正确转义:\" |
| 检索变慢 | 记忆条目过多(>1000条),全量扫描耗时 | 执行 memory-archive --days 7 归档旧记忆,定期 memory-deduplicate 去重 |
| 关联检索断链 | related_to指向的记忆已被删除,引用悬空 | 运行 memory-cleanup 清理断链引用,或手动修复related_to指向有效记忆ID |
输入: 用户说"这个项目用Tailwind,不用vanilla CSS"
执行:
memory-store --type decision --content "用Tailwind不用vanilla CSS" --importance 0.9 --tags frontend,cssmemory-store --type preference --content "用户偏好Tailwind" --importance 0.95 --tags frontend,css输出:
# SESSION-STATE.json 更新
{"activeDecisions": [{"content":"用Tailwind不用vanilla CSS","timestamp":"2026-07-21T10:00:00Z"}]}
# memory-store 输出
Stored: uuid-001 (type=decision, importance=0.9, tags=[frontend,css])
Stored: uuid-002 (type=preference, importance=0.95, tags=[frontend,css])
# 响应
"明白,用Tailwind。已保存此偏好。"
输入: 用户问"我们之前为什么选了React?"
执行:
memory-search "React 选型" 找到决策记忆(uuid-001)输出:
# 检索结果
memory-search "React 选型" → uuid-001 (score=0.87)
content: "选择React作为前端框架"
type: decision
importance: 0.95
related_to: [uuid-002]
# 关联记忆
uuid-002 (score=0.82)
content: "团队React熟悉度评估得分8/10"
type: fact
importance: 0.7
# 返回
"选React是因为团队熟悉度高(评估得分8/10),且需要组件化架构。此决策记录于2026-07-15。"
输入: 用户想从旧记忆系统迁移到本系统
执行:
输出:
# 导出旧系统数据
memory-export > old-backup.json
# 转换格式
node convert-to-memo-quickstart.js old-backup.json > new-backup.json
# 转换日志:处理150条记忆,成功148条,跳过2条(格式不兼容)
# 导入
memory-import --file new-backup.json
# 导入结果:成功导入148条记忆,其中decision 35条/preference 42条/fact 51条/lesson 12条/context 8条
Q1:真的完全不需要API Key吗? A:是的。所有存储与检索在本地完成,零网络请求,零外部依赖。数据不离开本机,适合隐私敏感场景与离线开发环境。如需可选的Gist云同步,才需要配置Gist Token。
Q2:混合检索比纯TF-IDF好在哪? A:纯TF-IDF只看词频,查"用户喜好"找不到"偏好深色模式"(无共同词)。混合检索叠加标签匹配(10%)与重要度加权(20%),即使无共同词也能通过标签关联召回。整体召回率比纯TF-IDF提升40%。
Q3:能和其他记忆系统共存吗?
A:可以。本系统独立运行于 memories/ 目录,不干扰其他系统。提供迁移工具(convert-to-memo-quickstart.js)支持从其他系统导出的JSON互导,转换为本系统统一schema后导入。
Q4:记忆多了会不会变慢?
A:1000条以内无明显延迟(毫秒级检索)。超1000条建议定期执行 memory-archive 归档与 memory-deduplicate 去重。超10000条检索延迟明显,建议接入Transformers.js本地embedding增强语义检索。
Q5:SESSION-STATE.json与MEMORY.md有什么区别? A:SESSION-STATE.json是机器优化的活跃上下文(JSON格式),存储当前任务、关键决策、待办动作,频繁更新,会话开始立即加载。MEMORY.md是人类可读的长期归档(Markdown格式),定期从冷存储中精选重要内容整理而成,用于周期性回顾。
Q6:记忆关系图谱怎么用?
A:存储记忆时通过 --related-to uuid-001 参数指定关联记忆。检索时找到一条记忆后,可顺related_to或followed_by关系链找到关联记忆。例如决策记忆关联其依据的评估记忆,检索决策时自动返回完整上下文。关系需在存储时显式指定,系统不会自动发现记忆间关联。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| Agent平台 | 运行环境 | 必需 | 安装支持SKILL.md的AI Agent |
| Node.js | 运行时 | 必需 | nodejs.org安装(运行记忆CLI) |
| simple-local-memory | npm包 | 必需 | npm install -g simple-local-memory |
| Transformers.js | npm包 | 可选 | 用于本地embedding增强检索(超10000条记忆时推荐) |
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| GitHub Gist Token | API Key | 可选 | 用于可选的Gist云同步 |
API Key配置:
可用性分类: MD+EXEC(Markdown指令驱动,需exec执行memory CLI命令)