mcpField
A
AgentDB Vector Search

AgentDB Vector Search

github.com/ovachiever数据与数据库5644 次安装48 周前更新
代码仓库

关于 AgentDB Vector Search

AgentDB Vector Search 是基于 AgentDB 的向量检索技能,面向构建语义搜索和 RAG 流程的开发者。它支持混合检索、索引与量化,并提供命令行和 API 操作。

主要功能

  1. 01存储向量并自动生成嵌入
  2. 02相似度与混合检索
  3. 03HNSW 索引与多种量化
  4. 04批量写入及数据库统计
  5. 05支持 MMR 多样化结果

适用场景

  1. 01按文本语义检索相关文档
  2. 02结合元数据筛选研究资料
  3. 03为 RAG 流程检索上下文
  4. 04批量导入并压缩向量数据

MCP 相关

可通过 `npx agentdb@latest mcp` 启动 AgentDB MCP 服务,并将语义向量检索等工具提供给 MCP 客户端。README 展示了在 Claude Code 中添加该服务的命令。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ovachiever/droid-tings --skill agentdb-vector-search

安装后在 Claude Code 中输入/agentdb-vector-search确认已加载。

详细介绍

AgentDB 向量搜索

此技能的功能

使用 AgentDB 的高性能向量数据库实现基于向量的语义搜索,操作速度比传统解决方案快 150 倍至 12,500 倍。支持 HNSW 索引、量化和亚毫秒级搜索(<100µs)。

前置条件

  • Node.js 18+
  • AgentDB v1.0.7+(通过 agentic-flow 或独立使用)
  • OpenAI API 密钥(用于嵌入)或自定义嵌入模型

使用 CLI 快速入门

初始化向量数据库
# Initialize with default dimensions (1536 for OpenAI ada-002)
npx agentdb@latest init ./vectors.db

# Custom dimensions for different embedding models
npx agentdb@latest init ./vectors.db --dimension 768  # sentence-transformers
npx agentdb@latest init ./vectors.db --dimension 384  # all-MiniLM-L6-v2

# Use preset configurations
npx agentdb@latest init ./vectors.db --preset small   # <10K vectors
npx agentdb@latest init ./vectors.db --preset medium  # 10K-100K vectors
npx agentdb@latest init ./vectors.db --preset large   # >100K vectors

# In-memory database for testing
npx agentdb@latest init ./vectors.db --in-memory
查询向量数据库
# Basic similarity search
npx agentdb@latest query ./vectors.db "[0.1,0.2,0.3,...]"

# Top-k results
npx agentdb@latest query ./vectors.db "[0.1,0.2,0.3]" -k 10

# With similarity threshold (cosine similarity)
npx agentdb@latest query ./vectors.db "0.1 0.2 0.3" -t 0.75 -m cosine

# Different distance metrics
npx agentdb@latest query ./vectors.db "[...]" -m euclidean  # L2 distance
npx agentdb@latest query ./vectors.db "[...]" -m dot        # Dot product

# JSON output for automation
npx agentdb@latest query ./vectors.db "[...]" -f json -k 5

# Verbose output with distances
npx agentdb@latest query ./vectors.db "[...]" -v
导入/导出向量
# Export vectors to JSON
npx agentdb@latest export ./vectors.db ./backup.json

# Import vectors from JSON
npx agentdb@latest import ./backup.json

# Get database statistics
npx agentdb@latest stats ./vectors.db

使用 API 快速入门

import { createAgentDBAdapter, computeEmbedding } from 'agentic-flow/reasoningbank';

// Initialize with vector search optimizations
const adapter = await createAgentDBAdapter({
  dbPath: '.agentdb/vectors.db',
  enableLearning: false,       // Vector search only
  enableReasoning: true,       // Enable semantic matching
  quantizationType: 'binary',  // 32x memory reduction
  cacheSize: 1000,             // Fast retrieval
});

// Store document with embedding
const text = "The quantum computer achieved 100 qubits";
const embedding = await computeEmbedding(text);

await adapter.insertPattern({
  id: '',
  type: 'document',
  domain: 'technology',
  pattern_data: JSON.stringify({
    embedding,
    text,
    metadata: { category: "quantum", date: "2025-01-15" }
  }),
  confidence: 1.0,
  usage_count: 0,
  success_count: 0,
  created_at: Date.now(),
  last_used: Date.now(),
});

// Semantic search with MMR (Maximal Marginal Relevance)
const queryEmbedding = await computeEmbedding("quantum computing advances");
const results = await adapter.retrieveWithReasoning(queryEmbedding, {
  domain: 'technology',
  k: 10,
  useMMR: true,              // Diverse results
  synthesizeContext: true,    // Rich context
});

核心功能

