使用Strands Agents、NVIDIA NIM和Amazon Bedrock AgentCore构建高性能生成式AI系统
了解如何构建一个多智能体活动审核系统,该系统利用NVIDIA NIM进行GPU加速推理、Amazon Bedrock AgentCore提供托管运行时、Strands Agents实现无服务器编排,支持并行推理、上下文持久化和可观测性。
文章情报
要点
- 结合NVIDIA NIM、Amazon Bedrock AgentCore和Strands Agents,实现高性能多智能体AI系统。
- 支持并行推理、上下文持久化和可追踪的执行路径。
- 通过AWS SAM模板部署,具备可观测性和内存管理功能。
- 该模式适用于数字助手、审核自动化和检索增强生成管道。
为什么重要
这条新闻值得关注,因为结合NVIDIA NIM、Amazon Bedrock AgentCore和Strands Agents,实现高性能多智能体AI系统。
技术影响
可能影响模型选型、推理成本、产品能力和评测基准。
构建高性能生成式AI智能体需要能提供快速推理、协调多个智能体并在生产工作负载下可靠运行的架构。如果您正在构建用于自动化审核、驱动数字助手和支持复杂决策工作流的生成式AI智能体,这些智能体必须表现良好。它们需要减少人工工作、近乎实时地响应,并扩展到成千上万次交互而无需额外的基础设施管理。在本文中,您将学习如何在AWS上通过结合GPU加速推理、无服务器编排、共享内存和内置可观测性来构建这些高性能智能体。这些能力对于从实验原型过渡到交付一致业务价值的系统至关重要。
随着生产环境中智能体工作负载的增长,并发请求下的推理延迟会显著增加,导致响应变慢和用户体验下降。无状态执行环境通常会导致智能体在交互之间丢失对话或任务上下文,造成重复工作或不一致的输出。对智能体执行的有限可见性使得诊断故障、理解推理路径或控制运营成本变得困难。这些挑战在多智能体系统中更加突出,因为多个智能体必须并行运行、共享上下文并聚合结果。
您将构建一个多智能体活动审核系统,该系统演示并行推理、上下文持久化和可追踪的执行路径。该架构结合了NVIDIA NIM用于GPU加速推理,Amazon Bedrock AgentCore提供托管运行时、共享内存和内置可观测性,以及Strands Agents提供无服务器多智能体编排。这种方法支持生产环境中的性能、可扩展性和运营洞察。虽然示例侧重于营销内容审核,但同一模式适用于数字助手、审核自动化和检索增强生成管道。
为了使这些概念具体化,以下各节将介绍一个参考架构和实现,展示这些组件如何在实际中协同工作。
**解决方案概览**
您将构建一个由三个专门智能体组成的系统,这些智能体并行运行。角色审核智能体从多个受众角度评估活动内容并产生共鸣评分。验证智能体对照法律和品牌指南检查内容。最终智能体聚合输出并生成一组统一的建议。您通过基于React的前端提交文档,该前端异步轮询结果并在可用时显示智能体反馈。
我们的解决方案使用通过build.nvidia.com提供的托管NVIDIA NIM API,以完全托管服务的形式提供高性能、GPU加速推理。这些端点在NVIDIA管理的GPU后端上运行优化的大型语言模型。这些后端使用计算统一设备架构(CUDA)和TensorRT-LLM等技术为智能体工作流提供低延迟、高吞吐的响应。通过暴露与OpenAI兼容的聊天补全API,NIM与基于Strands的多智能体编排层集成,无需模型特定的适配。
您将使用Strands Agents(AWS的多智能体框架)来实现智能体编排,以协调基于工具的推理工作流。使用Strands,您可以明确建模智能体交互,从而更容易管理多个智能体之间的并行执行、控制流和结果聚合。您将Strands编排器和专门智能体打包成一个Docker容器,并部署到Amazon Bedrock AgentCore运行时中。AgentCore运行时提供带有检查点和恢复功能的托管执行环境。这些功能帮助您的智能体从容地从中断中恢复,并扩展到数千个并发调用,而无需手动基础设施管理。
您使用Amazon Bedrock AgentCore可观测性来提供智能体工作流中每个步骤的详细可视化,使开发者能够检查执行路径、审计中间输出并调试性能瓶颈。您可以通过Amazon CloudWatch监控延迟、令牌使用率和错误率等运营指标。这种可见性帮助您了解智能体行为并识别生产中的性能瓶颈。
您还使用Amazon Bedrock AgentCore Memory在智能体调用之间共享上下文,并支持多轮对话。您可以扩展此实现以提供AI助手的自然语言界面,因为AgentCore Memory内置了存储对话状态和历史的支持。
该解决方案的核心方面之一是使用AWS无服务器应用模型(AWS SAM)模板轻松部署到Bedrock AgentCore运行时。您调用模板提供的Amazon API Gateway接口,该接口随后打包并部署您的Strands智能体及其所有依赖项,同时启用AgentCore可观测性和AgentCore Memory。
以下架构图显示了NVIDIA NIM、Strands Agents和Amazon Bedrock AgentCore如何在您的部署中协同支持推理、编排、内存和可观测性。
**前提条件**
在部署此解决方案之前,您需要将开发环境配置好,并安装以下工具作为前提条件:
- 安装AWS命令行界面(AWS CLI)。
- 安装AWS SAM CLI v1.100.0+。
- 安装Docker v20.x+。
- 安装Node.js v18.x+。
- 安装Python v3.11+。
**依赖项**
Strands Agents实现还需要在DockerFile中打包以下依赖项:
- AWS Strands多智能体框架:strands-agents
- Strands智能体工具和实用程序:strands-agents-tools
- 用于API调用的HTTP库:requests
- Amazon Bedrock智能体核心功能:bedrock-agentcore
- AWS SDK for Python:boto3
**部署解决方案**
现在您已经了解了架构,以下步骤将引导您在AWS环境中部署解决方案。请注意,使用NVIDIA NIM需要接受NVIDIA AI Enterprise EULA(可在AWS Marketplace订阅或NGC注册时获取)。
我们的解决方案可在GitHub仓库中下载。使用以下逐步指导(也与GitHub仓库的部署部分完全一致)在您的AWS环境中部署和访问解决方案:
**步骤1:克隆仓库**
git clone <repo-url>
cd aws-genai-campaign-review-strands-agentcore**步骤2:配置AWS凭证** 配置AWS CLI:
aws configure验证凭证:
aws sts get-caller-identity**步骤3:设置Amazon DynamoDB人物表** 使脚本可执行:
chmod +x scripts/setup_persona_table.sh运行设置脚本:
./scripts/setup_persona_table.sh**步骤4:构建AWS SAM应用**
sam build**步骤5:部署基础设施** 使用引导式部署并按照提示提供堆栈名称、智能体名称、AWS区域,其他区域接受默认值。
sam deploy --guided**步骤6:获取部署输出** 获取API端点:
aws cloudformation describe-stacks --stack-name <stack-name> --query 'Stacks[0].Outputs' --output table保存这些值:
- ApiEndpoint – HTTP API URL
- CampaignOrchestratorApi – 智能体API URL
- CloudFrontURL – 前端URL
- FrontendBucket – 前端的S3存储桶
**步骤7:将智能体部署到AgentCore运行时** 这将把您的Strands智能体部署到Bedrock AgentCore,并将智能体ARN写入Systems Manager:
curl -X POST -H "Content-Type: application/json" -d '{"action":"deploy","agent_name":"<your-agent-name>"}' <ApiEndpoint>/deploy这大约需要5分钟。API网关超时(29秒),但AWS Lambda函数继续运行。
监控进度:
aws logs tail /aws/lambda/deploy-agentcore --region <region> --follow等待直到看到:Agent Core Runtime is READY! 和 Wrote Agent ARN to SSM。
验证:
aws ssm get-parameter --name /agentcore/<agent-name>/agent-arn --region <region>**步骤8:配置前端环境**
API_URL=$(aws cloudformation describe-stacks --stack-name <stack-name> --query 'Stacks[0].Outputs[?OutputKey==`ApiEndpoint`].OutputValue' --output text)
AGENT_API_URL=$(aws cloudformation describe-stacks --stack-name <stack-name> --query 'Stacks[0].Outputs[?OutputKey==`CampaignOrchestratorApi`].OutputValue' --output text)
cat > .env <<EOF
VITE_API_URL=$API_URL
VITE_AGENT_API_URL=$AGENT_API_URL
EOF**步骤9:构建并部署前端** 安装依赖:
npm install构建前端:
npm run build获取前端存储桶名称:
FRONTEND_BUCKET=$(aws cloudformation describe-stacks --stack-name <stack-name> --query 'Stacks[0].Outputs[?OutputKey==`FrontendBucket`].OutputValue' --output text)部署到S3:
aws s3 sync dist/ s3://$FRONTEND_BUCKET --delete(可选)使CloudFront缓存失效(用于更新):
DISTRIBUTION_ID=$(aws cloudfront list-distributions --query "DistributionList.Items[?Origins.Items[0].DomainName=='${FRONTEND_BUCKET}.s3.us-west-2.amazonaws.com'].Id" --output text)
aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths "/*"**步骤10:访问应用** 获取CloudFront URL:
aws cloudformation describe-stacks --stack-name <stack-name> --query 'Stacks[0].Outputs[?OutputKey==`CloudFrontURL`].OutputValue' --output text在浏览器中打开该URL以访问应用。使用campaign_brief.md文件作为示例活动文档,并在左侧面板上传。然后您将能够在右侧面板中查看来自多智能体编排的活动审核输出。
导航到Bedrock AgentCore可观测性控制台,并选择您的智能体以查看智能体工作流中每个步骤的详细可视化。
**清理** 为避免持续产生费用,请在试用解决方案后清理您的AWS账户。
删除AWS CloudFormation堆栈:
sam delete --stack-name <stack-name>删除DynamoDB表:
aws dynamodb delete-table --table-name PersonaTable --region <region>**结论**
在本文中,您学习了如何通过将NVIDIA NIM用于GPU加速推理、Amazon Bedrock AgentCore和Strands Agents结合在AWS上进行无服务器编排,来构建一个生产就绪的生成式AI智能体系统。通过将推理与智能体协调分离,该架构支持独立扩展、跨智能体交互的共享上下文,以及对执行和性能的详细可见性。
本文提供的方法为需要并行推理、上下文持久化和运营洞察的多智能体系统提供了实用基础。无论您是构建审核自动化、数字助手还是其他智能体驱动的应用,这里演示的模式都能帮助您从实验原型转移到可在AWS上可靠部署、观察和扩展的系统。
**关于作者**
Kanishk Mahajan是AWS专业服务团队的首席AI/ML专家。在此职位上,他领导着AWS在电信和媒体娱乐领域一些最大客户的GenAI和智能体转型。
Akshay Parkhi是Amazon Web Services的机器学习工程师,拥有超过16年的经验,领导过SAP、云、DevOps和AI/ML领域的企业转型。他架构和扩展生产级AI和智能体系统,为复杂现实环境中的关键业务成果提供动力。