跳到主要内容

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

下一步