构建可扩展的人工智能代理:AWS 上的无服务器架构
2026 年 2 月 18 日
使用无服务器架构构建可扩展的人工智能代理
在生成式人工智能时代构建软件存在一个悖论。一方面,前沿知识模型已经变得非常强大,以至于创建人工智能应用程序的初始版本可能只需要调用一个简单的聊天 API(并让编码代理编写大部分代码!)。另一方面,生产级人工智能应用程序所需的准确度、性能和成本优化通常需要复杂的架构。
这种复杂性部分源于生成式人工智能算法是概率性的而非确定性的。为了减少模型输出的方差并提高可靠性,开发人员会使用一些技术,例如提供“良好”响应的示例或包含模型在生成输出时可以考虑的额外信息(“上下文”)。因此,人工智能应用程序的代码很快就会变得比简单地调用模型的聊天 API 复杂得多。开发人员需要添加至少一个数据服务层,其中包含对专用数据库的调用,以构建将呈现给模型的上下文。
但复杂性远不止于此。随着开发者为人工智能应用添加更多功能,他们往往会发现这需要不同的上下文和不同的提示。因此,开发者(倾向于抽象化)会将驱动这些不同功能的代码组织成独立的模块。在人工智能领域,这种设计模式被称为“代理”。
代理组装:克服生成式人工智能的复杂性
代理是一个代码模块,它使用生成式人工智能模型自主执行特定任务。代理可以单独运行,也可以与其他代理协同工作。它们还可以调用“工具”,这些工具通常是包含在代理可用上下文中的 API 或函数。这种基于代理的软件设计方法最终导致上下文工程(即获取代理完成任务所需相关数据的过程)变得更加复杂。此外,代理本身通常需要在主应用程序之外异步运行(对于需要访问敏感数据的代理而言尤其如此)。这可能需要管理完全独立的运行时环境和凭证。
典型的代理式人工智能应用程序可以分解为以下组件:
- 生成式人工智能模型,通常包含大语言模型(LLM)以及提供其访问权限的 API。
- 软件框架能对较低层级的模型 API 方便地进行抽象,而软件开发工具包则用于构建代理并执行上下文工程所需的许多数据访问操作。
- 数据服务组件,用于提供向代理提供的上下文中的信息。它们可以由各种不同的数据存储(关系数据库管理系统、NoSQL 数据库等)组成,但几乎总是包括某种形式的语义搜索服务。对于代理应用程序,语义搜索通常会卸载到向量存储中,向量存储用于存储文本数据的数值表示形式,称为嵌入。
- 代理的运行时环境。对于简单的代理应用程序,代理可以与应用程序代码一起在进程内运行。但在大多数情况下,代理需要在与主应用程序隔离的独立进程空间中运行。
与所有需要多个组件协同工作的软件架构一样,为了确保这些组件具有弹性、冗余性和高性能,需要进行大量未加区分的繁重工作。幸运的是,代理式人工智能应用程序与传统应用程序一样,都能受益于云原生架构。无服务器架构对代理式人工智能应用尤其具有吸引力,而 AWS 提供多种无服务器解决方案,使开发人员能够快速、轻松且经济高效地构建代理式人工智能应用程序。
推理的实际应用
我们先从最广为人知的组件 — 生成式人工智能模型本身开始。模型服务被称为“推理”,而对于无服务器推理,Amazon Bedrock 提供了一项托管服务,用于运行和访问生成式人工智能基础模型。这些模型涵盖从 Anthropic 的 Claude 等前沿知识大语言模型,到 Amazon Nova Sonic 等基于语音的模型,再到 OpenAI 和 Mistral 的开放权重模型,所有这些都可以通过统一的 API 进行访问。
接下来是推理。推理通常很复杂,需要 GPU 等专用硬件,以及对底层网络框架的深入理解,这些框架允许 GPU 集群彼此通信。传统上,这造成了操作上的挑战,并阻碍了其普及,尤其对于初创企业而言。Amazon Bedrock 有助于打破这些障碍,因为用户只需学习如何使用该解决方案的 API 即可。
嵌入智能:知识库和向量存储
除了推理和模型服务外,Amazon Bedrock 还全面支持代理人工智能堆栈中最常见的数据服务组件。 例如,Amazon Bedrock 知识库可用于语义搜索,包括搜索语义上与查询中的文本相似的一系列文档。当人工智能代理需要在上下文中获取额外信息时,这一点至关重要。
例如,客服代理可能需要查阅与客户咨询内容相匹配的常见问题(FAQ)文档,例如:“如何更改与我的账户关联的地址?” 借助 Amazon Bedrock 知识库,可以为 FAQ 文档建立索引以进行语义搜索;具体做法是将文档存储在 Amazon S3 存储桶中,并将该存储桶配置为 Bedrock 知识库的数据来源。该服务会自动处理文档的“分块”(将文档拆分为较小的部分)、对每个数据块进行“向量化”(生成文本的数值嵌入),以及存储这些数据块与嵌入并建立关联,从而确保在进行语义查询时能够返回相关的数据块。
生成这些嵌入后,需要将其存储在专门用于嵌入的数据库(即向量存储)中。Amazon Bedrock 知识库支持多种向量存储选项,包括 Amazon S3 Vectors,这是一种内置于 Amazon S3 中的无服务器向量数据库。这种数据服务层被称为检索增强生成(RAG),利用 Amazon Bedrock 知识库、S3 和 S3 Vectors 可以轻松实施。这使得开发人员能够专注于人工智能代理的功能开发,而无需管理复杂的数据服务基础设施。
构建、运行、扩展
完成嵌入数据的存储和向量存储访问配置后,即可基于这些数据部署并运行人工智能代理。 Amazon Bedrock AgentCore 为开发者提供无服务器运行环境。可以使用 LangChain、Strands 等框架,甚至自研框架来构建代理。然后,开发者可以将代理打包成 zip 压缩包并上传到 S3。或者,他们可以构建容器映像并将其推送到 Amazon Elastic Container Registry(ECR)。代码上传到 S3 或 ECR 后,开发者可以配置 AgentCore 在云端运行代理,而无需管理服务器。AgentCore 还可以处理包括身份验证在内的运行流程,支持内置的 AWS Identity and Access Management 角色,或通过企业身份提供商使用 JSON Web 令牌登录。
Amazon Bedrock 和 AgentCore 提供更多无服务器功能,但本文详细介绍的这三项是开发完全支持 RAG 的代理式人工智能应用程序的理想起点。首先,Amazon Bedrock 提供丰富的模型选择,可用于推理;其次,Amazon Bedrock 知识库和 S3 向量可用于文档索引和语义搜索;最后,Amazon AgentCore 可安全高效地运行代理。
开发代理式人工智能应用程序历来复杂且充满挑战,对于资源有限的初创企业更是如此。无服务器架构无需工程师构建和管理底层基础设施,降低了这种复杂性。无论您是经验丰富的代理式人工智能开发者还是刚刚起步的新手,Amazon Bedrock 都提供了一套全面的工具和服务,可帮助您自信地构建和扩展应用程序。
准备好在 AWS 上构建代理式人工智能了吗? AWS Activate 提供 AWS 服务抵扣金,可用于抵消本文所述解决方案以及其他各种服务的费用。自 2013 年成立以来,AWS Activate 已向全球初创企业提供了超过 80 亿美元的抵扣金。创始人还能受益于各种项目和资源、技术支持、商业导师指导,以及与全球初创企业社区更紧密的联系。与另外数百万人一起,探索如何将您的想法从概念转化为云就绪型应用程序。
找到今天要查找的内容了吗?
请提供您的意见,以便我们改进网页内容的质量