Como construir sistemas de IA generativa de alta performance com Strands Agents, NVIDIA NIM e Amazon Bedrock AgentCore

O desafio de levar agentes de IA para produção

Construir agentes de IA generativa que realmente funcionem em produção é bem diferente de fazer um protótipo rodar no notebook. Quando você começa a lidar com cargas reais — milhares de interações simultâneas, contexto que precisa persistir entre chamadas, múltiplos agentes operando em paralelo — os problemas aparecem rapidamente.

A AWS publicou um guia técnico detalhado que endereça exatamente esse cenário. O objetivo é mostrar como combinar três tecnologias complementares para resolver os principais gargalos de sistemas multi-agente em produção: inferência lenta sob carga, perda de contexto entre interações e dificuldade de observar o que os agentes estão fazendo.

A solução proposta combina NVIDIA NIM para inferência acelerada por GPU, Amazon Bedrock AgentCore como runtime gerenciado com memória e observabilidade integradas, e Strands Agents para orquestração serverless de múltiplos agentes.

Por que esses três problemas são críticos

Antes de entrar na arquitetura, vale entender o que a AWS identifica como os três desafios centrais ao escalar sistemas de agentes:

  • Latência de inferência sob carga concorrente: à medida que o volume de requisições cresce, o tempo de resposta aumenta significativamente, degradando a experiência do usuário.
  • Ambientes de execução sem estado: agentes que não mantêm contexto entre interações acabam repetindo trabalho ou produzindo respostas inconsistentes.
  • Visibilidade limitada: sem observabilidade adequada, diagnosticar falhas, entender o raciocínio dos agentes e controlar custos operacionais se torna muito difícil.

Esses problemas se amplificam em sistemas multi-agente, onde vários agentes precisam rodar em paralelo, compartilhar contexto e agregar resultados de forma coordenada.

Visão geral da arquitetura

O exemplo prático construído no guia é um sistema de revisão de campanhas de marketing com três agentes especializados que operam em paralelo:

  • Agente de persona: avalia o conteúdo da campanha sob diferentes perspectivas de público-alvo e gera pontuações de ressonância.
  • Agente validador: verifica o conteúdo contra diretrizes legais e de marca.
  • Agente finalizador: agrega os resultados dos dois agentes anteriores e produz um conjunto consolidado de recomendações.

O fluxo começa com o envio de documentos por um frontend construído em React, que consulta os resultados de forma assíncrona e exibe o feedback dos agentes conforme fica disponível.

Embora o exemplo seja de revisão de marketing, a AWS deixa claro que o mesmo padrão se aplica a assistentes digitais, automação de revisões e pipelines de geração aumentada por recuperação (RAG).

Como cada componente contribui

NVIDIA NIM: inferência acelerada sem gerenciar infraestrutura de GPU

A solução utiliza as APIs hospedadas do NVIDIA NIM disponíveis via build.nvidia.com para entregar inferência de alta performance como serviço totalmente gerenciado. Esses endpoints executam modelos de linguagem otimizados em backends de GPU gerenciados pela NVIDIA, usando tecnologias como Arquitetura Unificada de Computação em Dispositivo (CUDA) e TensorRT-LLM para fornecer respostas com baixa latência e alto throughput.

Um ponto importante: o NIM expõe APIs de Chat Completion compatíveis com o padrão OpenAI. Isso significa que ele se integra à camada de orquestração baseada em Strands sem precisar de adaptações específicas para cada modelo.

Strands Agents: orquestração multi-agente sem servidor

O Strands Agents é o framework multi-agente da AWS para coordenar fluxos de trabalho baseados em ferramentas e raciocínio. Com ele, é possível modelar as interações entre agentes de forma explícita, facilitando o gerenciamento de execução paralela, controle de fluxo e agregação de resultados entre múltiplos agentes.

Na prática, o orquestrador Strands e os agentes especializados são empacotados juntos como um container Docker e implantados no Amazon Bedrock AgentCore Runtime.

Amazon Bedrock AgentCore: runtime, memória e observabilidade

O Amazon Bedrock AgentCore atua em três frentes complementares:

  • Runtime gerenciado: o AgentCore Runtime oferece um ambiente de execução com checkpointing e capacidades de recuperação, permitindo que os agentes se recuperem de interrupções e escalem para milhares de invocações simultâneas sem gerenciamento manual de infraestrutura.
  • Observabilidade: o AgentCore Observability fornece visualizações detalhadas de cada etapa do fluxo dos agentes, permitindo inspecionar caminhos de execução, auditar saídas intermediárias e depurar gargalos de performance. Métricas operacionais como latência, uso de tokens e taxas de erro ficam disponíveis via Amazon CloudWatch.
  • Memória compartilhada: o AgentCore Memory mantém contexto compartilhado entre invocações dos agentes e suporta conversas com múltiplos turnos. Isso também abre caminho para implementar interfaces de linguagem natural, já que o serviço tem suporte nativo para armazenar estado e histórico de conversas.

Implantação com AWS SAM

Um dos aspectos centrais da solução é a facilidade de implantação usando um template do Modelo de Aplicação Serverless da AWS (AWS SAM). O template provisiona uma interface do Amazon API Gateway que empacota e implanta os agentes Strands com todas as suas dependências, habilitando automaticamente o AgentCore Observability e o AgentCore Memory.

O código completo está disponível no repositório no GitHub. A seguir, os passos de implantação descritos no guia original:

Pré-requisitos

Antes de implantar, é necessário ter instalado:

As dependências Python empacotadas no Dockerfile incluem: strands-agents, strands-agents-tools, requests, bedrock-agentcore e boto3.

Vale observar que o uso do NVIDIA NIM exige aceitar o Contrato de Licença de Usuário Final (EULA) do NVIDIA AI Enterprise, disponível durante a assinatura no AWS Marketplace ou no registro no NGC.

Passo a passo de implantação

Passo 1: Clonar o repositório

git clone <respository url>
cd aws-genai-campaign-review-strands-agentcore

Passo 2: Configurar credenciais AWS

aws configure
aws sts get-caller-identity

Passo 3: Configurar a tabela de personas no Amazon DynamoDB

chmod +x scripts/setup_persona_table.sh
./scripts/setup_persona_table.sh

Passo 4: Construir a aplicação AWS SAM

sam build

Passo 5: Implantar a infraestrutura

sam deploy --guided

Use a implantação guiada e siga os prompts para fornecer o nome da stack, nome do agente, região AWS e aceite os valores padrão para as demais opções.

Passo 6: Obter as saídas da implantação

aws cloudformation describe-stacks --stack-name <Your stack name> --query 'Stacks[0].Outputs' --output table

Salve os seguintes valores: ApiEndpoint, CampaignOrchestratorApi, CloudFrontURL e FrontendBucket.

Passo 7: Implantar o agente no AgentCore Runtime

curl -X POST <DeployAgentApiEndpoint> -H "Content-Type: application/json" -d '{"action":"deploy","agent_name":"<your agent name>"}'

Esse processo leva aproximadamente 5 minutos. O API Gateway expira em 29 segundos, mas a função AWS Lambda continua executando. Monitore o progresso com:

aws logs tail /aws/lambda/deploy-agentcore --region <your AWS region> --follow

Aguarde até ver as mensagens Agent Core Runtime is READY! e Wrote Agent ARN to SSM. Para verificar:

aws ssm get-parameter --name /agentcore/<your agent name>/agent-arn --region <your AWS region>

Passo 8: Configurar o ambiente do frontend

PI_URL=$(aws cloudformation describe-stacks --stack-name <your stack name> --query 'Stacks[0].Outputs[?OutputKey==`ApiEndpoint`].OutputValue' --output text)
AGENT_API_URL=$(aws cloudformation describe-stacks --stack-name <your stack name> -review --query 'Stacks[0].Outputs[?OutputKey==`CampaignOrchestratorApi`].OutputValue' --output text)

cat > .env << EOF
VITE_API_URL=$API_URL
VITE_AGENT_API_URL=$AGENT_API_URL
VITE_AWS_REGION= <your AWS region>
EOF

Passo 9: Construir e implantar o frontend

npm install
npm run build

FRONTEND_BUCKET= $(aws cloudformation describe-stacks --stack-name unified-campaign-review --query 'Stacks[0].Outputs[?OutputKey==`FrontendBucket`].OutputValue' --output text)

aws s3 sync dist/ s3://$FRONTEND_BUCKET --delete

Para invalidar o cache do CloudFront (opcional, para atualizações):

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 "/*"

Passo 10: Acessar a aplicação

aws cloudformation describe-stacks --stack-name unified-campaign-review --query 'Stacks[0].Outputs[?OutputKey==`CloudFrontURL`].OutputValue' --output text

Abra a URL no navegador para acessar a aplicação. Use o arquivo campaign_brief.md como documento de campanha de exemplo e faça o upload no painel esquerdo. O resultado da revisão produzido pela orquestração multi-agente aparecerá no painel direito.

Para visualizar o detalhamento de cada etapa do fluxo dos agentes, acesse o console do Bedrock AgentCore Observability e selecione o seu agente.

Limpeza de recursos

Para evitar cobranças recorrentes após testar a solução, remova os recursos criados:

sam delete --stack-name unified-campaign-review
aws dynamodb delete-table --table-name PersonaTable --region us-west-2

O que essa arquitetura resolve na prática

A separação entre inferência e coordenação de agentes é o ponto central do design. Ao desacoplar o NVIDIA NIM (responsável pela inferência) do Strands Agents (responsável pela orquestração) e do AgentCore (responsável pelo runtime e estado), cada camada pode escalar de forma independente.

Isso significa que você pode aumentar a capacidade de inferência sem reconfigurar a orquestração, ou ajustar a lógica dos agentes sem tocar na infraestrutura de GPU. A memória compartilhada via AgentCore garante que o contexto persista entre chamadas, eliminando o problema de agentes “amnésicos” que repetem trabalho desnecessariamente.

A observabilidade integrada fecha o ciclo: em vez de operar no escuro, equipes de engenharia conseguem inspecionar cada etapa do raciocínio dos agentes, identificar onde a latência está aumentando e auditar saídas intermediárias antes que cheguem ao usuário final.

O padrão demonstrado — inferência acelerada, orquestração serverless, contexto persistente e visibilidade operacional — oferece uma base concreta para quem está construindo sistemas de agentes que precisam ir além do protótipo e operar de forma confiável em produção.

Fonte

Build high-performance generative AI systems with Strands Agents, NVIDIA NIM, and Amazon Bedrock AgentCore (https://aws.amazon.com/blogs/machine-learning/build-high-performance-generative-ai-systems-with-strands-agents-nvidia-nim-and-amazon-bedrock-agentcore/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *