AWS 向量搜索选型指南:让 Agent 在数据所在之处工作

2026-08-21 40 预计阅读时间: 1 分钟
来源: aws.amazon.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:12 分钟

构建 Agentic AI 应用时,向量搜索并不一定意味着新增一个独立的向量数据库。AWS 提供了一组直接集成到现有数据库和存储服务中的向量能力,团队可以继续使用已经承载业务数据的服务,减少数据迁移、同步链路和额外运维。

这类架构的关键问题不是“哪个向量数据库最强”,而是“向量搜索应该放在哪里,才能最贴近数据、权限和访问模式”。

向量搜索为什么应该靠近业务数据

传统 RAG 架构通常会把文档或业务记录复制到独立的向量数据库,再通过 embedding 完成语义检索。这个方案可以工作,但也会带来几项长期成本:

  • 原始数据与向量索引需要持续同步。
  • 权限、租户隔离和删除操作需要在两套系统中保持一致。
  • 查询结果还要回到业务数据库中补齐字段。
  • 团队需要额外学习和维护一套存储服务。

AWS 的向量方案将搜索能力放进已有的数据服务中。这样,Agent 可以在同一数据边界内完成语义检索、过滤和上下文组装。对于已经使用关系数据库、文档数据库、图数据库、键值存储、搜索引擎或对象存储的团队,这种方式尤其适合渐进式接入。

需要注意的是,“不迁移数据”并不代表不需要设计索引。embedding 模型、向量维度、距离度量、元数据过滤、更新策略和权限边界仍然需要明确。

六类服务,六种数据形态

可以把 AWS 的向量能力按数据模型和检索目标来理解,而不是只看向量查询接口。

关系数据:Aurora PostgreSQL 与 RDS for PostgreSQL

如果产品数据、权限关系和业务过滤条件已经位于 PostgreSQL 中,可以直接在关系数据库里保存 embedding,并使用 pgvector 完成相似度检索。

这种方式适合:

  • 检索结果必须和事务数据保持一致。
  • 查询同时包含结构化条件和语义相似度。
  • 应用已经依赖 SQL、事务和 PostgreSQL 权限模型。

例如,客服 Agent 可以先按租户和产品线过滤,再从知识条目中找出语义最相近的内容。向量检索只是 SQL 查询的一部分,而不是单独的上下文服务。

搜索数据:Amazon OpenSearch Service

当应用需要全文搜索、向量搜索、过滤、聚合和搜索相关性调优时,OpenSearch 更适合承担检索层角色。它尤其适合文档搜索、日志分析、企业知识库和需要混合检索的场景。

可以把关键词匹配、语义匹配和业务过滤组合在同一个搜索流程中,再将结果交给 Agent 生成答案。代价是需要认真规划索引映射、分片、刷新策略和集群容量。

图数据:Amazon Neptune

如果问题的核心是实体之间的关系,例如“某个客户关联了哪些合同、产品、供应商和风险事件”,图数据库比单纯的近邻搜索更自然。向量可以帮助发现语义相似的实体或文本,但图遍历负责解释关系和路径。

适合将向量检索与关系推理结合起来的 Agent 场景包括知识图谱问答、供应链分析、身份关系分析和故障根因探索。

文档数据:Amazon DocumentDB

对已经以 JSON 文档形式存储产品目录、内容条目或用户资料的应用,DocumentDB 可以让向量字段和文档元数据留在相同的数据模型中。

这能减少从文档数据库导出数据、转换格式并同步到独立向量系统的工作,但仍需评估向量索引规模、写入频率和查询延迟是否符合业务目标。

低延迟键值数据:Amazon MemoryDB

对于需要极低访问延迟的个性化推荐、会话记忆和实时 Agent 上下文,MemoryDB 可以作为靠近在线请求路径的向量存储选择。

它更适合已经把热点状态放在内存型键值服务中的系统。团队需要关注内存成本、数据生命周期和持久化需求,避免把长期、低访问频率的大型知识库全部放进高成本的在线缓存层。

对象存储数据:Amazon S3 Vectors

如果数据规模很大、访问模式偏批处理或成本敏感,S3 Vectors 可以作为面向对象存储数据的向量检索方案。它适合文档归档、历史内容、海量素材和不需要每次请求都访问的知识集合。

