openclaw-memory-architecture
coolmanns/openclaw-memory-architecture加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否有这样的经历:花了一整晚调教 AI 助手,告诉它你的项目背景、技术栈偏好、团队约定——第二天醒来,它完全"失忆",仿佛昨天的对话从未存在。上下文窗口被撑满,老消息被无情压缩,你的 AI 助手每次对话都像在玩"谁是卧底"。
这不是 AI 的 bug,而是记忆架构的根本缺失。大多数 Agent 系统依赖单一的记忆方式(通常是向量搜索),这把万能钥匙既开不好精确查询的锁,也处理不好时序衰减、知识演化等复杂问题。
OpenClaw Memory Architecture 给出了另一种答案:12 层记忆架构,每层解决一类问题,组合起来让 AI Agent 真正实现"持久记忆"。
向量搜索(Embedding)是 AI 记忆领域的主流方案——它把文字转成数学向量,通过相似度匹配做模糊检索。但问题在于,它对 80% 的实际需求来说是大材小用:
| 需求 | 最佳方案 | 向量搜索 |
|---|---|---|
| "我女儿生日是哪天?" | 结构化查询(毫秒级精确) | ✅ 能做,但慢且浪费 |
| "上次关于数据库的决定是什么?" | 决策事实存储(精确+索引) | ❌ 容易混淆相似决策 |
| "上周部署时发生了什么?" | 语义搜索(模糊匹配) | ✅ 合适 |
| "这个文件的代码逻辑是什么?" | 代码感知搜索 | ⚠️ 普通 embedding 效果差 |
OpenClaw 架构的核心理念:用对的工具处理对的记忆类型。精确事实用数据库,语义对话用向量搜索,历史日志用文件检索——各司其职,组合响应。
| 层级 | 系统 | 查询方式 | 延迟 | 用途 |
|---|---|---|---|---|
| 0 | LCM(无损上下文引擎) | memory_search(lcm) | 运行时 | DAG+全文检索,无会话内丢失 |
| 1 | 始终加载文件 | 自动注入 | 0ms | 身份、工作内存 |
| 2 | MEMORY.md | 自动注入 | 0ms | 人工整理的长期智慧 |
| 3 | PROJECT.md | 自动注入 | 0ms | 项目级制度知识 |
| 4 | facts.db | memory_search(facts) | <1ms | 结构化实体/键值精确查询 |
| 5 | continuity 档案 | memory_search(continuity) | 7ms(GPU) | 跨会话对话语义检索 |
| 5a | 文件向量索引 | memory_search(files) | 7ms(GPU) | 工作区文档语义搜索 |
| 5b | LightRAG | 专用工具 | ~200ms | 领域知识图谱 RAG |
| 6 | 每日日志 | 按需加载 | 按需 | 原始会话历史 |
| 10-13 | 认知插件 | 运行时 | 后台 | 记忆稳定性/代谢/沉思 |
这是 v2.4 版本的核心创新。LCM 用 SQLite + DAG(有向无环图) 替代了传统的上下文压缩:
lcm.db,不丢失任何细节首次启动即摄入 372 条消息,建立 1MB 数据库。所有消息经 FTS5 全文索引,grep 搜索毫秒级响应。
一个 SQLite 数据库,装载着 770+ 结构化事实:
-- 14 类记忆分类:person/family/project/infrastructure/decision/preference...
CREATE TABLE facts (
entity TEXT, -- 实体:"Sascha"、"Postiz"、"decision"
key TEXT, -- 键:"birthday"、"stack"、"always use trash"
value TEXT, -- 值:"March 15, 1990"、"Next.js + PostgreSQL"
category TEXT, -- 分类
importance REAL, -- 重要性 0.0-1.0
activation REAL, -- 激活热度(被检索时上升)
decay_score REAL, -- 衰减分数(自动计算)
permanent BOOLEAN -- 永久保留(如生日、核心决策)
);
Hebbian 衰减系统是它的特色:事实越频繁被检索,激活值越高,衰减越慢。热/温/冷三层分级,低于阈值的自动进入清理队列。
14 类记忆分类:person、family、project、infrastructure、tool、decision、preference、convention、automation、workflow、psychedelic、reference、friend、pet。
跨会话对话的语义检索层:
垂直领域的知识图谱增强检索:
Continuity 插件:上下文预算管理、话题追踪、锚点管理。
Stability 插件:熵监控、原则对齐、增长向量生成。
Metabolism 插件:基于 LLM 的自动事实提取(每 5 分钟)、知识缺口检测。守护门卫:通过 memory-guardrails.json 阻止低质量事实入库。
Contemplation 插件:三通道深度反思流程(探索→反思→综合)。
memory_search("上次关于数据库的决定是什么?")
背后并行查询四个后端:continuity(跨会话对话语义检索)、facts(结构化事实精确匹配)、files(工作区文档向量搜索)、lcm(原始消息全文搜索)。四路并行,无额外延迟。
最低门槛(仅 Dashboard):
git clone https://github.com/coolmanns/openclaw-memory-architecture
cd dashboard
npm install
node server.js
# 打开浏览器 http://localhost:3000
Node.js + HTML,15 分钟启动一个可视化内存监控面板。
部署难度评估:中等。Dashboard 可独立运行降低了入门门槛,但完整功能需要配置 PostgreSQL + pgvector + embedding 服务。
| 维度 | 技术选型 |
|---|---|
| 主要语言 | Python(facts.db 工具)+ Node.js(Dashboard)+ Prose DSL(metacognitive pipeline) |
| 记忆存储 | SQLite(lcm.db, facts.db)、PostgreSQL + pgvector(GraphRAG) |
| Embedding | nomic-embed-text-v2-moe(768d,本地 llama.cpp,GPU 7ms) |
| 向量检索 | llama.cpp(隐私优先,无需云 API) |
| GraphRAG | LightRAG(OpenAI gpt-4.1-mini 抽取)+ PostgreSQL |
| 认知流程 | OpenProse DSL(3-agent pipeline) |
这是一个专为 OpenClaw Agent 框架设计的记忆系统。大量设计决策(插件接口、文件路径、配置文件格式)都与 OpenClaw 深度耦合,迁移到其他框架需要相当的工作量。
facts.db 的质量高度依赖 Metabolism 插件的事实提取质量。v2.4 通过 superseded_at 字段改善了过期事实问题,但需要持续维护。
每日会话日志 + FTS5 索引 + 向量 embedding + facts.db,长期运行后存储体积不容忽视。
LCM 工具 I/O 目前以原始格式存储(v2.4 changelog 明确标注"无 secrets 清理"),若数据库被未授权访问,API key 等敏感信息可能泄露。
OpenClaw 12 层架构代表了 Agent Memory 设计的一种新思路:记忆不是单一问题,需要分层解决。通过 llama.cpp 本地运行 embedding,避免了云端 API 的延迟、费用和数据隐私问题,这在医疗、法律、金融等敏感领域尤为重要。
适合场景:
不适合场景: