Files
nexus/openclaw/xinghui/memory-lancedb-pro-guide.md

474 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
大多数 AI 智能体都有"失忆症"——每次新对话,之前聊过的全部清零。
memory-lancedb-pro 是 OpenClaw 的生产级长期记忆插件,把你的智能体变成一个真正的 AI 记忆助理——自动捕捉重要信息,让噪音自然衰减,在恰当的时候回忆起恰当的内容。无需手动标记,无需复杂配置。
没有记忆——每次都从零开始:
你: "缩进用 tab所有函数都要加错误处理。"
(下一次会话)
你: "我都说了用 tab 不是空格!" 😤
(再下一次会话)
你: "……我真的说了第三遍了tab还有错误处理。"
有了 memory-lancedb-pro——你的智能体学会了、记住了
你: "缩进用 tab所有函数都要加错误处理。"
(下一次会话——智能体自动回忆你的偏好)
智能体: (默默改成 tab 缩进,并补上错误处理) ✅
你: "上个月我们为什么选了 PostgreSQL 而不是 MongoDB"
智能体: "根据我们 2 月 12 日的讨论,主要原因是……" ✅
这就是 AI 记忆助理 的价值——学习你的风格,回忆过去的决策,提供个性化的回应,不再让你重复自己。
你能得到的
自动捕捉
智能体从每次对话中学习——不需要手动调用 memory_store
智能提取
LLM 驱动的 6 类分类:用户画像、偏好、实体、事件、案例、模式
智能遗忘
Weibull 衰减模型——重要记忆留存,噪音自然消退
混合检索
向量 + BM25 全文搜索,融合交叉编码器重排序
上下文注入
相关记忆在每次回复前自动浮现
多作用域隔离
按智能体、按用户、按项目隔离记忆边界
任意 Provider
OpenAI、Jina、Gemini、Ollama 或任意 OpenAI 兼容 API
完整工具链
CLI、备份、迁移、升级、导入导出——生产可用
社区维护的 安装脚本 一条命令搞定安装、升级和修复:
curl -fsSL https://raw.githubusercontent.com/CortexReach/toolbox/main/memory-lancedb-pro-setup/setup-memory.sh -o setup-memory.sh
bash setup-memory.sh
脚本覆盖的完整场景和其他社区工具,详见下方 生态工具。
通过 OpenClaw CLI推荐
openclaw plugins install memory-lancedb-pro@beta
或通过 npm
npm i memory-lancedb-pro@beta
如果用 npm 安装,你还需要在 openclaw.json 的 plugins.load.paths 中添加插件安装目录的 绝对路径。这是最常见的安装问题。
在 openclaw.json 中添加配置:
{
"plugins": {
"slots": { "memory": "memory-lancedb-pro" },
"entries": {
"memory-lancedb-pro": {
"enabled": true,
"config": {
"embedding": {
"provider": "openai-compatible",
"apiKey": "${OPENAI_API_KEY}",
"model": "text-embedding-3-small"
},
"autoCapture": true,
"autoRecall": true,
"smartExtraction": true,
"extractMinMessages": 2,
"extractMaxChars": 8000,
"sessionMemory": { "enabled": false }
}
}
}
}
}
为什么用这些默认值?
- autoCapture + smartExtraction → 智能体自动从每次对话中学习
- autoRecall → 相关记忆在每次回复前自动注入
- extractMinMessages: 2 → 正常两轮对话即触发提取
- sessionMemory.enabled: false → 避免会话摘要在初期污染检索结果
验证并重启:
openclaw config validate
openclaw gateway restart
openclaw logs --follow --plain | grep "memory-lancedb-pro"
你应该能看到:
- memory-lancedb-pro: smart extraction enabled
- memory-lancedb-pro@...: plugin registered
完成!你的智能体现在拥有长期记忆了。
更多安装路径(已有用户、升级)
已在使用 OpenClaw
- 在 plugins.load.paths 中添加插件的 绝对路径
- 绑定记忆插槽plugins.slots.memory = "memory-lancedb-pro"
- 验证openclaw plugins info memory-lancedb-pro && openclaw memory-pro stats
从 v1.1.0 之前的版本升级?
# 1) 备份
openclaw memory-pro export --scope global --output memories-backup.json
# 2) 试运行
openclaw memory-pro upgrade --dry-run
# 3) 执行升级
openclaw memory-pro upgrade
# 4) 验证
openclaw memory-pro stats
详见 CHANGELOG-v1.1.0.md 了解行为变更和升级说明。
memory-lancedb-pro 是核心插件。社区围绕它构建了配套工具,让安装和日常使用更加顺畅:
CortexReach/toolbox/memory-lancedb-pro-setup
不只是简单的安装器——脚本能智能处理各种常见场景:
你的情况
脚本会做什么
从未安装
全新下载 → 安装依赖 → 选择配置 → 写入 openclaw.json → 重启
通过 git clone 安装,卡在旧版本
自动 git fetch + checkout 到最新 → 重装依赖 → 验证
配置中有无效字段
自动检测并通过 schema 过滤移除不支持的字段
通过 npm 安装
跳过 git 更新,提醒你自行运行 npm update
openclaw CLI 因无效配置崩溃
降级方案:直接从 openclaw.json 文件读取工作目录路径
extensions/ 而非 plugins/
从配置或文件系统自动检测插件位置
已是最新版
仅执行健康检查,不做改动
bash setup-memory.sh # 安装或升级
bash setup-memory.sh --dry-run # 仅预览
bash setup-memory.sh --beta # 包含预发布版本
bash setup-memory.sh --uninstall # 还原配置并移除插件
内置 Provider 预设Jina / DashScope / SiliconFlow / OpenAI / Ollama或自带任意 OpenAI 兼容 API。
CortexReach/memory-lancedb-pro-skill
安装这个 Skill你的 AI 智能体Claude Code 或 OpenClaw就能深度掌握 memory-lancedb-pro 的所有功能。只需说 "help me enable the best config" 即可获得:
- 7 步引导式配置流程,提供 4 套部署方案:
满血版Jina + OpenAI/ 省钱版(免费 SiliconFlow 重排序)/ 简约版(仅 OpenAI/ 全本地版Ollama零 API 成本)
- 全部 9 个 MCP 工具 的正确用法memory_recall、memory_store、memory_forget、memory_update、memory_stats、memory_list、self_improvement_log、self_improvement_extract_skill、self_improvement_review
Claude Code 安装:
git clone https://github.com/CortexReach/memory-lancedb-pro-skill.git ~/.claude/skills/memory-lancedb-pro
OpenClaw 安装:
git clone https://github.com/CortexReach/memory-lancedb-pro-skill.git ~/.openclaw/workspace/skills/memory-lancedb-pro-skill
架构
┌─────────────────────────────────────────────────────────┐
│ index.ts (入口) │
│ 插件注册 · 配置解析 · 生命周期钩子 │
└────────┬──────────┬──────────┬───────────────┘
│ │ │
┌────▼───┐ ┌────▼───┐ ┌───▼────┐ ┌──▼──────────┐
│ store │ │embedder│ │retriever│ │ scopes │
│ .ts │ │ .ts │ │ .ts │ │ .ts │
└────────┘ └────────┘ └────────┘ └─────────────┘
│ │
┌────▼───┐ ┌─────▼──────────┐
│migrate │ │noise-filter.ts │
│ .ts │ │adaptive- │
└────────┘ │retrieval.ts │
└────────────────┘
┌─────────────┐ ┌──────────┐
│ tools.ts │ │ cli.ts │
│ (智能体 API)│ │ (CLI) │
└─────────────┘ └──────────┘
查询 → embedQuery() ─┐
├─→ 混合融合 → 重排序 → 生命周期衰减加权 → 长度归一化 → 过滤
查询 → BM25 全文 ─────┘
向量搜索 — 基于 LanceDB ANN 的语义相似度(余弦距离)
BM25 全文搜索 — 通过 LanceDB FTS 索引进行精确关键词匹配
混合融合 — 以向量分数为基础BM25 命中结果获得加权提升
可配置权重 — vectorWeight、bm25Weight、minScore
内置 Jina、SiliconFlow、Voyage AI 和 Pinecone 适配器
兼容任意 Jina 兼容端点(如 Hugging Face TEI、DashScope
混合打分60% 交叉编码器 + 40% 原始融合分数
优雅降级API 失败时回退到余弦相似度
阶段
效果
混合融合
结合语义召回和精确匹配召回
交叉编码器重排序
提升语义精确命中的排名
生命周期衰减加权
Weibull 时效性 + 访问频率 + 重要性 × 置信度
长度归一化
防止长条目主导结果锚点500 字符)
硬最低分
移除无关结果默认0.35
MMR 多样性
余弦相似度 > 0.85 → 降权
智能提取
- LLM 驱动的 6 类提取:用户画像、偏好、实体、事件、案例、模式
- L0/L1/L2 分层存储L0一句话索引→ L1结构化摘要→ L2完整叙述
- 两阶段去重向量相似度预过滤≥0.7)→ LLM 语义决策CREATE/MERGE/SKIP
- 类别感知合并profile 始终合并events/cases 仅追加
Weibull 衰减引擎
- 综合分数 = 时效性 + 频率 + 内在价值
- 三级晋升:外围 ↔ 工作 ↔ 核心,阈值可配置
- 访问强化:频繁被召回的记忆衰减更慢(类似间隔重复机制)
- 重要性调制半衰期:重要记忆衰减更慢
作用域
- 内置作用域global、agent:、custom:、project:、user:
- 通过 scopes.agentAccess 实现智能体级别的访问控制
- 默认:每个智能体访问 global + 自己的 agent: 作用域
自动捕捉
- 自动捕捉agent_end从对话中提取偏好/事实/决策/实体,去重后每轮最多存储 3 条
- 自动回忆before_agent_start注入 上下文(最多 3 条)
- 过滤低质量内容:智能体拒绝回复、元问题、打招呼
- 跳过检索:打招呼、斜杠命令、简单确认、表情符号
- 强制检索:记忆关键词("记得"、"之前"、"上次"
- 中文感知阈值中文6 字符 vs 英文15 字符)
CLI 命令
# 列出记忆
openclaw memory-pro list [--scope global] [--category fact] [--limit 20] [--json]
# 搜索记忆
openclaw memory-pro search "查询" [--scope global] [--limit 10] [--json]
# 查看统计
openclaw memory-pro stats [--scope global] [--json]
# 删除单条
openclaw memory-pro delete <id>
# 批量删除
openclaw memory-pro delete-bulk --scope global [--before 2025-01-01] [--dry-run]
# 导出
openclaw memory-pro export [--scope global] [--output memories.json]
# 导入
openclaw memory-pro import memories.json [--scope global] [--dry-run]
# 重新生成向量
openclaw memory-pro reembed --source-db /path/to/old-db [--batch-size 32] [--skip-existing]
# 升级
openclaw memory-pro upgrade [--dry-run] [--batch-size 10] [--no-llm] [--limit N] [--scope SCOPE]
# 迁移
openclaw memory-pro migrate check|run|verify [--source /path]
# OAuth 登录
openclaw memory-pro auth login [--provider openai-codex] [--model gpt-5.4] [--oauth-path /abs/path/oauth.json]
openclaw memory-pro auth status
openclaw memory-pro auth logout
Embedding 服务商
兼容 任意 OpenAI 兼容 Embedding API
服务商
模型
Base URL
维度
Jina推荐
jina-embeddings-v5-text-small
https://api.jina.ai/v1
1024
OpenAI
text-embedding-3-small
https://api.openai.com/v1
1536
Voyage
voyage-4-lite / voyage-4
https://api.voyageai.com/v1
1024 / 1024
Google Gemini
gemini-embedding-001
https://generativelanguage.googleapis.com/v1beta/openai/
3072
Ollama本地
nomic-embed-text
http://localhost:11434/v1
取决于模型
重排序服务商
交叉编码器重排序通过 rerankProvider 支持多个服务商:
服务商
rerankProvider
示例模型
Jina默认
jina
jina-reranker-v3
SiliconFlow有免费额度
siliconflow
BAAI/bge-reranker-v2-m3
Voyage AI
voyage
rerank-2.5
Pinecone
pinecone
bge-reranker-v2-m3
故障排除
在 LanceDB 0.26+ 上,某些数值列可能以 BigInt 形式返回。升级到 memory-lancedb-pro >= 1.0.14——插件现在会在运算前使用 Number(...) 进行类型转换。
AI 智能体铁律
将以下内容复制到你的 AGENTS.md让智能体自动遵守这些规则。
## 规则 1 — 双层记忆存储
每个踩坑/经验教训 → 立即存储两条记忆:
- 技术层:踩坑:[现象]。原因:[根因]。修复:[方案]。预防:[如何避免]
(category: fact, importance >= 0.8)
- 原则层:决策原则 ([标签])[行为规则]。触发:[何时]。动作:[做什么]
(category: decision, importance >= 0.85)
## 规则 2 — LanceDB 数据质量
条目必须简短且原子化(< 500 字符)。不存储原始对话摘要或重复内容。
## 规则 3 — 重试前先回忆
任何工具调用失败时,必须先用 memory_recall 搜索相关关键词,再重试。
## 规则 4 — 确认目标代码库
修改前确认你操作的是 memory-lancedb-pro 还是内置 memory-lancedb。
## 规则 5 — 修改插件代码后清除 jiti 缓存
修改 plugins/ 下的 .ts 文件后,必须先执行 rm -rf /tmp/jiti/ 再重启 openclaw gateway。
数据库 Schema
字段
类型
说明
id
string (UUID)
主键
text
string
记忆文本(全文索引)
vector
float[]
Embedding 向量
category
string
存储类别preference / fact / decision / entity / reflection / other
scope
string
作用域标识(如 global、agent:main
importance
float
重要性分数 0-1
timestamp
int64
创建时间戳(毫秒)
metadata
string (JSON)
扩展元数据
v1.1.0 常用 metadata 字段l0_abstract、l1_overview、l2_content、memory_category、tier、access_count、confidence、last_accessed_at
状态Beta——通过 npm i memory-lancedb-pro@beta 安装。使用 latest 的稳定版用户不受影响。
功能
说明
智能提取
LLM 驱动的 6 类提取,支持 L0/L1/L2 元数据。禁用时回退到正则模式。
生命周期评分
Weibull 衰减集成到检索中——高频和高重要性记忆排名更高。
层级管理
三级系统(核心 → 工作 → 外围),自动晋升/降级。
反馈GitHub Issues · 回退npm i memory-lancedb-pro@latest