

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 架构概述
<a name="architecture-overview"></a>

本节提供使用此解决方案部署的组件的参考实现架构图。

## 架构图
<a name="architecture-diagram"></a>

为了支持多种用例和业务需求，此解决方案提供了六个 AWS CloudFormation 模板：

1.  **部署仪表板**-部署仪表板是一个 Web 界面，可用作管理员用户查看、管理和创建用例的管理控制台。该仪表板使客户能够利用此仪表板快速试验、迭代和生产各种 AI/ML 工作负载。 LLMs

1.  **文本用例**-文本用例使用户能够使用生成式 AI 体验自然语言界面。此用例可以集成到新的或现有的应用程序中，并且可以通过部署仪表板进行部署，也可以通过提供的 URL 独立部署。

1.  **Bedrock Agent 用例** ——基岩代理用例允许使用现有的 Bedrock Agent 来完成任务或自动执行重复的工作流程。

1.  **MCP 服务器**-MCP 服务器用例支持部署和管理模型上下文协议服务器，这些服务器为 AI 应用程序提供标准化工具和资源访问权限。支持用于封装现有 Lambda 函数和外部 MCP 服务器的网关方法 APIs，以及用于部署自定义容器化 MCP 服务器的运行时方法。

1.  A@@ **gent Buil** der-Agent Builder 支持在 Amazon Bedrock 上创建和部署可用于生产的 AI 代理，并 AgentCore 具有全面的配置控制、MCP 服务器集成和内存管理功能。

1.  **W** orkflow Builder-Workflow Builder 允许创建主管代理，这些代理使用代理作为工具的委托模式为复杂的多代理工作流编排多个代理生成器代理。

### 部署控制面板
<a name="deployment-dashboard"></a>

 **描述部署控制面板架构（在禁用 VPC 选项的情况下部署时）** 

