【OpenClaw 第 3 篇】记忆系统:三层架构让你的 AI 不会失忆
传统 AI Chat 的终极痛点——每次打开都是全新对话。OpenClaw 的三层记忆架构,让 AI 真正「认识你」。
不知道你有没有这种体验:跟 ChatGPT 聊了半小时,把需求背景交代得清清楚楚。第二天打开新对话——它又忘了。你得从头解释一遍。
这不是模型的问题,是架构的缺失。OpenClaw 通过三层记忆体系解决了这个痛点。
三层记忆架构总览

OpenClaw 的记忆不是单点方案,而是一个分层设计:
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
每一层有不同的职责和刷新策略,互不干扰。
第一层: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 最长一次连续对话是多久?你觉得记忆系统还需要什么能力?
夜雨聆风