Index Agentica

Vector databases for agents compared

Chroma, Pinecone, Qdrant, Weaviate, Milvus, LanceDB, turbopuffer and pgvector compared on how they deploy, license, keyword and hybrid search, filtering and tenant isolation, MCP servers and managed pricing.

Type
Comparison
Author
Agentica Author
Published
Last verified

Comparison

Vector databases for agents compared
EntryDeploymentLicenseKeyword and hybrid searchFiltering and tenantsMCP serverManaged pricing
ChromaEmbedded in Python (in-memory or PersistentClient on disk), a single-node server, or distributed; Chroma Cloud is managed distributed Chroma, with a single-tenant BYOC optionApache-2.0Full-text $contains and $regex filters on documents everywhere; sparse vectors (SPLADE, BM25) and hybrid RRF ranking through the Search API, which is Chroma Cloud only for nowMetadata where filters; tenant > database > collection model, with access control, quotas and billing scoped to the tenantOfficial chroma-mcp (Python, run with uvx) with ephemeral, persistent, HTTP and Cloud client modesUsage-based: $2.50 per GiB written, $0.33 per GiB-month stored, $0.0075 per TiB queried plus $0.09 per GiB returned; $5 credits for new users
PineconeFully managed on AWS, GCP and Azure; BYOC runs the data plane in your own cloud account. No local emulator since Pinecone Local's end of life on 2026-10-07 (an OpenAPI mock covers request tests)Commercial managed serviceDense, sparse and BM25 full-text fields (Lucene syntax, API version 2026-07) in one index; hybrid via a text-match filter plus dense ranking, client-side RRF, or dense plus sparse in one Vectors API indexMetadata filters; one namespace per tenant, from 100 namespaces per index on Starter to 1,000,000 on EnterpriseOfficial @pinecone-database/mcp (npx, API key): docs search, index management, upsert, search, cascading search and rerank; works only with integrated-embedding indexesStarter free; Builder $20/month flat; Standard $50/month minimum; Enterprise $500/month minimum; BYOC by quote
QdrantSelf-hosted (Docker, Kubernetes, binary) or distributed; Qdrant Cloud on AWS, GCP and Azure; Hybrid Cloud in your Kubernetes; air-gapped Private Cloud; Qdrant Edge embedded library for Python and RustApache-2.0BM25 through sparse vectors (server-side inference or FastEmbed), plus SPLADE++ and miniCOIL; Query API prefetches fused with RRF or DBSF (v1.10+)Payload filters; tenants by payload partitioning, user-defined sharding, or tiered (small tenants share a shard, large ones get their own)Official mcp-server-qdrant: qdrant-store and qdrant-find memory tools with FastEmbed embeddings; stdio, SSE or Streamable HTTPFree cluster (one node, no credit card, suspended after a week unused); Standard clusters billed on CPU, memory and disk
WeaviateWeaviate Cloud (shared or dedicated), Docker or Kubernetes; Embedded Weaviate runs from your code but is experimentalBSD-3-Clause, except enterprise features in the wl directory, which need a separate licenseBM25 and hybrid on by default (col.query.hybrid); BM25 uses BlockMaxWANDFilters with roaring bitmaps (range indexes are opt-in); native multi-tenancy with one shard per tenant; RBAC per collection and tenantBuilt into the database (preview): Streamable HTTP at /v1/mcp, already on in Weaviate Cloud, MCP_SERVER_ENABLED=true when self-hosting; tools for config, tenants, hybrid query and upsertFree plan (100,000 objects, 1 collection, up to 3 tenants, no credit card); Flex from $45/month pay-as-you-go; Premium by contract
MilvusMilvus Lite (pip, local .db file), Standalone (Docker, RPM/DEB) or Distributed on Kubernetes; managed on Zilliz Cloud (Serverless, Dedicated, BYOC)Apache-2.0 (LF AI & Data Foundation project)Native BM25 full-text search and learned sparse vectors (SPLADE, BGE-M3); dense and sparse in one collection, merged by hybrid_search with one ranker per searchScalar metadata filtering; multi-tenancy at database, collection, partition or partition-key levelmcp-server-milvus from Zilliz (Python, uv): stdio, SSE or Streamable HTTPNot checked; the Milvus README says Zilliz Cloud can be tried for free
LanceDBLanceDB OSS is embedded in your code, on local disk or S3, GCS or Azure Blob; LanceDB Enterprise is managed or BYOCApache-2.0BM25 full-text index; hybrid vector plus full-text search with RRF as the default reranker, or Cohere, ColBERT and othersSQL-style where filters, pre-filtering by default, scalar indexes; namespaces organise tables in a catalog (no tenant isolation feature on the pages checked)lancedb-mcp-server, a basic reference server (ingest, retrieve, table details); no MCP page in the docsOSS is free; Enterprise pricing is not published on the pages checked
turbopufferManaged only, on object storage with an NVMe and memory cache; multi-tenant by default, single-tenant or BYOC on EnterpriseCommercial managed serviceBM25 full-text, dense and sparse vectors and trigram regex; server-side RRF on multi-queries plus native reranking with managed modelsFilters on an inverted index; unlimited namespaces; document permissions by filtering on user or group ids (no built-in row-level RBAC)None documented on the pages checkedLaunch $16/month minimum; Scale $256/month minimum; Enterprise from $4,096/month with a 35% usage premium
pgvectorPostgres extension (Postgres 13+) on your own server, or on the hosted Postgres providers the project listsPostgreSQL LicenseCombine with Postgres full-text search and fuse in your code with RRF or a cross-encoder (examples in pgvector-python); sparsevec type for sparse vectorsSQL WHERE; filters apply after an approximate index scan, so use iterative index scans (0.8.0+); isolate tenants with list partitioning or separate tablesNo pgvector server; a Postgres MCP server such as Neon's (run_sql) can query itFree extension; you pay for the Postgres it runs in

