OpenClaw 记忆系统配置

OpenClaw 学习笔记

分类:配置与定制

核心主题:OpenClaw 记忆系统(Memory System)的架构、配置与管理方法

主要内容:深入分析 OpenClaw AI Agent 的记忆系统架构,包括静态记忆与动态记忆的划分、MEMORY.md 及 memory/*.md 文件管理规范、lossless-claw 插件的工作原理(SQLite 持久化与 DAG 有向无环图结构)、OOLONG 基准测试成绩对比(74.8 分 vs Claude Code 70.3 分)、Memory Palace 三维空间记忆模型、Dreaming 跨平台记忆整合模块以及 Memory Flush 记忆刷新机制。

关键词:OpenClaw, AI Agent, Memory System, MEMORY.md, lossless-claw, SQLite, DAG, OOLONG, Memory Palace, Dreaming, Memory Flush

一、记忆系统概述

OpenClaw 的记忆系统是其作为 AI Agent 的核心能力之一,旨在解决大语言模型在长期对话和任务执行中的上下文丢失问题。该系统将记忆划分为两大类型:静态记忆(Static Memory)动态记忆(Dynamic Memory),二者协同工作,构建了一个层次分明、持久可靠的记忆架构。

1.1 静态记忆(Static Memory)

静态记忆是指那些由用户或开发者预先定义、在会话开始前就已写入系统提示中的固定信息。这类记忆具有以下特征:

核心作用:静态记忆为 Agent 提供了长期稳定的"背景知识",包括项目规范、编码约定、用户偏好、关键决策记录等。这些信息构成了 Agent 的行为基准,确保不同会话之间的行为一致性。

1.2 动态记忆(Dynamic Memory)

动态记忆是指在 Agent 运行过程中实时生成、更新和维护的记忆信息。与静态记忆相比,动态记忆具有以下特点:

1.3 静态记忆与动态记忆的对比

维度 静态记忆 动态记忆
存储位置 CLAUDE.md、MEMORY.md 等文件 SQLite 数据库、DAG 图文件
管理方式 用户手动编写维护 Agent/插件自动管理
更新频率 低(随项目进展手动更新) 高(每次交互都可能更新)
生命周期 永久(直到被用户删除) 按需(可自动清理和压缩)
作用范围 全局(所有会话共享) 全局(跨会话持久化)
检索方式 全量注入系统提示 按需检索(RAG 或图遍历)

记忆系统设计哲学

OpenClaw 的设计理念是"让 Agent 记住该记住的,忘记该忘记的"。静态记忆确保核心知识不丢失,动态记忆则提供了灵活性和可扩展性。二者结合,使得 Agent 既能保持稳定的行为模式,又能根据实际情况动态调整。

二、MEMORY.md 与 memory/*.md 文件管理

在 OpenClaw 的记忆系统中,MEMORY.md 文件和 memory/ 目录下的 Markdown 文件构成了静态记忆的核心载体。这些文件遵循特定的格式和层级规范,确保 Agent 能够正确解析和利用其中的信息。

2.1 MEMORY.md 文件格式

MEMORY.md 是 OpenClaw 中最重要的静态记忆文件之一,通常存放在项目的 .claude/ 目录下(或根据配置在用户主目录的 .claude/ 中)。其标准格式如下:

# Project Memory

## Current State
- Active branch: main
- Current task: 实现用户认证模块
- Blockers: 等待 API 文档更新

## Architecture Decisions
- 2026-04-28: 决定使用 JWT 进行用户认证 (原因: 无状态、易扩展)
- 2026-04-25: 采用 PostgreSQL 作为主数据库 (原因: 复杂查询需求)

## Known Issues
- 登录页面在 Safari 浏览器下有布局偏移问题 (#142)

## Recent Changes
- 2026-05-01: 完成用户注册 API
- 2026-04-30: 添加邮箱验证功能

2.2 memory/*.md 模块化记忆文件

当项目规模扩大时,单一的 MEMORY.md 可能变得过于庞大。OpenClaw 支持将记忆拆分为多个独立的 Markdown 文件,放置在 memory/ 目录下。这种模块化管理方式具有以下优势:

.claude/
├── CLAUDE.md          # 项目级指令(行为规范)
├── MEMORY.md          # 核心记忆文件
├── memory/
│   ├── architecture.md   # 架构决策记录
│   ├── decisions.md      # 关键决策日志
│   ├── progress.md       # 进度追踪
│   └── glossary.md       # 术语表
└── settings.json      # 环境配置

2.3 # currentDate 上下文注入

OpenClaw 在记忆系统中自动注入当前日期信息,通过 # currentDate 标记实现。这个机制确保 Agent 始终知道当前的时间上下文,从而在生成响应时考虑到时间因素:

日期感知的重要性:当 Agent 知道当前日期时,它可以更准确地判断"最近"、"上周"、"下个月"等相对时间概念,避免因时间错位导致的逻辑错误。例如,如果记忆中提到"上周修改了某功能",Agent 结合当前日期即可准确理解这是哪个时间段。

2.4 记忆文件的最佳实践

小贴士

MEMORY.md 中,可以使用 # system-reminder 标记来定义系统级别的提示内容,这些内容将在每次交互中被优先加载,适合放置最关键的行为约束和项目规范。

三、lossless-claw 插件

lossless-claw 是 OpenClaw 生态中最重要的动态记忆管理插件。它通过 SQLite 数据库和 DAG(有向无环图)结构,实现了高效、无损、可追溯的记忆持久化机制。该插件的名称"lossless"(无损)体现了其核心设计理念:确保 Agent 的记忆在任何情况下都不会丢失或被压缩失真。

3.1 SQLite 持久化存储

lossless-claw 采用 SQLite 作为底层存储引擎,这种选择基于以下考量:

-- lossless-claw SQLite 记忆表结构示例
CREATE TABLE memories (
    id          INTEGER PRIMARY KEY AUTOINCREMENT,
    dag_node_id TEXT    NOT NULL,          -- DAG 节点 ID
    content     TEXT    NOT NULL,          -- 记忆内容
    memory_type TEXT    NOT NULL,          -- 记忆类型 (task/decision/context/event)
    created_at  TEXT    NOT NULL,          -- 创建时间戳
    updated_at  TEXT,                      -- 最后更新时间
    priority    INTEGER DEFAULT 0,         -- 优先级 (越高越重要)
    source      TEXT,                      -- 来源 (会话ID/工具调用)
    tags        TEXT                       -- 标签 (JSON 数组)
);

3.2 DAG(有向无环图)结构

lossless-claw 的核心创新在于使用 DAG 来组织记忆之间的关系。与传统的线性日志或键值对存储不同,DAG 结构能够精确记录记忆之间的因果依赖关系,为 Agent 提供了强大的推理基础:

3.2.1 DAG 的核心特性

3.2.2 DAG 的记忆检索优势

当 Agent 需要查找某个决策的上下文时,DAG 结构允许它沿着有向边回溯到决策的源头,获取完整的推理链路。这种检索方式比简单的关键词搜索更精确,因为:

DAG 记忆推理示例

假设 Agent 在处理"添加用户认证功能"的任务时,DAG 记忆结构如下:
节点 A: 用户要求添加登录功能(原始需求)
节点 B: 选择 JWT 作为认证方案(决策,依赖 A)
节点 C: 实现 Token 校验中间件(实现,依赖 B)
节点 D: 发现 Token 刷新机制需要额外处理(问题,依赖 C)
节点 E: 添加 Refresh Token 支持(解决方案,依赖 D)

当 Agent 在未来被问到"为什么引入 Refresh Token"时,通过 DAG 回溯即可完整呈现从原始需求到最终实现的完整决策链。

3.3 lossless-claw 的配置方法

{
"plugins": {
"lossless-claw": {
"enabled": true,
"storage_path": ".claude/memory.db",
"max_memories": 10000,
"auto_compress": true,
"compression_threshold": 5000,
"retention_days": 90,
"dag": {
"max_depth": 50,
"prune_strategy": "importance_based"
}
}
}
}

注意事项

lossless-claw 插件的 DAG 深度(max_depth)设置过大可能导致记忆检索时的性能开销增加。一般情况下,50 层的深度已足够覆盖绝大多数 Agent 任务场景。对于长时间运行的项目,建议定期使用 Memory Flush 机制进行压缩和清理。

四、OOLONG 基准测试

OOLONG(OpenCLAW 长上下文效能基准测试)是 OpenClaw 团队设计的标准化评估框架,用于衡量 AI Agent 在长上下文环境下的记忆管理和任务执行能力。该测试模拟了真实的长期对话场景,评估 Agent 在多轮交互中的信息保持、回忆和推理能力。

4.1 测试结果对比

Agent 综合得分 记忆召回率 上下文理解 任务执行 一致性
OpenClaw 74.8 78.2 72.5 76.1 72.4
Claude Code 70.3 71.8 69.7 72.0 67.7

4.2 OpenClaw 的优势分析

从测试结果来看,OpenClaw 在综合得分上以 74.8 分 领先 Claude Code 的 70.3 分,领先幅度为 4.5 分(约 6.4%)。这一优势主要来源于以下几个方面:

4.3 OOLONG 测试维度详解

关键发现:OOLONG 测试结果表明,系统化的记忆管理机制(而非单纯的模型能力提升)是提高 AI Agent 长期任务性能的关键因素。OpenClaw 通过在记忆层面的系统优化,即使使用相同的基础模型,也能在长上下文场景中取得显著更好的表现。

五、Memory Palace 三维空间记忆模型

Memory Palace(记忆宫殿)是 OpenClaw 引入的一种创新的三维空间记忆模型。该模型借鉴了古典记忆术中的"位置记忆法"(Method of Loci)概念,将 Agent 的记忆组织为一个多维度的虚拟空间,使记忆的存储和检索具备了空间上的结构化特征。

5.1 三维空间架构

Memory Palace 模型将记忆分布在三个维度上:

三维坐标定位示例

一条关于"用户认证模块的 JWT 实现决策"的记忆在 Memory Palace 中的坐标可能是:
X = 技术架构 (主题维度)
Y = 决策层 (抽象层级)
Z = 2026-04-28 (时间维度)

通过这个三维坐标,Agent 可以精确地定位和检索任何一条记忆,而无需线性扫描全部记忆内容。

5.2 空间邻近度检索

Memory Palace 模型的一个重要特性是空间邻近度检索。当 Agent 检索某条记忆时,它不仅返回目标记忆本身,还会返回在三维空间中与目标记忆"邻近"的相关记忆。例如:

5.3 与 DAG 的关系

Memory Palace 模型与 lossless-claw 插件的 DAG 结构并非相互替代,而是互补的关系:

应用场景

Memory Palace 模型特别适合处理大型项目的记忆管理。当项目包含数千条记忆时,三维空间模型能够帮助 Agent 快速定位"我记得有一个跟当前问题类似的情况,但具体在哪里处理的?"这类模糊检索需求。

六、Dreaming 模块

Dreaming(梦境)模块是 OpenClaw 记忆系统中一个极具创新性的组件。其名称灵感来源于人类睡眠中的记忆巩固过程——在睡眠中,大脑会重放白天的经历,将短期记忆转化为长期记忆。Dreaming 模块在有计算资源空闲时,自动对 Agent 的记忆进行后台处理和优化。

6.1 核心功能

6.2 跨平台记忆整合流程

# Dreaming 模块跨平台整合流程
1. 检测空闲时段 — 系统 CPU 和 I/O 负载低于阈值
2. 收集平台数据 — 从各运行环境拉取最新的记忆快照
3. 冲突检测 — 比较不同平台的记忆版本,标记冲突条目
4. 自动合并 — 基于时间戳和信任级别自动合并无冲突记忆
5. 冲突解决 — 对于有冲突的记忆,保留时间戳最新的版本并记录日志
6. 模式提取 — 运行聚类算法,提取重复模式
7. 压缩存储 — 将整合后的记忆写回 SQLite 数据库
8. 生成报告 — 记录本次 Dreaming 周期的处理摘要

6.3 Dreaming 的触发条件

触发条件 说明 频率
空闲检测 系统持续 5 分钟以上处于低负载状态 按需
定时触发 达到预设的时间间隔(默认每 6 小时) 定期
跨平台事件 检测到多个平台的记忆版本差异超过阈值 事件驱动
手动触发 用户通过命令或 API 手动调用 按需

设计理念:Dreaming 模块的名称和设计灵感直接来源于认知科学中关于睡眠与记忆巩固的研究。正如人类需要睡眠来巩固记忆,AI Agent 也需要"休眠"时间来整理和优化其记忆结构。这种仿生学设计使得 OpenClaw 的记忆管理更接近生物智能的工作方式。

七、Memory Flush 机制

Memory Flush(记忆刷新)是 OpenClaw 用于管理记忆生命周期和上下文窗口的关键机制。它的作用类似于操作系统的内存管理——当可用上下文空间不足或记忆变得过时时,Memory Flush 会对记忆进行清理、压缩和重组。

7.1 为什么需要 Memory Flush?

大语言模型的上下文窗口是有限的。随着对话的持续进行,上下文窗口会逐渐被填满。如果不加管理,可能出现以下问题:

7.2 Memory Flush 的工作模式

7.2.1 自动 Flush(按需触发)

当上下文窗口的使用率达到预设的阈值(如 70%)时,系统自动触发 Memory Flush。自动 Flush 的处理策略包括:

7.2.2 手动 Flush(用户控制)

用户也可以通过命令或 API 手动触发 Memory Flush,这在以下场景中特别有用:

7.2.3 智能 Flush(Dreaming 协作)

Memory Flush 与 Dreaming 模块协同工作,在刷新过程中将重要的短期记忆"写入"长期存储:

Memory Flush 的风险

过度或不恰当的 Memory Flush 可能导致 Agent 丢失关键信息。建议:
1. 将自动 Flush 的阈值设置在 70%-80% 之间,避免过早或过晚触发
2. 优先使用"归档"而非"删除"策略,将不活跃记忆移至长期存储
3. 定期审查 Memory Flush 日志,确保没有误删重要信息

7.3 Memory Flush 配置示例

{
"memory_flush": {
"auto_flush": true,
"context_threshold": 0.75, // 上下文使用率达到 75% 时触发
"strategy": "priority_time_decay",
"backup_on_flush": true,
"min_retain_count": 50, // 每次 Flush 至少保留 50 条记忆
"exclude_tags": ["critical", "permanent"]
}
}

Memory Flush 与 Memory Palace 的协作

Memory Flush 在执行清理时,会首先咨询 Memory Palace 模型,了解各条记忆在三维空间中的位置和关联。这种协作确保:
- 即使某条记忆本身优先级不高,但如果是关键推理链上的"桥梁"节点,则会被保留
- 同一条推理链上的多条低优先级记忆可以整体压缩为一条抽象记忆
- 空间上孤立的记忆(与其他记忆无关联)优先被清理

八、核心要点总结

OpenClaw 记忆系统配置的关键要点

  1. 静态记忆与动态记忆是 OpenClaw 记忆系统的两大支柱。静态记忆通过 CLAUDE.md 和 MEMORY.md 文件提供长期稳定的背景知识,动态记忆通过 lossless-claw 插件实现实时、自动化的记忆管理。二者协同工作,既保证了行为稳定性,又提供了灵活扩展能力。
  2. MEMORY.md 及 memory/*.md 构成了静态记忆的文件体系。采用模块化拆分策略(按主题将记忆分为多个文件),可以有效减少上下文污染,提高 Agent 的信息检索效率。
  3. lossless-claw 插件 是 OpenClaw 动态记忆的核心组件。它创造性结合了 SQLite 的持久化能力和 DAG 图结构的关系表达能力,实现了高效、无损、可追溯的记忆管理。DAG 结构尤其擅长表达记忆之间的因果关系,支持 Agent 进行深度的推理回溯。
  4. OOLONG 基准测试 验证了 OpenClaw 记忆系统的实际效果。OpenClaw 以 74.8 分领先 Claude Code 的 70.3 分,在记忆召回率(78.2 vs 71.8)和行为一致性(72.4 vs 67.7)等关键维度上表现出显著优势。
  5. Memory Palace 三维空间记忆模型 将记忆分布在主题(X 轴)、抽象层级(Y 轴)和时间(Z 轴)三个维度上,实现了空间邻近度检索,使 Agent 能够发现记忆之间潜在的语义关联。
  6. Dreaming 模块 借鉴了人类睡眠中的记忆巩固机制,在系统空闲时自动进行跨平台记忆整合、模式发现和记忆压缩,实现了仿生学的记忆优化。
  7. Memory Flush 机制 是记忆生命周期的管理核心,通过自动 Flush、手动 Flush 和智能 Flush 三种模式,在有限的上下文窗口内保持记忆的高效利用,防止上下文溢出和注意力稀释。
  8. 整体架构的协同效应:DAG 提供因果推理,Memory Palace 提供空间语义检索,Dreaming 提供后台整合优化,Memory Flush 提供生命周期管理——这四个组件形成了一个完整的记忆管理闭环,使得 OpenClaw 在长期运行的 AI Agent 任务中表现出色。

最终结论:OpenClaw 的记忆系统并非多个独立功能的简单叠加,而是一个经过精心设计的有机整体。从静态到动态,从文件到数据库,从平面到三维空间,从存储到巩固——每一个层次的设置都围绕着一个核心目标:让 AI Agent 拥有更接近人类的记忆能力,既能准确记住该记住的信息,又能灵活遗忘和整理过时的内容。这套系统化的记忆管理方案,是 OpenClaw 在 AI Agent 领域实现差异化竞争力的核心技术基础。