Skip to content

OpenClaw 本地记忆系统完整指南

目录

  1. 概述
  2. Lossless-Claw 插件
  3. MemOS Local 插件
  4. 两者协同使用
  5. 省 Token 验证方案
  6. 最佳实践
  7. 使用硅基流动 BAAI/bge-m3 模型

概述

OpenClaw 的记忆系统由两个核心插件组成,分别解决不同层面的问题:

问题解决方案插件
上下文窗口溢出DAG 压缩摘要lossless-claw
跨会话记忆丢失持久化存储 + 语义检索memos-local

架构流程图

┌─────────────────────────────────────────────────────────────┐
│ 记忆系统架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ lossless-claw (LCM) │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 原始消息 │ → │ 摘要节点 │ → 上下文注入 │ │
│ │ │ (SQLite) │ │ (DAG 结构) │ │ │
│ │ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ │ 触发条件: contextThreshold (默认 75%) │ │
│ │ 核心能力: 无损压缩 + 按需展开 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ memos-local (MemOS) │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 语义块 │ → │ 任务摘要 │ → 技能演化 │ │
│ │ │ (Vector+FTS)│ │ (LLM生成) │ │ │
│ │ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ │ 触发条件: 每轮对话自动捕获 │ │
│ │ 核心能力: 长期记忆 + 任务组织 + 团队共享 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

Lossless-Claw 插件

核心功能

Lossless Context Management (LCM) 是基于 Voltropy LCM 论文 实现的无损上下文管理插件。

核心特性:

特性说明
无损压缩原始消息完整保存到 SQLite,永不丢失
DAG 摘要多层级摘要结构,自动凝结成更高层节点
按需展开通过 lcm_expand 随时恢复原始对话细节
全文搜索lcm_grep 支持正则和全文检索
自动触发上下文达到阈值自动压缩,无需手动干预

安装方式

bash
# 方式一:通过 OpenClaw CLI 安装(推荐)
openclaw plugins install @martian-engineering/lossless-claw

# 方式二:从本地源码安装
git clone https://github.com/martian-engineering/lossless-claw.git
openclaw plugins install --link ./lossless-claw

配置说明

~/.openclaw/openclaw.json 中配置:

json
{
  "plugins": {
    "slots": {
      "contextEngine": "lossless-claw"
    },
    "entries": {
      "lossless-claw": {
        "enabled": true,
        "config": {
          "contextThreshold": 0.75,
          "freshTailCount": 32,
          "incrementalMaxDepth": -1,
          "summaryModel": "gpt-4o-mini"
        }
      }
    }
  }
}

核心参数说明

参数默认值说明
contextThreshold0.75上下文使用率达到 75% 时触发压缩
freshTailCount32保护最近 32 条消息不被压缩
incrementalMaxDepth0增量压缩深度(-1 = 无限)
leafMinFanout8叶子节点最少合并消息数
summaryModel-摘要生成模型(可用更便宜的模型)

工具列表

工具功能使用场景
lcm_grep搜索压缩历史查找历史对话中的关键词
lcm_expand展开摘要节点恢复压缩前的原始内容
lcm_describe查看摘要详情检查摘要内容和层级关系

数据存储

~/.openclaw/lcm.db # SQLite 数据库
├── messages # 原始消息(永不丢失)
├── summaries # 摘要节点(DAG 结构)
└── conversations # 会话元数据

MemOS Local 插件

核心功能

MemOS Local 是一个完整的长期记忆系统,提供语义检索、任务摘要和技能演化能力。

核心特性:

特性说明
自动捕获每轮对话自动存入 SQLite + 向量索引
混合检索FTS5 关键词 + 向量语义双重搜索
任务组织自动识别任务边界,生成结构化摘要
技能演化从任务中提炼可复用的技能指南
团队共享Hub-Client 架构支持多智能体协作
Memory ViewerWeb UI 管理记忆、任务、技能

安装方式

bash
# 方式一:一键安装脚本(推荐)
# macOS / Linux
curl -fsSL https://cdn.memtensor.com.cn/memos-local-openclaw/install.sh | bash

# Windows PowerShell
powershell -c "irm https://cdn.memtensor.com.cn/memos-local-openclaw/install.ps1 | iex"

# 方式二:通过 OpenClaw CLI
openclaw plugins install @memtensor/memos-local-openclaw-plugin

配置说明

jsonc
{
 "agents": {
 "defaults": {
 // IMPORTANT: Disable OpenClaw's built-in memory to avoid conflicts
 "memorySearch": {
 "enabled": false
 }
 }
 },
 "plugins": {
 "slots": {
 "memory": "memos-local-openclaw-plugin"
 },
 "entries": {
 "memos-local-openclaw-plugin": {
 "enabled": true,
 "config": {
 "embedding": {
 "provider": "openai_compatible",
 "apiKey": "YOUR_API_KEY",
 "endpoint": "https://api.siliconflow.cn/v1",
 "model": "BAAI/bge-m3"
 }
 }
 }
 }
 }
}

⚠️ 重要: 必须设置 agents.defaults.memorySearch.enabled = false

工具列表

工具功能使用场景
memory_search语义搜索记忆查找历史对话内容
memory_get获取完整原文验证搜索结果
task_summary获取任务摘要查看完整任务记录
skill_get获取技能指南获取可复用的操作指南
memory_viewer获取 Viewer URL打开 Web 管理界面

两者协同使用

分工协作

单次会话内 (lossless-claw):
对话 → 消息积累 → 达到阈值 → DAG压缩 → 摘要注入

跨会话 (memos-local):
每轮对话 → 自动捕获 → 语义索引 → 任务组织 → 新会话召回

检索策略

场景使用工具说明
查找当前会话历史lcm_grep搜索已压缩的对话
查找跨会话记忆memory_search搜索所有历史对话
恢复压缩内容lcm_expand展开摘要获取原始消息
获取任务上下文task_summary查看完整任务记录

省 Token 验证方案

方案一:LCM 压缩效率验证

验证脚本:

bash
#!/bin/bash
# lcm_token_savings.sh

DB="$HOME/.openclaw/lcm.db"

if [ -f "$DB" ]; then
 MSG_COUNT=$(sqlite3 "$DB" "SELECT COUNT(*) FROM messages WHERE role != 'system'" 2>/dev/null || echo "0")
 SUMMARY_COUNT=$(sqlite3 "$DB" "SELECT COUNT(*) FROM summaries" 2>/dev/null || echo "0")
 
 ORIGINAL_TOKENS=$((MSG_COUNT * 500))
 SUMMARY_TOKENS=$((SUMMARY_COUNT * 200))
 SAVED=$((ORIGINAL_TOKENS - SUMMARY_TOKENS))
 
 echo "原始消息数: $MSG_COUNT"
 echo "摘要节点数: $SUMMARY_COUNT"
 echo "估算节省 tokens: $SAVED"
else
 echo "LCM 数据库未找到"
fi

方案二:MemOS 长期记忆验证

验证脚本:

bash
#!/bin/bash
# memos_token_savings.sh

DB="$HOME/.openclaw/memos-local/memos.db"

if [ -f "$DB" ]; then
 CHUNK_COUNT=$(sqlite3 "$DB" "SELECT COUNT(*) FROM chunks" 2>/dev/null || echo "0")
 TASK_COUNT=$(sqlite3 "$DB" "SELECT COUNT(*) FROM tasks" 2>/dev/null || echo "0")
 SEARCH_COUNT=$(grep -c "memory_search" ~/.openclaw/logs/gateway.log 2>/dev/null || echo "0")
 
 echo "记忆块数量: $CHUNK_COUNT"
 echo "任务数量: $TASK_COUNT"
 echo "搜索调用次数: $SEARCH_COUNT"
 echo "预估节省 tokens: $((SEARCH_COUNT * 1500))"
else
 echo "MemOS 数据库未找到"
fi

Token 节省估算

场景节省比例说明
LCM 压缩70-90%摘要代替原始消息
MemOS 召回50-75%避免重复解释背景

最佳实践

配置建议

json
{
 "lossless-claw": {
 "contextThreshold": 0.75,
 "freshTailCount": 32,
 "summaryModel": "gpt-4o-mini"
 },
 "memos-local": {
 "embedding": { "provider": "local" },
 "summarizer": { "model": "gpt-4o-mini" }
 }
}

使用策略

  • 长对话: 依赖 LCM 自动压缩
  • 跨会话复用: 使用 memory_search
  • 重复性任务: 查看已有技能

使用硅基流动 BAAI/bge-m3 模型

支持情况

MemOS 的 openai_compatible provider 支持任何兼容 OpenAI Embedding API 的服务,包括硅基流动的 BAAI/bge-m3

配置方案

方式一:通过 .env 文件(推荐)

~/.openclaw/extensions/memos-local-openclaw-plugin/.env 中设置:

bash
EMBEDDING_PROVIDER=openai_compatible
EMBEDDING_API_KEY=sk-jdgtxwicvnqecuraesdkvrcyetsxxjfpmjaqmginhcvsfmqn
EMBEDDING_ENDPOINT=https://api.siliconflow.cn/v1
EMBEDDING_MODEL=BAAI/bge-m3

方式二:通过 OpenClaw 配置

~/.openclaw/openclaw.json 的插件配置中添加:

json
{
 "plugins": {
 "entries": {
 "memos-local-openclaw-plugin": {
 "enabled": true,
 "config": {
 "embedding": {
 "provider": "openai_compatible",
 "apiKey": "sk-jdgtxwicvnqecuraesdkvrcyetsxxjfpmjaqmginhcvsfmqn",
 "endpoint": "https://api.siliconflow.cn/v1",
 "model": "BAAI/bge-m3"
 }
 }
 }
 }
 }
}

参数说明

参数说明
provideropenai_compatible使用 OpenAI 兼容接口
endpointhttps://api.siliconflow.cn/v1硅基流动国内端点
modelBAAI/bge-m3模型全称,注意大小写
apiKey你的 SiliconFlow API Key从控制台获取

模型特性

  • 输出维度: 1024 维向量
  • 语义质量: 中英文表现优秀,适合中文场景
  • 速度: 国内访问 latency 低
  • 成本: 按 SiliconFlow 计费标准

生效步骤

  1. 编辑配置(.envopenclaw.json
  2. 重启网关: openclaw gateway restart
  3. 新对话会自动使用 bge-m3 生成 embeddings
  4. 验证: sqlite3 ~/.openclaw/memos-local/memos.db "SELECT COUNT(*) FROM embeddings"

总结

维度Lossless-ClawMemOS Local
作用范围单次会话内跨所有会话
核心价值延长会话长度知识积累复用
Token 节省70-90%50-75%
检索方式全文搜索语义搜索

两者结合使用可实现:

  • ✅ 无限长度会话
  • ✅ 永久记忆保存
  • ✅ 智能知识复用
  • ✅ 自动技能提炼