Verdict: For a local agent or prototype, start embedded (Chroma, LanceDB OSS, Milvus Lite, Qdrant Edge) and move to the same project's server or cloud later. If you already run Postgres, pgvector keeps vectors next to your data, but hybrid fusion is up to you. Qdrant, Weaviate and Milvus are open-source servers with server-side hybrid search, real multitenancy and managed clouds. Pinecone and turbopuffer are managed only: Pinecone has a free plan and an official MCP server, turbopuffer a low minimum spend on object storage. Only Weaviate builds MCP into the database.

What this covers

Agents use a vector store in two ways: as long-term memory (store a fact, recall it later) and as retrieval over documents (RAG, code search, tickets). The memory layers comparison is about the services that decide what to remember. This page is about the storage underneath, which those layers and most frameworks plug into.

Three questions matter most for agents:

  1. Where does it run? In-process next to the agent, as a server you operate, or as a managed API.
  2. Can it match exact words? Agents search for error strings, ids, names and SKUs. Pure dense vectors miss those, so check for BM25 or sparse vectors and a way to fuse them with dense results.
  3. Can it keep users apart? A multi-user agent needs every query scoped to one user or workspace, ideally enforced by the database rather than by a filter the agent might forget.

Deployment shapes

Hybrid search, briefly

"Hybrid" means different things across these docs, as Pinecone's own hybrid page points out. Three patterns show up:

Text-processing defaults differ. Qdrant's BM25 model defaults to English stemming and stop words, and Chroma's full-text filter is case-sensitive. Check this before indexing other languages or ids.

Giving the agent the database through MCP

Most of these ship an MCP server, so an agent can store and search without glue code (see Connect an agent to a remote MCP server):

Write tools let an agent change or delete stored data, so give production agents a read-only key or role where the product supports one.

Choosing quickly

If you needLook at
Zero setup for a local or single-user agentChroma (embedded), LanceDB OSS, Milvus Lite, Qdrant Edge
Vectors next to existing relational datapgvector
Self-hosted hybrid search with database-enforced tenantsQdrant, Weaviate, Milvus
A managed API with a free tierPinecone Starter, Weaviate free plan, Qdrant free cluster, Chroma credits
Huge numbers of small namespaces, cost firstturbopuffer
An MCP server built into the databaseWeaviate

For the extraction and update logic on top (what to remember, when to forget), pair one of these with a memory layer such as Mem0 or Graphiti, or follow Give an agent long-term memory.

Directory entries in this comparison

Related

Sources

Machine-readable