Home / Inteligência Artificial / Como Construir Agentes de IA com SageMaker AI e Strands Agents SDK

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

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

\n

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.

\n\n

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

\n

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

\n

    \n

  • Implantar modelos foundation do SageMaker JumpStart;
  • \n

  • Integrar esses modelos com agentes construídos via Strands Agents SDK;
  • \n

  • Implementar observabilidade de nível de produção usando o SageMaker Serverless MLflow para rastreamento das interações dos agentes;
  • \n

  • Realizar testes A/B entre diferentes variantes de modelos para avaliar desempenho;
  • \n

  • Gerenciar, implantar e melhorar continuamente agentes de IA em infraestrutura controlada pela organização.
  • \n

\n\n

Quem pode usar e como acessar

\n

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.

\n

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.

\n\n

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

\n

Pré-requisitos

\n

    \n

  • Conta AWS com permissões adequadas;
  • \n

  • Ambiente Jupyter Notebook local ou SageMaker AI Studio;
  • \n

  • Pacotes Python: strands-agents, strands-agents-tools, mlflow, mlflow-sagemaker, entre outros.
  • \n

\n\n

1. Instalar pacotes necessários

\n

%%writefile requirements.txt\nstrands-agents>=1.9.1\nstrands-agents-tools>=0.2.8\nmlflow>=3.4.0\nstrands-agents[sagemaker]\nmlflow-sagemaker>=1.5.11\npip install -r requirements.txt\n

\n\n

2. Implantar modelo no SageMaker AI Endpoint

\n

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

\n

import sagemaker\nimport boto3\nfrom boto3.session import Session\nfrom sagemaker.jumpstart.model import JumpStartModel\n\nboto_session = Session()\nsts = boto3.client('sts')\naccount_id = sts.get_caller_identity().get("Account")\nregion = boto_session.region_name\nENDPOINT_NAME = "llm-qwen-endpoint-sagemaker"\n\nmodel_a = JumpStartModel(\n    model_id="huggingface-reasoning-qwen3-4b",\n    model_version="1.0.0",\n    name="qwen3-4b-model"\n)\n\npredictor_a = model_a.deploy(\n    initial_instance_count=1,\n    instance_type="ml.g5.2xlarge",\n    endpoint_name=ENDPOINT_NAME\n)\n

\n\n

3. Criar agente Strands usando o modelo implantado

\n

from strands.models.sagemaker import SageMakerAIModel\nfrom strands import Agent\nfrom strands_tools import http_request\n\nmodel_sagemaker = SageMakerAIModel(\n    endpoint_config={\n        "endpoint_name": ENDPOINT_NAME,\n        "region_name": region\n    },\n    payload_config={\n        "max_tokens": 2048,\n        "temperature": 0.2,\n        "stream": True,\n    }\n)\n\nagent = Agent(model=model_sagemaker, tools=[http_request])\nresponse = agent("Where is the international space station now? (Use: http://api.open-notify.org/iss-now.json)")\nprint(response.message['content'][0]['text'])\n

\n\n

Observabilidade com SageMaker AI Serverless MLflow

\n

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.

\n\n

Configuração do MLflow App

\n

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

\n

s3_client = boto3.client('s3', region_name=region)\nbucket_name = f'{account_id}-mlflow-bucket'\n\nif region == 'us-east-1':\n    s3_client.create_bucket(Bucket=bucket_name)\nelse:\n    s3_client.create_bucket(Bucket=bucket_name, CreateBucketConfiguration={'LocationConstraint': region})\n\nsagemaker_client = boto3.client('sagemaker')\n\nmlflow_app_details = sagemaker_client.create_mlflow_app(\n    Name='strands-mlflow-app',\n    ArtifactStoreUri=f's3://{account_id}-mlflow-bucket/artifacts',\n    RoleArn=role,\n)\nprint(f"MLflow app creation initiated: {mlflow_app_details['Arn']}")\n

\n\n

Ativando o rastreamento automático

\n

import os\nimport mlflow\n\ntracking_uri = mlflow_app_details['Arn']\nos.environ["MLFLOW_TRACKING_URI"] = tracking_uri\nmlflow.set_experiment("Strands-MLflow")\nmlflow.strands.autolog()\n

\n\n

Visualização e análise

\n

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.

\n\n

Testes A/B para otimização de modelos

\n

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.

\n\n

Exemplo básico para configurar teste A/B

\n

model_b_name = "sagemaker-strands-demo-qwen3-8b"\nmodel_b = JumpStartModel(\n    model_id="huggingface-reasoning-qwen3-8b",\n    model_version="1.0.0",\n    name=model_b_name\n)\nmodel_b.create(instance_type="ml.g5.2xlarge")\n\nproduction_variants = [\n    {\n        "VariantName": "qwen-4b-variant",\n        "ModelName": "qwen3-4b-model",\n        "InitialInstanceCount": 1,\n        "InstanceType": "ml.g5.2xlarge",\n        "InitialVariantWeight": 0.5\n    },\n    {\n        "VariantName": "qwen3-8b-variant",\n        "ModelName": model_b_name,\n        "InitialInstanceCount": 1,\n        "InstanceType": "ml.g5.2xlarge",\n        "InitialVariantWeight": 0.5\n    }\n]\n\nsagemaker_client.create_endpoint_config(\n    EndpointConfigName="llm-endpoint-config-ab",\n    ProductionVariants=production_variants\n)\n\nsagemaker_client.update_endpoint(\n    EndpointName=ENDPOINT_NAME,\n    EndpointConfigName="llm-endpoint-config-ab"\n)\n

\n\n

Impacto prático para empresas

\n

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.

\n\n

Links úteis para aprofundamento

\n

Marcado:

Deixe um Comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *