mcpField
A
AgentDB Vector Search

AgentDB Vector Search

github.com/proffesor-for-testing数据与数据库520106 次安装1 天前更新
代码仓库

关于 AgentDB Vector Search

用于通过 AgentDB 实现语义向量搜索的技能,适合构建搜索或检索流程的开发者。内容涵盖向量存储、相似度与混合搜索、索引、量化及命令行操作。

主要功能

  1. 01存储向量与嵌入
  2. 02相似度与混合搜索
  3. 03HNSW 索引
  4. 04量化选项
  5. 05命令行导入、导出与统计

适用场景

  1. 01按语义相似度查找文档
  2. 02按元数据筛选搜索结果
  3. 03构建 RAG 检索步骤
  4. 04减少向量存储占用

MCP 相关

AgentDB 可通过 `npx agentdb@latest mcp` 作为 MCP 服务运行。README 介绍了在 Claude Code 中使用其语义搜索工具。

安装

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

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --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