CURSOS / TECNOLOGIA / AGENTES DE IA NA AWS (ETAPA 1 DE 4)
Engenharia Agêntica na Nuvem · Etapa 1 de 4 · Fundamentos e Primeiros Passos

Agentes de IA
na AWS.

Saia dos chatbots passivos e construa sistemas que raciocinam, planejam e agem na nuvem: entenda a fronteira entre RAG tradicional e Agentic RAG, domine as camadas do AWS Agentic Stack (Amazon Q, Bedrock, AgentCore e SageMaker AI), compreenda os protocolos MCP e A2A e configure o SageMaker Studio com o AWS Strands Agents SDK para rodar seu primeiro agente.

Ilustração arquitetônica em fundo escuro mostrando um orquestrador central de agentes de IA na nuvem AWS conectado a modelos fundacionais, bancos de memória e ferramentas externas
8 oficinasbaseadas no Capítulo 1 de Bunny Kaushik e Mona M
4 etapasdo primeiro agente à governança em produção
Foco práticoAmazon Bedrock, SageMaker AI e AWS Strands SDK
Percurso completo em 4 etapas · AI Agents on AWS (Packt, 2026)

Trilha de formação: Construindo e escalando Agentes de IA na AWS

Esta formação em quatro etapas percorre todos os 7 capítulos de AI Agents on AWS, levando você do primeiro protótipo no SageMaker Studio até sistemas multiagentes governados e observáveis em produção. Você está na Etapa 1.

Percurso da Etapa 1 (Fundamentos e Primeiros Passos)

Cada oficina traduz o Capítulo 1 de AI Agents on AWS em decisões arquiteturais concretas, tabelas comparativas e código Python executável com o AWS Strands SDK.

OFICINA 01RAG Tradicional vs. Agentic RAG ↗

Domine as 7 etapas do pipeline RAG (Chunking, Embeddings, Vector Store, Reranking) e entenda quando o RAG deixa de ser fluxo fixo e vira uma ferramenta do agente.

OFICINA 02Anatomia do Agente Autônomo ↗

Desmonte o "cérebro" do agente nos 4 pilares fundamentais: LLM, Execution Plan (Planning), Tools e Memory, aplicando o ciclo Planning → Acting → Reasoning.

OFICINA 03AWS Agentic Stack na Prática ↗

Escolha a camada certa entre Amazon Q (Ready-to-Use), Amazon Bedrock e AgentCore (Managed) e Amazon SageMaker AI (Do It Yourself).

OFICINA 04Da LLM Simples aos Multiagentes ↗

Percorra os 6 estágios de evolução agêntica — de prompts isolados a enxames colaborativos — e veja como Avaliação, Segurança e Observabilidade escalam juntos.

OFICINA 05Protocolos MCP, A2A e Simulador ↗

Compare Model Context Protocol (agente-ferramenta) e Agent-to-Agent (agente-agente com Agent Cards) e simule o ROI de um agente no Bedrock.

OFICINA 06AWS Strands SDK e Agentic Loop ↗

Entenda a filosofia model-driven do Strands SDK e acompanhe os 11 passos internos do Agentic Loop entre modelo, raciocínio e execução de ferramentas.

OFICINA 07Ambiente: SageMaker Studio, IAM e IDE ↗

Configure permissões mínimas no IAM (Bedrock e SageMaker), levante um espaço JupyterLab ml.t3.medium no SageMaker Studio e instale o Strands SDK.

OFICINA 08Seu Primeiro Agente “Hello World” ↗

Escreva e execute seu primeiro agente Python conectado ao Amazon Bedrock com Strands SDK, configurando modelo explícito e system prompt.

Estação de trabalho minimalista em modo escuro exibindo código Python de loop agêntico e terminal conectado à nuvem AWS

“Transicionar de um recuperador passivo de conhecimento para um agente ativo que raciocina, usa ferramentas e executa trabalho real é onde a IA gera valor.”

Baseado no Capítulo 1 de AI Agents on AWS: Beginner's guide to building AI agents on AWS (Bunny Kaushik & Mona M, Packt Publishing, 2026), esta etapa constrói o vocabulário e o ambiente técnico para todo o restante da trilha.
Oficina 01 / 08

De LLMs Isolados e RAG Passivo a Agentes Ativos

Modelos de Linguagem Grandes (LLMs) padrão sofrem com duas travas severas: data de corte do conhecimento (knowledge cutoff) e incapacidade de acessar dados privados ou agir em tempo real. Como o RAG resolve a informação — e por que isso ainda não basta para entregar um sistema que realmente trabalha por você?

O Pipeline Completo de RAG em 7 Etapas (Figuras 1.1 e 1.2)

Sem retreinar ou fazer fine-tuning no modelo inteiro, a técnica de Retrieval Augmented Generation (RAG) combina o LLM com um sistema de recuperação de informação em três verbos: Retrieve (buscar na base), Augment (injetar o contexto no prompt) e Generate (gerar a resposta fundamentada). Na prática de engenharia, a Figura 1.2 do livro detalha um pipeline completo em sete passos:

