乐于分享
好东西不私藏

【OpenClaw 第 3 篇】记忆系统:三层架构让你的 AI 不会失忆

【OpenClaw 第 3 篇】记忆系统:三层架构让你的 AI 不会失忆

传统 AI Chat 的终极痛点——每次打开都是全新对话。OpenClaw 的三层记忆架构,让 AI 真正「认识你」。

不知道你有没有这种体验:跟 ChatGPT 聊了半小时,把需求背景交代得清清楚楚。第二天打开新对话——它又忘了。你得从头解释一遍。

这不是模型的问题,是架构的缺失。OpenClaw 通过三层记忆体系解决了这个痛点。

三层记忆架构总览

OpenClaw 的记忆不是单点方案,而是一个分层设计:

层级
存储媒介
生命周期
作用
Workspace 记忆
`AGENTS.md` / `SOUL.md` 等文件
持久,手动编辑
人格、长期偏好、操作规则
Session 记忆
JSONL 转录文件
Daily Reset / Idle Reset
对话上下文连续性
Memory Plugin
插件后端(可替换)
持久,自动管理
跨 Session 的长期记忆

每一层有不同的职责和刷新策略,互不干扰。

第一层:Bootstrap 文件(Workspace 记忆)

每个 OpenClaw Agent 的 workspace 根目录下有这些文件:

1
2
3
4
5
6
7
~/.openclaw/workspace/├── AGENTS.md       # 操作指令 + 长期记忆├── SOUL.md         # 人格定义、边界、语气├── TOOLS.md        # 工具使用笔记├── USER.md         # 用户画像├── BOOTSTRAP.md    # 一次性初始化指引└── IDENTITY.md     # Agent 名称/风格

在每个新 Session 的第一次对话时,OpenClaw 会把这些文件的内容注入 System Prompt。相当于每次「醒来」,Agent 重新读一遍它的「个人档案」。

关键细节:

• 空文件会被跳过,不会浪费 token

• 大文件会被截断,保证 prompt 不膨胀

– BOOTSTRAP.md 只在全新 workspace 时创建一次,完成后可以删除

– 可以用 agents.defaults.skipBootstrap: true 完全禁用这个机制

实际使用建议:把长期不变的规则写在 AGENTS.md,把工具使用技巧写在 TOOLS.md,把性格设定写在 SOUL.md。这样 Agent 的行为高度可预期。

第二层:Session 记忆(对话连续性)

Session 是 OpenClaw 的核心会话单元。每条消息被路由到一个 Session,对话转录以 JSONL 格式保存:

1
~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl

Session 生命周期

Session 不会无限增长。三种重置机制:

1. Daily Reset(默认):每天凌晨 4:00(Gateway 主机本地时间)自动创建新 Session

2. Idle Reset(可选):配置 session.reset.idleMinutes,闲置超时后重置

3. Manual Reset:在聊天中发送 /new 或 /reset 指令

当两种自动重置同时配置时,先到先触发

注意:Heartbeat、Cron、Webhook 等系统事件不会延长 Session 的有效期——只有真实的用户交互才会。

DM 隔离策略

如果你的 Agent 被多人使用,必须配置 DM 隔离,否则所有人的对话会混在一个 Session 里:

1
2
3
4
5
{  session: {    dmScope: "per-channel-peer",  // 推荐  },}

四种隔离级别:

– main(默认):所有 DM 共享一个 Session

– per-peer:按发送者隔离(跨渠道)

– per-channel-peer:按渠道+发送者隔离(推荐

– per-account-channel-peer:按账号+渠道+发送者隔离

如果同一个人从多个渠道联系你,用 session.identityLinks 关联身份,避免Session 碎片化。

第三层:Memory Plugin(长期记忆)

前两层解决的是「同一个 Session 不丢上下文」和「每次启动加载规则」。但真正的长期记忆——跨 Session 的持久化知识——由 Memory Plugin 层负责。

OpenClaw 的 Memory Plugin 是一个独占插槽:同一时间只有一个 Memory Plugin 处于激活状态。目前有多种后端可选,官方计划在未来收敛到一个推荐默认方案。

Memory Plugin 的职责:

– 自动从对话中提取重要信息

– 跨 Session 检索相关记忆

– 支持向量搜索、BM25 等混合检索

– 时间衰减——越久远的记忆权重越低

Compaction 机制

当对话历史超过模型的上下文窗口限制时,OpenClaw 会自动触发 Compaction(压缩)。它会生成历史对话的摘要,替代原始转录注入后续对话,从而在有限的 token 预算内保持上下文连续性。

这个过程对用户透明——你感知不到,但 Agent 会在对话过长时自动「总结过去」。

Session 维护

长期运行后,Session 文件会积累。配置自动清理:

1
2
3
4
5
6
7
8
9
{  session: {    maintenance: {      mode: "enforce",      // 自动清理      pruneAfter: "30d",    // 30天后清除      maxEntries: 500,      // 最多保留500条    },  },}

默认是 warn 模式——只报告不清除。建议切换到 enforce

避坑

1. Bootstrap 文件不要写太大:超过一定大小的文件会被截断。规则要精简。

2. /new 会立即切断当前会话:如果需要保留上下文,用 /compact 压缩而不是重置。

3. DM 隔离别忘了配:多人使用时,没配 dmScope 会导致隐私问题。

4. Memory Plugin 不要频繁切换:切换会丢失之前的记忆数据。

下一步

记忆系统让 AI 认识你,渠道系统让 AI 触达你。下一篇,讲怎么让 OpenClaw 接入 WhatsApp、Telegram、飞书等 20+ 平台。

你的 AI 最长一次连续对话是多久?你觉得记忆系统还需要什么能力?