在学习 AI Agent、RAG(Retrieval-Augmented Generation)或者大模型应用开发时,你一定会频繁看到一个词——向量库(Vector Database)

很多人第一次接触都会有这样的疑问:

  • 向量库到底是什么?
  • 为什么不用 MySQL、Redis?
  • 它和 Embedding 又是什么关系?
  • AI Agent 为什么几乎都会用到向量库?

今天就带大家系统地了解一下向量库。


一、什么是向量库?

一句话概括:

向量库是一种专门用于存储和检索向量(Embedding)的数据库。

这里的"向量"并不是数学课上的简单二维坐标,而是文本、图片、音频等数据经过 AI 模型编码后的数字表示

例如:

文本:

"云南有哪些适合夏天旅游的地方?"

↓

Embedding模型

↓

[0.135,-0.214,0.875,...]

这一长串数字就是文本对应的向量(Vector)

大模型并不能直接理解文字,它真正处理的是这些高维向量。


二、为什么需要向量?

很多人会问:

既然已经有 MySQL、PostgreSQL 了,为什么还要向量库?

原因在于:

传统数据库擅长的是"精确匹配",而 AI 更需要"语义匹配"。

例如数据库中有一条记录:

大理古城

用户提问:

云南有哪些适合避暑的地方?

这句话里面根本没有"大理古城"四个字。

如果使用 SQL:

SELECT *
FROM scenic
WHERE name='云南适合避暑的地方';

显然查不到任何结果。

但是对于 AI 来说:

云南适合避暑

↓

Embedding

↓

Vector A
大理古城

↓

Embedding

↓

Vector B

由于两个向量在向量空间中的距离非常近,因此系统能够判断:

用户想找的很可能就是"大理古城"。

这种检索方式称为:

Semantic Search(语义搜索)

它也是 RAG 技术最核心的一部分。


三、向量库里到底存了什么?

很多人误以为向量库只保存向量。

实际上,一条完整的数据通常包含三部分:

ID

+

Vector

+

Metadata

例如:

ID:10001

Vector:
[0.124,0.985,...]

Metadata:
{
    "景点":"玉龙雪山",
    "城市":"丽江",
    "门票":100,
    "文本":"玉龙雪山是云南著名景区..."
}

其中:

  • Vector:用于计算相似度

  • Metadata:保存业务信息

  • 原始文本:供大模型最终生成答案

因此向量库不仅仅是一个数字仓库,更像是 AI 的知识索引。


四、向量库是如何工作的?

整个流程可以分成四步。

第一步:建立知识库

例如有四篇旅游文档:

玉龙雪山

洱海

泸沽湖

西双版纳

首先利用 Embedding 模型,把它们转换为向量:

文档

↓

Embedding

↓

Vector

然后存入向量库。


第二步:用户提问

例如:

冬天云南哪里可以看雪?

同样经过 Embedding:

Question

↓

Question Vector

第三步:相似度检索

向量库会计算:

Question Vector

↓

与所有文档向量比较距离

例如:

玉龙雪山

0.03

★★★★★
洱海

0.58

★★
西双版纳

0.95

☆

距离越小,相似度越高。

最终返回最相关的几篇文档(Top-K)。


第四步:LLM生成答案

最后:

用户问题

+

Top-K文档

↓

LLM

↓

最终回答

这就是目前几乎所有 RAG 系统的标准流程。


五、向量库为什么比数据库快?

有人会想到:

那直接遍历所有向量计算距离不就行了吗?

理论上可以。

但是如果知识库里有:

100万

1000万

1亿

条数据

逐个计算距离几乎不可接受。

因此现代向量库都会采用:

ANN(Approximate Nearest Neighbor)

即:

近似最近邻搜索算法。

目前最流行的是:

  • HNSW

  • IVF

  • PQ

  • LSH

其中:

HNSW(Hierarchical Navigable Small World)

已经成为目前最主流的算法。

它能够在保证较高准确率的同时,大幅降低查询时间,因此 Milvus、Qdrant 等主流向量数据库都支持 HNSW。


六、常见向量库介绍

目前比较流行的向量数据库主要有以下几种。

向量库特点适用场景
Milvus企业级、功能丰富、支持分布式大规模 AI 项目
Qdrant轻量、Rust 开发、部署简单AI Agent、RAG
Weaviate内置 AI 能力丰富企业知识库
ChromaPython 项目友好学习、Demo
pgvectorPostgreSQL 插件已有 PostgreSQL 项目
FAISSMeta 开源向量检索库本地实验、算法研究

其中:

  • FAISS 更像一个向量检索引擎,而不是完整数据库。

  • Milvus 功能最全面,适合生产环境。

  • Qdrant 部署简单,是很多 AI Agent 项目的热门选择。

  • pgvector 非常适合已有 PostgreSQL 的项目,可以避免额外维护一套数据库。


七、向量库在 AI Agent 中的位置

很多同学学习 AI Agent 时,会把 Web Search 和向量库混淆。

实际上,它们负责完全不同的工作。

用户问题
        │
        ▼
     Agent
        │
 ┌──────┴──────────────┐
 │                     │
 ▼                     ▼
Web Search         向量库
 │                     │
实时信息             历史知识
天气                 企业文档
新闻                 产品说明
交通                 PDF资料
价格                 FAQ

例如:

用户问:

帮我规划一份云南五日游。

Agent 可能会:

  1. 去向量库查旅游攻略。

  2. 去天气接口获取天气。

  3. 去 Web Search 获取景区开放情况。

  4. 最后交给 LLM 综合生成完整旅游规划。

因此:

Web Search 解决的是"最新信息",向量库解决的是"长期知识"。

两者并不是替代关系,而是互补关系。


八、学习向量库应该掌握哪些知识?

如果你准备学习 AI Agent 或 RAG,我建议按照下面的顺序学习。

  1. Embedding 原理

  2. 向量是什么

  3. 向量相似度(余弦相似度、欧氏距离、内积)

  4. FAISS 基础使用

  5. Milvus 或 Qdrant

  6. RAG 工作流程

  7. Spring AI / LangChain 集成向量库

  8. AI Agent 中的知识库设计

掌握这些内容之后,你基本就能够独立搭建一个完整的知识库问答系统。


总结

向量库并不是用来替代传统数据库,而是 AI 时代新增的一种数据存储方式。

它最大的价值在于:

  • 能够理解语义,而不是关键词;

  • 可以快速找到最相似的内容;

  • 是 RAG、AI Agent、企业知识库、智能客服等应用的核心基础设施。

随着大模型应用越来越普及,向量数据库已经成为 AI 开发者必须掌握的一项基础能力。

如果你正在学习 AI Agent 或 RAG,不妨先从 Embedding → 向量检索 → 向量数据库 → RAG 这一条路线开始,相信会对整个大模型应用架构有更加深入的理解。

更多推荐