概述

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   # 重建索引

相关页面