Os 7 estágios do pipeline RAG e decisões de engenharia (Capítulo 1)
EtapaO que acontece tecnicamenteFerramentas e Armadilhas Comuns
1. Loading / IngestingCarregamento bruto de PDFs, documentos de RH, logs ou registros de banco de dados.Conectores S3, loaders de texto e parsers estruturados.
2. ChunkingQuebra dos documentos em blocos menores que cabem na janela de contexto.Evita o efeito lost-in-the-middle, onde o LLM ignora detalhes enterrados no meio de um texto gigante.
3. EmbeddingConversão de cada chunk em um vetor numérico que representa seu significado semântico.Modelos como Amazon Titan Embeddings.
4. StorageArmazenamento dos pares (texto + vetor) em um banco vetorial otimizado para similaridade.Amazon OpenSearch Service, Pinecone, FAISS, Chroma ou PostgreSQL com pgvector.
5. RetrievalA pergunta vira vetor e busca os top k blocos semanticamente mais próximos (ex.: top 3, 5 ou 10).Definir k muito baixo perde contexto; k alto demais polui o prompt.
6. Filtering & RerankingReordenação e filtragem fina dos trechos recuperados antes de enviá-los ao LLM.Opcional: eleva precisão, mas adiciona latência e custo computacional.
7. Answer GenerationO LLM recebe a pergunta original somada aos trechos selecionados e redige a resposta final.Prompts claros que instruem o modelo a citar apenas o contexto recuperado.

RAG Tradicional vs. Agentic RAG: De Fluxo Fixo a Decisão Dinâmica

Um sistema de RAG tradicional segue um trilho rígido de uma única passada: User Query → Retrieve → Augment → Generate. Se o usuário perguntar “Qual é a política de férias da empresa?”, funciona perfeitamente. Mas e se o usuário pedir “Verifique a política de férias, consulte meu saldo no sistema de RH e agende minha folga para sexta-feira”? O RAG passivo trava porque não sabe refinar buscas, consultar APIs externas em tempo real ou executar ações.

No Agentic RAG, a busca vetorial deixa de ser o pipeline inteiro e passa a ser apenas uma ferramenta (tool) à disposição do agente: Question → Agent Reasons → (talvez chame RAG tool) → (talvez chame APIs/outras tools) → Answer or Act. O agente decide se precisa consultar a base RAG, quantas vezes refinar a consulta e com quais APIs combinar o resultado.

Código para experimentar (Simulando RAG Tradicional vs. Agentic RAG em Python)
# Demonstração conceitual da diferença entre fluxo fixo (RAG Tradicional)
# e decisão dinâmica com múltiplas ferramentas (Agentic RAG)
python3 - <<'PY'
def tool_rag_politicas(query: str) -> str:
    base = {
        "clima_ny": "Média histórica de verão em NY: 28°C de dia, 19°C à noite.",
        "ferias": "Política de férias: colaboradores CLT têm direito a 30 dias após 12 meses."
    }
    return base.get("clima_ny" if "ny" in query.lower() else "ferias", "Documento não encontrado.")

def tool_api_clima_tempo_real(cidade: str) -> str:
    return f"Previsão em tempo real para {cidade}: 31°C hoje, frente fria prevista às 21h (17°C)."

def rag_tradicional(pergunta: str) -> str:
    contexto = tool_rag_politicas(pergunta)
    return f"[RAG Fixo] Baseado apenas no histórico: {contexto}"

def agentic_rag(pergunta: str, perfil_usuario: dict) -> str:
    passos = []
    if "levar" in pergunta.lower() or "mala" in pergunta.lower():
        hist = tool_rag_politicas("clima_ny")
        live = tool_api_clima_tempo_real("Nova York")
        passos.extend([hist, live])
    jaqueta = "Traga jaqueta leve para a noite (17°C)" if perfil_usuario.get("odeia_frio") else "Roupas leves bastam"
    return f"[Agentic RAG] Fontes cruzadas ({len(passos)} tools) -> Recomendação: {jaqueta}. Dados: {passos}"

print(rag_tradicional("O que devo levar na mala para Nova York no verão?"))
print(agentic_rag("O que devo levar na mala para Nova York no verão?", {"odeia_frio": True}))
PY
Laboratório avançado · Quando o RAG tradicional ainda é melhor do que um agente completo?

Nem toda aplicação precisa de autonomia agêntica. Se o seu caso de uso é estritamente consulta a documentos estáticos com baixa tolerância a latência e custo previsível (por exemplo, um FAQ interno de políticas de RH onde nenhuma API precisa ser acionada e nenhuma decisão multi-etapa existe), o RAG tradicional em uma passada é mais rápido, mais barato e mais simples de auditar. Só adicione um loop agêntico quando houver necessidade de decisão condicional, múltiplas fontes ou execução de ações.

Entrega da etapa

Escolha um problema real do seu trabalho ou portfólio e classifique-o: ele pode ser resolvido com RAG tradicional (recuperação em uma passada) ou exige Agentic RAG (raciocínio + múltiplas ferramentas/APIs)? Liste quais seriam os documentos do chunking e quais ações externas seriam necessárias.

Conexão com o livro · Capítulo 1 (págs. 1–5) · What is RAG and how does it work?, pipeline de 7 etapas (Figura 1.2) e Agentic RAG vs. Traditional RAG.

Oficina 02 / 08

Anatomia do Agente: Planning, Acting, Reasoning e os 4 Pilares

