mcpField
A
AgentDB Vector Search

AgentDB Vector Search

github.com/ruvnet数据与数据库80.0k1.1k 次安装今天更新
代码仓库

关于 AgentDB Vector Search

AgentDB Vector Search 是用于构建向量语义搜索的技能,面向开发检索与 RAG 工作流的人员。它提供命令行和 API 操作、元数据筛选、HNSW 索引及量化选项。

主要功能

  1. 01存储向量并生成嵌入
  2. 02语义相似度与混合搜索
  3. 03HNSW 索引和缓存
  4. 04通过量化降低内存占用
  5. 05命令行与 API 操作

适用场景

  1. 01为 RAG 检索相关文档
  2. 02按元数据筛选向量搜索
  3. 03导入、导出和查看向量数据

MCP 相关

AgentDB 可通过 `npx agentdb@latest mcp` 作为 MCP 服务运行。Claude Code 等 MCP 客户端可调用其语义向量搜索工具。

安装

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

$npx skills add https://github.com/ruvnet/ruflo --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 倍
  • 可扩展性:可高效处理 1M+ 个向量
  • 延迟:大多数操作均为亚毫秒级

了解更多

  • GitHub:https:/$github.com$ruvnet$agentic-flow$tree$main$packages$agentdb
  • 文档:node_modules$agentic-flow/docs/AGENTDB_INTEGRATION.md
  • MCP 集成:使用 npx agentdb@latest mcp 集成 Claude Code
  • 网站:https:/$agentdb.ruv.io
  • CLI 帮助:npx agentdb@latest --help
  • 命令帮助:npx agentdb@latest help <command>

评论

支持 Markdown