AI News HubLIVE
站内改写

使用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和智能體系統,為複雜現實環境中的關鍵業務成果提供動力。