O que realmente transforma um script que chama um LLM em um agente autônomo? Não é um prompt mais longo — é o ciclo iterativo em que o sistema planeja passos, aciona ferramentas no mundo real, observa o resultado e ajusta a rota até concluir o objetivo.

As 3 Capacidades Centrais e os 4 Componentes Arquiteturais (Figuras 1.3 e 1.4)

No Capítulo 1, Bunny Kaushik e Mona M definem agentes de IA como sistemas de software autônomos que executam tarefas em seu nome, operando por meio de três capacidades contínuas:

  • 1. Planning (Planejamento): quebrar um objetivo de alto nível (ex.: “agendar uma reunião com o time”) em subtarefas executáveis (checar calendários, enviar convites, reservar sala, acompanhar recusas e atualizar horários).
  • 2. Acting (Ação): utilizar ferramentas externas e bases de conhecimento para executar cada subtarefa no ambiente real.
  • 3. Reasoning (Raciocínio iterativo): observar o retorno de cada ação (inclusive erros ou mudanças de contexto) e atualizar o plano até que a meta seja atingida.
Os 4 componentes estruturais de um Agente de IA (Figura 1.4)
ComponentePapel na ArquiteturaExemplos Concretos
LLM (O “Cérebro”)Interpreta a intenção do usuário, raciocina sobre o estado atual e decide qual ferramenta chamar ou qual resposta gerar.Anthropic Claude, Amazon Nova Lite/Pro no Amazon Bedrock ou modelos no SageMaker.
Execution Plan (Planning)Analisa o problema, define a sequência estratégica de ações e decide quando usar cada recurso.Decomposição de metas, loops de reflexão e replanejamento após erro de API.
Tools (Mãos e Sentidos)Funções externas ou APIs que permitem ao agente ler dados vivos e alterar sistemas externos.Motores de busca, bancos SQL/NoSQL, APIs REST, interpretadores de código, RAG.
Memory (Curto e Longo Prazo)Preserva o contexto da conversa atual (curto prazo) e preferências/fatos entre sessões (longo prazo).Janela de contexto, DynamoDB, Redis, Mem0, Amazon Bedrock AgentCore Memory.
Código para experimentar (Loop Planning → Acting → Reasoning em Python)
# Exemplo didático do caso "Travel Planner" da Figura 1.3:
# O agente combina memória (preferências), RAG (média histórica) e API (previsão real)
python3 - <<'PY'
memoria_usuario = {"preferencia_mala": "mala leve", "sensivel_frio": True}

def executar_plano_viagem(destino: str, estacao: str):
    plano = [
        ("RAG_Historico", f"Temperatura média de {estacao} em {destino}: 27°C."),
        ("API_Clima", f"Previsão para {destino} esta semana: máximas 30°C, noites 16°C."),
        ("Memoria", f"Preferências: {memoria_usuario}")
    ]
    observacoes = []
    for etapa, resultado in plano:
        print(f"[Acting] Executando {etapa} -> {resultado}")
        observacoes.append(resultado)
    print("[Reasoning] Cruzando dados: calor de dia, frio à noite + usuário sensível ao frio.")
    print("[Resultado Final] Leve roupas leves na mala compacta, mas inclua uma jaqueta leve para a noite.")

executar_plano_viagem("Nova York", "verão")
PY
Laboratório avançado · Por que a relação entre o Agente e o LLM na Figura 1.4 é bidirecional?

Na arquitetura agêntica, o agente não consulta o LLM apenas uma vez no início. O relacionamento é bidirecional porque a cada retorno de ferramenta (um JSON de uma API, uma lista de arquivos ou uma exceção de banco de dados), o agente devolve essa nova observação para o LLM decidir o próximo passo. Esse vai-e-vem só termina quando o LLM conclui que já possui evidências suficientes para emitir a resposta final.

Entrega da etapa

Mapeie um agente assistente para o seu fluxo diário preenchendo os 4 componentes da Figura 1.4: qual modelo será o cérebro, como ele quebrará o objetivo em passos (Planning), quais 3 ferramentas serão suas mãos/sentidos e que tipo de dado ele precisa guardar em Memory.

Conexão com o livro · Capítulo 1 (págs. 5–7) · What are agents?, Agent capabilities (Planning, Acting, Reasoning) e Figura 1.4.

Oficina 03 / 08

O AWS Agentic Stack: Amazon Q, Amazon Bedrock, AgentCore e SageMaker AI

Na AWS, construir um agente não significa reinventar servidores de inferência nem ficar preso a uma única ferramenta pronta. Como escolher entre soluções prontas de negócio, plataformas gerenciadas sem servidor e infraestrutura customizada de Machine Learning?

As 3 Camadas do AWS Agentic Stack (Figura 1.5 e Tabela 1.1)

O livro organiza o ecossistema agêntico da AWS em três níveis de esforço e controle. Nesta trilha de engenharia por código, nosso foco está nas camadas 2 e 3:

