Memory 记忆系统
Memory 是 OpenClaw 的长期记忆系统,让 Agent 能够记住你的偏好、历史、规则。本章介绍如何配置和管理 AI 的记忆。
为什么需要 Memory?
没有 Memory 的 AI 每次都像第一次认识你,需要反复解释需求,上下文容易丢失,无法形成长期协作关系。
有了 Memory 后:
- 不用反复解释:一次配置,长期有效
- AI 不跑偏:按你的习惯和规则做事
- 复杂任务连贯:多步骤任务可以连贯执行
- 越用越懂你:记住你的风格和偏好
三层记忆架构
OpenClaw 采用分层文件化记忆(Hierarchical File-based Memory),将记忆持久化为本地 Markdown 文件。
┌─────────────────────────────────────────┐
│ Working Memory(工作记忆) │
│ 当前对话上下文 / 临时变量 / 计算结果 │
│ 生命周期:单次会话 │
├─────────────────────────────────────────┤
│ Short-term Memory(短期记忆) │
│ CHAT_HISTORY.md / 会话级上下文摘要 │
│ 生命周期:可配置(默认 7 天/100 轮) │
├─────────────────────────────────────────┤
│ Long-term Memory(长期记忆) │
│ MEMORY.md / SOUL.md / SKILLS/ │
│ 生命周期:永久持久化,自动更新 │
└─────────────────────────────────────────┘
工作记忆(Working Memory)
工作记忆是当前对话的上下文,包括:
- 当前对话的消息历史
- 临时变量和计算结果
- 当前任务的状态
工作记忆的生命周期是单次会话,会话结束后自动清除。
短期记忆(Short-term Memory)
短期记忆存储在 CHAT_HISTORY.md 文件中,包括:
- 最近 N 轮对话的摘要
- 会话级上下文
- 重要的临时决策
生命周期可配置,默认保留 7 天或 100 轮对话。
长期记忆(Long-term Memory)
长期记忆永久持久化,包括:
- MEMORY.md:事实性知识库
- SOUL.md:人格与风格定义
- SKILLS/:技能库
核心记忆文件
MEMORY.md(事实记忆库)
MEMORY.md 存储用户偏好、重要事实、业务规则等显式知识。
文件结构
# 用户偏好
## 工作习惯
- 工作时间:周一到周五,9:00-18:00
- 常用工具:VS Code、Terminal、Chrome
- 文件存放路径:D:\工作文件\
## 沟通风格
- 回复风格:简洁、直接
- 语言:中文为主,技术术语用英文
- 格式偏好:使用表格和列表
## 重要信息
- 邮箱:[email protected]
- 常用项目:project-alpha, project-beta
## 业务规则
- 发送邮件前需要确认
- 修改代码前需要备份
- 重要操作需要记录日志
更新机制
- 增量写入:对话中识别到关键事实自动追加
- 定期压缩:当文件超过阈值(如 8KB),自动触发总结,将详细记录压缩为高层级事实
- 手动编辑:用户可以直接编辑 MEMORY.md
编辑命令
# 编辑 MEMORY.md
openclaw memory edit
# 查看当前记忆
openclaw memory show
# 添加记忆条目
openclaw memory add "用户喜欢使用深色主题"
SOUL.md(人格定义)
SOUL.md 定义 Agent 的行为模式、语气、价值观和自我认知。类似于系统提示词(System Prompt)的持久化版本,但支持运行时演化。
文件结构
# 你是谁
你是一位严谨的代码审查员,专注于帮助用户提高代码质量。
## 核心职责
- 审查代码,发现潜在问题
- 提供改进建议
- 解释最佳实践
## 语言风格
- 正式、专业
- 使用技术术语
- 提供代码示例
## 行为约束
- 不随意修改用户代码
- 每次修改前说明原因
- 保持客观中立
## 自我认知
- 我是用户的代码助手
- 我帮助用户写出更好的代码
- 我尊重用户的编码风格
配置命令
# 编辑 SOUL.md
openclaw soul edit
# 使用预设人格
openclaw soul set assistant # 通用助手
openclaw soul set developer # 开发者
openclaw soul set writer # 写作助手
openclaw soul set analyst # 数据分析师
HEARTBEAT.md(心跳任务)
HEARTBEAT.md 定义定期检查的任务清单。
文件结构
# Heartbeat 任务
## 定期检查(每 30 分钟)
- 检查未读邮件,有重要的就通知我
- 看看今天还有没有未完成的日程
- 如果距离下一个会议 < 30 分钟,提醒我
## 条件触发
- 当 CPU 使用率 > 90% 时,发送警告
- 当磁盘空间 < 10GB 时,提醒清理
- 当有新的 GitHub PR 时,通知我
## 自动化任务
- 每天下班前整理今日工作总结
- 每周五生成本周回顾
配置命令
# 编辑 HEARTBEAT.md
openclaw heartbeat edit
# 查看当前心跳任务
openclaw heartbeat show
# 手动触发心跳检查
openclaw heartbeat trigger
记忆配置
配置文件位置
记忆文件默认存储在 ~/.openclaw/memory/ 目录:
~/.openclaw/memory/
├── MEMORY.md
├── SOUL.md
├── HEARTBEAT.md
├── CHAT_HISTORY.md
└── archives/ # 归档的记忆
配置参数
# 设置短期记忆保留天数
openclaw config set memory.short_term_days 7
# 设置短期记忆保留轮数
openclaw config set memory.short_term_rounds 100
# 设置长期记忆文件大小阈值
openclaw config set memory.compression_threshold 8192
# 启用/禁用自动总结
openclaw config set memory.auto_summarize true
记忆管理
查看记忆
# 查看所有记忆文件
openclaw memory list
# 查看特定记忆文件
openclaw memory show MEMORY.md
# 搜索记忆内容
openclaw memory search "工作习惯"
编辑记忆
# 编辑 MEMORY.md
openclaw memory edit
# 添加记忆条目
openclaw memory add "用户是素食主义者"
# 删除记忆条目
openclaw memory remove "旧的信息"
导入导出
# 导出记忆到文件
openclaw memory export memory-backup.json
# 从文件导入记忆
openclaw memory import memory-backup.json
# 清空所有记忆
openclaw memory clear
归档记忆
# 归档旧记忆
openclaw memory archive
# 查看归档
openclaw memory archive list
# 恢复归档
openclaw memory archive restore 2026-03-01
记忆模板
个人助手模板
# 用户信息
## 基本信息
- 姓名:
- 职业:
- 常用语言:
## 工作习惯
- 工作时间:
- 常用工具:
- 文件存放路径:
## 沟通偏好
- 回复风格:
- 语言:
- 格式偏好:
## 重要信息
- 邮箱:
- 常用项目:
- 重要联系人:
## 业务规则
-
-
-
开发者模板
# 开发者信息
## 技术栈
- 主要语言:
- 框架:
- 数据库:
- 开发工具:
## 项目信息
- 当前项目:
- 项目路径:
- Git 仓库:
## 编码规范
- 代码风格:
- 命名规范:
- 注释要求:
## 部署信息
- 服务器:
- 环境:
- CI/CD:
写作助手模板
# 写作偏好
## 写作风格
- 整体风格:
- 语气:
- 目标读者:
## 格式要求
- 标题格式:
- 段落长度:
- 列表偏好:
## 内容偏好
- 主题:
- 禁忌话题:
- 必须包含:
## 发布平台
-
-
-
记忆最佳实践
保持简洁
记忆文件不是日记,只记录重要信息。避免冗余和重复。
结构化组织
使用标题、列表、表格等格式组织记忆,便于 AI 理解和检索。
定期维护
# 每月检查一次记忆
openclaw memory review
# 清理过时信息
openclaw memory cleanup
分类存储
不同类型的信息放在不同的记忆区域:
# 用户偏好
## 工作
...
## 生活
...
## 学习
...
常见问题
记忆不生效
原因:记忆文件格式错误或路径配置错误。
解决:
# 验证记忆文件格式
openclaw memory validate
# 检查配置路径
openclaw config show memory.path
记忆丢失
原因:意外删除或文件损坏。
解决:
# 从归档恢复
openclaw memory archive restore latest
# 从备份导入
openclaw memory import backup.json
记忆过大
原因:长期使用积累了大量信息。
解决:
# 手动触发压缩
openclaw memory compress
# 归档旧记忆
openclaw memory archive --older-than 30d
下一步
- 定时任务 - 配合 Memory 实现自动化
- 多 Agent 协作 - 每个 Agent 可以有独立的 Memory
- 最佳实践 - 生产环境配置建议