1. 向量存储
// Store with automatic embedding
await db.storeWithEmbedding({
  content: "Your document text",
  metadata: { source: "docs", page: 42 }
});
2. 相似度搜索
// Find similar documents
const similar = await db.findSimilar("quantum computing", {
  limit: 5,
  minScore: 0.75
});
3. 混合搜索(向量 + 元数据)
// Combine vector similarity with metadata filtering
const results = await db.hybridSearch({
  query: "machine learning models",
  filters: {
    category: "research",
    date: { $gte: "2024-01-01" }
  },
  limit: 20
});

高级用法

RAG(检索增强生成)
// Build RAG pipeline
async function ragQuery(question: string) {
  // 1. Get relevant context
  const context = await db.searchSimilar(
    await embed(question),
    { limit: 5, threshold: 0.7 }
  );

  // 2. Generate answer with context
  const prompt = `Context: ${context.map(c => c.text).join('\n')}
Question: ${question}`;

  return await llm.generate(prompt);
}
批量操作
// Efficient batch storage
await db.batchStore(documents.map(doc => ({
  text: doc.content,
  embedding: doc.vector,
  metadata: doc.meta
})));

MCP 服务集成

# Start AgentDB MCP server for Claude Code
npx agentdb@latest mcp

# Add to Claude Code (one-time setup)
claude mcp add agentdb npx agentdb@latest mcp

# Now use MCP tools in Claude Code:
# - agentdb_query: Semantic vector search
# - agentdb_store: Store documents with embeddings
# - agentdb_stats: Database statistics

性能基准测试

# Run comprehensive benchmarks
npx agentdb@latest benchmark

# Results:
# ✅ Pattern Search: 150x faster (100µs vs 15ms)
# ✅ Batch Insert: 500x faster (2ms vs 1s for 100 vectors)
# ✅ Large-scale Query: 12,500x faster (8ms vs 100s at 1M vectors)
# ✅ Memory Efficiency: 4-32x reduction with quantization

量化选项

AgentDB 提供多种量化策略,以提高内存效率:

二值量化(缩减 32 倍)
const adapter = await createAgentDBAdapter({
  quantizationType: 'binary',  // 768-dim → 96 bytes
});
标量量化(缩减 4 倍)
const adapter = await createAgentDBAdapter({
  quantizationType: 'scalar',  // 768-dim → 768 bytes
});
乘积量化(缩减 8–16 倍)
const adapter = await createAgentDBAdapter({
  quantizationType: 'product',  // 768-dim → 48-96 bytes
});

距离度量

# Cosine similarity (default, best for most use cases)
npx agentdb@latest query ./db.sqlite "[...]" -m cosine

# Euclidean distance (L2 norm)
npx agentdb@latest query ./db.sqlite "[...]" -m euclidean

# Dot product (for normalized vectors)
npx agentdb@latest query ./db.sqlite "[...]" -m dot

高级功能

HNSW 索引
  • O(log n) 搜索复杂度
  • 亚毫秒级检索(<100µs)
  • 自动构建索引
缓存
  • 1000 个模式的内存缓存
  • <1ms 模式检索
  • 自动使缓存失效
MMR(最大边际相关性)
  • 结果集多样化
  • 避免冗余
  • 平衡相关性和多样性

性能提示

  1. 启用 HNSW 索引:AgentDB 会自动启用,速度快 10–100 倍
  2. 使用量化:二值(缩减 32 倍)、标量(缩减 4 倍)、乘积(缩减 8–16 倍),可减少内存占用
  3. 批量操作:批量插入速度快 500 倍
  4. 匹配维度:1536(OpenAI)、768(sentence-transformers)、384(MiniLM)
  5. 相似度阈值:从 0.7 开始以确保质量,并根据使用场景进行调整
  6. 启用缓存:为频繁查询启用 1000 个模式的缓存

故障排除

问题:搜索性能缓慢
# Check if HNSW indexing is enabled (automatic)
npx agentdb@latest stats ./vectors.db

# Expected: <100µs search time
问题:内存占用过高
# Enable binary quantization (32x reduction)
# Use in adapter: quantizationType: 'binary'
问题:相关性较差
# Adjust similarity threshold
npx agentdb@latest query ./db.sqlite "[...]" -t 0.8  # Higher threshold

# Or use MMR for diverse results
# Use in adapter: useMMR: true
问题:维度错误
# Check embedding model dimensions:
# - OpenAI ada-002: 1536
# - sentence-transformers: 768
# - all-MiniLM-L6-v2: 384

npx agentdb@latest init ./db.sqlite --dimension 768

数据库统计信息

# Get comprehensive stats
npx agentdb@latest stats ./vectors.db

# Shows:
# - Total patterns/vectors
# - Database size
# - Average confidence
# - Domains distribution
# - Index status

性能特征

  • 向量搜索:<100µs(HNSW 索引)
  • 模式检索:<1ms(使用缓存)
  • 批量插入:100 个向量耗时 2ms
  • 内存效率:通过量化减少 4–32 倍
  • 可扩展性:可高效处理 100 万个以上的向量
  • 延迟:大多数操作均为亚毫秒级

了解更多

评论

支持 Markdown