Camadas do AWS Agentic Stack e critérios de escolha (Figura 1.5 e Tabela 1.1)
Camada do StackServiços PrincipaisPara quem é e Pontos Fortes
1. Agentic Applications
(Ready to use)
Amazon Q Business, Amazon Q Developer, Amazon Q SuiteUso imediato por usuários de negócio com configuração mínima. Fora do escopo de código deste curso.
2. Managed Solutions
(API-first & Serverless)
Amazon Bedrock (Guardrails, Agents, Knowledge Bases, Custom Model Import, Evaluation) e Amazon Bedrock AgentCore (incluindo AgentCore Runtime)Ideal para desenvolvedores construírem aplicações e agentes rapidamente via API única com acesso a múltiplos Foundation Models (Claude, Nova, Llama, Titan), sem gerenciar servidores.
3. Do It Yourself
(Controle máximo)
Amazon SageMaker AI (e hardware especializado AWS)Para engenheiros de ML que precisam de controle profundo de treino, fine-tuning, otimização de latência/custo e hospedagem dedicada de endpoints.
Integração poderosa entre SageMaker e Bedrock: você pode adaptar ou fazer fine-tuning de um LLM com dados do seu domínio no Amazon SageMaker AI e, em seguida, disponibilizá-lo dentro do Amazon Bedrock usando o recurso Custom Model Import. Assim, seu modelo especializado passa a atuar como o “cérebro” do agente mantendo a API unificada do Bedrock!

Como um Agente Roda na AWS Ponta a Ponta (Figura 1.6)

  1. Desenvolvimento (IDE): o engenheiro escreve a lógica no VS Code, Amazon SageMaker Studio ou em uma IDE agêntica como o Kiro.
  2. Orquestração (Framework): a aplicação usa o AWS Strands Agents SDK ou LangChain/LangGraph para definir prompts, fluxo e ferramentas.
  3. Raciocínio (Model Provider): a aplicação faz chamadas de API (InvokeModel / Converse) ao Amazon Bedrock ou a um endpoint do Amazon SageMaker AI.
  4. Ação e Contexto: o agente se comunica com ferramentas, APIs, bancos de memória e outros agentes via HTTP(S) ou STDIO.
  5. Entrega: a resposta final chega à aplicação cliente ou interface do usuário final.
Comando para experimentar (Verificando acesso ao Amazon Bedrock via AWS CLI / Python)
# Liste os Foundation Models disponíveis na sua conta AWS Bedrock (ex.: us-east-1)
aws bedrock list-foundation-models --region us-east-1 \
  --query "modelSummaries[?contains(modelId, 'claude') || contains(modelId, 'nova')].[modelId, modelName]" \
  --output table

# Teste rápido em Python com boto3 para validar credenciais e região ativa
python3 - <<'PY'
import boto3
sts = boto3.client("sts")
print("Conta/Identidade AWS:", sts.get_caller_identity()["Arn"])
PY
Laboratório avançado · Qual a diferença entre Amazon Bedrock Agents e Amazon Bedrock AgentCore?

Enquanto o recurso clássico Bedrock Agents oferece criação guiada dentro do próprio ecossistema Bedrock, o Amazon Bedrock AgentCore é uma plataforma modular projetada para rodar agentes escritos com qualquer framework open-source (Strands SDK, LangGraph, CrewAI, Google ADK, Claude Agent SDK) e qualquer modelo, entregando Runtime serverless isolado por microVM, Memória, Gateway MCP, Identity, Policy (Cedar) e Observability sem que você precise gerenciar infraestrutura.

Entrega da etapa

Defina a arquitetura AWS do seu projeto: você usará apenas modelos gerenciados no Amazon Bedrock ou precisará de fine-tuning / hospedagem dedicada no Amazon SageMaker AI? Justifique considerando custo, latência e privacidade de dados.

Conexão com o livro · Capítulo 1 (págs. 7–11) · Exploring the AWS Agentic Stack, Figura 1.5, Tabela 1.1 e Building AI agents on AWS (Figura 1.6).

Oficina 04 / 08

A Escada Evolutiva: De LLMs Simples a Sistemas Multiagentes

Inteligência agêntica não nasce pronta em um único salto. Como evoluir sua arquitetura em estágios progressivos — e por que Avaliação, Segurança, Guardrails e Observabilidade precisam crescer na mesma proporção?

Os 6 Degraus de Complexidade e Autonomia (Figuras 1.7, 1.8 e 1.9)

Na Seção Progressing from LLMs to multi-agent systems, o livro traça a linha evolutiva completa que guia o restante do curso:

