SochDB 是 AI Skill Hub 本期精选MCP工具之一。综合评分 8.0 分,整体质量较高。我们强烈推荐将其纳入你的 AI 工具库,帮助提升工作效率。
SochDB 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
SochDB 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/sochdb/sochdb
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"sochdb": {
"command": "npx",
"args": ["-y", "sochdb"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 SochDB 执行以下任务... Claude: [自动调用 SochDB MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"sochdb": {
"command": "npx",
"args": ["-y", "sochdb"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
| Crate | Description | Key Components |
|---|---|---|
sochdb-core | Core types and TOON format | SochValue, SochSchema, SochTable, codec |
sochdb-kernel | Database kernel | WAL, MVCC, transactions, catalog |
sochdb-storage | Storage engine | LSCS columnar, mmap, block checksums |
sochdb-index | Index structures | B-Tree, HNSW vector index |
sochdb-query | Query execution | Cost optimizer, context builder, SOCH-QL |
sochdb-client | Client SDK | SochConnection, PathQuery, BatchWriter |
sochdb-plugin-logging | Logging plugin | Structured logging, tracing |
---
🗃️ Real SQL — SQL-92-compatible engine with JOINs, aggregates (GROUP BY/SUM/AVG/HAVING), and MySQL/PostgreSQL/SQLite dialect normalization 🧠 Context Query Builder — Assemble system + user + history + retrieval under a token budget 🔍 Hybrid Search — HNSW vectors + BM25 keywords with reciprocal rank fusion 🕸️ Graph + Time-Travel — Property graph with bi-temporal, point-in-time recall ⚡ Embedded-First — single ~2.5 MB native library, no runtime dependencies, SQLite-style simplicity 🔒 Full ACID — MVCC + WAL + Serializable Snapshot Isolation 📊 Columnar Storage — Read only the columns you need
---
| Feature | Crate | Description |
|---|---|---|
simd | sochdb-client | SIMD optimizations for column access |
embedded | sochdb-client | Use kernel directly (no IPC) |
full | sochdb-kernel | All kernel features |
---
pip install chromadb lancedb python-dotenv requests numpy pip install -e sochdb-python-sdk/
SOCHDB_LIB_PATH=target/release python3 benchmarks/real_embedding_benchmark.py
Choose your preferred SDK:
```bash
SochDB includes a production-ready Docker setup with gRPC server:
```bash
docker pull sochdb/sochdb:latest docker run -d -p 50051:50051 sochdb/sochdb:latest
cd docker docker compose up -d ```
Docker Hub: sochdb/sochdb
Features: - ✅ Production-ready image (159MB) - ✅ High availability setup with Traefik - ✅ Prometheus + Grafana monitoring - ✅ gRPC-Web support via Envoy - ✅ Comprehensive test suite included
Performance (tested on Apple M-series): - Single-threaded: ~2K ops/sec - Concurrent (10 threads): ~10.5K ops/sec - Latency p99: <2.2ms
See docker/README.md for full documentation. | Node.js/TypeScript | sochdb-nodejs-sdk | npm install @sochdb/sochdb | | Go | sochdb-go | go get github.com/sochdb/sochdb-go@latest | | Rust | This repository | cargo add sochdb |
graph.add_node("msg_1", {"role": "user", "content": "What's the weather?"}) graph.add_node("msg_2", {"role": "assistant", "content": "Let me check..."}) graph.add_node("msg_3", {"role": "tool", "content": "Sunny, 72°F"}) graph.add_node("msg_4", {"role": "assistant", "content": "It's sunny and 72°F"})
context = ( ContextQuery(collection) .add_vector_query(query_embedding, weight=0.7) .add_keyword_query("machine learning optimization", weight=0.3) .with_token_budget(4000) # Fit within model context window .with_min_relevance(0.5) # Filter low-quality results .with_deduplication(DeduplicationStrategy.EXACT) .execute() )
index.build()
Build LLM context with automatic token budget management.
use sochdb_query::{ContextSection, ContextSelectQuery};
use sochdb::ContextQueryBuilder;
let context = ContextQueryBuilder::new()
.for_session("session_123")
.with_budget(4096) // Token budget
// System prompt (highest priority)
.literal("SYSTEM", -1, "You are a helpful assistant")
// User profile from database
.section("USER", 0)
.get("user.profile.{name, email, preferences}")
.done()
// Recent conversation history
.section("HISTORY", 1)
.last(10, "messages")
.where_eq("session_id", session_id)
.done()
// Relevant documents via vector search
.section("DOCS", 2)
.search("knowledge_base", "query_embedding", 5)
.min_score(0.7)
.done()
.truncation(TruncationStrategy::PriorityDrop)
.format(ContextFormat::Soch)
.execute()?;
println!("Tokens used: {}/{}", context.token_count, 4096);
println!("Context:\n{}", context.context);
---
brew install python@3.12 python3.12 -m venv .venv312 source .venv312/bin/activate
cargo build --release
```bash
cargo build --release
from sochdb import Database
db = Database.open("./my_db")
db.put(b"users/alice", b"Alice Smith")
print(db.get(b"users/alice").decode()) # "Alice Smith"
db.close()
import { SochDatabase } from '@sochdb/sochdb';
const db = new SochDatabase('./my_db');
await db.put('users/alice', 'Alice Smith');
console.log(await db.get('users/alice')); // "Alice Smith"
await db.close();
package main
import (
"fmt"
sochdb "github.com/sochdb/sochdb-go"
)
func main() {
db, _ := sochdb.Open("./my_db")
defer db.Close()
db.Put([]byte("users/alice"), []byte("Alice Smith"))
value, _ := db.Get([]byte("users/alice"))
fmt.Println(string(value)) // "Alice Smith"
}
use sochdb::Database;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let db = Database::open("./my_db")?;
db.put(b"users/alice", b"Alice Smith")?;
if let Some(value) = db.get(b"users/alice")? {
println!("{}", String::from_utf8_lossy(&value)); // "Alice Smith"
}
Ok(())
}
```python from sochdb import VectorIndex import numpy as np
use sochdb_index::{HNSWIndex, HNSWConfig, DistanceMetric};
// Create index with custom parameters
let config = HNSWConfig {
m: 16, // Max connections per layer
m_max: 32, // Max connections at layer 0
ef_construction: 200, // Build-time search width
ef_search: 50, // Query-time search width
metric: DistanceMetric::Cosine, // Or Euclidean, DotProduct
..Default::default()
};
let index = HNSWIndex::with_config(config);
with index.batch_accumulator(estimated_size=50_000) as acc: acc.add(ids, vectors) # Zero FFI, pure numpy memcpy
acc = index.batch_accumulator(50_000) acc.add(chunk1_ids, chunk1_vecs) acc.add(chunk2_ids, chunk2_vecs) inserted = acc.flush() # Single bulk FFI call → full Rayon parallelism
acc.save("/tmp/vectors") # Persist to disk acc2 = index.batch_accumulator() acc2.load("/tmp/vectors") # Load in another process acc2.flush() # Build HNSW ```
SochDB's ordered index can be disabled for write-optimized workloads:
use sochdb::ConnectionConfig;
// Default: ordered index enabled (O(log N) prefix scans)
let config = ConnectionConfig::default();
// Write-optimized: disable ordered index (~20% faster writes)
let mut config = ConnectionConfig::default();
config.enable_ordered_index = false;
// Note: scan_prefix becomes O(N) instead of O(log N + K)
| Mode | Write Speed | Prefix Scan | Use Case |
|---|---|---|---|
| Ordered index **on** | Baseline | O(log N + K) | Read-heavy, prefix queries |
| Ordered index **off** | ~20% faster | O(N) | Write-heavy, point lookups |
---
pub struct DatabaseConfig {
/// Enable group commit for better throughput
pub group_commit: bool, // default: true
/// WAL sync mode
pub sync_mode: SyncMode, // default: Normal
/// Maximum WAL size before checkpoint
pub max_wal_size: u64, // default: 64MB
/// Memtable size before flush
pub memtable_size: usize, // default: 4MB
/// Block cache size
pub block_cache_size: usize, // default: 64MB
/// Compression algorithm
pub compression: Compression, // default: LZ4
}
pub struct HNSWConfig {
/// Max connections per node per layer
pub m: usize, // default: 16
/// Max connections at layer 0
pub m_max: usize, // default: 32
/// Construction-time search width
pub ef_construction: usize, // default: 200
/// Query-time search width (adjustable)
pub ef_search: usize, // default: 50
/// Distance metric
pub metric: DistanceMetric, // default: Cosine
/// Level multiplier (mL = 1/ln(M))
pub ml: f32, // default: calculated
}
---
Language SDKs are maintained in separate packages and repos with their own release cycles:
| Language | Repository | Installation |
|---|---|---|
| **Rust** | This repository | cargo add sochdb |
| **Python** | [sochdb-python-sdk](https://github.com/sochdb/sochdb-python-sdk) | pip install sochdb |
| **Node.js/TypeScript** | [sochdb-nodejs-sdk](https://github.com/sochdb/sochdb-nodejs-sdk) | npm install @sochdb/sochdb |
| **Go** | [sochdb-go](https://github.com/sochdb/sochdb-go) | go get github.com/sochdb/sochdb-go@latest |
| Feature | Python | Node.js | Go | Rust |
|---|---|---|---|---|
| Basic KV | ✅ | ✅ | ✅ | ✅ |
| Transactions | ✅ | ✅ | ✅ | ✅ |
| SQL Operations | ✅ | ✅ | ✅ | ✅ |
| Vector Search | ✅ | ✅ | ✅ | ✅ |
| Path API | ✅ | ✅ | ✅ | ✅ |
| Prefix Scanning | ✅ | ✅ | ✅ | ✅ |
| Query Builder | ✅ | ✅ | ✅ | ✅ |
Note: While SDKs are maintained in separate repositories, they share the same core functionality and API design. Refer to individual SDK repositories for language-specific documentation and examples.
---
The Python SDK's BatchAccumulator provides 4–5× faster inserts by deferring HNSW graph construction:
```python from sochdb import VectorIndex import numpy as np
index = VectorIndex(dimension=1536, max_connections=16, ef_construction=200)
SochDB's unique path-based API provides O(|path|) resolution via the Trie-Columnar Hybrid (TCH) structure.
SochDB uses a plugin architecture for extensibility without dependency bloat.
| Extension | Purpose | Example |
|---|---|---|
StorageExtension | Alternative backends | RocksDB, LSCS |
IndexExtension | Custom indexes | Learned index, full-text |
ObservabilityExtension | Metrics/tracing | Prometheus, DataDog |
CompressionExtension | Compression algos | LZ4, Zstd |
use sochdb_kernel::{Extension, ExtensionInfo, ObservabilityExtension};
struct PrometheusMetrics { /* ... */ }
impl Extension for PrometheusMetrics {
fn info(&self) -> ExtensionInfo {
ExtensionInfo {
name: "prometheus-metrics".into(),
version: "1.0.0".into(),
description: "Prometheus metrics export".into(),
author: "Your Name".into(),
capabilities: vec![ExtensionCapability::Observability],
}
}
fn as_any(&self) -> &dyn std::any::Any { self }
fn as_any_mut(&mut self) -> &mut dyn std::any::Any { self }
}
impl ObservabilityExtension for PrometheusMetrics {
fn counter_inc(&self, name: &str, value: u64, labels: &[(&str, &str)]) {
// Push to Prometheus
}
fn gauge_set(&self, name: &str, value: f64, labels: &[(&str, &str)]) {
// Set gauge value
}
fn histogram_observe(&self, name: &str, value: f64, labels: &[(&str, &str)]) {
// Record histogram
}
// ... tracing methods
}
// Register the plugin
db.plugins().register_observability(Box::new(PrometheusMetrics::new()))?;
---
┌─────────────────────────────────────────────────────────────────┐
│ JSON (156 tokens) │
├─────────────────────────────────────────────────────────────────┤
│ [ │
│ {"id": 1, "name": "Alice", "email": "alice@example.com"}, │
│ {"id": 2, "name": "Bob", "email": "bob@example.com"}, │
│ {"id": 3, "name": "Charlie", "email": "charlie@example.com"} │
│ ] │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ TOON (52 tokens) — 67% reduction! │
├─────────────────────────────────────────────────────────────────┤
│ users[3]{id,name,email}: │
│ 1,Alice,alice@example.com │
│ 2,Bob,bob@example.com │
│ 3,Charlie,charlie@example.com │
└─────────────────────────────────────────────────────────────────┘
We benchmarked SochDB against ChromaDB and LanceDB using VectorDBBench — the industry-standard open-source benchmark from Zilliz. All databases ran on the same hardware in embedded mode. SochDB and ChromaDB use HNSW indexes; LanceDB uses IVF_PQ.
<p align="center"> <img src="docs/assets/benchmark_comparison.svg" alt="SochDB vs ChromaDB vs LanceDB benchmark comparison" width="800" /> </p>
#### Test Setup - Dataset: COHERE/OpenAI 50,000 vectors × 768–1536 dimensions - Queries: VectorDBBench standard query set (k=100) - Distance Metric: Cosine similarity - Ground Truth: VectorDBBench precomputed ground truth (brute-force) - Processes: Insert, optimize, and search in separate subprocesses (VectorDBBench default)
| Parameter | SochDB | ChromaDB | LanceDB |
|---|---|---|---|
| Index Type | HNSW | HNSW | IVF_PQ |
| M | 16 | 16 | — |
| ef_construction | 200 | 200 | — |
| ef_search | 500 | 500 | — |
| Version | 0.5.3 (SDK) | 0.4.22 | 0.19.0 |
| Metric | SochDB | ChromaDB | LanceDB (IVF_PQ) |
|---|---|---|---|
| **Recall@100** | 0.9899 | 0.9966 | 0.6574 * |
| **Avg Latency** | **3.3 ms** ✅ | 15.4 ms | 5.6 ms |
| **P95 Latency** | **4.2 ms** ✅ | 18.4 ms | 5.9 ms |
| **P99 Latency** | **5.9 ms** ✅ | 22.3 ms | 12.2 ms |
| **Insert (50K vecs)** | **0.1 s** ✅ | 76.9 s | 0.4 s |
| **Total Load** | **13.7 s** ✅ | 76.9 s | 21.0 s |
\* LanceDB recall is lower due to IVF_PQ (lossy compression) vs HNSW (graph-based exact search).
BatchAccumulatorSochDB's Python SDK includes a BatchAccumulator API that separates data accumulation from HNSW graph construction:
┌────────────────────────────────────────────────────────────────────┐
│ BatchAccumulator Pipeline │
├───────────────────────┬──────────────────────────────────────────┤
│ Phase 1: Accumulate │ Phase 2: Flush │
│ ──────────────────── │ ───────────────── │
│ • add(ids, vecs) │ • Single insert_batch() FFI call │
│ • Pure numpy memcpy │ • Full Rayon parallel HNSW build │
│ • Zero FFI calls │ • Wave-parallel (32-node waves) │
│ • ~0.05 s for 50K │ • Adaptive ef (capped at 48) │
│ │ • ~13.7 s for 50K vectors │
└───────────────────────┴──────────────────────────────────────────┘
```python from sochdb import VectorIndex
index = VectorIndex(dimension=1536, max_connections=16, ef_construction=200)
Version: 2.0.0 | Benchmark Date: February 2026 | LLM: Azure OpenAI gpt-4.1-mini | Framework: MemoryAgentBench (UCSD)
We evaluated SochDB head-to-head against 7 RAG competitors using MemoryAgentBench — an academic benchmark from UCSD that tests how well memory systems help LLMs retrieve facts from multi-turn conversations over long contexts (up to 197K+ tokens).
<p align="center"> <img src="docs/assets/head_to_head_benchmark.svg" alt="SochDB vs RAG competitors head-to-head benchmark" width="800" /> </p>
| Rank | System | EM % | F1 % | Correct | Build (s) | Query (s) | Queries | Type |
|---|---|---|---|---|---|---|---|---|
| 🥇 | **SochDB V2** | **60.0** | **61.7** | **12/20** | 1.9 | **2.1** | ✅ 20/20 | Multi-Perspective RRF |
| 🥈 | SochDB + HyDE | 30.0 | 42.6 | 6/20 | 3.3 | 37.0 | ✅ 20/20 | Embedded HNSW |
| 🥉 | GraphRAG | 25.0 | 40.6 | 5/20 | 16.2 | 11.9 | ✅ 20/20 | Knowledge Graph + NER |
| 3 | SochDB + Rerank | 25.0 | 40.2 | 5/20 | 3.2 | 27.9 | ✅ 20/20 | Embedded HNSW |
| 5 | SochDB + Advanced | 25.0 | 37.8 | 5/20 | 3.3 | 14.0 | ✅ 20/20 | Embedded HNSW |
| 6 | SochDB Hybrid | 20.0 | 23.4 | 4/20 | **0.01** | 0.8 | ✅ 20/20 | Embedded HNSW |
| 7 | Self-RAG | 15.0 | 18.6 | 3/20 | 12.9 | 0.9 | ✅ 20/20 | Adaptive Retrieval |
| 8 | BM25 | 10.0 | 31.4 | 2/20 | 0.06 | 27.4 | ✅ 20/20 | Lexical Search |
| 9 | Embedding RAG | 5.0 | 18.9 | 1/20 | 0.3 | 37.8 | ✅ 20/20 | FAISS + Embedding |
| 10 | Mem0 | 5.0 | 18.5 | 1/20 | 51.7 | 1.0 | ✅ 20/20 | Memory-as-a-Service |
| — | RAPTOR | — | — | — | — | — | 0/20 | Tree Summarization |
All systems completed 20/20 queries except RAPTOR. SochDB V2 solved 4 queries that NO other system could: Q2 (Denmark, Iceland and Norway), Q7 (Catholic), Q11 (King Charles III), Q12 (Epte). Self-RAG results impacted by Azure content filter rejecting self-reflection prompts (~50% of queries blocked).
#### Test Setup - Dataset: Ruler QA1 197K (197,000-token context, 100 QA pairs, key-value retrieval) - Embeddings: Azure OpenAI text-embedding-3-small (1536D) - LLM: gpt-4.1-mini (all systems use the same LLM for fair comparison) - Competitors tested: GraphRAG, Self-RAG, BM25, Embedding RAG (FAISS), Mem0, RAPTOR - Task: Accurate Retrieval — memorize long conversations, then answer factual queries - Queries: 20 per system (max_test_queries_ablation=20) - Metrics: Exact match, F1, substring match, ROUGE-L (standard MemoryAgentBench metrics)
| Configuration | EM % | F1 % | Sub-EM % | ROUGE-L | Build (s) | Query (s) | Best For |
|---|---|---|---|---|---|---|---|
| **SochDB + HyDE** | **30.0** | **42.6** | 45.0 | **44.0** | 3.29 | 37.0 | 🎯 Max Accuracy |
| **SochDB + Rerank** | 25.0 | 40.2 | **50.0** | 42.9 | 3.24 | 27.9 | 🏆 **Recommended** |
| **SochDB + Advanced** | 25.0 | 37.8 | 35.0 | 37.5 | 3.25 | 14.0 | ⚠️ Don't stack |
| **SochDB (gpt-4.1)** | 20.0 | 30.3 | 20.0 | 29.5 | **0.01** | **6.6** | ⚡ Max Speed |
| **Mem0** | 5.0 | 18.5 | 30.0 | 17.9 | 51.7 | 1.0 | — |
TL;DR: Use Rerank for most use cases. Use HyDE when exact match is critical. Use baseline for real-time. Never stack all features together — it's slower and less accurate.
| Your Priority | Recommended Config | Why |
|---|---|---|
| **Best overall balance** | SochDB + Rerank | Highest substring match (50%), strong F1 (40.2%), 27% faster than HyDE |
| **Maximum exact accuracy** | SochDB + HyDE | Best EM (30%) and F1 (42.6%) — HyDE bridges question↔document vocabulary gap |
| **Lowest latency / real-time** | SochDB baseline | 0.01s build, 6.6s query — no extra LLM calls during retrieval |
| **Fuzzy/partial matching** | SochDB + Rerank | 50% substring match — cross-encoder reranker surfaces relevant context even on partial matches |
Key decision factors:
What it measures: Does the gold answer appear anywhere inside the prediction, or vice versa?
Substring match is not a pure accuracy metric — it correlates with answer verbosity. Here's why different configs score differently:
| Config | EM % | Sub-EM % | Gap | Explanation |
|---|---|---|---|---|
| **SochDB (baseline)** | 20 | 20 | 0 | Short precise answers (~4 tokens). When wrong, no overlap at all. |
| **SochDB + HyDE** | 30 | 45 | +15 | Slightly longer answers. Wrong predictions still contain gold keywords. |
| **SochDB + Rerank** | 25 | 50 | +25 | Reranker surfaces better context → predictions contain gold as substring. |
| **Mem0** | 5 | 30 | +25 | Very verbose answers (~13 tokens). Gold words appear by chance in long text. |
Example: Gold answer is "Catholic" - Baseline predicts "Orthodox" → Sub-EM ❌ (short, no overlap) - Rerank predicts "Catholic orthodoxy" → Sub-EM ✅ (gold is a substring) - Mem0 predicts "The predominant religion was Catholic Christianity" → Sub-EM ✅ (verbose, gold appears)
⚠️ For developers: High Sub-EM with low EM (like Mem0: 5% EM / 30% Sub-EM) means the system is vaguely right but imprecise. High EM with proportional Sub-EM (like HyDE: 30% EM / 45% Sub-EM) means the system gives useful answers. Rerank's 50% Sub-EM with 25% EM is the sweet spot — it frequently gets the right entity even if not the exact formatting.
| Dataset | Context | EM % | F1 % | Sub-EM % |
|---|---|---|---|---|
| Ruler QA1 197K | 197K tokens | 13.0 | 27.0 | 38.0 |
| Ruler QA2 421K | 421K tokens | **31.0** | **42.7** | **49.0** |
| LongMemEval | 400K tokens | 3.3 | 9.7 | 4.0 |
Note: Multi-dataset runs used gpt-4o-mini/gpt-4.1-mini with k=100. QA2 achieved higher accuracy than QA1 due to more distinctive key-value patterns.
---
| Dataset | JSON Tokens | TOON Tokens | Reduction |
|---|---|---|---|
| Users (100 rows, 5 cols) | 2,340 | 782 | **66.6%** |
| Events (1000 rows, 3 cols) | 18,200 | 7,650 | **58.0%** |
| Products (500 rows, 8 cols) | 15,600 | 5,980 | **61.7%** |
---
Methodology: SochDB vs SQLite under similar durability settings (WALmode,synchronous=NORMAL). Results on Apple M-series hardware, 100k records.
| Database | Mode | Insert Rate | Notes |
|---|---|---|---|
| **SQLite** | File (WAL) | ~1.16M ops/sec | Industry standard |
| **SochDB** | Embedded (WAL) | ~760k ops/sec | Group commit disabled |
| **SochDB** | put_raw | ~1.30M ops/sec | Direct storage layer |
| **SochDB** | insert_row_slice | ~1.29M ops/sec | Zero-allocation API |
---
cargo run -p benchmarks --release ```
Note: Performance varies by workload. SochDB excels in LLM context assembly scenarios (token-efficient output, vector search, context budget management). SQLite remains the gold standard for general-purpose relational workloads.
---
SochDB是一个高性能的向量数据库,适合AI应用场景
该工具使用 AGPL-3.0 协议,商用场景请仔细阅读协议条款,必要时咨询法律意见。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
⚠️ AGPL 3.0 — 最严格的 Copyleft,网络服务端使用也需开源,SaaS 使用受限。
经综合评估,SochDB 在MCP工具赛道中表现稳健,质量优秀。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | sochdb |
| Topics | mcpai-agentsdatabaseembeddingsrust |
| GitHub | https://github.com/sochdb/sochdb |
| License | AGPL-3.0 |
| 语言 | Rust |
收录时间:2026-06-27 · 更新时间:2026-06-27 · License:AGPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端