A vector database stores embeddings of your documents and returns the ones closest in meaning to a query. For an agent, that is how it finds the right passage among thousands of files, tickets, or notes before it answers. The databases below differ in who runs them, how they bill, whether they also match exact keywords, and how well they filter by user, date, or source. Details were checked against each provider's official pages in October 2026.
What is the best vector database for AI agents?
If you already run Postgres, start with pgvector: your vectors sit next to the rows they describe, and filters are plain SQL. If you want nothing to operate, use Pinecone. Choose Qdrant or Weaviate for an open-source engine you can self-host or rent, turbopuffer for many namespaces at low storage cost, Milvus or Zilliz Cloud for very large collections, and Chroma or LanceDB to start inside your own process.
| Database | Consider it when you need… | What to evaluate |
|---|---|---|
| Pinecone | A managed service with nothing to operate | Read-unit cost at your query volume, and the plan minimums |
| pgvector | Vectors in the Postgres database you already run | Recall and latency with filters once the table grows |
| Qdrant | An open-source engine with rich payload filters and hybrid search | Memory use at your size, and whether you self-host or rent |
| Weaviate | Hybrid keyword and vector search with built-in embedding providers | Cost per million vector dimensions on Flex |
| turbopuffer | Many namespaces, such as one per user, on object storage | Cold-query latency on namespaces that are rarely read |
| Milvus / Zilliz Cloud | Very large collections and many index choices | The operating work of self-hosted Milvus, or vCU cost on Zilliz |
| Chroma | The quickest start, local first, cloud later | Which search features you need from Chroma Cloud rather than local |
| LanceDB | An embedded library for multimodal data and versioned tables | Managed pricing, which we could not find published |
How do vector databases compare on pricing and features?
The main differences are the billing unit (reads and writes, storage, compute, or vector dimensions), whether you can run the engine yourself, and whether keyword search is built in. All figures come from the linked official pages.
| Database | Free tier | Paid pricing | Open source and self-hosting | Hybrid keyword and vector search | Filtering and multi-tenancy | MCP server |
|---|---|---|---|---|---|---|
| Pinecone | Starter: 2 GB, 2M write units and 1M read units a month, 5 indexes, AWS us-east-1 only (pricing) | Builder $20 a month flat; Standard $50 a month minimum, $0.33/GB storage, $16–$18 per million read units | No; managed only | Yes, dense and sparse in one index or two (hybrid docs) | Metadata filters; namespaces, 100 per index on Starter | Local developer server; hosted server per Assistant (docs) |
| pgvector | Free extension, PostgreSQL License (repo) | Whatever your Postgres host costs | Yes; runs inside any Postgres that allows it | Combine with Postgres full-text search and fuse the rankings yourself |
SQL WHERE; iterative index scans since
0.8.0 keep filtered queries from returning too few rows
|
Not provided by the project |
| Qdrant | 1 GB RAM, 4 GB disk cluster; suspended after 1 week unused (docs) | Usage based, billed hourly for vCPU, memory, and storage; no starting price listed (pricing) | Yes, Apache 2.0 (repo) | Yes, sparse vectors fused with RRF or DBSF | Keyword, full-text, range, and geo payload filters | Official, stdio or HTTP (repo) |
| Weaviate | 1 cluster, 100,000 objects, 1 GB memory, 10 GB disk (pricing) | Flex from $45 a month; from $0.00465 per million vector dimensions and $0.12/GiB storage | Yes, BSD-3-Clause for most of the code (repo) | Yes, BM25 plus vector in one query | Filters combined with search; multi-tenancy |
Built in from v1.38 at /v1/mcp (docs)
|
| turbopuffer | Not listed on the pages we checked | Launch $16, Scale $256 a month minimum; storage up to $0.33/GB (pricing) | No; managed, with BYOC on Enterprise | Yes, vector and BM25 subqueries fused server-side with RRF (docs) | Filters on an inverted index; unlimited namespaces (limits) | Not listed on the pages we checked |
| Milvus / Zilliz Cloud | Zilliz: 5 GB, 2.5M vCUs a month, 5 collections (docs) | Serverless $4 per million vCUs (cost docs); Dedicated from $0.273 per CU-hour | Milvus is Apache 2.0, from Lite to distributed (repo) | Yes, BM25 and sparse vectors with dense | Filters; isolation by database, collection, partition, or partition key | Official, stdio, SSE, or streamable HTTP (repo) |
| Chroma | Open source is free; Chroma Cloud Starter includes $5 of credits (pricing) | $2.50/GiB written, $0.33/GiB-month stored, $0.0075/TiB queried; Team $250 a month | Yes, Apache 2.0 (repo) | On Chroma Cloud, dense and sparse fused with RRF (docs) | Metadata and document-text filters | From Chroma, local, self-hosted, or Cloud (repo) |
| LanceDB | Open source is free | Not stated on the pages we checked | Yes, Apache 2.0 embedded library (repo) | Yes, full-text, hybrid, and reranking (docs) | Filters and SQL | Not listed on the pages we checked |
What does an AI agent need from a vector database?
An agent needs the right passages back in few tokens, results limited to what the person asking may see, and new material it can find minutes after it was written. Consider this request:
What did we decide about refunds on annual plans for EU customers? Check the support tickets, Slack threads, and meeting notes from this year, and link the source for each point.
That single request touches four capabilities:
- Semantic search: a ticket that says "money back on the yearly plan" should match "refunds on annual plans".
- Keyword search: plan names, ticket IDs, and policy codes need exact matches, which embeddings handle poorly. Hybrid search runs both and merges the rankings.
- Filters: region, date, and source narrow the candidates before ranking. Weak filtering returns too few results or results from the wrong scope.
- Isolation and freshness: each team or customer sees only their own data, and yesterday's meeting notes are searchable today.
A vector database is retrieval over documents. It is not the same as an agent remembering what you decided together; our guide to AI agent memory explains the difference. When the material lives on the open web rather than in your own files, a web search API is the better tool.
Pinecone
The managed choice when you want to send vectors and queries and run nothing yourself.
Pinecone is a hosted service with dense, sparse, and full-text indexes on every plan. Its hybrid search can store dense and sparse vectors in one index or two, and metadata filters narrow the candidates before ranking. Namespaces split one index by user or tenant. The developer MCP server runs locally and works only with indexes that embed text for you; a separate Assistant MCP server is available as a hosted endpoint.
Pricing is by storage, read units, and write units. Starter is free with 2 GB, 1M read units, and 2M write units a month, in AWS us-east-1 only. Builder is $20 a month flat with higher limits. Standard has a $50 monthly minimum, then $0.33 per GB stored and $16 to $18 per million read units, and comes with a three-week trial with $300 of credits.
pgvector
The default when your data already lives in Postgres.
pgvector is a
Postgres extension under the PostgreSQL License. It adds
vector, halfvec, sparsevec, and
bit types with HNSW and IVFFlat indexes. Indexed
vector columns go up to 2,000 dimensions and
halfvec up to 4,000. Filters are ordinary SQL, joined
against the tables the agent already reads, and access rules stay in one
place.
Filtering with an approximate index used to return fewer rows than requested. Version 0.8.0, released in October 2024, added iterative index scans that keep searching until enough rows match. For hybrid search, the project suggests combining it with Postgres full-text search and merging the two rankings with Reciprocal Rank Fusion. Cost is whatever your Postgres host charges, and scaling the database is your job.
Qdrant
An open-source engine for teams that want strong filters and the option to self-host.
Qdrant is written in Rust and licensed under Apache 2.0. Each vector carries a JSON payload that can be filtered by keyword, full-text, numeric range, or location. Sparse vectors give it keyword-style search, and hybrid queries fuse results with RRF or DBSF. Built-in quantization reduces memory use, and sharding and replication scale it out.
Qdrant Cloud has a free single-node cluster with 1 GB of RAM and 4 GB of disk, which Qdrant says holds about one million 768-dimension vectors. It is suspended after a week unused and deleted after four more weeks. Paid clusters are billed hourly for compute and storage, with no starting price on the pricing page. The official MCP server gives an agent two tools, store and find, over stdio or HTTP.
Weaviate
A fit when you want hybrid search and embedding handled by the database.
Weaviate is written in Go, mostly under BSD-3-Clause. One query combines BM25 keyword search, vector similarity, and filters. Vectorizer modules call embedding providers such as OpenAI, Cohere, and Hugging Face for you, or you bring your own vectors. Multi-tenancy, reranking, and generative search are built in.
Since v1.38 an
MCP server is built into Weaviate
at /v1/mcp, with tools for collection config, tenants,
hybrid queries, and an optional upsert. It is always on in Weaviate
Cloud and off by default when self-hosted.
Pricing: the free plan has one
cluster with 100,000 objects; Flex starts at $45 a month and bills from
$0.00465 per million vector dimensions and $0.12 per GiB stored.
turbopuffer
A candidate when you need many separate indexes, such as one per user, at low storage cost.
turbopuffer keeps all data in object storage and caches what is queried on NVMe and memory. It supports vector search, BM25 full-text search, and filters on an inverted index. Hybrid search sends both subqueries at once and fuses them server-side with RRF. The limits page lists unlimited namespaces and dense vectors up to 10,752 dimensions.
The trade-off is the first query on cold data. turbopuffer publishes a p90 of 1,214 ms for an uncached query on one million documents, and says cached queries are as fast as in-memory engines. Pricing is usage based, with monthly minimums of $16 on Launch and $256 on Scale. We did not find a free tier or an official MCP server on the pages we checked.
Milvus / Zilliz Cloud
An option for very large collections, open source or managed.
Milvus is an Apache 2.0 project under the LF AI & Data Foundation. It runs as Milvus Lite in a Python process, as a single-machine Standalone server, or distributed on Kubernetes. It offers HNSW, IVF, DiskANN, and GPU indexes, BM25 full-text search, and sparse vectors stored alongside dense ones. Tenants can be isolated by database, collection, partition, or partition key.
Zilliz, the main contributor, runs it as Zilliz Cloud. The free plan includes 5 GB of storage, 2.5M vCUs a month, and up to 5 collections. Serverless costs $4 per million vCUs for reads and writes, with storage billed separately; we did not find the current storage rate stated clearly. The Milvus MCP server includes text, vector, and hybrid search tools.
Chroma
The quickest way to start, in memory or on disk, with a hosted option later.
Chroma is Apache 2.0
with Python and JavaScript clients. It runs in memory for prototypes or
as a server with chroma run, and filters on metadata and
document text. The
Chroma MCP server
works with in-memory, local, self-hosted, and Cloud databases.
Chroma Cloud is serverless and stores data in object storage. Its Search API adds hybrid search, fusing dense and sparse rankings with RRF. Pricing: $2.50 per GiB written, $0.33 per GiB-month stored, and $0.0075 per TiB queried. Starter has no monthly fee and includes $5 of credits; Team is $250 a month.
LanceDB
A fit when the data is multimodal or you want an embedded library.
LanceDB is an Apache 2.0 embedded retrieval library built on the open Lance format, with Python, TypeScript, and Rust SDKs. It stores vectors with metadata and multimodal data such as images and video, and versions tables automatically. The docs cover vector, full-text, and hybrid search with reranking, filters, and SQL.
LanceDB also sells a managed Cloud and a distributed Enterprise product. The pricing page did not state plan prices or free credits when we checked, and we did not find an official MCP server, so plan to wrap it as a tool yourself.
What do the benchmarks say about vector databases?
We did not find a recent independent benchmark that covers these eight. The two most cited are run by vendors, and we have not run our own, so read them as directional.
- Qdrant's benchmarks: published by Qdrant, with speed results last updated in June 2024 and filtered-search results in February 2023. They compare Qdrant with Elasticsearch, Milvus, Redis, and Weaviate on four public datasets and report Qdrant ahead in most scenarios. Asked whether they are biased, the page answers "Probably, yes." The code is open.
- VectorDBBench: maintained and sponsored by Zilliz, with a leaderboard. It supports Pinecone, Qdrant, Weaviate, pgvector, Chroma, Milvus, and Zilliz Cloud, and includes filtered-search and insert-under-load cases. It does not list turbopuffer or LanceDB.
Neither measures what decides an agent's answer: whether the right passage comes back for your queries, with your filters, at your size.
Pinecone vs pgvector vs Qdrant: which should you choose?
Choose by who you want running the database:
- pgvector if you already run Postgres. One database, SQL filters, and no new service to secure.
- Pinecone if you want nothing to operate. You pay per read and write, with a monthly minimum on Standard.
- Qdrant if you want open source with a managed option. Start on the free cluster and self-host later, or the reverse.
Pick the closest fit, then run one alternative on the same data.
How do you test a vector database on your own task?
Load a real sample of your documents into two candidates with the same embedding model and chunking, then write 30 to 50 questions with the passages that should answer them. Keep the model and instructions fixed so only the database changes.
| Query type | What a useful result looks like |
|---|---|
| Paraphrased question | The right passage in the top five, though it uses different words |
| Exact identifier, such as a ticket ID or SKU | The matching record first, not a similar-sounding one |
| Narrow filter, such as one customer and one month | The full number of results requested, all inside the filter |
| Another tenant's data | Nothing returned |
| A document added a minute ago | Found on the next query |
| A question with no answer in the data | Low scores the agent can treat as "not found" |
Record recall in the top five, latency at the 95th percentile, and the monthly cost at your expected storage and query volume. Then read a few misses. A wrong chunk size, a weak embedding model, and a filter applied after the search need different fixes, and only the last one is the database's fault.
How do I connect a vector database to my agent?
Through an MCP server or a small tool you write around the client library. Weaviate serves MCP from the database itself. Qdrant and Milvus publish servers that run over HTTP as well as locally, and Chroma publishes one too. Pinecone's Assistant MCP server is available as a hosted endpoint.
In Dexto, connections accept any custom MCP server, and Dexto discovers the tools that server offers. Add the server's URL in Connections settings, or ask Dexto to connect it for you. Your agent code never handles the credential, and you can remove the connection at any time. Our MCP server shortlist covers other servers worth connecting.
Where does Dexto fit?
Dexto is the agent that queries the database. A vector database returns passages; you still need something to decide what to search for, read the results, check the sources, and deliver the answer. That surrounding system is the harness, and it is what Dexto provides.
- Tools: connections include more than 50 built-in integrations and any custom MCP server, so a vector database sits next to Slack, Notion, or GitHub in the same agent.
- A computer: Dexto has a persistent cloud computer where it stores files, runs code, and opens browsers. The agent can load your documents into an embedded database there, or run the comparison queries from the test above.
- Memory: Dexto's Memory learns preferences and decisions from your conversations, and you manage what it has saved in the Brain app. A vector database is for the documents you bring, not for remembering how you like your answers.
- Process: a skill holds your retrieval rules, such as which filters to apply and when to say nothing was found. An agent configured for the job applies them every time.
For the refunds example, that means: connect the database, describe the filters and the citation format in a skill, and have the agent answer with a source link for each point.
Try it in Dexto
Pick one database from the table, connect its MCP server, and give Dexto a real question about your own documents. Open Dexto or read the quickstart.