Progressão de LLMs simples até Colaboração Multiagente (Figuras 1.7 a 1.9)
EstágioComo FuncionaExemplo Prático
1. LLM DiretoPrompt de turno único ou chat simples enviado diretamente ao modelo (Bedrock ou SageMaker), sem ferramentas externas.Perguntar algo direto ao Claude no Amazon Bedrock para resumir um texto.
2. LLM + RAGConecta o modelo a bases externas via recuperação semântica para responder com dados atualizados ou privados.Chatbot de RH respondendo dúvidas com base nas políticas internas da empresa.
3. Augmented LLMAdiciona três pilares ao modelo (Figura 1.8): Retrieval (busca), Tools (APIs/ações) e Memory (leitura/escrita de estado).Modelo que busca informações na internet em tempo real e envia um e-mail via API.
4. Agentic WorkflowO agente planeja, decompõe uma meta em subtarefas, escolhe ferramentas para cada passo e sintetiza o resultado (Figura 1.9 esq.).Agente de viagens que consulta voos, compara preços, confirma preferência do usuário e reserva a passagem.
5. Autonomous AgentOpera com alta independência, percepção contínua do ambiente, objetivos de longo prazo e ciclos de self-correction (Figura 1.9 dir.).Agente que monitora tendências de mercado continuamente e executa operações sob parâmetros de risco.
6. Multi-Agent CollaborationMúltiplos agentes autônomos com papéis especializados coordenam entre si para resolver problemas além da capacidade de um único agente.Time composto por Agente Pesquisador, Agente Redator e Agente Editor produzindo um relatório técnico.
A Seta Crítica no Topo da Figura 1.7: quanto maior a autonomia e o número de agentes interagindo, menor a previsibilidade do fluxo. Por isso, Agent Evaluation, Security, Guardrails e Observability não são acessórios opcionais do final do projeto — eles formam a camada transversal obrigatória que acompanha toda a escada evolutiva (e que aprofundaremos na Etapa 4).
Código para experimentar (Matriz de Decisão de Maturidade em Python)
# Avalie qual estágio da Figura 1.7 é suficiente para evitar "over-engineering"
python3 - <<'PY'
def recomendar_estagio(precisa_dados_privados: bool, precisa_agir_apis: bool,
                       fluxo_multi_etapas: bool, dominios_distintos: int) -> str:
    if not precisa_dados_privados and not precisa_agir_apis:
        return "Estágio 1: LLM Direto (não complique com RAG ou Agentes)"
    if precisa_dados_privados and not precisa_agir_apis and not fluxo_multi_etapas:
        return "Estágio 2: LLM + RAG Tradicional"
    if not fluxo_multi_etapas:
        return "Estágio 3: Augmented LLM (Retrieval + Tools + Memory)"
    if dominios_distintos <= 1:
        return "Estágio 4/5: Agentic Workflow ou Autonomous Agent único"
    return "Estágio 6: Multi-Agent Collaboration (especialistas coordenados)"

print(recomendar_estagio(True, False, False, 1))
print(recomendar_estagio(True, True, True, 1))
print(recomendar_estagio(True, True, True, 3))
PY
Laboratório avançado · Qual a diferença prática entre Agentic Workflow e Autonomous Agent (Figura 1.9)?

No Agentic Workflow, o gatilho é uma meta pontual do usuário: o agente planeja subtarefas, executa ferramentas, usa memória/reflexão e encerra ao entregar o objetivo (Goal Achieved). Já o Autonomous Agent mantém um loop contínuo de percepção do ambiente/dados, aprendizado por feedback e autocorreção guiado por objetivos de longo prazo, agindo proativamente sem depender de um novo prompt humano a cada ciclo.

Entrega da etapa

Posicione seu projeto atual na escada de 6 estágios da Figura 1.7: em qual estágio ele nasce hoje (MVP) e qual estágio ele deve atingir nos próximos meses? Indique quais riscos de segurança ou alucinação surgem nessa transição.

Conexão com o livro · Capítulo 1 (págs. 12–15) · Progressing from LLMs to multi-agent systems (Figuras 1.7, 1.8 e 1.9).

Oficina 05 / 08

Protocolos de Interoperabilidade (MCP vs. A2A) e Simulador de Viabilidade

À medida que sistemas agênticos crescem, conectar cada agente a dezenas de APIs e a outros agentes de fornecedores diferentes vira um pesadelo de integrações sob medida. Como os padrões abertos MCP e A2A resolvem camadas diferentes desse problema?

Model Context Protocol (MCP): Agente ↔ Ferramentas e Dados (Figura 1.10)

Desenvolvido pela Anthropic como protocolo aberto, o Model Context Protocol (MCP) padroniza a conexão entre modelos/agentes e fontes de dados ou ferramentas externas — no modelo write-once, run-anywhere. Sua arquitetura cliente-servidor divide-se em 4 peças:

  • Host: a aplicação de IA ou IDE (ex.: Claude Desktop, VS Code, Kiro ou seu agente) que precisa acessar dados externos.
  • MCP Client: componente de protocolo dentro do host que mantém conexão 1:1 com um servidor MCP.
  • MCP Server: programa leve que expõe ferramentas, recursos e prompts de forma padronizada (na AWS, pode rodar em EKS/Lambda ou usar o Amazon Bedrock AgentCore MCP Server).
  • Data Sources: bancos de dados locais, sistemas de arquivos ou APIs Web remotas acessadas pelo servidor MCP.

Agent-to-Agent Protocol (A2A): Agente ↔ Agente (Figuras 1.11 e 1.12)

Desenvolvido originalmente pelo Google para descoberta e colaboração entre agentes independentes (construídos em frameworks diferentes como Strands, LangGraph ou CrewAI), o A2A permite que um agente orquestrador delegue tarefas a agentes remotos sem precisar conhecer o código interno deles. Cada agente remoto publica suas habilidades e protocolos em um arquivo JSON chamado Agent Card (em /.well-known/agent-card.json). Na AWS, o protocolo A2A é suportado nativamente no Amazon Bedrock AgentCore Runtime.

