Voltar para o blog
Machine Learning

Como Construir Agentes de IA com SageMaker AI e Strands Agents SDK

27 de abril de 2026
14:55
agentes de IAIAmachine learningAWSobservabilidadeAmazon SageMakerMLflowStrands AgentsA/B TestingSageMaker JumpStart
Como Construir Agentes de IA com SageMaker AI e Strands Agents SDK

Introdução ao uso de SageMaker AI com Strands Agents SDK

A AWS lançou uma integração que permite construir agentes de inteligência artificial (IA) utilizando o Strands Agents SDK com modelos implantados em endpoints do Amazon SageMaker AI. Essa novidade atende empresas que precisam de controle avançado sobre desempenho, custos, compliance e infraestrutura para suas aplicações de IA.

O que é possível com essa integração?

Com essa solução, é possível:

  • Implantar modelos foundation do SageMaker JumpStart;
  • Integrar esses modelos com agentes construídos via Strands Agents SDK;
  • Implementar observabilidade de nível de produção usando o SageMaker Serverless MLflow para rastreamento das interações dos agentes;
  • Realizar testes A/B entre diferentes variantes de modelos para avaliar desempenho;
  • Gerenciar, implantar e melhorar continuamente agentes de IA em infraestrutura controlada pela organização.

Quem pode usar e como acessar

Essa solução é destinada a desenvolvedores, cientistas de dados e equipes de machine learning que utilizam AWS e buscam flexibilidade para controlar seus agentes de IA. Para acessar, é necessário ter uma conta AWS com permissões para Amazon SageMaker AI, Amazon Bedrock, SageMaker AI Serverless MLflow, Amazon S3 e SageMaker JumpStart.

O Strands Agents SDK é open source e pode ser instalado via Python, enquanto os modelos foundation são disponibilizados no SageMaker JumpStart. A integração com MLflow permite acompanhar métricas e rastros de execução dos agentes.

Passo a passo para construir um agente com SageMaker AI e Strands Agents

Pré-requisitos

  • Conta AWS com permissões adequadas;
  • Ambiente Jupyter Notebook local ou SageMaker AI Studio;
  • Pacotes Python: strands-agents, strands-agents-tools, mlflow, mlflow-sagemaker, entre outros.

1. Instalar pacotes necessários

%%writefile requirements.txt
strands-agents>=1.9.1
strands-agents-tools>=0.2.8
mlflow>=3.4.0
strands-agents[sagemaker]
mlflow-sagemaker>=1.5.11
pip install -r requirements.txt

2. Implantar modelo no SageMaker AI Endpoint

Exemplo de implantação do modelo Qwen3-4B via SageMaker JumpStart:

import sagemaker
import boto3
from boto3.session import Session
from sagemaker.jumpstart.model import JumpStartModel

boto_session = Session()
sts = boto3.client('sts')
account_id = sts.get_caller_identity().get("Account")
region = boto_session.region_name
ENDPOINT_NAME = "llm-qwen-endpoint-sagemaker"

model_a = JumpStartModel(
    model_id="huggingface-reasoning-qwen3-4b",
    model_version="1.0.0",
    name="qwen3-4b-model"
)

predictor_a = model_a.deploy(
    initial_instance_count=1,
    instance_type="ml.g5.2xlarge",
    endpoint_name=ENDPOINT_NAME
)

3. Criar agente Strands usando o modelo implantado

from strands.models.sagemaker import SageMakerAIModel
from strands import Agent
from strands_tools import http_request

model_sagemaker = SageMakerAIModel(
    endpoint_config={
        "endpoint_name": ENDPOINT_NAME,
        "region_name": region
    },
    payload_config={
        "max_tokens": 2048,
        "temperature": 0.2,
        "stream": True,
    }
)

agent = Agent(model=model_sagemaker, tools=[http_request])
response = agent("Where is the international space station now? (Use: http://api.open-notify.org/iss-now.json)")
print(response.message['content'][0]['text'])

Observabilidade com SageMaker AI Serverless MLflow

Para monitorar a execução dos agentes, o SageMaker AI Serverless MLflow fornece rastreamento automático das interações, uso de ferramentas e métricas, sem necessidade de instrumentação manual.

Configuração do MLflow App

Você pode configurar o MLflow App via console do SageMaker AI Studio ou programaticamente com Boto3. Exemplo de criação via Boto3:

s3_client = boto3.client('s3', region_name=region)
bucket_name = f'{account_id}-mlflow-bucket'

if region == 'us-east-1':
    s3_client.create_bucket(Bucket=bucket_name)
else:
    s3_client.create_bucket(Bucket=bucket_name, CreateBucketConfiguration={'LocationConstraint': region})

sagemaker_client = boto3.client('sagemaker')

mlflow_app_details = sagemaker_client.create_mlflow_app(
    Name='strands-mlflow-app',
    ArtifactStoreUri=f's3://{account_id}-mlflow-bucket/artifacts',
    RoleArn=role,
)
print(f"MLflow app creation initiated: {mlflow_app_details['Arn']}")

Ativando o rastreamento automático

import os
import mlflow

tracking_uri = mlflow_app_details['Arn']
os.environ["MLFLOW_TRACKING_URI"] = tracking_uri
mlflow.set_experiment("Strands-MLflow")
mlflow.strands.autolog()

Visualização e análise

Após executar o agente, os rastros ficam disponíveis na interface do MLflow App, onde é possível analisar linhas do tempo, chamadas de ferramentas, entradas e saídas de cada etapa, além de métricas de desempenho.

Testes A/B para otimização de modelos

O SageMaker AI permite implantar múltiplas variantes de modelos em um mesmo endpoint para realizar testes A/B. Isso facilita a comparação de desempenho entre versões, como no exemplo do Qwen3-4B versus Qwen3-8B.

Exemplo básico para configurar teste A/B

model_b_name = "sagemaker-strands-demo-qwen3-8b"
model_b = JumpStartModel(
    model_id="huggingface-reasoning-qwen3-8b",
    model_version="1.0.0",
    name=model_b_name
)
model_b.create(instance_type="ml.g5.2xlarge")

production_variants = [
    {
        "VariantName": "qwen-4b-variant",
        "ModelName": "qwen3-4b-model",
        "InitialInstanceCount": 1,
        "InstanceType": "ml.g5.2xlarge",
        "InitialVariantWeight": 0.5
    },
    {
        "VariantName": "qwen3-8b-variant",
        "ModelName": model_b_name,
        "InitialInstanceCount": 1,
        "InstanceType": "ml.g5.2xlarge",
        "InitialVariantWeight": 0.5
    }
]

sagemaker_client.create_endpoint_config(
    EndpointConfigName="llm-endpoint-config-ab",
    ProductionVariants=production_variants
)

sagemaker_client.update_endpoint(
    EndpointName=ENDPOINT_NAME,
    EndpointConfigName="llm-endpoint-config-ab"
)

Impacto prático para empresas

Essa integração oferece às organizações a possibilidade de desenvolver agentes de IA sofisticados, com controle total sobre a infraestrutura, custos e governança. Além disso, permite implementar práticas avançadas de MLOps, como rastreamento detalhado e experimentação controlada, essenciais para sistemas de IA em produção.

Links úteis para aprofundamento