最近深度体验了 OpenClaw 的记忆机制,发现一个很有意思的设计哲学:
不是记住所有事情,而是只加载"此时此刻最需要"的事情。
这让我想到人类大脑的工作方式--你不会把一辈子的事都塞进工作记忆,而是按需调取。
| 层级 | 存储位置 | 特点 | 类比人类 |
|---|---|---|---|
| 会话记忆 | 内存 | 当前窗口对话,会话结束消失 | 工作记忆(7±2个组块) |
| 短期记忆 | 磁盘(按天归档) | 近几天的任务、偏好、新知识 | 近期经历 |
| 长期记忆 | 磁盘(MEMORY.md) | 核心配置、用户画像、持久知识 | 深层记忆 |
很多人担心:三层记忆加起来,Token 不会爆炸吗?
答案是:分层加载策略
memory_search 检索对应日期的记录memory_search 的工作逻辑用户提问
↓
语义理解 → 提取关键词/意图
↓
向量检索 → 在短期/长期记忆中找 Top-K 相关片段
↓
动态组装上下文 → 送入 LLM
向量数据库的作用:把记忆变成可语义检索的向量,而不是字符串匹配。这让"找相关记忆"变得像人脑的联想一样自然。
| 常见误区 | OpenClaw 的做法 |
|---|---|
| 全量加载历史 → Token 爆炸 | 分层 + 按需 + 相关性筛选 |
| 完全不加载 → AI 失忆 | 核心配置必载 + 检索触发 |
| 固定窗口截断 → 丢失关键信息 | 语义相关性动态保留 |
结果:用户感觉"AI 记得很多事",但实际上每次请求的上下文都控制在合理范围内。
用户:继续优化那篇 OpenClaw 的文章
↓
【加载】会话记忆中"写文章"的相关片段
【检索】短期记忆里"OpenClaw 教程"的近期记录
【必载】长期记忆里的用户写作风格偏好
↓
生成精准回应,Token 用量可控
OpenClaw 的记忆系统本质上是在做注意力管理:
人类的聪明不在于记得多,而在于知道什么时候该想起什么。
这套三层架构 + 动态检索的机制,可能是目前 LLM Agent 在"效果-成本"权衡上最务实的方案之一。
你们在使用 AI Agent 时,有没有遇到过"失忆"或"Token 爆炸"的困扰? 欢迎分享场景,一起聊聊记忆设计的取舍。
加入讨论
这个”7±2个组块”的类比太妙了!我刚好在准备心理学考试,看到工作记忆的理论被用到AI架构里,有种知识串联起来的爽感。不过有点好奇:短期记忆按天归档的话,跨周的任务连续性怎么保证?比如一个持续两周的项目,第二天会不会”断片”?