MCP vs. A2A: Complementares, Nunca Concorrentes (Figura 1.13)
DimensãoModel Context Protocol (MCP)Agent-to-Agent Protocol (A2A)
Papel PrincipalConecta agentes a ferramentas, APIs e fontes de dados (chamada de função / contexto).Habilita comunicação e delegação dinâmica entre agentes como pares.
Exemplo PráticoUm agente usa MCP para consultar uma API de previsão do tempo ou ler um banco SQL.Um agente de viagens usa A2A para pedir ao Agente de Voos que pesquise e reserve passagens.
RelacionamentoComplementar (camada agente-ferramenta).Complementar (camada agente-agente).

Simulador de Viabilidade e Custo Operacional de Agentes na AWS

Estime o ganho líquido mensal ao automatizar um fluxo com agentes no Amazon Bedrock / AgentCore considerando economia por atendimento, custo médio de tokens/APIs, custo fixo de infraestrutura e falhas que exigem revisão humana.

Código para experimentar (Estrutura de um Agent Card A2A em JSON)
{
  "name": "Travel Planner Agent",
  "description": "Orquestra roteiros de viagem combinando clima, voos e hotéis.",
  "url": "https://agents.garlucas.com.br/travel/",
  "version": "1.0.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false
  },
  "skills": [
    {
      "id": "plan_trip",
      "name": "Planejar Roteiro",
      "description": "Coordena agentes especialistas via A2A para montar o itinerário completo."
    }
  ]
}
Laboratório avançado · Por que não transformar outros agentes simplesmente em ferramentas MCP?

Embora seja possível encapsular um agente simples como ferramenta em alguns cenários internos (o padrão Agent as Tool que veremos na Etapa 3), protocolos como o A2A preservam a natureza assíncrona, multi-turno e opaca de agentes independentes mantidos por equipes ou empresas diferentes — permitindo streaming de progresso, negociação de tarefas longas e descoberta dinâmica via Agent Cards.

Entrega da etapa

No seu cenário, identifique o que deve ser exposto como servidor MCP (fontes de dados e ferramentas determinísticas) e o que faz sentido separar como um agente remoto via A2A. Registre também o resultado da sua simulação de viabilidade.

Conexão com o livro · Capítulo 1 (págs. 16–20) · Understanding agent protocols, MCP (Figura 1.10), A2A (Figuras 1.11 e 1.12) e MCP vs. A2A (Figura 1.13).

Oficina 06 / 08

Por Dentro do AWS Strands Agents SDK e do Agentic Loop

Em vez de escrever máquinas de estado gigantescas com dezenas de if/else para rotear ferramentas, o AWS Strands Agents SDK adota uma abordagem model-driven: você define o modelo, as ferramentas e o prompt — e o framework gerencia o loop agêntico.

Os 3 Componentes Centrais e os 11 Passos do Agentic Loop (Figura 1.14)

O AWS Strands Agents SDK é um SDK open-source agnóstico a provedores de LLM (suporta Amazon Bedrock, Anthropic direto e outros modelos) construído sobre três peças centrais: model, tools e prompt. Quando você envia uma instrução ao agente (ex.: “Write a short story about a robot who wants to be a painter”), a Figura 1.14 mostra o fluxo exato de 11 etapas sob o capô:

Anatomia dos 11 passos do Agentic Loop no AWS Strands SDK (Figura 1.14)
PassoAtorO que ocorre na execução
1Usuário → AgentInvoke Agent: o prompt entra no orquestrador central do Strands.
2–5Agent → ModelAgentic Loop / Invoke Model: o agente envia o prompt ao LLM, que gera resposta, raciocina e planeja os passos.
6ModelTool Selection: o modelo decide se precisa acionar alguma ferramenta externa (ex.: API de imagem) ou se basta texto.
7–8Agent → ToolExecute Tool & Return Result: se uma ferramenta foi selecionada, o Strands a executa e devolve o resultado ao agente.
9Agent ↔ ModelRe-invoke Model: o agente reenvia o contexto atualizado com o retorno da ferramenta; o loop repete quantas vezes forem necessárias.
10–11Agent → UsuárioReturn Final Response & Result: quando nenhuma nova ferramenta é necessária, o agente compila e entrega a resposta final.
Código para experimentar (Simulando o Agentic Loop de 11 passos do Strands)
# Visualização didática da lógica interna do Agentic Loop descrito na Figura 1.14
python3 - <<'PY'
def simular_agentic_loop(prompt_usuario: str, precisa_imagem: bool = False):
    print(f"1. [Invoke Agent] Prompt recebido: '{prompt_usuario}'")
    iteracao = 1
    contexto = [prompt_usuario]
    while True:
        print(f"2-5. [Invoke Model - Ciclo {iteracao}] Raciocinando sobre {len(contexto)} bloco(s) de contexto...")
        if iteracao == 1 and precisa_imagem:
            print("6. [Tool Selection] Modelo solicitou: ImageGenerationAPI")
            resultado_tool = "imagem_robo_pintor_v1.png"
            print(f"7-8. [Execute Tool -> Return Result] Retorno: {resultado_tool}")
            contexto.append(f"Arte gerada: {resultado_tool}")
            iteracao += 1
            continue
        print("9-11. [Return Final Response] Nenhuma nova tool necessária. Entregando resultado final.")
        return f"História concluída com sucesso! Contexto final: {contexto}"

