Amazon Bedrock AgentCore Harness está disponível para todos: de ideia a agente em produção em minutos

O problema que o AgentCore Harness resolve

Existe uma definição de agente de Linguagem de Modelo Grande (LLM, do inglês Large Language Model) que ficou famosa na comunidade: um agente LLM executa ferramentas em loop para atingir um objetivo. Simples assim. E é exatamente isso que Kiro, Amazon Q Developer, Codex e Claude Code fazem por baixo dos panos — todos rodam a mesma estrutura de loop.

O problema nunca foi o loop em si. Foi tudo ao redor dele. Escolher um framework, conectar ferramentas, provisionar ambientes isolados, configurar armazenamento, segredos e rede, decidir onde a memória vive, adicionar observabilidade, empacotar dependências no contêiner certo. Um desenvolvedor consegue subir um agente no laptop em uma tarde. Mas levar isso para produção é onde o trabalho explode — especialmente quando o agente precisa atender mais de um usuário ao mesmo tempo: concorrência, isolamento, identidade, estado e escalonamento entram em cena de uma vez.

Pior ainda: esse overhead se repetia a cada novo caso de uso. Trocar de modelo, adicionar uma ferramenta, apontar o agente para um novo domínio — tudo exigia refazer o mesmo encanamento. O gargalo não era inteligência. Era orquestração e infraestrutura.

O AgentCore Harness foi criado para resolver exatamente isso. Os primitivos do AgentCore (Runtime, Memory, Gateway, Browser, Identity, Observability) já existiam. O harness é a camada que conecta tudo isso automaticamente, transformando o que antes era código em configuração.

O que é o AgentCore Harness na prática

O harness é tudo que um agente precisa para rodar em produção, exposto por duas chamadas de API: CreateHarness para definir o agente e InvokeHarness para executá-lo. Você aponta para o modelo, as ferramentas, as habilidades e as instruções desejadas. O AgentCore cuida do ambiente isolado, da memória, do armazenamento, da identidade e da observabilidade.

O agente roda em seu próprio ambiente isolado com sistema de arquivos e shell, podendo ler arquivos, executar comandos e escrever código com segurança. Ele lembra usuários e conversas entre sessões, carrega habilidades sob demanda, navega na web, chama ferramentas via Gateway ou MCP (Protocolo de Contexto de Modelo, do inglês Model Context Protocol), e troca de provedor de modelo no meio de uma sessão sem perder contexto. Cada etapa é transmitida em tempo real e rastreada automaticamente no CloudWatch.

Capacidades principais do Harness

Qualquer modelo, com troca a qualquer momento

Tarefas diferentes pedem modelos diferentes. A AWS atendeu a pedidos de clientes que queriam planejar com um modelo, executar com outro, ou migrar de provedor para testes de custo-benefício — tudo sem perder a conversa. O modelo padrão é definido no CreateHarness e pode ser sobrescrito em qualquer chamada individual de InvokeHarness.

Os provedores suportados são: bedrock para qualquer modelo no Amazon Bedrock (Anthropic Claude, Amazon Nova, Meta Llama, DeepSeek, Qwen, Kimi, MiniMax, Cohere, Mistral e, mais recentemente, OpenAI GPT-5.5 e GPT-5.4 no Bedrock); openAi para acesso direto à API da OpenAI; gemini para o Google Gemini; e liteLlm para qualquer provedor terceiro suportado pelo LiteLLM, incluindo Anthropic direto, Cohere, Mistral, Vertex e Azure OpenAI.

Chaves de API de provedores externos ficam armazenadas com segurança no cofre de tokens do AgentCore Identity. O agente nunca acessa credenciais brutas.

Ferramentas como configuração

Ferramentas são como o agente afeta o mundo além do próprio raciocínio. O harness permite declarar o que o agente pode usar e cuida da conexão, autenticação e execução automaticamente. Os tipos disponíveis são:

  • agentcore_gateway: referencia um AgentCore Gateway por ARN (Nome de Recurso da Amazon, do inglês Amazon Resource Name). Cada alvo exposto pelo gateway (OpenAPI, Smithy, Lambda, MCP) vira uma ferramenta, com autenticação IAM/JWT e controle por ferramenta.
  • remote_mcp: conexão direta a qualquer servidor MCP por URL, útil quando o servidor já está seguro e não precisa da camada de governança do Gateway.
  • agentcore_browser: um sandbox completo de navegador em uma linha de configuração — clique, digitação, navegação e captura de tela.
  • agentcore_code_interpreter: execução isolada de Python e Node, no mesmo padrão de uma linha.
  • inline_function: um esquema de ferramenta que o harness emite como evento no stream e aguarda resposta, útil para aprovações humanas no loop ou ferramentas que precisam rodar do lado do cliente.

