OpenClaw 终于能"记住"事了!我花了 3 周折腾出的长期记忆系统
之前分享过一篇关于OpenClaw长期记忆系统文章,发完总觉得还差点意思。这几天又埋头折腾了一阵,测试、踩坑、优化,总算搞出来一个更聪明的版本。
这套方案从概念到落地,完整跑通了。用 Claude 最新的 Opus 4.6 全面测试过。为了控制成本,部分环节用了本地大模型(Qwen3),当然也能换成云端模型,丰俭由人。

为什么这个系统值得试试
传统做法有几个很明显的缺陷:
关键词匹配太傻了。搜"项目",找不到"任务"相关内容,明明是一个意思。
按行数归档就更离谱。简单粗暴地保留最后N行,重要内容随时可能被砍掉。
定时空跑纯粹是浪费。每小时不管有没有新内容都在更新,资源消耗毫无意义。
最要命的是缺乏深度分析。系统只会机械执行,不会告诉你"最近在忙什么"或"哪些事情该跟进"。这种"失忆"状态,对长期项目来说相当致命。
这套方案的设计思路
三层架构:每日日志 → 精选记忆 → 操作状态。
对AI来说,写入就是记忆。遗忘其实也是功能,不是bug——相关性低的内容自然会被淘汰,系统只保留真正有价值的信息。
搜索这块,优先用语义方式。向量检索比关键词匹配靠谱得多,能直接理解意图。
核心组件拆解
智能检查点
每6小时跑一次。读取当天日志,调用LLM提取3-5个关键信息,更新到MEMORY.md。如果文件超过1500字符,就自动触发语义归档。
好处很明显:LLM能理解语义,不是简单匹配关键词。还能自动去重压缩,用本地模型的话成本几乎为零。
语义归档
当MEMORY.md变得太大时,用QMD计算每个段落与最近30天日志的相关性。相关性最低的20%会被归档,重要的会留下。
以前按行数来砍,准确率大概只有50%。现在按相关性判断,能到90%。
自适应索引
每30分钟检查一次。新文件超过10个才更新索引,否则跳过。距离上次更新超过1小时且有新文件的话,也会触发更新。
这样资源节省效果相当明显,能省下80%的消耗,同时新内容依然可以立即可搜索。
健康监控
每天早上8点跑一次,检查MEMORY.md大小、日志统计、索引状态、定时任务情况。6项指标,满分6分。5分以上算健康,4分需要关注,3分以下就得动手修了。
夜间深度分析
每周日凌晨2:30执行。分析最近7天的记忆模式,构建知识图谱,检查系统性能,生成优化建议。
这个功能是整台系统最让我满意的地方——从简单的"维护"升级到了"洞察"。它会告诉你最近在关注什么话题、哪些项目该跟进、系统有没有潜在问题。
一步一步搭建起来
先装依赖
# 装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 下 Qwen3 模型
ollama pull qwen3:latest
# 装 QMD
npm install -g @openclaw/qmd
建目录
mkdir -p ~/Space/{memory,para-system,life}
mkdir -p ~/Space/life/{projects,areas,resources,archives}
核心脚本
需要5个脚本,放到 para-system/ 目录:
- checkpoint-memory-llm.sh
- semantic-archive.sh
- qmd-adaptive-update.sh
- memory-health-dashboard.sh
- nightly-deep-analysis.sh
记得加执行权限:chmod +x *.sh
配定时任务
# 每 6 小时检查点
openclaw cron add --name "Memory Checkpoint" --schedule "every 6h" --payload "systemEvent: 执行智能记忆检查点" --target main
# 每天早上健康检查
openclaw cron add --name "Memory Health Check" --schedule "cron 0 8 * * *" --payload "systemEvent: 运行记忆健康检查" --target main
# 每 30 分钟自适应更新
openclaw cron add --name "QMD自适应更新" --schedule "every 30m" --payload "AgentTurn: 运行QMD自适应更新" --target isolated --delivery none
# 每周日凌晨深度分析
openclaw cron add --name "夜间深度分析" --schedule "cron 30 2 * * 0" --payload "agentTurn: 执行夜间深度系统分析" --target isolated --delivery announce
实际效果怎么样
用了几周,记录几个关键数字:
MEMORY.md稳定在1200字符左右,检查点执行大概1分半钟,QMD搜索1-2秒就能出结果,健康评分一直是满分。
资源节省效果非常明显。以前每小时强制更新,现在按需来,省了80%。
最值的是每周的深度分析报告。它会告诉你最近在关注什么话题、哪些项目该跟进、系统有没有问题。这种"洞察"能力,是以前完全没有的。
常见问题解答
需要多大空间?
QMD索引大概5MB,Ollama模型将近2GB,日志每月100MB左右。总共3GB上下,加上日志增长。
对性能有影响吗?
检查点运行时CPU会到10-30%,持续一两分钟。Ollama运行时占2GB内存。建议至少8GB内存。
能用其他模型吗?
完全可以。脚本里改模型配置就行。想用DeepSeek就改成 MODEL="deepseek-r1:8b",想用Claude就改API调用。
怎么备份?
最简单的方法是:
tar -czf memory-backup-$(date +%Y%m%d).tar.gz ~/Space
或者用Git管理。
踩过的坑
检查点失败多半是Ollama没起来。可以跑一下 ollama list 看看模型在不在,再手动调一下API试试。
QMD搜不到东西,先检查索引状态 qmd status,不行就手动更新 qmd update && qmd embed。
定时任务没执行,可以用 openclaw cron list 确认任务是否存在,再看日志 openclaw logs。
适合谁用
如果你用 OpenClaw 做长期项目、有大量对话和文档需要处理、需要深度分析能力,这套系统值得投入时间去搭建。
短期临时项目、机器配置太低(4GB内存以下)、不需要语义搜索的场景,就算了,没必要折腾。
虽然搭建这套系统花了不少时间,但用起来确实省心。AI助手终于能"记住"事情了,不是每次对话都从零开始。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名