print(simular_agentic_loop("Escreva uma história sobre um robô pintor e gere uma imagem.", precisa_imagem=True))
PY
Laboratório avançado · Qual a vantagem da abordagem model-driven do Strands sobre workflows rígidos?

Em frameworks rígidos, o desenvolvedor precisa prever cada transição possível entre passos. Na abordagem model-driven do Strands, a inteligência de raciocínio do próprio LLM (como Claude Sonnet/Haiku ou Amazon Nova) decide dinamicamente quais ferramentas chamar e em qual ordem, reduzindo o código de orquestração a poucas linhas enquanto preserva suporte nativo a guardrails, segurança de prompt e monitoramento.

Entrega da etapa

Descreva um fluxo de trabalho seu que exigiria pelo menos 2 voltas no Agentic Loop da Figura 1.14 (por exemplo: consultar um dado no ciclo 1, processar ou validar no ciclo 2 e só então responder no ciclo 3).

Conexão com o livro · Capítulo 1 (págs. 20–23) · Introducing AWS Strands SDK e Figura 1.14.

Oficina 07 / 08

Configurando o Ambiente: Amazon SageMaker Studio, IAM e IDE Local

Antes de rodar o primeiro agente, você precisa alinhar três peças essenciais: Python 3.10+, acesso habilitado aos modelos no Amazon Bedrock e permissões IAM corretas — escolhendo entre o Amazon SageMaker Studio ou sua IDE local.

Pré-requisitos de Conta, Modelos e Permissões IAM

De acordo com a página 23 do Capítulo 1, sua conta AWS (seja na execution role do SageMaker Studio ou no usuário/role usado localmente via aws configure) precisa de acesso aos modelos no console do Bedrock (Bedrock → Model access, habilitando modelos como Nova Lite, Nova Pro ou Claude) e, no mínimo, das seguintes ações IAM:

  • bedrock:InvokeModel e bedrock:InvokeModelWithResponseStream (chamadas síncronas e em streaming aos Foundation Models);
  • sagemaker:InvokeEndpoint (para modelos hospedados em endpoints do Amazon SageMaker);
  • s3:GetObject e s3:PutObject (leitura e gravação de dados e artefatos);
  • bedrock-agentcore:* (necessário para os deploys gerenciados no AgentCore na Etapa 4).
Comparativo de Setup: Amazon SageMaker Studio vs. IDE Local (Tabela 1.2)
RequisitoAmazon SageMaker Studio (Recomendado)IDE Local (VS Code, PyCharm ou Kiro)
Credenciais AWSAutomáticas via execution role do domínio.Configuradas via aws configure ou variáveis de ambiente.
Permissões IAMAnexadas diretamente à execution role do Studio.Anexadas ao usuário IAM ou role assumida localmente.
Acesso aos Modelos BedrockHabilitar no console do serviço Amazon Bedrock.Habilitar no console do serviço Amazon Bedrock.
Pacotes Pythonpip install direto nas células do notebook.pip install no ambiente virtual local (venv).

Passo a Passo no Amazon SageMaker Studio (Figuras 1.15 e 1.16)

  1. No console do Amazon SageMaker AI, acesse Domains no menu lateral e abra seu domínio.
  2. Em Applications and IDEs, selecione Studio; na aba User profiles, localize seu perfil e clique em Launch → Studio.
  3. Inicie um espaço JupyterLab com instância ml.t3.medium e abra o terminal do JupyterLab.
  4. Clone o repositório oficial do livro e instale o Strands SDK conforme os comandos abaixo, lembrando de reiniciar o kernel após a instalação.
Comandos reais do Capítulo 1 (Clonagem do repositório e instalação do Strands SDK)
# 1. No terminal do JupyterLab (SageMaker Studio) ou no terminal local:
git clone https://github.com/PacktPublishing/Agents-on-AWS
cd Agents-on-AWS

# 2. Crie um ambiente virtual local (se estiver no VS Code / Kiro) e instale o SDK:
python3 -m venv .venv
source .venv/bin/activate
pip install strands-agents -q

# Ou, dentro de uma célula do notebook no SageMaker Studio:
# !pip install strands-agents -q
# (Em seguida, reinicie o kernel antes de importar strands)
Laboratório avançado · Política IAM mínima sugerida para começar sem usar AdministratorAccess

Em ambientes corporativos ou de estudo seguro, evite anexar AdministratorAccess à sua role de desenvolvimento. Crie uma política dedicada contendo apenas bedrock:InvokeModel, bedrock:InvokeModelWithResponseStream (para foundation-model/* e inference-profile/*), sagemaker:InvokeEndpoint e acesso restrito ao bucket S3 do projeto (s3:GetObject, s3:PutObject). Na Etapa 4 veremos como o bedrock-agentcore também se integra a esse princípio de menor privilégio.

Entrega da etapa

Documente o ambiente que você preparou para acompanhar as próximas etapas: você rodará no Amazon SageMaker Studio (ml.t3.medium) ou em uma IDE local (VS Code / Kiro)? Confirme a região AWS padrão (ex.: us-east-1) e os modelos já habilitados no Amazon Bedrock.

Conexão com o livro · Capítulo 1 (págs. 23–25) · Pré-requisitos IAM, Tabela 1.2 e Setting up your environment in Amazon SageMaker Studio (Figuras 1.15 e 1.16).

Oficina 08 / 08

Seu Primeiro Agente “Hello World” com Strands SDK e Amazon Bedrock

Com o ambiente configurado, quantas linhas de Python são necessárias para colocar um agente funcional conectado ao Amazon Bedrock? Apenas três — e a partir delas você já pode personalizar o modelo fundacional e o comportamento via system_prompt.

Do Código Mínimo do Livro à Especificação Explícita de Modelo

Na página 26 do livro, os autores apresentam o exemplo mínimo com a classe Agent do pacote strands. Por padrão, quando nenhum modelo é passado, o Strands utiliza o provedor Amazon Bedrock com um modelo padrão (que pode variar conforme a região e disponibilidade na sua conta). Por isso, para garantir reprodutibilidade em produção e evitar erros de modelo não habilitado, é boa prática declarar explicitamente o ID do modelo (ou usar um system_prompt direcionado).

Código do Capítulo 1 + Versão com Modelo Explícito e System Prompt
# Exemplo 1: Código mínimo do Capítulo 1 (pág. 26)
from strands import Agent

# Define o agente com system prompt padrão
agent = Agent()

# Interage com o agente
response = agent("Explain Amazon Bedrock Agents")
print(response)

# ------------------------------------------------------------------
# Exemplo 2: Especificando explicitamente o modelo e o papel do agente
# (Recomendado para garantir disponibilidade na sua região AWS)
from strands import Agent

agente_arquiteto = Agent(
    model="us.anthropic.claude-sonnet-4-20250514-v1:0",
    system_prompt=(
        "Você é um arquiteto especialista em AWS. "
        "Responda em português brasileiro de forma objetiva e prática."
    )
)

resposta = agente_arquiteto("Explique a diferença entre Amazon Bedrock e SageMaker AI para agentes.")
print(resposta.message["content"][0]["text"])
O que vem a seguir na Etapa 2: este primeiro agente já raciocina e responde usando o Amazon Bedrock, mas ainda é apenas conversacional — ele não consegue ler arquivos, consultar bancos nem chamar APIs externas. Na Etapa 2 (Capítulos 2 e 3), vamos dar “mãos” a ele com o decorator @tool e “memória” persistente com LangGraph, Mem0 e Amazon Bedrock AgentCore Memory.
Laboratório avançado · Erro comum ao rodar o Hello World: AccessDeniedException ou ModelNotFound

Se ao executar agent(...) você receber AccessDeniedException, verifique duas coisas: 1) se o modelo usado (ou o padrão do Strands na sua região) está habilitado no console do Amazon Bedrock em Model access; e 2) se a sua política IAM inclui tanto o ARN direto (arn:aws:bedrock:*::foundation-model/*) quanto o perfil de inferência cross-region (arn:aws:bedrock:*:<ACCOUNT_ID>:inference-profile/*), já que IDs iniciados por us. ou global. são inference profiles.

Entrega da etapa

Adapte o código do seu primeiro agente “Hello World” definindo o system_prompt específico para o domínio do seu projeto e anote qual modelo do Amazon Bedrock respondeu melhor aos seus testes iniciais.

Conexão com o livro · Capítulo 1 (pág. 26) · Creating a simple agent com AWS Strands SDK.

Síntese e Avaliação

Projeto da Etapa 1 e Caderno de Arquitetura

Consolide suas decisões sobre RAG vs. Agentes, AWS Agentic Stack, protocolos MCP/A2A e ambiente Strands SDK, valide seus critérios nas decisões de arquitetura e baixe o resumo em texto.

Resumo das suas anotações nas 8 oficinas

Salvamento automático local ativado neste navegador.

Decisões de Arquitetura — Teste seu Domínio do Capítulo 1

1. Um sistema precisa responder perguntas sobre manuais em PDF e também consultar uma API de estoque em tempo real para decidir se cria um pedido. Qual abordagem do Capítulo 1 atende ao caso?
2. Você treinou e ajustou (fine-tuning) um modelo específico para o seu setor no Amazon SageMaker AI, mas quer usá-lo com a API unificada e os recursos gerenciados do Amazon Bedrock. Qual recurso do stack resolve isso?
3. Como os protocolos MCP e A2A se relacionam em uma arquitetura corporativa de agentes?
4. Ao rodar seu primeiro agente com Strands SDK usando um modelo cross-region do Bedrock (ID começando com us.), qual cuidado de IAM evita erros de AccessDenied?

Checklist de Domínio da Etapa 1

Próximo Passo da Trilha · Etapa 2 de 4

Etapa 2: Ferramentas e Memória (Capítulos 2 e 3)

Dê superpoderes ao seu agente criando tools customizadas com @tool, ferramentas assíncronas e memória de curto/longo prazo com LangGraph, Mem0 e Amazon Bedrock AgentCore Memory.

Avançar para a Etapa 2 →
Referência Bibliográfica e Repositório Oficial

KAUSHIK, Bunny; MONA, M. AI Agents on AWS: Beginner's guide to building AI agents on AWS. Birmingham: Packt Publishing, 2026 (ISBN 978-1-80638-721-2). Capítulo 1: Understanding AI Agents on AWS (págs. 1–27). Repositório oficial de notebooks: github.com/PacktPublishing/Agents-on-AWS.