📖 这是什么?
世界上有一种技术叫向量数据库,它就像AI的"概念图书馆"——不是按书名找书,而是按"感觉"找书。你想找"关于猫咪搞笑行为的文章",它不会傻傻匹配关键词,而是理解你的意图,递给你那本最对味的。
OpenClaw 支持主流向量数据库集成,让你的 Agent 拥有:
- 语义搜索 - 理解查询意图,而非字面匹配
- 知识检索 - 从海量文档中找到相关内容
- RAG 增强 - 让 AI 回答有据可依
- 相似度计算 - 找出最相关的内容、用户、商品
🏆 主流向量数据库对比
🌲 Pinecone
全托管,开箱即用,免费层够用。适合快速上线。
优点:零运维、自动扩展
缺点:数据不出自己服务器
🔷 Weaviate
开源 + 云服务,GraphQL API,模块化设计。
优点:自托管可选、功能丰富
缺点:学习曲线稍陡
🎨 Chroma
轻量级开源,Python 原生,适合快速原型。
优点:超简单、本地运行
缺点:生产级能力有限
🚀 Milvus
企业级开源,高性能,支持百亿级向量。
优点:高性能、可扩展
缺点:部署复杂度较高
⚡ 快速开始
1. Pinecone 集成
# 安装依赖
npm install @pinecone-database/pinecone
# 或使用 OpenClaw Skills
skills:
- id: vector-pinecone
name: Pinecone 向量存储
config:
apiKey: ${PINECONE_API_KEY}
environment: us-east-1
indexName: openclaw-knowledge
2. Weaviate 集成
# Docker 启动本地实例
docker run -d \
--name weaviate \
-p 8080:8080 \
-e QUERY_DEFAULTS_LIMIT=25 \
-e AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true \
semitechnologies/weaviate:latest
# OpenClaw 配置
skills:
- id: vector-weaviate
name: Weaviate 知识库
config:
host: http://localhost:8080
scheme: http
3. Chroma 本地集成
# 安装
pip install chromadb
# Python 客户端示例
import chromadb
client = chromadb.Client()
collection = client.create_collection("openclaw_docs")
# 添加向量
collection.add(
documents=["OpenClaw 是一个 Agent 框架", "向量数据库支持语义搜索"],
metadatas=[{"source": "doc1"}, {"source": "doc2"}],
ids=["id1", "id2"]
)
🔧 OpenClaw Skills 配置
# ~/.openclaw/skills/vector-database/SKILL.md
---
name: vector-database
description: 向量数据库集成 - 语义搜索与知识检索
tools:
- web_fetch
- exec
---
## 支持的数据库
| 数据库 | 配置方式 | 最佳场景 |
|--------|----------|----------|
| Pinecone | API Key + Environment | 生产环境、快速部署 |
| Weaviate | Docker/云服务 | 企业级、混合查询 |
| Chroma | 本地嵌入 | 开发测试、原型验证 |
| Milvus | Kubernetes | 大规模、高性能 |
## 使用示例
### 存储向量
\`\`\`javascript
await vectorDb.upsert({
id: 'doc-001',
values: embedding, // 1536维向量
metadata: {
title: 'OpenClaw 教程',
category: 'documentation',
url: 'https://miaoquai.com/tools/...'
}
});
\`\`\`
### 语义搜索
\`\`\`javascript
const results = await vectorDb.query({
vector: queryEmbedding,
topK: 10,
filter: { category: 'documentation' }
});
\`\`\`
💡 最佳实践
✅ Embedding 模型选择
| 模型 | 维度 | 特点 | 推荐场景 |
|---|---|---|---|
| OpenAI text-embedding-3-small | 1536 | 性价比高、速度快 | 通用场景 |
| OpenAI text-embedding-3-large | 3072 | 精度最高 | 高精度需求 |
| Cohere embed-v3 | 1024 | 多语言支持好 | 中文场景 |
| Sentence Transformers | 768 | 免费开源 | 成本敏感 |
⚠️ 常见踩坑
- 向量维度不匹配 - 不同 embedding 模型输出维度不同,务必一致
- 未做归一化 - 某些数据库要求向量归一化,否则相似度计算错误
- Metadata 过大 - 存储的元数据不要太大,影响查询性能
- Index 未规划 - 上线前规划好分区策略,后期迁移很痛苦
🚀 实战案例:构建 RAG 知识库
# OpenClaw Agent 配置
agent:
name: KnowledgeAssistant
skills:
- id: vector-pinecone
config:
indexName: company-wiki
- id: rag-pipeline
config:
chunkSize: 500
chunkOverlap: 50
topK: 5
# RAG 流程
pipeline:
1. 用户提问 → Embedding
2. 向量检索 → Top-K 相关文档
3. 构建 Prompt → 注入上下文
4. LLM 生成 → 基于事实的回答
5. 引用来源 → 可追溯性