Install
openclaw skills install semantic-vector-store提供文本向量化、持久化存储及基于余弦相似度的语义搜索,支持增量索引和多后端适配。
openclaw skills install semantic-vector-store语义向量库插件,为 OpenClaw 星型记忆架构提供向量存储与语义搜索能力。
# 从 ClawHub 安装
clawhub install semantic-vector-store
# 或从本地目录安装
clawhub install ./skills/semantic-vector-store
环境变量:
SEMANTIC_VECTOR_DB_PATH:向量数据库路径(默认:~/.config/cortexgraph/semantic_vectors.db)EMBEDDING_MODEL:嵌入模型名称(默认:all-MiniLM-L6-v2)VECTOR_DIMENSION:向量维度(默认:384)SIMILARITY_THRESHOLD:相似度阈值(默认:0.5)from semantic_vector_store import SemanticVectorStore
# 初始化
store = SemanticVectorStore()
# 添加记忆向量
mem_id = "mem_001"
text = "今天学习了 Python 异步编程"
vector = store.embed(text)
store.add_vector(mem_id, vector, metadata={"source": "memory.md"})
# 语义搜索
query = "编程学习"
results = store.search(query, top_k=5)
for result in results:
print(f"记忆 ID: {result['memory_id']}, 相似度: {result['score']:.3f}")
提供星型架构的标准适配器接口:
from integration.adapter.semantic_vector_adapter import SemanticVectorAdapter
adapter = SemanticVectorAdapter()
# 获取健康状态
health = adapter.health_check()
print(f"健康状态: {health['status']}")
# 向量化记忆
vectors = adapter.embed_memory("今天完成了重要工作")
print(f"生成向量维度: {len(vectors)}")
# 语义搜索
results = adapter.search("工作", limit=10)
| 方法 | 说明 |
|---|---|
embed(text: str) -> List[float] | 将文本转换为向量 |
add_vector(memory_id: str, vector: List[float], metadata: dict) | 添加向量到存储 |
search(query: str, top_k: int = 10) -> List[dict] | 语义搜索 |
get_stats() -> dict | 获取统计信息 |
health_check() -> dict | 健康检查 |
嵌入器(Embedder)
向量存储(VectorStore)
查询引擎(QueryEngine)
CREATE TABLE semantic_vectors (
memory_id TEXT PRIMARY KEY,
vector BLOB, -- FAISS 索引 ID 或原始向量
metadata TEXT, -- JSON 元数据
created_at TIMESTAMP,
updated_at TIMESTAMP
);
语义向量库通过适配器与 MSE 集成:
# 在 MSE 中使用语义向量库
from integration.adapter.semantic_vector_adapter import SemanticVectorAdapter
class MemorySyncEnhanced:
def __init__(self):
self.vector_adapter = SemanticVectorAdapter()
def semantic_search(self, query: str):
return self.vector_adapter.search(query)
统一记忆系统可同时查询语义向量和共现图:
from unified_memory import UnifiedMemory
memory = UnifiedMemory()
results = memory.search("查询", use_semantic=True, use_cooccurrence=True)
| 指标 | 目标值 |
|---|---|
| 向量化延迟 | < 100ms(短文本) |
| 搜索延迟 | < 50ms(10K 向量) |
| 存储容量 | > 1M 向量 |
| 准确率 | > 0.85(MRR) |
# 重建索引
python3 -m semantic_vector_store.reindex
# 备份向量
python3 -m semantic_vector_store.backup --output vectors.bin
# 查看统计
python3 -m semantic_vector_store.stats
欢迎提交 Issue 和 Pull Request。请遵循 OpenClaw 技能开发规范。
MIT