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