Cada sessão também recebe automaticamente shell integrado e operações de arquivo, sem precisar listá-los explicitamente.

"tools": [
  { "type": "agentcore_browser" },
  { "type": "agentcore_code_interpreter" },
  {
    "type": "remote_mcp",
    "name": "X_tool",
    "config": {
      "remoteMcp": {
        "url": "https://mcp.X_tool/mcp"
      }
    }
  },
  {
    "type": "agentcore_gateway",
    "name": "Y_tool",
    "config": {
      "agentCoreGateway": {
        "arn": "arn:aws:bedrock-agentcore:..."
      }
    }
  }
]

Memória integrada por padrão

Clientes querem que o agente reconheça um usuário que retorna, retome a conversa de onde parou e lembre preferências sem reproduzir o histórico inteiro. Na versão de prévia, era preciso provisionar um recurso de memória separado e passar o ARN. Na versão geral, omitir a configuração de memória no CreateHarness já provisiona uma memória gerenciada automaticamente, com padrões sensatos: estratégias SEMANTIC + SUMMARIZATION, expiração de eventos em 30 dias, criptografia gerenciada pela AWS e isolamento multi-tenant por padrão.

As três opções de configuração de memória são:

// Memória gerenciada automática
"memory": {
  "managedMemoryConfiguration": {
    "strategies": ["SEMANTIC", "SUMMARIZATION"],
    "eventExpiryDuration": 30
  }
}

// Trazer memória existente (BYO)
"memory": {
  "agentCoreMemoryConfiguration": {
    "arn": "arn:aws:bedrock-agentcore:..."
  }
}

// Agente sem estado
"memory": {
  "disabled": {}
}

A memória gerenciada é automática, mas não é opaca: é um recurso AWS real e endereçável que pode ser consultado, anexado a outro agente, auditado ou entregue a um pipeline de análise.

Habilidades: conhecimento especializado sob demanda

Habilidades são pacotes de arquivos, scripts e instruções que ensinam o agente a lidar com tarefas específicas antes de tentar executá-las — como formatar um relatório Excel, abrir um ticket no JIRA do jeito que o time faz, ou seguir procedimentos recomendados da AWS para acessar dados. O harness carrega os metadados da habilidade e puxa o conteúdo completo para o contexto apenas quando a tarefa realmente exige.

O tipo HarnessSkill é uma union com quatro fontes:

  • awsSkills: ativa o pacote de habilidades curado pela AWS sem nenhuma configuração adicional.
  • git: clona um repositório público ou privado via HTTPS, fixado em um commit ou branch.
  • s3: puxa um pacote de habilidades do seu próprio bucket do Amazon S3.
  • path: referencia um caminho já existente no contêiner que você trouxe.
"skills": [
  { "awsSkills": {*} },
  {
    "git": {
      "uri": "https://github.com/anthropics/skills",
      "path": "document-skills/xlsx"
    }
  },
  {
    "s3": {
      "uri": "s3://my-bucket/skills/team-sops/"
    }
  }
]

O grande desbloqueio para quem constrói na AWS: o repositório de habilidades AWS traz habilidades curadas cobrindo toda a superfície AWS — desde habilidades centrais (uso do SDK, Infraestrutura como Código (IaC), Gerenciamento de Identidade e Acesso AWS (IAM), Amazon CloudWatch e Amazon Bedrock) até fluxos de trabalho específicos para analytics, bancos de dados, Amazon EC2, rede, segurança, serverless e armazenamento. O toggle awsSkills ativa tudo isso sem URL, sem busca de rede — as habilidades já estão embutidas no runtime do harness.

aws bedrock-agentcore-control create-harness \
  --harness-name myAgent \
  --skills '[{"awsSkills": {}}]'

# OU com escopo para pacotes específicos
aws bedrock-agentcore-control create-harness \
  --harness-name myAgent \
  --skills '[{"awsSkills": {"paths": ["core-skills/*", "specialized-skills/operations-skills/*"]}}]'

Ambiente e sistema de arquivos

A maioria dos agentes roda bem no ambiente padrão do harness, que inclui Python e bash. Quando é preciso mais — uma dependência privada, uma versão específica de runtime, uma ferramenta de linha de comando, ou persistência entre sessões — dois controles permitem moldar o ambiente:

