Skip to content

本页是 OpenClaw 记忆系统的概览。龙虾通过写入 workspace 内的 Markdown 文件记住事情,包括 MEMORY.md 长期记忆和每日笔记。支持三种记忆后端(内置 SQLite、QMD、Honcho),提供 memory_search 和 memory_get 两个工具。上下文压缩前自动 flush 防止丢失。

Memory 记忆系统概览

OpenClaw 龙虾通过在 workspace 写入 Markdown 文件来记住事情。模型只"记得"被写入磁盘的内容——没有隐藏状态。

工作原理

你的 agent 有三类 memory 相关文件:

  • MEMORY.md:长期记忆。持久化的事实、偏好和决策。每次私信会话开始时自动加载
  • memory/YYYY-MM-DD.md:每日笔记。当天和昨天的笔记自动加载
  • DREAMS.md(实验性,可选):Dream Diary 和 dreaming sweep 摘要,供人类审阅

这些文件存在于 agent workspace(默认 ~/.openclaw/workspace)。

想让龙虾记住某件事,直接告诉它:"记住我偏好 TypeScript。"它会自动写入对应文件。

Memory 工具

agent 有两个 memory 工具:

  • memory_search:用语义搜索找出相关笔记,即使措辞与原文不同
  • memory_get:读取特定 memory 文件或行范围

两个工具都由当前激活的 memory 插件(默认 memory-core)提供。

记忆搜索

配置了 embedding provider 时,memory_search 使用混合检索——结合向量相似度(语义含义)和关键词匹配(精确词如 ID 和代码符号)。只要配置了任意支持的 provider 的 API Key,开箱即用。

OpenClaw 从可用的 API Key 自动检测 embedding provider。配置了 OpenAI、Gemini、Voyage 或 Mistral key,memory search 即自动启用。

搜索原理、调优选项和 provider 设置,请参考Memory Search

记忆后端

OpenClaw 支持三种记忆后端,按需选择:

后端适用场景
内置(默认)大多数用户。SQLite,无额外依赖,关键词和向量搜索开箱即用
QMD需要重排序、查询扩展,或索引 workspace 外的目录
Honcho需要跨会话记忆、自动用户建模、多 Agent 感知

自动 Memory Flush

上下文压缩摘要对话前,OpenClaw 会自动运行一次静默轮次,提醒 agent 将重要上下文保存到 memory 文件。这个功能默认开启,无需任何配置。

Memory flush 防止压缩时丢失上下文。对话中尚未写入文件的重要事实,会在摘要发生前自动保存。

Dreaming(实验性)

Dreaming 是 memory 的可选后台巩固机制,收集短期信号、给候选内容打分,只将符合条件的内容晋升到长期记忆(MEMORY.md)。

  • opt-in:默认关闭
  • 定时运行:启用后 memory-core 自动管理一个 cron job 做完整 sweep
  • 阈值控制:晋升必须通过评分、召回频率、查询多样性三重门槛
  • 可审阅:阶段摘要和日记条目写入 DREAMS.md

阶段行为、评分信号、Dream Diary 详情,请参考 Dreaming(实验性)

CLI

bash
openclaw memory status          # 检查索引状态和 provider
openclaw memory search "query"  # 从命令行搜索
openclaw memory index --force   # 强制重建索引

常见问题

Q: 想让龙虾在不同渠道(WhatsApp/Telegram)间共享记忆,怎么做?

A: 使用 Honcho,它原生支持跨会话、跨渠道的持久记忆。内置引擎和 QMD 的记忆都基于 workspace 文件,只要 workspace 不变,切换渠道不影响 MEMORY.md 的内容。

Q: 怎么让龙虾忘掉某件事?

A: 直接告诉它:"删除 MEMORY.md 里关于 XX 的内容。"它会用 memory_get 读取文件后用 edit 删除对应行。

Q: MEMORY.md 太长了会影响性能吗?

A: 会。MEMORY.md 在每次 DM 会话开始时完整加载,过长会占用大量 context window。建议定期让 agent 整理 MEMORY.md,或启用 Dreaming 自动管理。

相关