概述
OpenClaw 通过在工作区写入 Markdown 文件来实现记忆持久化。模型只”记得”写入磁盘的内容——没有隐藏状态。记忆与上下文的区别:记忆存储在磁盘,上下文是当前窗口内的内容。
核心要点
三个记忆文件:
MEMORY.md— 长期记忆:持久事实、偏好、决策。每次 DM Session 开始时加载memory/YYYY-MM-DD.md— 每日笔记:运行上下文与观察。今天和昨天的笔记自动加载DREAMS.md(可选)— 梦境日记:Dreaming 扫描摘要,供人工审查
两个记忆工具:
memory_search— 语义搜索,即使措辞不同也能找到相关笔记memory_get— 读取特定记忆文件或行范围
自动记忆刷新:压缩(Compaction)前,OpenClaw 运行一个静默 turn 提醒 Agent 将重要上下文保存到记忆文件,防止上下文丢失。
Dreaming(可选,默认关闭):后台整合 pass,从短期信号中筛选并晋升高质量内容到 MEMORY.md:
- 有阈值门控(分数、召回频率、查询多样性)
- 自动管理一个定期 cron 任务
- 晋升结果写入
DREAMS.md供人工审查
四种记忆后端:
- Builtin(默认):SQLite,支持关键词 + 向量 + 混合搜索
- QMD:本地优先,支持重排序、查询扩展、索引工作区外目录
- Honcho:AI 原生跨 Session 记忆,用户建模
- LanceDB:LanceDB 支持,OpenAI 兼容 embedding
Memory Wiki 插件:将持久记忆编译为结构化知识库(声明、证据、矛盾追踪、仪表盘)。
配置/使用
记忆刷新模型覆盖(保持在本地模型):
{
"agents": {
"defaults": {
"compaction": {
"memoryFlush": { "model": "ollama/qwen3:8b" }
}
}
}
}CLI 命令:
openclaw memory status # 检查索引状态
openclaw memory search "query" # 命令行搜索
openclaw memory index --force # 重建索引相关页面
- memory-builtin — 默认 SQLite 记忆后端
- memory-search — 搜索管道与 Embedding 提供商
- context — 记忆与上下文的关系
- agent-workspace — 记忆文件在工作区中的位置