OpenClaw记忆机制:Agent持久化会话深度评测

2026-06-16阅读 0热度 0
OpenClaw

你已经让 OpenClaw 能够回复消息、接入通道并编写 Skill 后,接下来最常遇到的困惑往往不是“它能不能回答”,而是——

为什么每次对话都像第一次认识你。

很多 Agent 产品把这个能力包装成“长记忆”。但在 OpenClaw 里,问题的本质非常直接:

数据被写在了哪里,以及能否稳定地被系统检索到。

本篇不先铺陈抽象概念,而是带你快速搭建一个最小化的记忆闭环。

一、明确本篇起点与验收标准

你的起点状态

  • OpenClaw 已在本地稳定运行
  • 已能与 Agent 进行正常对话
  • 你希望它记住长期偏好,而不必每次重新交代

本篇完成标志

学完后,你应当能回答以下 3 个核心问题:

  1. 哪些信息应当写入 MEMORY.md
  2. 哪些信息应当写入 memory/YYYY-MM-DD.md
  3. 为什么 session 不等于 memory

二、先构建一个最小记忆闭环

不要急着研究 embedding 与搜索参数,先做一个简洁但立即可用的练习。

练习目标:让 Agent 同时记住两类信息——一个稳定的长期偏好,以及一个仅限当天的短期进展。

例如,在私有会话中明确告诉它:

  • 长期偏好:以后编写技术文章时,先给结论再补充原因,禁止使用夸张标题。
  • 当天进展:今天需要将 OpenClaw 第 4 篇和第 5 篇重写成更适合新手的版本。

接着验证两个行为:

  1. 新建一个私有 session 后,询问“我写技术文章时有什么固定偏好?”
  2. 再问“我今天在推进什么任务?”

理想的结果不是一字不差的复述,而是:长期偏好能被稳定召回,当天进展表现为短期上下文(主要从 daily log 中提取)。当这两个层次出现明显分离,说明你已在使用真正的记忆系统,而非仅靠模型上下文硬背。

三、OpenClaw 的记忆不是抽象概念,而是文件

官方 memory 文档的核心思想非常直接:OpenClaw 记忆的事实来源是 agent workspace 中的 Markdown 文件。

默认布局包含两层:

  1. memory/YYYY-MM-DD.md:每日日志,追加写入;session 启动时通常加载今天和昨天的记录。
  2. MEMORY.md:长期整理后的记忆,适合存放稳定偏好、规则和长期事实;默认仅在主私有会话中加载,不进入群聊上下文。

这也是 OpenClaw 区别于多数记忆型产品的关键差异:你不是把“记忆”交给一个不可见的黑盒,而是将其沉淀为可查看、可编辑、可备份的物理文件。

四、何时写入 MEMORY.md,何时写入 daily log

一个最简单的判断标准:

写入 MEMORY.md:长期偏好、不频繁变动的事实、反复使用的约定。

写入 memory/YYYY-MM-DD.md:当天讨论的内容、某个任务的临时进展、尚未沉淀为长期规则的信息。

用一句话概括:三天后大概率仍成立的内容,优先考虑 MEMORY.md;仅对今天及最近几天有意义的内容,优先写进 daily log。

五、Agent 如何读取这些记忆

OpenClaw 目前暴露了两个关键工具:

  • memory_search:用于语义检索相关记忆片段。
  • memory_get:用于精确读取某个 Markdown 文件或指定范围。

一个很实用的细节:如果文件不存在,memory_get 不会直接抛出 ENOENT 错误,而是优雅地返回空内容。这意味着“今天尚未有任何记录”会被视为正常状态,不会导致流程中断。

六、Compaction 前为何还要提醒模型写记忆

OpenClaw 的记忆设计中,还有一个容易被低估的机制:pre-compaction memory flush。

具体来说,当 session 即将达到 auto-compaction 阈值时,OpenClaw 会触发一个静默的 agent turn,提醒模型在上下文被压缩前,将值得保留的长期信息写入 memory 文件。

这个机制解决了三个工程问题:

  1. 上下文压缩时,重要信息不会被直接丢弃
  2. 长期记忆能从会话缓存沉淀到磁盘文件
  3. 记忆沉淀不依赖每次人工手动提醒

默认提示通常引导模型在不需要回复用户时返回 NO_REPLY,因此用户通常看不到这次静默刷新。

七、记忆检索不止向量检索

许多文章提到 memory search 时只强调 embedding。OpenClaw 则做了更细的划分:

  • 支持向量检索:可对 MEMORY.mdmemory/*.md 建立索引。
  • 支持 hybrid search:结合向量相似度与文本检索信号。
  • 支持 MMR 去重:当 daily note 数量多且内容高度相似时,MMR 能减少“搜出来的全是雷同片段”的问题。
  • 支持 temporal decay:旧记录因时间衰减而降低排序权重,确保昨天的新内容不会被半年前的旧记录压过。

这说明 OpenClaw 在记忆检索上真正关注的是:相关性、多样性与时效性。

八、Session 与记忆的边界不能混淆

这是新手最容易犯的错误之一。

Session 更像是当前会话的运行容器,包含消息历史、工具结果和生命周期事件。而 memory 是跨 session 的长期沉淀。官方文档虽然提到 session transcript 可以实验性索引进 memory_search,但这属于 opt-in 能力,且仍应将磁盘访问视为信任边界。

因此更稳健的理解是:session 是运行轨迹,memory 是沉淀后的长期知识。不要把全部 session 内容都当作长期记忆,否则检索迟早会被污染。

九、真正该先掌握的,不是 embedding 参数,而是记忆纪律

想用好 OpenClaw 的记忆,最关键的不是研究 provider 配置,而是建立以下判断框架:

  1. 哪些信息值得长期保留
  2. 哪些信息只是当天上下文
  3. 哪些旧信息应该被时间衰减
  4. 哪些记忆只适合私有场景,不应进入群聊上下文

换句话说:会话只是活水,记忆才是水库。

十、新手的最小记忆检查清单

如果你今天就想确定自己是否用对了记忆系统,请自检以下 5 项:

  1. 是否已将长期偏好写入 MEMORY.md
  2. 是否已将当天进展写入 daily log
  3. 是否已经在新 session 中验证这些信息能被召回
  4. 是否避免将群聊内容直接当作长期记忆
  5. 是否将 session 和 memory 视为两个独立层次

完成这一步后,再去研究 embedding、hybrid search 与 compaction 参数,顺序才是正确的。

十一、这一篇之后,你该建立什么认知

学到这里,你应该把 OpenClaw 的记忆理解为:它不是“模型突然记住了你”,而是系统将长期信息稳定地写入文件,并在适当时机将其召回。

下一篇,我们将从单个 agent 继续向前,看一个 Gateway 如何同时托管多个隔离 agent。

参考链接

  • Memory:https://docs.openclaw.ai/concepts/memory
  • Multi-Agent Routing:https://docs.openclaw.ai/concepts/multi-agent
  • Agent Loop:https://docs.openclaw.ai/concepts/agent-loop

这一篇属于 OpenClaw 系列的「进阶」阶段。

上一篇:OpenClaw Skill 实战:写一个真正可用的 SKILL.md

下一篇:OpenClaw 多 Agent 路由:一个 Gateway 如何托管多套工作人格

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策