这类方案通常更关注存储成本、索引更新周期和查询吞吐,而不是把所有数据都放在低延迟数据库中。在线 Agent 可以将高频数据与低频数据分层处理。

一个可改造的 PostgreSQL 示例

下面的示例假设你使用 Aurora PostgreSQL 或 RDS for PostgreSQL,并且实例已安装 pgvector 扩展。示例使用 3 维向量只是为了便于演示,生产环境应替换为实际 embedding 模型产生的维度。

先创建表和向量索引:

CREATE EXTENSION IF NOT EXISTS vector;

CREATE TABLE IF NOT EXISTS knowledge_items (
    id BIGSERIAL PRIMARY KEY,
    tenant_id TEXT NOT NULL,
    title TEXT NOT NULL,
    content TEXT NOT NULL,
    embedding vector(3) NOT NULL,
    metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
    updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);

CREATE INDEX IF NOT EXISTS knowledge_items_tenant_idx
    ON knowledge_items (tenant_id);

CREATE INDEX IF NOT EXISTS knowledge_items_embedding_idx
    ON knowledge_items
    USING hnsw (embedding vector_cosine_ops);

插入几条示例数据,并执行带租户过滤的相似度查询:

INSERT INTO knowledge_items
    (tenant_id, title, content, embedding, metadata)
VALUES
    ('acme', '退款政策', '标准商品支持签收后七天内申请退款。', '[0.91, 0.12, 0.08]', '{"product":"support"}'),
    ('acme', '发票说明', '企业客户可以在订单完成后申请电子发票。', '[0.18, 0.88, 0.16]', '{"product":"billing"}'),
    ('other-tenant', '退款政策', '这是另一个租户的内容。', '[0.90, 0.11, 0.07]', '{"product":"support"}')
ON CONFLICT DO NOTHING;

SELECT id, title, content, metadata,
       1 - (embedding <=> '[0.89, 0.15, 0.10]') AS similarity
FROM knowledge_items
WHERE tenant_id = 'acme'
ORDER BY embedding <=> '[0.89, 0.15, 0.10]'
LIMIT 5;

运行前需要将连接信息替换为实际数据库地址,并根据业务 embedding 模型调整 vector(3) 和查询向量的维度。生产系统还应在 SQL 层保留租户、地域、数据分类和权限过滤,不能只依赖 Agent 的提示词来限制数据范围。

如何选择合适的引擎

可以用下面四个问题快速缩小范围:

  1. 原始数据当前在哪里? 如果主要数据已经在 PostgreSQL、文档数据库或对象存储中,优先评估同一服务内的向量能力。
  2. 查询是纯语义搜索,还是混合检索? 需要全文搜索、聚合和相关性调优时,OpenSearch 更自然;需要事务和复杂 SQL 过滤时,关系数据库更直接。
  3. 数据之间的关系是否比相似度更重要? 如果答案依赖实体关系和多跳路径,应评估 Neptune,而不是只增加向量维度。
  4. 请求延迟、数据规模和成本哪个最敏感? 实时会话记忆偏向低延迟存储;海量历史数据则应考虑对象存储和分层架构。

此外,应该用真实查询集测试召回率、延迟、索引构建时间、更新延迟和每月成本。客户案例或服务证明点可以帮助验证方向,但不能替代针对自身数据分布和权限模型的压测。

落地时需要提前确认的边界

向量搜索解决的是“找到语义上相关的数据”,并不会自动解决答案可信度、权限控制和数据新鲜度问题。上线 Agent 前,至少确认以下事项:

  • embedding 模型升级时如何重建索引。
  • 原始数据删除后,向量和元数据多久失效。
  • 检索结果如何执行租户和用户级权限过滤。
  • 是否需要关键词搜索、结构化过滤或图遍历的组合。
  • 低延迟和低成本之间如何分层。
  • 生产查询是否包含足够的可观测信息,例如索引版本、过滤条件和召回结果。

AWS 这套思路的价值在于让向量能力贴近已有数据,而不是要求每个团队从零搭建另一套数据平台。最稳妥的采用路径通常是从一个已有数据边界清晰的 Agent 场景开始,使用真实业务查询验证效果,再决定是否需要混合多个引擎或建立专门的检索层。


相关推荐