1212 字
约 4 分钟
2
OpenClaw 的 Memory 机制:Agent 为什么能“记住你”?

OpenClaw 的 Memory 机制:Agent 为什么能“记住你”?

普通大模型有一个很明显的问题:

这次聊得好好的,下次再聊,它可能已经不知道之前发生过什么。

所以 Agent 除了会思考、会调用工具,还需要一个非常重要的能力:

Memory。

可以先把 OpenClaw 的记忆理解成两层:

Session / Context
        ↓
   当前对话记忆
        ↓
     Memory
        ↓
   跨对话长期信息

一、Session:记住“我们刚才聊了什么”

Session 主要解决当前对话连续性

例如:

用户:我的项目数据库用 MySQL。

用户:帮我设计一个用户表。

第二句话没有再次说“MySQL”,但 Agent 仍然需要结合前面的上下文来回答。

Session 中通常会涉及:

用户输入
Agent 回复
工具调用
工具返回结果
当前任务上下文

所以可以简单记成:

Session 解决“接着聊”的问题。


二、Memory:记住“以后还有用的信息”

但 Session 不可能无限增长。

如果聊了几百轮,每次都把全部历史消息送给 LLM:

对话越来越长
     ↓
Context 越来越大
     ↓
Token 越来越多
     ↓
速度越来越慢
     ↓
成本越来越高

因此需要把真正有长期价值的信息,从大量聊天内容中沉淀下来。

例如:

用户长期偏好
项目的重要约定
关键业务背景
长期有效的事实
重要任务结论

这就是长期 Memory 更适合承担的角色。

所以:

Memory 不是把所有聊天记录永久保存,而是尽可能留下以后真正有用的信息。


三、Compaction:上下文太长怎么办?

这里还有一个非常重要的概念:

Compaction(上下文压缩)。

假设当前上下文已经非常长:

第1轮
第2轮
第3轮
...
第80轮
第81轮
第82轮

不能永远原封不动地全部塞给模型。

因此需要进行压缩:

大量历史上下文
       ↓
   Compaction
       ↓
提取 / 总结重要信息
       ↓
缩短上下文
       ↓
继续后面的任务

它解决的核心问题就是:

有限的 Context Window,如何支撑更长时间的任务和对话?


四、Memory 怎么被重新使用?

有了长期记忆还不够。

关键是:

需要的时候,Agent 怎么把正确的记忆找回来?

可以把它理解成:

用户提出新问题
      ↓
判断当前需要什么背景
      ↓
寻找相关 Memory
      ↓
把相关信息加入 Context
      ↓
交给 LLM
      ↓
生成答案

这里有一个非常重要的思想:

不是把所有 Memory 都塞给模型,而是只拿当前任务真正相关的部分。

否则 Memory 越多,上下文反而越乱。


五、Session、Compaction、Memory 到底什么关系?

一张图就能说明白:

             用户不断对话
                  ↓
               Session
          当前完整上下文
                  ↓
           内容越来越多
                  ↓
             Compaction
             上下文压缩
                  ↓
        ┌─────────┴─────────┐
        ↓                   ↓
继续当前任务           沉淀重要信息
        ↓                   ↓
     Context              Memory
        ↑                   │
        └────需要时检索──────┘

因此三者不要混淆:

Session:现在正在聊什么。

Compaction:内容太长了,怎么压缩。

Memory:哪些信息值得以后继续使用。


六、Memory 不是越多越好

这是实际使用 Agent 时非常容易踩的坑。

如果什么都记:

你好
谢谢
临时搜索结果
重复信息
过期任务
无关聊天

最后 Memory 会变成一个“垃圾场”。

真正好的记忆系统应该追求:

少
+
准
+
相关
+
可更新

比如:

“用户喜欢喝咖啡”

可能值得记。

但:

“用户今天下午 3:17 说了一句谢谢”

通常没有长期价值。

所以 Memory 最难的地方,其实不是“存”。

而是三个问题:

记什么?什么时候记?什么时候拿出来?


七、一句话搞懂 Memory

把整个 Agent 想象成人:

Context / Session
= 工作台上正在看的材料

Compaction
= 把一大堆材料整理成重点

Memory
= 笔记本里长期保存的重要信息

LLM
= 大脑

Tools
= 手脚

所以 OpenClaw 的 Memory 机制,本质上是在解决:

如何让一个上下文窗口有限的 Agent,在长期使用过程中仍然保持任务和信息的连续性。

这也是 Agent 从“一问一答的聊天机器人”,走向长期智能助手非常关键的一步。


OpenClaw 的 Memory 机制:Agent 为什么能“记住你”?
http://www.clxhxhhr.top/posts/422/
作者
clxstart
发布于
2026-09-02
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。