
A internet é imensa e não para de crescer. Em meados de 2025, ela já abriga mais de 1,25 bilhão de sites e gera cerca de 149 zettabytes de dados por ano. Mais da metade de todo o tráfego hoje vem de bots — muitos deles maliciosos. Nesse cenário, ajudar empresas a proteger sua presença digital nunca foi tão importante.
Na DoiT, trabalhamos com um cliente especializado em Attack Surface Management (ASM) para explorar como a IA atual pode automatizar e escalar partes desse processo. O objetivo: um agente capaz de navegar pela web, analisar os ativos expostos do cliente e identificar potenciais vulnerabilidades — tudo rodando na AWS.
Desenhando a solução
Arquitetamos um sistema sobre o Amazon Bedrock e o Strands Agents, combinando modelos de raciocínio, automação de browser, retrieval-augmented generation e observabilidade completa em produção.
Os principais componentes da AWS foram:

E veja como eles se encaixam:

Vamos nos aprofundar em cada um deles nas próximas seções!
Modelos de raciocínio e framework do agente
Vamos começar pela base: como o agente "pensa". O AWS Bedrock dá acesso fácil a modelos avançados de raciocínio, como a família Nova, da Amazon, os modelos Claude, da Anthropic, e vários modelos open source, como Mistral, DeepSeek e Llama. Esses modelos já suportam raciocínio no estilo chain-of-thought, permitindo que o agente produza etapas intermediárias de "pensamento" antes de chegar a conclusões e tomar ações. Essa capacidade de raciocínio é essencial, porque cada ação de navegação e cada observação se apoiam na anterior.
Para a orquestração, o Strands Agents entrega uma abstração elegante sobre o loop do agente: na essência, um ciclo de raciocínio, uso de ferramentas e geração de respostas. Ele se integra de forma fluida aos modelos do Bedrock e oferece primitivas prontas para produção para estado de sessão, coordenação multiagente e gerenciamento de contexto.
Veja um pequeno trecho de código do agente para você ter uma ideia de como o Strands simplifica o desenvolvimento:

Esse loop permite que o agente navegue de forma autônoma, raciocine sobre os achados e mantenha o estado entre as etapas.
Agindo por meio de ferramentas e MCP
Mas raciocinar não basta — o agente precisa interagir com o mundo.
O ferramental foi habilitado pelo Model Context Protocol (MCP), um padrão aberto que conecta LLMs a sistemas externos. Cada servidor MCP expõe um catálogo de "ferramentas" com definições e schemas claros, que o agente pode invocar dinamicamente em tempo de execução.
Para o nosso caso de uso, combinamos três fontes de ferramentas:
- retrieve: para consultas semânticas no banco de vulnerabilidades.
- Playwright MCP: para navegação na web e interação com sites.
- Filesystem MCP: para armazenamento persistente simples e logging.
Enquanto desenvolvíamos o projeto, em agosto de 2025, a AWS anunciou o AgentCore , que já vem com sua própria Browser Tool, eliminando a necessidade de gerenciar nossa própria infraestrutura do Playwright. Ela oferece um ambiente de browser totalmente gerenciado e isolado, com integração ao IAM e observabilidade via CloudTrail — e se encaixou direitinho no código existente:

