name: shared-vector-search description: Hermes 与 OpenClaw 共享的向量语义检索+写入 — 共用 LanceDB + doubao-embedding-vision,支持双向同步 tags: [lancedb, memory, shared, openclaw]
共享向量语义检索 + 记忆写入
架构
Hermes (Python lancedb) ──┐
├── 同一 LanceDB ── doubao-embedding-vision (2048维)
OpenClaw (Node 插件) ─────┘
记忆分工
| 存储位置 | 存什么 | 不存什么 |
|---|---|---|
| Hermes key-value memory | 行为偏好、职责、路径 | ❌ 事实性知识 |
| LanceDB memories 表 | 所有事实性知识(两个 agent 共享) | — |
什么时候写 LanceDB?
- 新学到的事实、配置、技术知识点 → 写 LanceDB
- 用户偏好、操作习惯、角色定义 → 写 Hermes memory
- 不确定时,两个都写
工具
方式1:MCP 原生工具(推荐)
Hermes 的 friend 和牛马豆腐两个 profile 已配置 memory-lancedb MCP Server,
agent 可直接调用以下原生工具:
| 工具名 | 功能 | 参数 |
|---|---|---|
memory_recall |
语义搜索记忆 | query (必填), limit (默认5), category (可选过滤) |
memory_store |
写入新记忆 | text (必填), category (默认fact), importance (默认0.7) |
memory_forget |
删除记忆 | query (必填), limit (默认3) — 删除与query最相似的记忆 |
memory_stats |
查看记忆库统计 | 无参数 |
使用场景:对话中需要回忆事实、存储新知识时直接调用。
方式2:CLI 脚本
/root/data/disk/.openclaw/memory/lancedb_memory.py
所有 agent(friend、牛马豆腐等)共用此脚本。
# 写入记忆
cd /root/data/disk/.openclaw/memory
python3 lancedb_memory.py add "记忆内容" --category fact --importance 0.7
# category: fact | decision | entity | other
# importance: 0.0~1.0
# 搜索记忆
python3 lancedb_memory.py search "查询内容" --limit 5
# 列出所有记忆
python3 lancedb_memory.py list
0
# 搜索记忆
python3 lancedb_memory.py search "查询内容" --limit 5
# 列出所有记忆
python3 lancedb_memory.py list# 删除记忆
python3 lancedb_memory.py delete --id <record_id>
方式3:Hermes 代码内调用
import sys
sys.path.insert(0, '/root/data/disk/.openclaw/memory')
import lancedb_memory as ldb
# 写入
ldb.add_memory("内容", category="fact", importance=0.7)
# 搜索
results = ldb.search_memory("查询", limit=5)
自动提取(写入侧)
Cron 任务 hermes-auto-memory-extract(每2小时):
- 扫描 friend 和牛马豆腐的 state.db 新 session
- 用 doubao-seed-2.0-lite LLM 提取关键事实
- 去重后写入 LanceDB memories 表
- 进度文件:/root/data/disk/.openclaw/memory/hermes_extraction_progress.json
脚本:/root/data/disk/.openclaw/memory/hermes_auto_extract.py
手动运行:
数据表
| 表名 | 用途 |
|---|---|
memories |
共享记忆(Hermes + OpenClaw 双向同步) |
wiki_docs |
Wiki 文档语义索引 |
配置
- LanceDB 路径:
/root/data/disk/.openclaw/memory/lancedb-pro - Embedding: doubao-embedding-vision, 2048维
- API 配置:
/root/data/disk/.openclaw/openclaw.json→plugins.entries.memory-lancedb-pro.config.embedding - API 端点:
https://ark.cn-beijing.volces.com/api/coding/v3(Coding Plan 专属 URL) - API Key: Coding Plan key(与主模型 Plan key 不同)
- API 限制: 单次最多 10 条 input,需限速 0.5s/批
陷阱
- 🔴 doubao embedding API 单次最多 10 条 input,超过返回 400
- 🔴 限速:连续请求需间隔 ≥0.5s,否则 429
- 🔴 大文件需先 chunk(按 ## 标题切分,max 1500 chars/chunk)
- 🔴 零向量无法被搜索到,嵌入后务必验证
- 🔴 Hermes 当前只做纯向量搜索,没有 OpenClaw 的 BM25+rerank 混合检索能力
- 🔴 MCP Server 的
memory_forget是按语义相似度删除,可能误删相近内容,谨慎使用 当前只做纯向量搜索,没有 OpenClaw 的 BM25+rerank 混合检索能力 -
🔴 MCP Server 的
memory_forget是按语义相似度删除,可能误删相近内容,谨慎使用## 维度迁移记录 -
2026-05-25: 1024维→2048维迁移完成
- 备份:
/root/data/disk/.openclaw/memory/lancedb-pro.backup.1024dim