A AWS publicou um guia técnico mostrando como construir agentes com o Strands Agents SDK usando modelos rodando em endpoints do SageMaker AI, com tracing automático via SageMaker Serverless MLflow. O tutorial cobre deploy de Qwen3-4B e 8B do JumpStart, observabilidade dos agentes, A/B testing entre variantes e avaliação com MLflow GenAI.
Tutorial denso e funcional, mas é AWS vendendo verticalização: Strands + SageMaker + MLflow + Bedrock judge tudo grudado. Pra quem já está no ecossistema, economiza código. Pra quem quer portabilidade de observabilidade, vai sentir o lock-in.
A AWS publicou um tutorial mostrando como montar agentes de IA com o Strands Agents SDK rodando em cima de modelos hospedados em endpoints do Amazon SageMaker AI, com observabilidade via SageMaker Serverless MLflow. O alvo é claro: empresa que quer controle de infra (compute, rede, scaling, residência de dados) e não se contenta com o que FM (foundation model) gerenciado tipo Bedrock entrega de fábrica.
A AWS lista quatro motivos pra deployar foundation model no SageMaker AI em vez de consumir via Bedrock:
Na prática, é o trade-off clássico: Bedrock entrega tudo pronto mas você fica nas opções deles. SageMaker dá controle granular mas você opera a infra. Pra time com workload pesado e compliance estrito, a conta fecha do lado SageMaker.
O Strands Agents SDK é open source e tem um provider pro SageMaker AI. Qualquer modelo que suporte a API de chat completions compatível com OpenAI funciona. No tutorial, a AWS usa Qwen3-4B e Qwen3-8B do SageMaker JumpStart.
O fluxo básico:
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])
agent("Where is the international space station now?")
Deploy do modelo via JumpStart API em uma ml.g5.2xlarge, e o agente já consome o endpoint.
A parte que mais chama atenção é o tracing automático. O SageMaker AI Serverless MLflow captura execução do agente, uso de tools e fluxo de decisão sem instrumentação manual. Basta:
import mlflow
mlflow.set_experiment("Strands-MLflow")
mlflow.strands.autolog()
A partir daí, toda invocação do agente vai pra MLflow App, com Execution Timeline e Span Tree mostrando o Agent Loop, chamadas de tool e input/output de cada passo.
Pra rastrear funções customizadas que não são invocações de agente ou tool, dá pra usar o decorator @mlflow.trace manualmente.
A seção mais útil pra quem opera produção: deployar duas versões de modelo atrás do mesmo endpoint com pesos de tráfego.
No exemplo, Qwen3-4B (champion) e Qwen3-8B (challenger) ficam com 50/50 de tráfego via ProductionVariants. Dá pra criar agentes Strands apontando pra target_variant específico, isolando avaliação por modelo.
A avaliação usa mlflow.genai.evaluate() com dataset estruturado (input + expectations) e scorers que combinam:
Correctness e RelevanceToQuery, que no exemplo rodam em cima do us.amazon.nova-pro-v1:0 no Bedrock.Depois de comparar métricas, você ajusta o peso da variante vencedora pra 1.0 e migra de vez.
Pra quem já roda Bedrock e tava montando A/B testing na unha com lambda e DynamoDB, esse fluxo nativo no SageMaker corta bastante código de cola. Só que tem um custo: você fica preso ao stack AWS de ponta a ponta (SageMaker + MLflow gerenciado + Bedrock pra judge). Portabilidade do tracing pra outro provider de observabilidade fica complicada.
Time que: roda modelo open-source em GPU própria via SageMaker, precisa de tracing detalhado pra debugar agente em produção, e quer A/B testing com framework de avaliação estruturado sem montar do zero. Se você tá no Bedrock puro com Claude ou Nova, esse tutorial não muda muita coisa.
☕ gostou dessa?
Matérias favoritadas ficam no seu /favoritos e, se você tem o cafecomtech instalado, disponíveis offline — no metrô, no avião, na fila do café.
☕ comentários · 0