传统的检索增强生成(RAG)通常采用单次检索加单次生成的模式:将问题嵌入,从一个索引中获取最近邻的文本块,交给模型生成答案。这种设计对于许多简单问题是有效的,但当答案需要跨多个语料库,或者需要根据问题选择不同数据源,又或者需要在看到初步结果后再次检索时,单次检索就会失效——模型可能返回流畅但不完整的答案,甚至无法找到正确的信息。
企业级代理式检索通过引入一个推理代理来解决这些问题。代理决定是否需要检索、应该查询哪个知识库、以及在生成答案前是否需要再次检索。亚马逊云科技近期推出的托管知识库(Managed Knowledge Base)将这一能力变为服务的一等公民:AgenticRetrieveStream API 能够执行多轮规划、工具驱动的检索,并返回带有引用的可靠答案。与传统的客户管理(DIY)知识库相比,托管知识库自动处理数据摄取、存储、索引和检索,包括嵌入和重排序,无需用户预置或管理向量数据库。此外,代理式检索和 AgentCore Gateway 集成仅在托管知识库上可用,使其成为构建企业级代理式检索的理想基础。
然而,代理式系统也带来了更复杂的运维挑战。由于代理对每个问题的处理路径可能不同,默认情况下很难观察其行为或评估答案质量。因此,可观测性和评估不再是可选项,而是确保系统可靠运行的必要组成部分。本文介绍的解决方案通过 AWS CDK 部署,包含两个 CloudWatch 仪表板,覆盖七层遥测数据,并提供按需和持续两种评估方式,所有基础设施即代码定义,一键部署。
架构上,整个系统由四个 CDK 堆栈组成。知识库堆栈创建两个托管知识库(分别对应金融和天气语料库),并从 S3 自动摄取数据。网关堆栈创建 AgentCore Gateway,将每个知识库暴露为 MCP 工具。代理堆栈在 AgentCore Runtime 上部署推理代理,该代理根据问题路由到相应的知识库工具。最后,可观测性堆栈配置仪表板和评估机制。堆栈间的依赖关系通过 CDK 的构造引用自动推导,无需手动管理部署顺序。
当用户提出问题时,代理首先在运行时中接收请求,其推理模型规划并选择合适知识库工具。工具调用通过 AgentCore Gateway 使用 MCP 协议代理,并由 IAM 角色授权和 SigV4 签名,最终调用托管知识库的 AgenticRetrieveStream API。该 API 在知识库内部进行问题分解、迭代检索和答案合成,返回带有引用的答案。代理检查返回的上下文是否充分,若不足则循环再次检索,直到生成最终答案。整个过程产生的跟踪数据、令牌计数和指标发送到 CloudWatch 和 X-Ray,支撑七层可观测性和评估评分。
与 2024 年发布的单次检索方案相比,本方案消除了对 OpenSearch Serverless 集合和 OCU 容量的需求,检索变为代理式,且近一半的资源用于监控代理行为。对于需要复用现有向量存储或满足特定数据驻留、调优及合规要求的情况,客户管理知识库仍是合适选择;但对于企业级代理式检索,托管知识库是实现该能力的关键。通过 CDK 部署,开发者可以专注于业务逻辑,而将基础设施的复杂性和依赖管理交给框架处理。