Imagem de contêiner: Empacote código-fonte, dependências e ferramentas em um contêiner customizado, envie para o Amazon ECR (Registro de Contêiner Elástico, do inglês Elastic Container Registry) e referencie no CreateHarness. Pode ser combinado com InvokeAgentRuntimeCommand, uma API que executa comandos shell diretamente dentro da microVM da sessão para configurações que variam por invocação.

Sistema de arquivos: O harness oferece três opções com diferentes características de alcance e persistência:

  • Armazenamento de sessão gerenciado: persiste entre ciclos de parada/retomada da mesma sessão.
  • Ponto de acesso Amazon EFS (Sistema de Arquivos Elástico, do inglês Elastic File System): compartilhável entre múltiplos harnesses e sessões, requer VPC (Nuvem Privada Virtual, do inglês Virtual Private Cloud).
  • Ponto de acesso Amazon S3 Files: durabilidade total do S3, versionamento e histórico, acessível por operações de arquivo padrão com sincronização automática com o bucket.

Observabilidade unificada

Quando algo dá errado, clientes querem saber em um único lugar o que o agente executou, o que chamou, onde ficou lento e onde falhou. Uma invocação típica do harness atravessa Runtime + Memory + Gateway + ferramentas integradas, e montar esse quadro costumava exigir abrir cinco abas diferentes.

Na versão geral, cada página de harness no console do AgentCore exibe um widget único de observabilidade com um resumo agregado de todos os primitivos tocados. O CloudWatch GenAI Observability ganhou uma aba dedicada para Harnesses, permitindo navegar de um harness para uma sessão, e de uma sessão para um trace individual — com logs de cada primitivo (memória, gateway, browser, interpretador de código) exibidos inline no span correto.

Avaliação e otimização contínua

Depois que o agente está em produção, a pergunta muda de “funciona?” para “está melhorando?”. Dois recursos fecham esse ciclo:

AgentCore Evaluations pontua traces do harness com avaliadores LLM-como-juiz integrados (utilidade, fidelidade, segurança) ou com avaliadores customizados. Podem rodar online (pontuando cada sessão em tempo real), sob demanda para um trace específico, em lote sobre traces históricos, contra um dataset fixo de testes, ou como simulação com usuários sintéticos.

AgentCore optimization lê essas pontuações e gera recomendações de prompt e descrição de ferramentas, depois valida essas mudanças roteando tráfego real entre duas variantes via AgentCore Gateway, com pontuação por sessão e relatório de significância estatística. Variantes podem ser diferentes versões de um bundle de configuração no mesmo runtime, ou versões apontando para endpoints diferentes — permitindo testes A/B de prompts sem reimplantar código.

Versionamento e rollback instantâneo

Cada UpdateHarness cria uma versão imutável capturando a configuração completa (modelo, prompt de sistema, ferramentas, configuração de memória, habilidades, ambiente, limites de execução). Rollback é simplesmente apontar o endpoint para uma versão anterior:

# Criar endpoint PROD fixado na versão 2
aws bedrock-agentcore-control create-harness-endpoint \
  --harness-id my-harness-xxx --endpoint-name PROD --harness-version 2

# Promover versão 5 para PROD (ou fazer rollback para versão 4)
aws bedrock-agentcore-control update-harness-endpoint \
  --harness-id my-harness-xxx --endpoint-name PROD --harness-version 5

O endpoint DEFAULT avança automaticamente a cada atualização. Endpoints nomeados (PROD, STAGING) ficam fixos até promoção explícita.

Exportar para código quando a configuração não é suficiente

Quando um caso de uso supera o que a configuração oferece — orquestração customizada, coordenação multi-agente, instrumentação profunda — um único comando CLI exporta o harness como código baseado em Strands, que pode ser hospedado no AgentCore Runtime ou em qualquer outro lugar:

agentcore export harness --name myHarness-6dk4df --output ./my-agent

O projeto exportado preserva modelo, prompt, ferramentas, memória, habilidades e ambiente de contêiner. É uma tradução de configuração para código, não uma troca de arquitetura. Strands é o primeiro alvo de exportação; o Claude Agent SDK está chegando em breve.

Integrações adicionais

