核心结论:在 2026 年的生产级 Agentic RAG 场景中,Qdrant 在低于 12 毫秒的 p95 延迟、Payload 元数据过滤和内存(RAM)利用率之间实现了最佳综合平衡。对于已有 Postgres 集群的团队而言,pgvector (HNSW) 凭借零新增基础设施成为性价比最高(成本最低)的向量数据库。Pinecone Serverless 以零闲置成本和极简运维领先,而 Milvus 在 5000 万以上超大规模向量扩展中表现最为强劲。
1. 引言:为何 Agentic RAG 亟需全新的向量基础设施
检索增强生成(RAG)已经从简单的原生检索流水线演进为动态、多跳的 Agentic RAG。在传统的文档级 RAG 中,应用程序接收单个用户 Prompt,利用余弦相似度在向量数据库中检索最近邻的 $k=5$ 个结果,然后将原始文本分块直接注入大语言模型(LLM)的上下文窗口中。
而自主 AI Agent 则彻底打破了朴素 RAG(Naive RAG)背后的所有架构假设:
- 高频读写突发(High-Frequency Read/Write Bursts):Agent 需要实时读取情境记忆(Episodic Memory)、执行工具、生成子假设并将工作笔记实时写回向量索引。当 Agent 要求在 20 毫秒内实现“读己所写(Read-Your-Own-Writes)”一致性时,传统的静态批量索引存储根本无法胜任。
- 严苛的元数据过滤(Extreme Metadata Filtering):自主 Agent 极少执行无约束的全局相似度搜索。相反,其查询严重依赖动态运行时的元数据过滤:
tenant_id == "corp_42" AND user_id == "u_88" AND (visibility == "public" OR team_id IN [...]) AND timestamp >= NOW() - 7d。如果数据库先计算向量距离再进行元数据过滤(后置过滤,Post-filtering),查询延迟将呈指数级恶化,召回率也会急剧崩塌。 - 稠密-稀疏混合检索与互惠排序融合(Hybrid Sparse-Dense & RRF):生产级 Agent 工作流要求将稠密语义表征(如 text-embedding-3-large、BAAI/bge-large-en-v1.5)与稀疏词法检索(如 BM25 或 SPLADE)相结合,以便可靠地检索出精确的符号名、代码函数以及唯一的事务标识符。
- 严苛的延迟预算(Strict Latency Budgets):一个正在执行 ReAct(推理 + 行动)循环或思维树(Tree-of-Thought)探索的 Agent,在单次用户交互中可能发起 4 到 12 次向量检索。如果索引检索的 p95 延迟达到 150 毫秒,那么在 LLM 生成第一个 Token 之前,单单向量检索就会吃掉 1.8 秒面向用户的延迟预算。
本技术评测报告针对 2026 年占据主导地位的六款向量存储引擎展开严格的实证对比:Qdrant、Milvus、ChromaDB、Weaviate、Pinecone 以及 pgvector。我们将从检索准确率(NDCG@10、Recall@10)、各分位查询延迟(p50、p95、p99)、持续 QPS 吞吐量、元数据过滤开销以及总体拥有成本(每百万向量 TCO)等多维度进行全面评估。
2. 核心性能评测矩阵(2026 年生产级实测数据)
以下评测数据基于 10,000,000 条向量的标准数据集(1,536 维,标准化 OpenAI text-embedding-3-large 格式),附带 20% Payload 元数据基数。自建引擎均在同等配置的 AWS 实例(c6i.4xlarge,16 vCPU,32 GB RAM,NVMe SSD)上进行压测。Pinecone 则在其部署于 AWS us-east-1 的生产级 Serverless 层上进行评估。
+-------------------------------------------------------------------------------------------------------------------------+
| 生产级向量数据库基准测试(1000 万向量,1536 维) |
+-------------------+------------------+------------------+------------------+------------------+------------------+------+
| 引擎与版本 | 架构设计 | p50 延迟 (ms) | p95 延迟 (ms) | QPS (单节点) | Recall@10 (HNSW) | TCO ($/百万/月)|
+-------------------+------------------+------------------+------------------+------------------+------------------+------+
| Qdrant v1.13 | Rust / 原生 | 4.2 ms | 11.8 ms | 1,420 QPS | 98.4% | $11.50 (自建) |
| Milvus v2.5 | Go/C++ / 云原生 | 6.1 ms | 14.5 ms | 2,100 QPS | 98.1% | $16.80 (自建) |
| Weaviate v1.28 | Go / 混合 HNSW | 7.8 ms | 19.4 ms | 890 QPS | 97.6% | $18.20 (自建) |
| ChromaDB v0.6 | Python/Rust 内核 | 14.2 ms | 42.6 ms | 320 QPS | 95.8% | $9.80 (自建) |
| Pinecone Serverless| 专有云架构 | 18.5 ms | 48.2 ms | 自动扩缩 | 96.9% | $8.50 (云托管)|
| pgvector v0.8 | C / Postgres 扩展| 12.4 ms | 36.7 ms | 480 QPS | 96.2% | $0.00* (现有) |
+-------------------+------------------+------------------+------------------+------------------+------------------+------+
\pgvector 成本基于将其与现有企业级 PostgreSQL 数据库同机混部,共享已分配内存计算。*
关键特性与过滤性能明细
+-------------------------------------------------------------------------------------------------------------------------+
| AGENTIC RAG 核心特性与过滤性能 |
+-------------------+----------------------+--------------------+--------------------+--------------------+---------------+
| 引擎 | 前置过滤模型 | 稀疏-稠密混合检索 | 动态 CRUD 延迟 | 多租户隔离机制 | 冷启动延迟 |
+-------------------+----------------------+--------------------+--------------------+--------------------+---------------+
| Qdrant | 单阶段 Payload 过滤 | 原生支持(Sparse API)| < 5 ms (即时可见) | 命名空间 / 过滤规则| < 100 ms |
| Milvus | 分区 / 标量过滤 | 原生多向量支持 | < 15 ms (日志缓冲) | Collection / 分区 | < 500 ms |
| Weaviate | 倒排索引图检索 | 原生支持(BM25+稠密)| < 25 ms (WAL 提交) | 原生多租户 API | < 200 ms |
| ChromaDB | SQLite / Rust 索引 | 需外部重排器 | < 18 ms | 租户 / 数据库 | < 50 ms |
| Pinecone | 元数据倒排索引 | 原生稀疏-稠密支持 | 100-400 ms(最终一致)| 命名空间 | 0 ms (Serverl)|
| pgvector | 迭代式索引扫描 | Postgres 全文检索 | < 8 ms (ACID 事务) | 行级安全策略 (RLS) | 0 ms (原生常驻)
+-------------------+----------------------+--------------------+--------------------+--------------------+---------------+
3. 核心架构深度解析
1. Qdrant:高吞吐 Rust 原生重型武器
Qdrant 是一款采用 Rust 原生编写的开源向量搜索引擎,专为在向量最近邻搜索的同时处理复杂过滤条件而设计。
+-------------------------------------------------------------------------------+
| QDRANT 内部架构 |
| |
| [传入查询 + 过滤条件] |
| │ |
| ▼ |
| ┌──────────────────┐ ┌─────────────────────────┐ |
| │ Payload 索引 ├─────>│ 过滤条件评估器 │ |
| │ (倒排 / B 树) │ └────────────┬────────────┘ |
| └──────────────────┘ │ (Payload 位图) |
| ▼ |
| ┌──────────────────┐ ┌─────────────────────────┐ [输出] |
| │ HNSW 图 ├─────>│ 自定义图遍历 ├──> Top-K 结果 |
| │ (向量嵌入) │ │ (带过滤的距离计算) │ (召回率: 98.4%) |
| └──────────────────┘ └─────────────────────────┘ |
+-------------------------------------------------------------------------------+
- 核心索引机制: Qdrant 采用了定制的分层可导航小世界(HNSW)图实现,并与 Payload 索引(B 树、倒排索引及地理位置索引)深度集成。与采用两阶段过滤(先检索候选向量再执行后置过滤)的引擎不同,Qdrant 采用了单阶段带过滤的向量检索(Single-stage filtered vector search)。在图遍历过程中,Payload 索引会构建内存位图(Bitset),使遍历算法仅在满足 Payload 条件的候选节点之间评估边缘跳转。
- 量化与内存优化: 支持标量量化(SQ)和乘积量化(PQ)。标量量化可将 32 位浮点数向量(FP32)压缩为 8 位无符号整数(UINT8),在召回率损失低于 1.1% 的前提下降低 75% 的 RAM 占用。此外,它还支持通过内存映射(
mmap)进行磁盘存储,同时仅将 HNSW 导航图常驻在内存中。 - Agentic 适配度: 极其优秀(Exceptional)。 其立即可见的写入特性非常适合实时 Agent 情境记忆。Payload Schema 无需严格的预先定义,允许 Agent 在存储嵌入向量的同时附加任意动态 JSON 上下文。
2. Milvus:分布式大规模云原生集群
Milvus 是由 LF AI & Data 基金会托管的开源项目,专为超过 1 亿至百亿级规模的超大规模分布式向量检索而打造。
+-------------------------------------------------------------------------------+
| MILVUS 分布式架构 |
| |
| [客户端请求] ──> [代理层 (无状态负载均衡器)] |
| │ |
| ┌─────────────────┴─────────────────┐ |
| ▼ ▼ |
| [Query Node (内存缓存)] [Data Node (分段构建器)] |
| │ │ |
| ▼ ▼ |
| ┌──────────────────┐ ┌──────────────────┐ |
| │ Knowhere 引擎 │ │ 消息代理 │ (Apache Pulsar / |
| │ (FAISS, HNSW, │ │ (日志 Broker) │ Kafka 事件日志) |
| │ SCaNN, GPU) │ └────────┬─────────┘ |
| └──────────────────┘ │ |
| ▲ ▼ |
| └──────────── [MinIO / S3 对象存储分块层] |
+-------------------------------------------------------------------------------+
- 核心索引机制: Milvus 依赖其 C++ 索引核心 Knowhere,该内核抽象了包括 HNSW、IVF-FLAT、SCaNN 和 DiskANN 在内的底层向量算法。Milvus 采用存储与计算分离架构:Query Node 完全无状态,而持久化分段(Segment)则存储在对象存储(Amazon S3、Google Cloud Storage 或 MinIO)中。预写日志代理(Apache Kafka 或 Apache Pulsar)负责协调流式数据摄取。
- Agentic 适配度: 企业级 Agent 群(Swarms)场景下评级为“中到高”。 对于在每日数百万次 Agent 会话中运行多租户集群的大型企业,Milvus 能提供无可比拟的集群韧性、分片能力和 GPU 加速支持。然而,对于较小规模的部署(< 500 万向量),其庞大的基础依赖组件(etcd、Pulsar/Kafka、MinIO、QueryNode、DataNode)带来了极高的运维复杂度。
3. ChromaDB:开发者优先的轻量级引擎
ChromaDB 作为早期生成式 AI 生态系统中的默认原型数据库脱颖而出,以其零配置的本地 Python 集成(chromadb.Client())而广受青睐。
- 核心索引机制: 最初作为封装了 ClickHouse 或原生 hnswlib 的进程内 SQLite 存储而构建,Chroma 在 v0.5+ 版本中将其内核迁移到了分布式 Rust 架构。它具备分布式查询协调器、通过持久化 SQLite/Postgres 层的解耦元数据存储,以及原生集合(Collections)管理。
- 量化与扩展性: 过去受限于单节点内存上限,最近的版本增加了分布式多节点集群能力。但相比 Qdrant 或 Milvus,它仍缺乏深度乘积量化以及磁盘图压缩等底层高级优化能力。
- Agentic 适配度: 本地工具与原型设计评级为“高”;生产环境评级为“中等”。 ChromaDB 依然是集成到本地开发环境、终端 Agent(如 OpenCode 或 Claude Code 本地分支)以及自动化测试套件中最快上手的引擎。但在高并发多 Agent 的生产环境中,其 p95 延迟和 QPS 上限相比原生 Rust/Go 引擎仍存在差距。
4. Weaviate:模式驱动的混合检索专家
Weaviate 是一款使用 Go 语言编写的开源云原生向量数据库,其核心特色在于开箱即用地支持 GraphQL/gRPC 接口、严格的数据模式(Data Schemas)以及无缝的稀疏-稠密混合检索。
- 核心索引机制: Weaviate 运行 HNSW 算法实现,并搭配用于 BM25 关键词匹配的倒排索引。它内置了 Vectorizer 向量化模块(允许在数据库引擎内部直接集成 OpenAI、Cohere、Voyage AI 和 HuggingFace 等模型接口)。
- 混合 RRF 检索: Weaviate 实现了原生的互惠排序融合(Reciprocal Rank Fusion, RRF)。当 Agent 查询 Weaviate 时,引擎会并行发起 BM25 稀疏检索与 HNSW 稠密检索,并通过可调参数 alpha($\alpha \in [0.0, 1.0]$)动态对两者得分分布进行加权融合。
- Agentic 适配度: 处理复杂文档场景下评级为“极高”。 Weaviate 的原生多租户 API 支持按需动态创建、隔离和销毁单个租户的图索引。这使得它成为管理独立客户账户的企业级 Agent 系统的理想之选。
5. Pinecone:全托管 Serverless 先驱
Pinecone 开创了向量数据库作为全托管云服务的先河。在 2024 至 2026 年间,Pinecone 通过推出 Pinecone Serverless 完全重构了其基础设施,实现了向量索引与计算资源的彻底解耦。
- 核心索引机制: Pinecone Serverless 抛弃了预配置专用 Pod 的模式,转向将原始向量与倒排索引直接持久化在对象存储(Amazon S3)上的架构。当查询请求到达时,无状态计算节点动态拉取几何聚类候选簇,并将高频访问的簇缓存在本地 NVMe SSD 中。
- 计费模式: Pinecone Serverless 对闲置索引收取 0 美元费用。用户严格按存储空间(每月 0.33 美元/GB)以及读写单元付费(WRU / ROU:每 100 万次搜索查询 8.50 美元)。
- Agentic 适配度: 对追求“零运维(Zero-DevOps)”的团队评级为“高”。 对于在没有专属基础设施工程师的情况下运行 Agent 工作流的中小型工程团队,Pinecone 彻底免去了容量规划、分片管理与集群扩缩容的负担。然而,命中对象存储的冷查询可能会引发高达 120ms~250ms 的 p95 延迟毛刺。
6. pgvector:务实的企业级之选
pgvector 是一款开源 C 语言扩展,可直接为 PostgreSQL 赋予向量数据类型及近似最近邻(ANN)搜索索引能力。
- 核心索引机制: 同时支持 IVFFlat(带平坦量化的倒排文件)与 HNSW(分层可导航小世界)。随着 pgvector v0.7 与 v0.8 的发布,其 HNSW 索引新增了迭代式索引扫描(Iterative Index Scan)、并行索引构建以及二进制量化(Binary Quantization)等重要功能。
- ACID 事务与联表查询(Joins): pgvector 的杀手锏在于关系型数据的同机混部(Relational Co-location)。Agent 可以在单个 ACID 事务中将向量相似度结果直接与关系型业务表(如
orders、audit_logs、customer_permissions)进行 Join 关联,无需跨两个独立的分布式系统同步数据。 - Agentic 适配度: 已有 Postgres 架构及强合规要求场景下的“首选”。 如果您的应用程序已经在使用 Amazon RDS、Supabase、Neon 或自建 Postgres,pgvector 的运维开销几乎为零。它消除了业务关系数据与外部向量存储之间的数据同步延迟。然而,当向量规模超过 2000 万时,HNSW 索引的构建时间与 RAM 内存消耗将给共享数据库实例带来巨大的资源压力。
4. Pinecone vs. Weaviate vs. ChromaDB:生产级 RAG 对比
软件架构师常面临的一个架构抉择,是在三款最受风投资本青睐的主流向量引擎之间进行取舍:Pinecone、Weaviate 与 ChromaDB。
+---------------------------------------------------------------------------------------------------------------+
| PINECONE vs WEAVIATE vs CHROMADB: PRODUCTION MATRIX |
+------------------------------+---------------------------+---------------------------+------------------------+
| Dimension | Pinecone (Serverless) | Weaviate (v1.28) | ChromaDB (v0.6) |
+------------------------------+---------------------------+---------------------------+------------------------+
| Deployment Target | Cloud Managed Only (AWS/GCP)| Self-Hosted / Managed Cloud| Local Embedded / Server |
| Open Source License | Proprietary Closed Source | Open Source (BSD-3-Clause)| Open Source (Apache 2.0)|
| Underlying Engine | S3 Blob + NVMe Worker | Go Native + HNSW + BM25 | Rust / SQLite Core |
| Hybrid Search (BM25 + Dense) | Yes (Sparse-Dense Vector) | Native Out-of-the-Box (RRF)| Requires External Code |
| Multi-Tenancy Architecture | Namespaces within Index | Dynamic Native Tenant API | Multi-database/Tenant |
| Filtering Performance | High (Inverted Index) | Very High (Integrated) | Moderate |
| Cold-Start Latency Impact | 80ms - 220ms on cold read | 0ms (In-Memory HNSW) | 0ms (Local In-Memory) |
| 1M Vector Base Cost / Month | ~$2.50 Storage + Usage | ~$65 Instance (c6i.xlarge)| ~$30 Instance or Free |
| Best Production Fit | Lean teams, serverless RAG| Enterprise hybrid search | Fast prototyping, local|
+------------------------------+---------------------------+---------------------------+------------------------+
实践中的架构权衡
- 选择 Pinecone Serverless 的场景: 你希望实现零运维开销,查询负载具有波动性,且希望完全按实际查询量付费。它是基于 AWS Lambda 或 Cloudflare Workers 运行的无服务器(Serverless)智能体(Agent)架构的行业标杆。
- 选择 Weaviate 的场景: 你的智能体依赖稠密与稀疏混合检索(例如在理解语义意图的同时,精确匹配特定零件编号或错误代码)。其内置的 BM25 引擎与可自定义的融合参数,让你无需再额外部署 Elasticsearch 或 OpenSearch 集群。
- 选择 ChromaDB 的场景: 你需要一款用于开发环境、边缘设备或本地桌面端 AI 智能体的可嵌入、零门槛引擎。它在 Python 生态中提供了最平滑顺畅的上手体验。
5. “最便宜的向量数据库”:总拥有成本(TCO)深度剖析
在评估哪款是最便宜的向量数据库时,单纯对比订阅标价往往具有误导性。工程团队必须测算完整的总拥有成本(TCO,Total Cost of Ownership),其中包括计算实例、持久化存储、内存占用、网络入网/出网流量以及工程团队的人力运维工时。
100 万、1000 万与 5000 万向量成本预估(美元/月,1536 维 FP32)
+-------------------------------------------------------------------------------------------------------+
| TOTAL COST OF OWNERSHIP (TCO) COMPARISON |
+-------------------+----------------------------+----------------------------+-------------------------+
| Vector Store | 1,000,000 Vectors (1536-D) | 10,000,000 Vectors (1536-D)| 50,000,000 Vectors (1536-D) |
+-------------------+----------------------------+----------------------------+-------------------------+
| pgvector (Postgres| $0.00* (Shared RDS) | $145.00/mo (db.r6g.xlarge) | $720.00/mo (db.r6g.4xl) |
| Qdrant (Self-Host)| $18.00/mo (c6i.large + SQ) | $115.00/mo (c6i.4xlarge+SQ)| $460.00/mo (Cluster) |
| Milvus (Self-Host)| $65.00/mo (Min cluster) | $168.00/mo (Distributed) | $520.00/mo (Kubernetes) |
| ChromaDB (Self-H) | $15.00/mo (t4g.large) | $98.00/mo (c6g.2xlarge) | Not Recommended (>20M) |
| Pinecone Serverles| $2.48 storage + $8.50 ops | $24.80 storage + $85.00 ops| $124.00 st + $425.00 ops|
| Qdrant Cloud (Mng)| $45.00/mo | $320.00/mo | $1,450.00/mo |
| Zilliz Cloud (Mng)| $65.00/mo | $380.00/mo | $1,680.00/mo |
+-------------------+----------------------------+----------------------------+-------------------------+
测算基准假设:100 万向量对应 50 万次/月检索查询;1000 万向量对应 500 万次/月检索查询;5000 万向量对应 2500 万次/月检索查询。
成本维度的最终结论:
- 现有技术栈中的绝对最低成本:pgvector。如果你已经在运行 AWS RDS、Neon 或 Supabase 的 PostgreSQL 实例,且内存利用率低于 60%,那么为其添加 HNSW 索引每月产生的基础设施额外成本为 0.00 美元。
- 成本最低的专用自建(Self-Hosted)引擎:采用标量量化(SQ)的 Qdrant。通过将向量从 FP32 压缩至 UINT8,并将 Payload 载荷数据内存映射(mmap)到磁盘,Qdrant 仅需一台月成本 115 美元的单计算节点即可轻松支撑 1000 万条 1536 维向量,同时保持低于 15 毫秒的 P95 延迟。
- 针对低频/突发流量最具性价比的云原生 Serverless 引擎:Pinecone Serverless。如果你的智能体仅周期性运行或存在较长时间的闲置期(如夜间或周末),Pinecone Serverless 每天仅产生几美分的费用(存储费用仅为 0.33 美元/GB-月),完全避免了运行闲置自建计算集群每月 50 至 300 美元的保底成本。
6. 生产级实战部署
为了展示真实的生产落地场景,以下提供了两大主流生产方案的开箱即用代码实现模式:Qdrant(高性能专用引擎)与 pgvector(关系型混合引擎)。
1. 支持 Payload 索引的高性能 Qdrant 配置
使用 Docker 部署带有持久化存储的 Qdrant:
# Launch optimized Qdrant instance with vector storage path
docker run -d -p 6333:6333 -p 6334:6334 \
-v $(pwd)/qdrant_storage:/qdrant/storage:z \
--name qdrant_rag \
qdrant/qdrant:v1.13.0
集成了动态 Payload 索引、标量量化以及带过滤条件的智能体记忆检索的 Python 实现:
from qdrant_client import QdrantClient
from qdrant_client.http import models
# Initialize client
client = QdrantClient(url="http://localhost:6333")
COLLECTION_NAME = "agentic_memory"
# 1. Create collection optimized with Scalar Quantization & HNSW parameters
if not client.collection_exists(COLLECTION_NAME):
client.create_collection(
collection_name=COLLECTION_NAME,
vectors_config=models.VectorParams(
size=1536,
distance=models.Distance.COSINE,
on_disk=False # Keep primary vectors in RAM for fast search
),
hnsw_config=models.HnswConfigDiff(
m=16,
ef_construct=128,
full_scan_threshold=10000
),
quantization_config=models.ScalarQuantization(
scalar=models.ScalarQuantizationConfig(
type=models.ScalarType.INT8,
quantile=0.99,
always_ram=True
)
)
)
# 2. Create payload index for high-speed agent pre-filtering
client.create_payload_index(
collection_name=COLLECTION_NAME,
field_name="tenant_id",
field_schema=models.PayloadSchemaType.KEYWORD
)
client.create_payload_index(
collection_name=COLLECTION_NAME,
field_name="timestamp",
field_schema=models.PayloadSchemaType.INTEGER
)
# 3. Insert Agent Memory Embedding with Metadata Payload
client.upsert(
collection_name=COLLECTION_NAME,
points=[
models.PointStruct(
id="c4a7e912-3b21-4b11-9a72-8f128e4e9a11",
vector=[0.012, -0.045, 0.089] + [0.0] * 1533, # 1536-D mock vector
payload={
"tenant_id": "enterprise_corp",
"agent_id": "code_refactor_agent_07",
"timestamp": 1756819200,
"document_chunk": "Refactored payment gateway handler to support idempotency keys.",
"visibility": "team_internal"
}
)
]
)
# 4. Perform Single-Stage Filtered Vector Query
query_vector = [0.011, -0.042, 0.085] + [0.0] * 1533
search_results = client.search(
collection_name=COLLECTION_NAME,
query_vector=query_vector,
query_filter=models.Filter(
must=[
models.FieldCondition(
key="tenant_id",
match=models.MatchValue(value="enterprise_corp")
),
models.FieldCondition(
key="timestamp",
range=models.Range(gte=1756700000)
)
]
),
limit=5,
with_payload=True
)
for hit in search_results:
print(f"Score: {hit.score:.4f} | Content: {hit.payload['document_chunk']}")
2. 企业级 pgvector(PostgreSQL 17 / pgvector 0.8)配置
在 PostgreSQL 中初始化支持迭代扫描(Iterative Scan)特性的 HNSW 索引:
-- 1. Enable the pgvector extension
CREATE EXTENSION IF NOT EXISTS vector;
-- 2. Create the agent episodic memory table
CREATE TABLE agent_memories (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id VARCHAR(64) NOT NULL,
agent_id VARCHAR(64) NOT NULL,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
content TEXT NOT NULL,
metadata JSONB,
embedding VECTOR(1536) NOT NULL
);
-- 3. Create B-Tree index for scalar filtering
CREATE INDEX idx_agent_memories_tenant ON agent_memories(tenant_id);
-- 4. Create optimized HNSW vector index using cosine distance
CREATE INDEX idx_agent_memories_embedding ON agent_memories
USING hnsw (embedding vector_cosine_ops)
WITH (m = 16, ef_construction = 128);
-- 5. Perform Hybrid Filtered Vector Query using Iterative HNSW Scan
-- (pgvector 0.8+ optimizes index scans when combined with strict WHERE filters)
SET hnsw.ef_search = 64;
SELECT
id,
tenant_id,
content,
1 - (embedding <=> '[0.012, -0.045, 0.089, ...]'::vector) AS cosine_similarity
FROM agent_memories
WHERE tenant_id = 'enterprise_corp'
AND created_at >= NOW() - INTERVAL '7 days'
ORDER BY embedding <=> '[0.012, -0.045, 0.089, ...]'::vector
LIMIT 5;
7. 架构选型策略指南:你该选用哪款引擎?
在 2026 年选择最适合的向量数据库,取决于你的运维约束、数据规模及整体软件架构:
[Select Vector Engine]
│
┌────────────────────────────┴────────────────────────────┐
▼ ▼
[Existing PostgreSQL Stack?] [Dedicated Vector Store?]
│ │
┌───────┴───────┐ ┌───────┴───────┐
YES NO YES NO
│ │ │ │
[Vectors < 20M?] [Need Rust Speed?] [Vectors > 50M?] [Managed Serverless?]
│ │ │ │
┌────┴────┐ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐
YES NO YES NO YES NO YES NO
│ │ │ │ │ │ │ │
pgvector Qdrant Qdrant Weaviate Milvus Qdrant Pinecone ChromaDB
(Fastest (Scale (Best (Best Hybrid (Scale (Best (Zero-Dev (Local Dev
Deploy) RAM) P95) RRF + Graph) Cluster) TCO) Ops) & Edge)
各领域最佳选型总结:
- 生产级智能体 RAG 综合最佳:Qdrant。原生 Rust 带来的极高吞吐性能,重度 Payload 过滤下仍低于 12 毫秒的 P95 延迟,以及依托标量量化实现的极致内存利用率。
- 现有系统中最具经济效益的向量数据库:pgvector。对于已在使用 PostgreSQL 的系统而言具备无与伦比的成本优势。支持直接进行 SQL 关系联结,且无需搭建二次数据同步管道。
- 最佳 Serverless / 零运维方案:Pinecone Serverless。真正的按量计费模式、零闲置成本,且无需承担基础设施运维开销即可获得近乎无限的弹性伸缩能力。
- 超大规模数据集(> 5000 万向量)首选:Milvus。基于 Kubernetes 的云原生分布式架构,实现计算与存储完全分离,是企业级大规模集群部署的理想之选。
- 稀疏-稠密混合检索最佳:Weaviate。原生支持倒数排名融合(RRF,Reciprocal Rank Fusion),可在单次查询中完美结合 BM25 关键词匹配与稠密向量语义检索。
- 快速原型验证与本地智能体首选:ChromaDB。即装即用、资源占用极低,能够无缝融入开发者的本地测试与验证环境。