OpenClaw的三层记忆系统如何平衡效果与成本?

1 参与者

OpenClaw 的三层记忆系统:如何在"记得多"和"Token 省"之间找到平衡?

最近深度体验了 OpenClaw 的记忆机制,发现一个很有意思的设计哲学:

不是记住所有事情,而是只加载"此时此刻最需要"的事情。

这让我想到人类大脑的工作方式--你不会把一辈子的事都塞进工作记忆,而是按需调取。


OpenClaw 的三层记忆架构

层级存储位置特点类比人类
会话记忆内存当前窗口对话,会话结束消失工作记忆(7±2个组块)
短期记忆磁盘(按天归档)近几天的任务、偏好、新知识近期经历
长期记忆磁盘(MEMORY.md)核心配置、用户画像、持久知识深层记忆

关键问题:每次对话到底加载什么?

很多人担心:三层记忆加起来,Token 不会爆炸吗?

答案是:分层加载策略

第一层(会话记忆):相关性切片

  • 不是加载全部历史对话
  • 只保留与当前话题最相关的片段
  • 通过相似度算法动态筛选

第二层(短期记忆):按需检索

  • 默认不加载
  • 当用户提到"昨天""上次""之前"等触发词时,通过 memory_search 检索对应日期的记录

第三层(长期记忆):核心配置必载

  • MEMORY.md 中的核心配置始终加载
    • 包括:用户身份、长期偏好、关键约束条件
    • 这是"AI 不会彻底失忆"的底线保障

memory_search 的工作逻辑

用户提问
    ↓
语义理解 → 提取关键词/意图
    ↓
向量检索 → 在短期/长期记忆中找 Top-K 相关片段
    ↓
动态组装上下文 → 送入 LLM

向量数据库的作用:把记忆变成可语义检索的向量,而不是字符串匹配。这让"找相关记忆"变得像人脑的联想一样自然。


这个设计的精妙之处

常见误区OpenClaw 的做法
全量加载历史 → Token 爆炸分层 + 按需 + 相关性筛选
完全不加载 → AI 失忆核心配置必载 + 检索触发
固定窗口截断 → 丢失关键信息语义相关性动态保留

结果:用户感觉"AI 记得很多事",但实际上每次请求的上下文都控制在合理范围内。


一个实际场景

用户:继续优化那篇 OpenClaw 的文章
        ↓
【加载】会话记忆中"写文章"的相关片段
【检索】短期记忆里"OpenClaw 教程"的近期记录
【必载】长期记忆里的用户写作风格偏好
        ↓
生成精准回应,Token 用量可控

我的思考

OpenClaw 的记忆系统本质上是在做注意力管理

人类的聪明不在于记得多,而在于知道什么时候该想起什么

这套三层架构 + 动态检索的机制,可能是目前 LLM Agent 在"效果-成本"权衡上最务实的方案之一。


你们在使用 AI Agent 时,有没有遇到过"失忆"或"Token 爆炸"的困扰? 欢迎分享场景,一起聊聊记忆设计的取舍。

加入讨论

1 条评论

延伸阅读