工程 / 工程
基于 Amazon Bedrock 托管知识库构建多租户智能体文档问答应用
多租户智能体文档问答是大型企业客户的高频需求:用户上传合同、报告或产品手册后,希望立即通过对话界面提问并获得有据可查的回答。然而,支撑这一体验的多租户检索系统并不简单——每位租户的文档必须严格隔离,且隔离边界必须基于经过验证的身份,而非客户端自行传入的参数。智能体检索进一步加大了复杂度:Agent 会将问题拆解为多个子查询并执行多跳检索,每一跳都必须携带租户过滤条件,否则隔离即告失效。Amazon Bedrock Managed Knowledge Base 通过托管方式接管了摄取、存储、向量嵌入与排序等底层基础设施,并内置支持迭代规划与多跳检索的智能体检索能力,同时在每一跳都强制执行访问权限校验。本文系统介绍了基于该服务构建多租户文档问答应用的完整架构,涵盖文档摄取流程、对话检索流程、异步索引生命周期及用户级数据隔离的最佳实践。
多租户文档问答应用的核心挑战在于:如何在用户上传文档后立即提供可靠的问答能力,同时确保不同用户的数据绝对隔离。传统做法需要团队自行搭建向量数据库、全文检索引擎、文档解析与嵌入流水线,以及同步索引机制,工程量庞大且安全边界难以维护。Amazon Bedrock Managed Knowledge Base 将这些底层组件全部托管化,开发团队只需专注于产品层面的上传体验、对话界面、身份认证和业务逻辑,大幅降低了交付门槛。
该解决方案的整体架构由多个 AWS 服务协同构成。Amazon Cognito 负责用户认证,每次请求均携带 JWT 令牌并由 Amazon API Gateway 验证。应用服务端从已验证的 JWT 中提取用户身份(Cognito sub),而非信任客户端传入的任何参数。文档上传后,应用将文档内容或其 S3 引用连同用户身份一并写入 Amazon SQS 消息队列,立即向浏览器返回响应,避免前端阻塞等待。6 MB 以下的文件可直接内联在 API 请求中传输,更大的文件则先上传至 Amazon S3,SQS 消息中携带 S3 URI 供后续读取。
Worker Lambda 函数从队列中读取消息后,将文档以 user_id 元数据属性打标,该属性值来自经过认证的上传处理器写入消息的 Cognito sub,确保标签不可伪造。随后 Worker 调用 IngestKnowledgeBaseDocuments API,Amazon Bedrock 异步完成文档的分块、嵌入与索引,并将每份文档的处理状态记录至 Amazon DynamoDB。前端通过轮询状态接口实时获取文档状态,用户可在界面上看到文档从「已接收」到「处理中」再到「就绪」的完整流转,无需手动刷新页面。
在对话检索环节,用户提问后,应用调用 AgenticRetrieveStream API,并在请求中附加基于服务端验证 JWT 构建的 user_id 等值过滤条件。这意味着过滤参数完全由服务端生成,用户无法通过篡改请求体访问他人文档。知识库的智能体检索引擎会根据问题复杂度自动决策:简单查询执行单次检索,复杂或多部分问题则拆解为多个子查询并执行多跳检索,每一跳均严格遵守 user_id 过滤条件,隔离边界在整个检索链路中始终有效。
智能体检索完成后,基础模型基于检索到的段落生成带引用的回答,并以流式方式返回给用户。整个生成过程有据可查,用户可追溯每条回答的来源文档片段。从架构视角看,知识库拥有并管理检索与生成的核心组件——规划步骤、向量索引、排序器和生成模型,而应用层只需维护与自身产品相关的部分,职责边界清晰,有利于长期运维与迭代。AWS 同步提供了配套代码仓库,开发者可直接在自己的账户中部署该解决方案。
在规模化运营层面,SQS 的引入使上传端点与摄取流程解耦,能够吸收上传流量突发,并将反复失败的消息路由至死信队列,保障上传接口的响应性不受摄取背压影响。DynamoDB 作为文档状态的单一数据源,支撑了前端的实时状态轮询。整体方案在多模态内容支持方面同样完备,Amazon Bedrock 托管知识库可解析文本、图像以及 CSV、Excel 等结构化文件,满足企业场景下多样化的文档类型需求。
要点
- 租户隔离必须基于服务端验证的身份(JWT 中的 Cognito sub),而非客户端传入的参数,且过滤条件需在智能体多跳检索的每一跳中持续生效。
- Amazon Bedrock Managed Knowledge Base 通过自定义连接器实现直接摄取,文档上传后数秒内即可检索,同时托管了向量索引、嵌入、排序等全部底层基础设施。
- SQS 解耦上传与摄取流程,DynamoDB 追踪文档索引状态,二者共同保障了系统在高并发场景下的响应性与可观测性。
- 智能体检索引擎可根据问题复杂度自动规划单次或多跳检索策略,生成结果附带引用,答案可溯源。
- 开发团队只需负责上传体验、对话界面、认证和业务逻辑,检索与生成的核心能力完全由知识库服务托管,显著降低了工程复杂度。
原始标题:Build multi-tenant agentic chat applications on enterprise data with Amazon Bedrock Managed Knowledge Base
本文由 DataHub 基于公开来源整理,用于信息发现与摘要阅读;具体事实、数据和后续更新以原始来源为准。