A modularidade do Strands tornou trivial a migração de um ferramental de browser auto-hospedado para um serviço gerenciado mais seguro e escalável.
Grounding com Bedrock Knowledge Bases
Para que o agente raciocinasse com dados do mundo real, fizemos o grounding usando o banco de dados do CVE™ Program , um repositório de vulnerabilidades conhecidas.
Com o Amazon Bedrock Knowledge Bases, subimos o dataset CVE, e a AWS automaticamente o fragmentou, gerou os embeddings e o indexou no OpenSearch Serverless, pronto para consulta.
A ferramenta retrieve permitiu que o agente consultasse esse vector store em tempo de execução, fornecendo conhecimento atualizado sobre vulnerabilidades relevantes para cada ativo de cliente que íamos encontrando. O pipeline gerenciado de ingestão e recuperação do Bedrock Knowledge Bases poupou um esforço de engenharia considerável em comparação com criar um fluxo RAG do zero.
Implantando o agente na AWS
Depois de validar o protótipo localmente, levamos a solução para produção usando dois runtimes gerenciados:
1. AWS Fargate
Uma implantação containerizada empacotada via Docker e orquestrada com o AWS CDK. Essa configuração ofereceu controle total sobre escalabilidade e rede, sendo ideal quando você quer mais controle ou tem dependências especializadas (como os servidores MCP).
2. Amazon Bedrock AgentCore
O AgentCore traz uma abstração ainda mais alta: você define o agente e a configuração, e a AWS executa para você.
Com alguns ajustes no código — basicamente trocar o armazenamento em filesystem pelo sistema de estado do Strands — o mesmo agente passou a rodar de forma totalmente gerenciada, sem precisar configurar CDK ou VPC, bastando usar agentcore configure e agentcore launch do starter kit do Agentcore. Para iteração rápida e o mínimo de overhead operacional, essa abordagem foi imbatível.
Observabilidade e avaliação
Monitorar o comportamento do agente é tão importante quanto desenhá-lo.
Para times que preferem analytics externo, o LangFuse se conecta sem esforço via OpenTelemetry, mostrando uma timeline detalhada de loops, chamadas a modelos e invocações de ferramentas. Isso te dá uma ótima visão passo a passo do que o agente está "pensando" e de quais ferramentas ele escolhe usar — algo crucial para debugging e melhoria contínua.
Depois do lançamento do AgentCore, a AgentCore Observability também ficou disponível, integrando-se de forma fluida ao CloudWatch , que agora conta com um dashboard de GenAI Observability, capturando traces, métricas e logs em cada invocação. Os desenvolvedores podem visualizar uso de tokens, taxas de erro e inspecionar sessões, transformando a caixa-preta do raciocínio dos LLMs em dados mensuráveis.
Monitore os gastos do seu agente com o DoiT Cloud Intelligence
Não por acaso ligado à observabilidade, entender o impacto de custo antes de subir para produção também precisa estar entre as suas prioridades.
Na DoiT, lançamos o GenAI Lens, parte da nossa plataforma DoiT Cloud Intelligence™, para te ajudar a analisar os padrões de gastos de workloads de IA generativa.
Ele se integra diretamente ao Amazon Bedrock, além da Anthropic e da OpenAI, dando visibilidade sobre quais modelos e workloads estão puxando os seus custos.
Para análises mais profundas, o DataHub permite incorporar a ingestão de dados direto na sua aplicação. Com labels e dashboards personalizados, dá para acompanhar custos por domínio ou cliente — e até calcular um custo por vulnerabilidade encontrada, transformando insights de segurança em ROI mensurável.
O que vem por aí
Da ingestão de dados ao raciocínio e à observabilidade, o ecossistema da AWS ofereceu todos os blocos para tirar esse agente autônomo de ASM do papel — com segurança, escalabilidade e o mínimo de gestão de infraestrutura, especialmente agora que o AgentCore está em GA.
Rodamos testes em testphp.vulnweb.com, que mostraram que nosso sistema consegue detectar cenários de SQL Injection, XSS Refletido e Armazenado, Authentication Bypass e até de comprometimento ativo do site. Esses resultados validaram que o agente consegue, de forma autônoma, percorrer fluxos web, injetar payloads, interpretar evidências de execução e correlacionar os resultados com o banco de dados CVE — tudo com mínima supervisão humana. Além da precisão técnica, ficou clara a vantagem de unir raciocínio autônomo a recuperação em tempo real e observabilidade, transformando varreduras brutas de vulnerabilidades em inteligência estruturada e explicável.
Há mais caminhos a explorar: refinar as capacidades de relatório, avaliar a performance em benchmarks conhecidos e integrar outros bancos de dados de vulnerabilidades. Mas, mesmo no formato atual, este projeto já mostra como AWS Bedrock + Strands Agents conseguem traduzir a promessa da IA generativa em valor operacional para a cibersegurança.
Todo o código-fonte e os detalhes de implementação estão disponíveis no GitHub, e há uma versão estendida aqui.
—
Vamos juntos descomplicar a sua jornada de FinOps: fale com a gente em doit.com/services!