A AWS também anunciou duas adições notáveis:

  • Integração com AWS Step Functions: uma invocação de harness agora é um estado de primeira classe no Step Functions. No Workflow Studio, basta buscar por AgentCore InvokeHarness e arrastar para o fluxo de trabalho.
  • Web Search no AgentCore: disponível para agentes harness via AgentCore Gateway. Um tipo de ferramenta agentcore_web_search nativo está chegando em breve, seguindo o padrão de uma linha do browser e do interpretador de código.

Exemplos práticos de uso

A AWS ilustrou três casos de uso concretos que equipes montavam manualmente antes do harness:

Agente de pesquisa e escrita: busca na web, navega em fontes, redige um documento e entrega arquivos xlsx ou pptx reais, com memória persistindo entre sessões. Configuração mínima: CreateHarness com agentcore_browser como ferramenta, um alvo de Gateway expondo Web Search, e uma habilidade git apontando para o bundle de document-skills. Memória ativa por padrão.

Agente de dados e analytics AWS para a equipe: puxa dados de Amazon Athena, AWS Glue, Amazon S3, Amazon Redshift e Amazon CloudWatch, roda análises e entrega resumos ou gráficos, seguindo procedimentos recomendados da AWS para cada serviço. Configuração mínima: skills: [{"awsSkills": {}}], um executionRoleArn com escopo adequado, e opcionalmente agentcore_code_interpreter para análise em Python.

Agente de codificação: lê a base de código, planeja uma mudança, escreve, roda os testes e abre um pull request, com troca de modelo no meio da sessão sem perder contexto. Configuração mínima: contêiner customizado com repositório e toolchain enviado ao Amazon ECR, mais um alvo de Gateway conectado ao GitHub (ou GitLab/Bitbucket interno). Operações git determinísticas podem ser executadas diretamente via InvokeAgentRuntimeCommand, sem passar pelo modelo.

Modelo de preços: pague pelo que usar

Não há taxa adicional pelo harness. O pagamento é pelos recursos subjacentes com base no consumo real:

  • Compute do Runtime: precificação por consumo ativo — US$ 0,0895 por vCPU-hora, US$ 0,00945 por GB-hora. Cobra apenas quando a CPU está efetivamente em uso.
  • Browser e Code Interpreter: mesmo modelo de consumo ativo.
  • Gateway: por mil invocações e por mil consultas de busca.
  • Memory: por mil eventos de curto prazo, por mil registros de longo prazo por mês, por mil recuperações.
  • Observabilidade: preços padrão do Amazon CloudWatch para spans, logs e métricas.
  • Inferência de modelo: cobrado pelo Amazon Bedrock ou pelo provedor terceiro nas tarifas padrão deles.

Detalhes completos estão disponíveis na página de preços do AgentCore.

Disponibilidade e como começar

O Amazon Bedrock AgentCore Harness está disponível hoje em todas as regiões AWS onde o AgentCore está disponível. Para começar:

# CLI (caminho mais rápido)
npm install -g @aws/agentcore@preview
agentcore create --name myresearchagent --model-provider bedrock
agentcore deploy
agentcore invoke "Plan a 5-day Tokyo itinerary with daily budgets and reservation links."

# SDK
import boto3, uuid
control = boto3.client("bedrock-agentcore-control", region_name="us-west-2")
data = boto3.client("bedrock-agentcore", region_name="us-west-2")

# 1. Definir
harness = control.create_harness(
  harnessName="MyAgent",
  executionRoleArn="arn:aws:iam::123456789012:role/MyAgentRole"
)

# 2. Invocar
session_id = str(uuid.uuid4()).ljust(33, "0")  # deve ter no mínimo 33 caracteres
response = data.invoke_harness(
  harnessArn=harness["harnessArn"],
  runtimeSessionId=session_id,
  messages=[{"role": "user", "content": [{"text": "Plan a 5-day Tokyo itinerary."}]}]
)
for event in response["stream"]:
  print(event)

Recursos adicionais para aprofundamento: guia de início rápido, exemplos no GitHub, visão geral do AgentCore Harness, modelos e instruções, habilidades, memória, ambiente e sistema de arquivos, observabilidade e controles de custo, versionamento e endpoints, exportar para código, segurança e controles de acesso, Harness vs Runtime, API CreateHarness e API InvokeHarness.

Fonte

Amazon Bedrock AgentCore harness is now generally available: Go from idea to production-grade agent in minutes (https://aws.amazon.com/blogs/machine-learning/amazon-bedrock-agentcore-harness-is-now-generally-available-go-from-idea-to-production-grade-agent-in-minutes/)

Comments

Leave a Reply

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