![\[部署仪表板图\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/deployment-dashboard-diagram.png)


 **描述部署控制面板架构（在启用 VPC 选项的情况下进行部署时）** 

![\[部署仪表板 vpc 拱形图\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/deployment-dashboard-vpc-arch-diagram.png)


**注意**  
AWS CloudFormation 资源是基于 AWS Cloud Development Kit (AWS CDK) 结构创建的。

使用 AWS CloudFormation 模板部署的解决方案组件的高级流程如下：

1. 管理员用户登录部署控制面板用户界面 (UI)。

1.  [亚马逊 CloudFront](https://aws.amazon.com/cloudfront/)提供网络用户界面，该用户界面托管在[亚马逊简单存储服务 (Amazon S3)](https://aws.amazon.com/s3/) 存储桶中。

1.  [AWS WAF](https://aws.amazon.com/waf/) 可以保护他们 APIs 免受攻击。此解决方案配置了一组名为 Web 访问控制列表 (Web ACL) 的规则，这些规则根据可配置的、用户定义的 Web 安全规则和条件允许、阻止或计数 Web 请求。

1. 网页用户界面利用一组使用 [Amazon API Gat APIs ew](https://aws.amazon.com/api-gateway/) ay 公开的 REST。

1.  [Amazon Cognito](https://aws.amazon.com/cognito/) 对用户进行身份验证并支持 CloudFront 网页用户界面和 API Gateway。

1.  [AWS Lambda](https://aws.amazon.com/lambda/) 为 REST 终端节点提供了业务逻辑。[这个*支持* Lambda 函数管理和创建了使用 AWS 执行用例部署所需的资源。 CloudFormation](https://aws.amazon.com/cloudformation/)

1.  [亚马逊 Dy](https://aws.amazon.com/dynamodb) namoDB 存储部署列表。

1. 管理员用户创建新用例时，*支持*的 Lambda 函数会为请求的用例启动 CloudFormation 堆栈创建事件。

1. 管理员用户在部署向导中提供的所有 LLM 配置选项都保存在 DynamoDB 中。部署使用此 DynamoDB 表在运行时配置 LLM。

1. 该解决方案使用 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 从各种服务中收集运营指标，以生成自定义控制面板，使您可以监控解决方案的性能和运行状况。

**注意**  
如果您选择在 Amazon VPC 中部署此解决方案，则数据将在您的私有网络内路由。
尽管部署控制面板可以在大多数 AWS 区域启动，但根据服务可用性，部署的用例会受到某些限制。有关更多详细信息，请参阅[支持的 AWS 区域](plan-your-deployment.md#supported-aws-regions)。

### 文本用例
<a name="chat-use-case"></a>

 **描绘文本用例架构（在禁用 VPC 选项的情况下部署时）** 

![\[文本用例图\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/text-use-case-diagram.png)


 **描绘文本用例架构（在启用 VPC 选项的情况下部署时）** 

![\[文本用例 vpc 拱形图\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/text-use-case-vpc-arch-diagram.png)


使用 AWS CloudFormation 模板部署的解决方案组件的高级流程如下：

1. 管理员用户使用部署仪表板部署用例。[企业用户](concepts-and-definitions.md)登录到用例用户界面。

1. CloudFront 提供托管在 S3 存储桶中的 Web 用户界面。

1. 网页用户界面利用了使用 API Gateway 构建的 WebSocket 集成。API Gateway 由自定义 [Lambda 授权](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)方函数提供支持，该函数会根据[身份验证用户所属的 Amazon Cognito 群组返回相应的 AWS 身份和访问管理](https://aws.amazon.com/iam/) (IAM) 策略。该策略存储在 DynamoDB 中。

1. Amazon Cognito 对用户进行身份验证并支持 CloudFront 网页用户界面和 API Gateway。

1. *来自企业用户的传入请求将从 API Gateway 传递到[亚马逊 SQS 队列](https://aws.amazon.com/sqs/)，然后传递到 Orchestrator。LangChain **LangChain Orchestrator* 是 Lambda 函数和层的集合，它们为满足来自业务用户的请求提供了业务逻辑。该队列支持 API Gateway 到 Lambda 集成的异步操作。队列将连接信息传递给 Lambda 函数，然后这些函数会将结果直接发布回 API Gateway websocket 连接，以支持长时间运行的推理调用。

1. O *LangChain rchestrator* 使用 Amazon DynamoDB 来获取配置的 LLM 选项和必要的会话信息（例如聊天记录）。

1. 如果部署启用了知识库，则 *LangChain Orchestrator* 会利用 Amazon Kendra 或 [Amazon Bed](https://aws.amazon.com/kendra/) [rock 知识](https://aws.amazon.com/bedrock/knowledge-bases/)库来运行搜索查询来检索文档摘录。

1. *LangChain Orchestrator 使用知识库中的聊天记录、查询和上下文，创建最终提示并将请求发送到托*[管在 Amazon Bedro [ck 或 Ama](https://aws.amazon.com/bedrock/) zon AI 上的 LLM。 SageMaker ](https://aws.amazon.com/sagemaker/)

1. 当响应从 LLM 返回时，*LangChain Orchestrator 会通过 API Gat* eway 将响应流回 WebSocket 以供客户端应用程序使用。

1. 该解决方案使用 Amazon CloudWatch 从各种服务中收集操作指标，以生成自定义控制面板，使您可以监控部署的性能和运行状况。

1. 如果启用了反馈收集，则可以使用利用 Amazon API Gateway 的 REST API 终端节点来收集用户反馈。

1. 支持 lambda 的反馈使用其他特定于用例的元数据（例如使用的模型）来补充提交的反馈，并将数据存储在 Amazon S3 中，供用户日后分析和报告。 DevOps 

**注意**  
如果您选择在 Amazon VPC 中部署此解决方案，则数据将路由到您的私有网络。

### 基岩代理用例
<a name="agent-use-case"></a>

 **描述了 Bedrock Agent 用例架构（在禁用 VPC 选项的情况下部署时）** 

![\[代理用例图\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/agent-use-case-diagram.png)


 **描述了 Bedrock Agent 用例架构（在启用 VPC 选项的情况下部署时）** 

![\[代理用例 vpc 拱形图\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/agent-use-case-vpc-arch-diagram.png)


使用 AWS CloudFormation 模板部署的解决方案组件的高级流程如下：

1. 管理员用户使用部署仪表板部署用例。[企业用户](concepts-and-definitions.md)登录用例用户界面。

1. CloudFront 提供托管在 S3 存储桶中的 Web 用户界面。

1. 网页用户界面利用了使用 API Gateway 构建的 WebSocket 集成。API Gateway 由自定义 Lambda 授权方函数提供支持，该函数会根据[身份验证用户所属的 Amazon Cognito 群组返回相应的 AWS 身份和访问管理](https://aws.amazon.com/iam/) (IAM) 策略。该策略存储在 DynamoDB 中。

1. Amazon Cognito 对用户进行身份验证并支持 CloudFront 网页用户界面和 API Gateway。

1. 来自业务用户的传入请求将从 API Gateway 传递到[亚马逊 SQS 队列](https://aws.amazon.com/sqs/)，然后传递到 AWS Lambda 函数。该队列支持 API Gateway 到 Lambda 集成的异步操作。队列将连接信息传递给 Lambda 函数，然后该函数会将结果直接发布回 API Gateway websocket 连接，以支持长时间运行的推理调用。

1. AWS Lambda 函数使用亚马逊 DynamoDB 根据需要获取用例配置

1. AWS Lambda 函数使用用户输入和任何相关的用例配置，构建请求负载并将其发送到已配置的 A [mazon Bedrock Agent](https://aws.amazon.com/bedrock/agents/)，以实现用户意图。

1. 当响应从 Amazon Bedrock Agent 返回时，Lambda 函数会通过 API WebSocket Gateway 将响应流回以供客户端应用程序使用。

1. 该解决方案使用 Amazon CloudWatch 从各种服务中收集操作指标，以生成自定义控制面板，使您可以监控部署的性能和运行状况。

1. 如果启用了反馈收集，则可以使用利用 Amazon API Gateway 的 REST API 终端节点来收集用户反馈。

1. 支持 lambda 的反馈使用其他特定于用例的元数据来补充已提交的反馈，并将数据存储在 Amazon S3 中，供用户日后分析和报告。 DevOps 

**注意**  
如果您选择在 Amazon VPC 中部署此解决方案，则数据将在您的私有网络内路由。

### MCP 服务器用例
<a name="mcp-server"></a>

 **描绘 MCP 服务器用例架构** 

![\[mcp 服务器用例图\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/mcp-server-use-case-diagram.png)


MCP 服务器用例允许在 Amazon Bedro AgentCore ck 上部署和管理模型上下文协议服务器。MCP 服务器为 AI 应用程序提供了一个标准化接口，用于访问工具、资源和企业数据源。

该解决方案支持两种部署方法：
+  **网关方法**：将现有 Lambda 函数、 APIs REST 或外部 MCP 服务器封装为 MCP 工具，自动处理协议转换
+  **运行时方法**：从 Amazon ECR 映像部署自定义容器化 MCP 服务器

MCP 服务器部署的高级流程如下：

1. 管理员用户使用部署仪表板部署 MCP 服务器用例，选择网关或运行时部署方法。

1. 此操作已通过 Amazon Cognito 进行身份验证。

1. 对于网关部署，该解决方案创建了一个 Amazon Bedrock AgentCore Gateway，用于将现有 Lambda 函数或外部 MCP 服务器转换为 APIs符合 MCP 标准的工具。对于运行时部署，该解决方案使用提供的 ECR 映像在 Amazon Bedrock R AgentCore untime 上部署容器化 MCP 服务器。

1. 网关部署从其在 Amazon S3 中的上传位置检索必要的API/Lambda/Smithy架构，或者直接连接到 MCP 服务器 URL 终端节点。

1. 运行时部署从 Amazon 弹性容器注册表 (ECR) 检索用户提供的容器化 MCP 服务器

1. MCP 服务器装有 Amazon Bedro AgentCore ck Identity 客户端 OAuth 

1. MCP 服务器在 /mcp 端点提供相关工具供代理发现。

1. Amazon 从 MCP 服务器部署中 CloudWatch 收集操作指标和日志，用于监控和故障排除。

### 代理生成器用例
<a name="agent-builder"></a>

 **描绘代理生成器架构** 

![\[代理生成器部署图\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/agent-builder-deployment-diagram.png)


使用 AWS CloudFormation 模板部署的 Agent Builder 组件的高级流程如下：

1. 管理员用户使用部署仪表板部署用例。[企业用户](concepts-and-definitions.md)登录用例用户界面。

1. CloudFront 提供托管在 S3 存储桶中的 Web 用户界面。

1. 网页用户界面利用了使用 API Gateway 构建的 WebSocket 集成。API Gateway 由自定义 Lambda 授权方函数提供支持，该函数会根据[身份验证用户所属的 Amazon Cognito 群组返回相应的 AWS 身份和访问管理](https://aws.amazon.com/iam/) (IAM) 策略。该策略存储在 DynamoDB 中。

1. Amazon Cognito 对用户进行身份验证并支持 CloudFront 网页用户界面和 API Gateway。

1. 来自业务用户的传入请求将从 API Gateway 传递到[亚马逊 SQS 队列](https://aws.amazon.com/sqs/)，然后传递到 AWS Lambda 函数。该队列支持 API Gateway 到 Lambda 集成的异步操作。队列将连接信息传递给 Lambda 函数，然后该函数会将结果直接发布回 API Gateway websocket 连接，以支持长时间运行的推理调用。

1. AWS Lambda 函数从 DynamoDB 检索代理配置。

1. AWS Lambda 函数使用用户输入和任何相关的用例配置，生成请求负载并将其发送给在 A [mazon Bedro AgentCore ](https://aws.amazon.com/bedrock/agentcore/) ck Runtime 上运行的代理。

1. 代理连接到关联的 MCP 服务器，并将工具注册到 strands 代理实例。然后，代理会根据工具描述和任务要求自主选择和执行操作。

1. 当响应从 Amazon Bedrock AgentCore 运行时返回时，Lambda 函数会通过 API WebSocket Gateway 将响应流回以供客户端应用程序使用。

**注意**  
代理处理仅限于 Lambda 执行超时（15 分钟）。

### 工作流程生成器用例
<a name="workflow-builder"></a>

 **描绘工作流生成器架构** 

![\[工作流程部署图\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/generative-ai-application-builder-on-aws/images/workflow-deployment-diagram.png)


使用 AWS CloudFormation 模板部署的 Workflow Builder 组件的高级流程如下：

1. 管理员用户使用部署仪表板部署工作流，选择要包含为专业代理的 Agent Builder 代理。

1. CloudFront 提供托管在 S3 存储桶中的 Web 用户界面。

1. 网页用户界面利用了使用 API Gateway 构建的 WebSocket 集成。API Gateway 由自定义 Lambda 授权方函数提供支持，该函数会根据[身份验证用户所属的 Amazon Cognito 群组返回相应的 AWS 身份和访问管理](https://aws.amazon.com/iam/) (IAM) 策略。该策略存储在 DynamoDB 中。

1. Amazon Cognito 对用户进行身份验证并支持 CloudFront 网页用户界面和 API Gateway。

1. 来自业务用户的传入请求将从 API Gateway 传递到[亚马逊 SQS 队列](https://aws.amazon.com/sqs/)，然后传递到 AWS Lambda 函数。该队列支持 API Gateway 到 Lambda 集成的异步操作。

1. AWS Lambda 函数从 DynamoDB 检索工作流程配置，包括专门的代理生成器代理列表。

1. Lambda 使用用户输入和工作流程配置，向托管主管代理的 A [mazon Bedrock AgentCore 运行时](https://aws.amazon.com/bedrock/agentcore/)发送请求。

1. 主管代理在 AgentCore 运行时环境中创建所有专门的 Agent Builder 代理的本地实例。这些专业代理使用 “代理即工具” 模式注册为工具。然后，主管根据代理描述和任务要求自主选择工作并将其委派给专业代理。

1. 主管代理汇总来自专业代理的结果并制定最终响应，然后将其返回到 Lambda，然后通过 API Gateway Websocket 流式传输回客户端应用程序。

**注意**  
工作流程处理仅限于 Lambda 执行超时（15 分钟）。

# AWS Well-Architected 的设计注意事项
<a name="aws-well-architected-design-considerations"></a>

该解决方案是根据 [AWS Well-Architected Fram](https://aws.amazon.com/architecture/well-architected/) ework 中的最佳实践设计的，可帮助客户在云中设计和运行可靠、安全、高效且经济实惠的工作负载。

此部分介绍在构建该解决方案时如何应用 Well-Architected Framework 的设计原则和最佳实践。

## 卓越运营
<a name="operational-excellence"></a>

本节介绍我们是如何使用[卓越运营支柱](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/welcome.html)的原则和最佳实践来设计此解决方案的。
+ 我们 infrastructure-as-code使用 Amazon 构建了解决方案 CloudFormation。
+ Lambda 函数将自定义指标推送到 CloudWatch 自定义 CloudWatch 控制面板，以监控解决方案的运行状况。
+ 解决方案组件高度模块化，可灵活选择要部署的组件。

## 安全性
<a name="security"></a>

本节介绍我们是如何使用[安全性支柱](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html)的原则和最佳实践来设计此解决方案的。
+ 部署控制面板和所有用例均已通过 Amazon Cognito 进行身份验证和授权。
+ 所有服务间通信都使用 AWS IAM 角色。
+ 所有解决方案角色都遵循最低权限访问权限；也就是说，仅授予所需的最低权限。
+ 包括 S3 存储桶、DynamoDB 和 Amazon Kendra 在内的所有数据存储都处于静态加密状态。

## 可靠性
<a name="reliability"></a>

本节介绍我们是如何使用[可靠性支柱](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html)的原则和最佳实践来设计此解决方案的。
+ 基于无服务器范式的架构。
+ 我们构建了按需扩展、横向扩展和从底层基础架构故障中自动恢复的架构。
+ 该架构包括缓冲和限制请求，以免使底层端点不堪重负。

## 性能效率
<a name="performance-efficiency"></a>

本节介绍我们是如何使用[性能效率支柱](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html)的原则和最佳实践来设计此解决方案的。
+ 该解决方案使用 DynamoDB，这是一种完全托管的无服务器 NoSQL 数据库，可按需扩展。
+ 该解决方案使用 Amazon S3 进行对象存储和（通过 CloudFront）托管网站，以提供低成本、可扩展和 11 9 的持久性。

## 成本优化
<a name="cost-optimization"></a>

本节介绍我们是如何使用[成本优化支柱](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html)的原则和最佳实践来设计此解决方案的。
+ 在可能的情况下，我们将解决方案构建为使用无服务器架构；因此，您只需为实际用量付费。

## 可持续性
<a name="sustainability"></a>

本节介绍我们是如何使用[可持续性支柱](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sustainability-pillar.html)的原则和最佳实践来设计此解决方案的。
+ 该解决方案的模块化组件化架构使您可以灵活地自定义要为单个用例配置的资源。
+ 该架构使用无服务器计算和存储，从而优化了资源利用率。
+ 作为基于云的解决方案，该解决方案受益于共享资源、网络、电源冷却和物理设施。