没有人是冲着检索质量去买一套托管知识库的——这四家之间的排序差距早就收敛了,你用 pgvector 加一个重排器,两周之内就能追平其中任何一个。你真正买的,是那个把 SharePoint 的权限连同 SharePoint 的文件一起搬过来的连接器,以及那条按最终用户逐一强制执行权限的查询路径。于是签约之前唯一值得问的问题就是:智能体那条集成路径究竟带不带最终用户的身份,还是只有你评估过的那个 API 才带?这四家里有一家,截至今天,有文档记录的答案是:不带。
速览
四家都在卖「不用自建流水线的 RAG」,而重心确实各不相同。其中三家是云原生的、继承各自云的身份平面;一家是独立平台,可以跑在你的 VPC 里,也可以完全离网部署。
| 服务 | 形态 | 权限从哪里来 | 最难离开的那一层 |
|---|---|---|---|
| Amazon Bedrock Knowledge Bases | Bedrock 内的托管版或自管版 | 连接器继承的 ACL,检索前过滤,之上再加一次实时检查 | IAM 与连接器的接线 |
| Vertex AI Search | 全托管数据存储,Google 的搜索家底 | 来自你 IdP 的最终用户身份;导入数据用 acl_info 元数据 | 与身份提供方的集成 |
| Azure AI Search | 一台你去配置的搜索引擎,而不是一条买来的流水线 | 查询上带最终用户令牌的权限过滤器 | 索引模式与技能组 |
| Vectara | 全流水线 API,SaaS / VPC / 本地部署 | 平台 RBAC 加上你自己建模的语料级作用域 | 没什么——这正是它的卖点 |
Amazon Bedrock Knowledge Bases
它给你什么
六个一方连接器——S3、SharePoint、Confluence、Google Drive、OneDrive 和一个网页爬虫——外加自定义连接器与直接的流式摄取,用于那些不住在可爬取系统里的数据。元数据过滤支持布尔、字符串、双精度与整数属性,足以表达租户、文档类别与新鲜度,而不必另造一条旁路。
权限故事才是差异所在
托管版在检索之前施加 ACL 过滤,并在其上叠加一次实时访问检查;被预过滤出来的文档只在该次 API 调用的生命期内短暂存在,绝不呈现给模型或用户。第二道检查比听起来更要紧:针对已建索引的 ACL 做的预过滤,只新鲜到你上一次同步为止,而今早刚被撤销的一项权限,正是过滤器陈旧就等于泄露的那种情形。这正是带权限的检索所主张的设计——在检索之前强制,并对真正进到提示词里的内容做延迟绑定。
它让你付出什么
托管版拿掉了向量库,也就拿掉了调优它的能力。自管版把这些还给你——OpenSearch Serverless、Aurora、Neptune——连同整条摄取流水线,而那是另一个产品、另一份运维账单。在两者之间做选择才是真正的决定,而团队常常为了演示挑了托管版,然后发现自己的语料需要的是自管版。
Vertex AI Search
它给你什么
不出意外,这组里排序家底最厚的一个,要配的东西也最少。数据存储可从 Cloud Storage、BigQuery、网站与一方连接器摄取;混合检索与语义排序默认开启,而不用你自己拼。如果你的评估标准是「不做任何调优,它能不能找到对的东西」,通常是它赢。
访问控制以身份为先
Google 通过你的身份提供方把检索绑定到最终用户:搜索应用识别出是谁在问,并过滤到此人可见的范围。对于你自己导入的数据——Cloud Storage、结构化数据——你需要在文档元数据里提供 acl_info 字段,并把该数据存储标记为受访问控制。这是个干净的模型,同时也是一项硬依赖:你在把自己的 IdP 接进检索路径,这是一次安全评审,不是一次配置改动。
它让你付出什么
三家云服务里流水线控制最少的一个。你换不了切分器,嵌入模型是 Google 的。计费按每千次查询计量,另有一份独立的运行时费用,这很可预测,但也意味着一个每轮发四次搜索的话痨智能体,成本是只发一次的四倍——这是一个要求智能体式检索有所节制的理由,而它与质量毫无关系。
Azure AI Search
它给你什么
严格说它是这组里的异类:它是一台带索引器框架的搜索引擎,而不是一条托管 RAG 流水线。你拿到的控制权比另外三家加起来还多——自定义分析器、技能组、你自己的切分、由你调优的向量与混合配置——相应地要自己扛的也更多。对那些已经知道自己的检索该长什么样的团队,这正是重点。
文档级访问控制,以及那道缺口
权限模型本身确实做得好。权限元数据随内容一起建索引——SharePoint 索引器会直接摄取 ACL——而在查询时,你在 x-ms-query-source-authorization 请求头里传一个用户或用户组令牌。服务先检查你的客户端是否持有 Search Index Data Reader,然后把结果裁剪到该主体可见的范围。
接下来是该改变你评估方式的那部分。Azure AI Foundry Agents SDK 内置的 Azure AI Search 工具,没有提供任何方式去传那个请求头、或任何等价的按请求安全上下文——issue #44454,2025 年 12 月提出,截至撰稿时仍然开着、仍在等服务团队处理。原生 SDK 支持权限裁剪;智能体工具不支持。按文档方式接起来的智能体,是以服务身份在查询索引,而过滤器没有主体可施加。
这不是一条针对 Azure 的教训。这是「买了一套权限模型、却通过一个便利包装去够它」的通用失败模式:控制是在一条代码路径上评估的,产品发布在另一条上。如果你在 Azure 上、而且今天就需要裁剪,那就在你自己的工具实现里直接调用搜索 API,自己把令牌转发过去。代码没多少,而它是「会强制执行的检索层」与「只宣称有的检索层」之间的差别。
Vectara
它给你什么
这里唯一一家不属于某朵云的服务。摄取、用自家 Boomerang 模型做嵌入、混合检索、重排、生成与引用,全都在一个 API 后面,可以按 SaaS、在你的 VPC 里、或完全离网地部署在本地。对那些无法把语料放进超大规模云厂商托管服务的受监管买家来说,这个部署跨度就是这家公司能进候选名单的全部理由。
真正的差异在那套接地机制
Vectara 的 Hughes Hallucination Evaluation Model 会给「生成的摘要是否被其来源所支持」打分,而有意思的数字是延迟而不是准确率:在一块 RTX 3090 上约 0.6 秒,而前沿 LLM 裁判在 4096 令牌上下文上约需 35 秒。那道差距,正是「接地作为离线评测」与「接地作为一次你在每个答案上都负担得起的在线检查」之间的差距,而后者是另一种产品。Hallucination Corrector API 则把它从检测扩展到改写那段无依据的文字。
它让你付出什么
一方连接器最少,所以更多摄取要你自己建。权限是在语料与平台 RBAC 层面建模的,而不是从源系统按文档继承下来的,这意味着多租户的文档级裁剪是你自己要做的设计工作。而它是按企业年度合同售卖的——据报道起步在低六位数——而不是按量计费,于是它的价格把自己挡在了试验之外、挪进了承诺之中。
你究竟被锁进了什么
向量锁定是人人都在点名、却几乎无关紧要的那个:向量是派生数据,只要你留着源语料,一个周末就能把它重新嵌入到任何地方去。重建索引的操作手法已经很成熟——见重建索引与嵌入迁移。
解析器锁定更糟,而且更少被谈起。这四家服务每一家都自行决定 PDF 怎么变成文本、表格怎么线性化、扫描页怎么 OCR、分块边界落在哪里。这些决定框定了你的检索有可能找到什么,它们要按文档类型调上好几周,而这些调优一样都带不走。永远保留你摄取的一切的原始文件,否则一次迁移就变成一次重新采集。取舍在为 RAG 解析文档里,你可能想叠在上面的那层增强在上下文化检索里。
权限锁定才是真正拴住你的那个。它向回伸进你的身份提供方、伸进每个源系统的 ACL 语义、伸进一次已经通过了的安全评审。换掉它意味着这三样都要重做。如果你只认真评估一层,就评估这一层——并且要在你实际会上线的那条集成路径上评估。
什么情况选哪个
| 情形 | 选 | 因为 |
|---|---|---|
| 企业内容在 SharePoint/Drive/Confluence,必须按人给答案 | Bedrock KB 或 Vertex AI Search | 连接器继承 ACL 加上查询时强制,才是昂贵的那部分,而两家都带。 |
| 你已经清楚自己的检索设计,想去调它 | Azure AI Search | 这组里控制最多——但要自己实现搜索调用,好把用户令牌转发过去。 |
| 语料不能出网,或必须离网运行 | Vectara | 唯一一家有真正本地部署路径的。 |
| 接地必须在每个答案上在线检查 | Vectara | 亚秒级的接地打分,改变了你负担得起检查什么。 |
| 公开文档,没有按人的权限 | 大概哪个都不用 | 你付钱买的就是那套权限管道。没有它,pgvector 加一个重排器更便宜,而且是你自己的。 |
| 多云,或者你预期会搬家 | Vectara,或者自己建 | 那三家云服务是有意重度依赖各自的身份与存储平面的。 |
对一个拥有正常企业语料的团队,诚实的默认选择是:挑你的身份提供方已经信任的那朵云所属的托管服务,把省下的时间花在评测上,而不是花在流水线上。失败模式不是选错了——而是照着排序基准做选择,六个月后才发现那条权限路径。
常见问题
托管知识库比用 pgvector 自己建更好吗?
论检索质量,不见得——一套称职的混合索引加重排器很难被打败,而且每个旋钮都归你。托管服务赢在连接器与权限强制上,而那正是要花上几个季度才能做对的部分。如果你的语料是公开的或单租户的,就自己建。
这些服务支持文档级访问控制吗?
四家都以某种方式表达权限,但机制差别很大:连接器继承 ACL、检索前过滤(Bedrock),来自你 IdP 的最终用户身份加上导入数据的 acl_info(Vertex),已建索引的权限元数据加上按查询的用户令牌(Azure),以及平台 RBAC 加你自己建模的语料作用域(Vectara)。在相信其中任何一条之前,先用两个用户和一份哨兵文档把你自己的那套测一遍。
Azure Foundry Agents SDK 的那道缺口究竟是什么?
Agents SDK 里内置的 Azure AI Search 工具,没有提供任何方式去传 x-ms-query-source-authorization 或等价的按请求安全上下文,所以通过原生搜索 SDK 生效的权限裁剪,通过这个智能体工具并不生效。变通办法是自己写一个调用搜索 API 并转发令牌的工具。
如果我要换家,索引能带走多少?
向量:带不走,而且无所谓。解析并切分后的文本:只有你留着才行。原始源文件:全都能带走,只要你留着。权限模型:几乎什么都带不走。留着原始源文件。
上下文化检索能叠在这些之上吗?
只在你掌控摄取的地方可以。Azure 的技能组与 Bedrock 的自定义连接器给了你放置那段引子的地方;Vertex 的托管数据存储基本上没有。如果分块级的上下文丢失是你的主要失败模式,这一点会收窄候选名单。
延伸阅读
本站:
- 带权限的检索——为什么过滤答案不算一道控制。
- 上下文化检索——摄取侧的质量杠杆,以及它让你承诺了什么。
- 如何选择向量数据库——同一个决定的自建那一侧。
- 混合检索与重排——任何托管服务都得先打赢的质量基线。
- 自建还是采购——如何给你不打算自己建的那套管道定价。
来源:
- Amazon Bedrock 托管知识库文档
- Azure AI Search 中的文档级访问控制
- azure-sdk-for-python issue #44454——Agents SDK 的权限裁剪缺口。
- Vectara 发布说明