OpenClaw 的“记忆功能”到底怎么工作的?
很多人以为 AI 是有“长时记忆”的,但在 OpenClaw 里,记忆不是模型脑子里自带的,而是写到磁盘上的文件。
记忆本质是 Markdown 文档,memory/YYYY-MM-DD.md(每日追加日志)+ 可选的 MEMORY.md(精炼的长期记忆)。模型能“记住”的前提是:信息真的被写进了这些文件。
默认 memory 插件(memory-core)对 agent 提供了两个工具:
memory_search:对记忆片段做语义检索,返回相关 snippet + 路径/行号
memory_get:按路径/行范围读取记忆文件(文件不存在也不会炸,直接返回空文本)
快到“上下文压缩”时,会自动提醒你把该记的内容写下来。当对话接近 compaction(上下文要被压缩/裁剪)时,系统会触发一次静默的 memory flush:提示模型把“耐久的信息”追加写进当天的 memory/YYYY-MM-DD.md,避免压缩后丢失。
这次 flush 是有一定的约束的:只写 daily log、必须追加写、不要改 MEMORY.md 等引导文件。
除了内置的 SQLite 索引,还能切到 qmd 后端;如果 qmd 不可用会自动 fallback 回内置方案,保证 memory_search 不至于失效。
一句话总结就是:OpenClaw 的记忆 = 文件化存储 + 工具化检索 + 压缩前的自动落盘提醒。想让它“记住”,就让它“写下来”。
