Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Moretes Architect MCP
  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

Blog/Artigo
RSSMarkdownLLMs
IA & AgentesComparativo

Agentic RAG na AWS: Comparativo de Arquiteturas para Ambientes Financeiros

13 de jun. de 2026 8 minEspecialista Com apoio de IA000 visualizações00 reproduções
Ouvir artigo

17:48 · voz do Fernando

Quando o Google Research publicou sua análise sobre Agentic RAG confiável para plataformas enterprise, o sinal que captei não foi sobre modelos, foi sobre orquestração, governança e onde a responsabilidade de controle deve residir na pilha. Em ambientes financeiros onde cada chamada de LLM precisa ser auditável, cada falha de recuperação precisa ser rastreável e cada dólar de inferência precisa ser justificável, a escolha da arquitetura de orquestração de agentes não é detalhe de implementação: é decisão arquitetural de primeira classe. Tenho quatro candidatos sérios na AWS e vou colocá-los frente a frente.

O Problema Real: Por Que RAG Simples Não Basta em Finanças

RAG clássico, embed, retrieve, generate, resolve o problema de conhecimento estático, mas quebra em três dimensões críticas para ambientes financeiros. Primeiro, raciocínio multi-hop: uma consulta como "qual é a exposição consolidada de crédito do cliente X considerando derivativos e posições em aberto de T-2?" exige múltiplos passos de recuperação com dependências entre eles, não uma única busca vetorial. Segundo, uso de ferramentas: calcular VaR, consultar um sistema de limites de crédito ou acionar uma API de preços em tempo real são ações, não documentos, e RAG simples não tem mecanismo de ação. Terceiro, rastreabilidade regulatória: em BACEN, CVM ou SEC, a cadeia de raciocínio que levou a uma recomendação ou decisão automatizada precisa ser reconstituível, não apenas o output final.

Agentic RAG resolve esses três problemas introduzindo um loop de planejamento-execução-observação (ReAct, MRKL ou variantes) onde o agente decide dinamicamente quais ferramentas invocar, em que ordem, e quando a resposta é suficientemente boa para encerrar. O custo dessa capacidade é complexidade operacional: loops de agente introduzem não-determinismo, latência variável, risco de loops infinitos e superfície de ataque expandida. A escolha arquitetural central é onde esse loop vive e quem o controla: e é exatamente aí que as quatro abordagens divergem de forma material.

Os Quatro Candidatos: Identidade Arquitetural de Cada Um

Opção A: Bedrock Agents nativo: O agente vive completamente dentro do Bedrock. A AWS gerencia o loop ReAct, o roteamento de ferramentas (Action Groups via Lambda), a memória de sessão e a integração com Knowledge Bases (OpenSearch Serverless como backend vetorial). O operador define o prompt de instrução, as definições de ferramentas em OpenAPI schema e as guardrails. Latência de orquestração fica em torno de 800ms–1.5s por step de raciocínio para Claude 3 Sonnet, com cobrança por token de entrada/saída mais overhead de orquestração.

Opção B: LangGraph + EKS: O loop de agente roda em Python dentro de pods EKS, usando LangGraph para definir o grafo de estados. O time tem controle total sobre cada nó do grafo, transições, checkpointing de estado em DynamoDB e integração com qualquer backend de recuperação: OpenSearch Service (provisionado), pgvector no Aurora, ou Kendra. Latência de orquestração é determinística e controlável, mas a responsabilidade operacional é integral.

Opção C: Step Functions orquestrado: O loop de agente é externalizado para uma Step Functions Express Workflow. Cada step de raciocínio é um estado da máquina, invoke model, evaluate, branch, retrieve, tool call. O não-determinismo do LLM é contido dentro de estados individuais; a orquestração em si é determinística, auditável no X-Ray e replayável. Lambda executa as ferramentas; Bedrock ou SageMaker serve o modelo.

Opção D: Híbrido Bedrock + Step Functions: Bedrock Agents lida com o loop ReAct interno enquanto Step Functions orquestra o fluxo de negócio externo, validação de entrada, enriquecimento de contexto, chamada ao agente, pós-processamento, logging de auditoria. O agente é uma caixa preta controlada, não o orquestrador principal.

Mapa Comparativo: Quatro Arquiteturas de Agentic RAG na AWS

Cada coluna representa uma arquitetura. As arestas mostram o fluxo de orquestração e recuperação. A linha de controle indica onde o loop de agente reside.

🟧 Option A: Bedrock Agents Native
  • Bedrock Agent · ReAct loop (managed)
  • Knowledge Base · OpenSearch Serverless
  • Action Groups · Lambda (OpenAPI)
  • Guardrails · + Session Memory
🟦 Option B: LangGraph + EKS
  • LangGraph Pod · EKS (Fargate/EC2)
  • OpenSearch Service · Provisioned + kNN
  • DynamoDB · State checkpoint
  • Bedrock / SageMaker · Model endpoint
🟩 Option C: Step Functions Orchestrated
  • Step Functions · Express Workflow
  • Lambda · Tool executor
  • Bedrock InvokeModel · per-step call
  • X-Ray + CloudWatch · Full trace per step
🟨 Option D: Hybrid Bedrock + Step Functions
  • Step Functions · Outer orchestrator
  • Bedrock Agent · Inner ReAct loop
  • S3 + CloudWatch · Audit log sink

Dimensões Críticas: Onde Cada Arquitetura Ganha e Onde Sangra

Auditabilidade regulatória é onde Step Functions (Opção C) tem vantagem estrutural. Cada estado da máquina gera um evento no EventBridge e uma entrada no X-Ray com o payload completo, input, output, duração, erros. Em uma auditoria do BACEN, posso reconstruir exatamente o que o sistema decidiu em cada step de raciocínio para qualquer sessão histórica. Bedrock Agents (Opção A) fornece CloudTrail para chamadas de API e logs de invocação no CloudWatch, mas o loop interno de raciocínio é opaco, você vê o input e o output final, não os passos intermediários de pensamento, a menos que habilite trace explicitamente via enableTrace: true na chamada InvokeAgent.

Custo de inferência é o segundo diferenciador. Em Bedrock Agents, cada step de raciocínio consome tokens do prompt de sistema + histórico de conversa + contexto recuperado + resposta. Para Claude 3 Sonnet (us-east-1), isso significa aproximadamente $3/1M tokens de entrada e $15/1M de saída. Um agente com 5 steps de raciocínio e contexto médio de 4k tokens por step custa ~$0.08 por sessão. Em Step Functions Express, o custo de orquestração é $1/1M de transições de estado, praticamente zero, mas você ainda paga pelos tokens Bedrock. A diferença real é que Step Functions permite interromper o loop mais cedo com lógica determinística de avaliação, reduzindo steps desnecessários.

Latência P99 é onde LangGraph+EKS (Opção B) pode surpreender negativamente. Cold starts de pods, overhead de serialização de estado no DynamoDB e latência de rede para OpenSearch Service provisionado podem empurrar P99 para 8–12 segundos em cargas de trabalho complexas. Bedrock Agents, por ser serverless gerenciado, tem P99 mais consistente em torno de 4–7 segundos para 5 steps, mas sem controle de tunning.

Comparativo Técnico: Quatro Arquiteturas de Agentic RAG

DimensãoA: Bedrock AgentsB: LangGraph + EKSC: Step FunctionsD: Híbrido
Controle do loop de agenteAWS gerencia (caixa cinza)Total (código Python)Total (estados declarativos)Parcial (outer controlado)
Auditabilidade regulatóriaMédia (trace habilitável)Alta (custom logging)Muito alta (X-Ray nativo)Alta (SF trace + CT)
Latência P50 (5 steps)~3–5s~2–4s (warm pods)~3–6s~4–7s
Latência P99 (5 steps)~5–8s~8–14s (cold start)~6–10s~7–12s
Custo de orquestração (excl. tokens)Incluído no BedrockEKS node hours (~$0.10–0.20/h)~$0.000001/transiçãoSF + Bedrock overhead
Guardrails e segurançaNativo (Bedrock Guardrails)Custom (código + WAF)Custom (Lambda + WAF)Bedrock + SF validation
Complexidade operacionalBaixaAltaMédiaMédia-alta
Portabilidade (multi-cloud / on-prem)Baixa (lock-in Bedrock)Alta (framework agnóstico)Baixa (lock-in AWS)Baixa (lock-in AWS)
Suporte a retrieval híbrido (sparse+dense)Limitado (KB gerenciado)Total (custom pipeline)Total (via Lambda)Parcial (KB + Lambda)
Time-to-production (equipe média)2–4 semanas8–16 semanas4–8 semanas5–10 semanas

Segurança e Governança: O Que o Comparativo Não Captura Completamente

Em ambientes financeiros regulados, a superfície de ataque de um agente RAG é qualitativamente diferente de uma API REST. O agente pode ser induzido via prompt injection a exfiltrar dados de contexto, invocar ferramentas não autorizadas ou bypassar guardrails. Cada arquitetura tem um perfil de risco distinto.

No Bedrock Agents, o Guardrails nativo oferece filtros de conteúdo configuráveis com categorias de harm (HATE, INSULTS, SEXUAL, VIOLENCE, MISCONDUCT, PROMPT_ATTACK) e word filters com listas customizadas, configuráveis via CreateGuardrail API com contentPolicyConfig e wordPolicyConfig. O problema é que Guardrails avalia o output, não o raciocínio intermediário. Uma injection que manipula o step de planejamento pode passar despercebida se o output final parecer benigno.

No LangGraph+EKS, a responsabilidade de segurança é total do time. Isso significa implementar: (1) input sanitization antes de qualquer chamada de modelo, (2) IAM roles com least-privilege por nó do grafo, um nó de retrieval não deve ter permissão de invocar APIs de pagamento, (3) KMS CMK para criptografia de estado no DynamoDB com aws:kms encryption type e chave por tenant em ambientes multi-tenant, (4) VPC endpoints para OpenSearch e Bedrock eliminando tráfego pela internet pública.

No Step Functions, a separação de estados cria uma oportunidade natural de inserir validação determinística entre steps, um estado ValidateToolOutput que verifica schema, range e permissões antes de passar o resultado para o próximo step de raciocínio. Isso é difícil de fazer de forma confiável em Bedrock Agents sem customização extensiva de Action Groups. Para ambientes com requisitos de LGPD/GDPR, Step Functions também facilita a implementação de data residency controls via condições de IAM aws:RequestedRegion em cada invocação de serviço.

Matriz de Decisão: Qual Arquitetura para Qual Contexto

A: Bedrock Agents Nativo

Prós
  • Menor time-to-production (2–4 semanas)
  • Guardrails e memória de sessão gerenciados
  • Integração nativa com Knowledge Bases e OpenSearch Serverless
  • Sem overhead operacional de infraestrutura de agente
Contras
  • Loop de raciocínio opaco, auditabilidade limitada sem trace explícito
  • Retrieval híbrido (BM25 + dense) não disponível nativamente no KB
  • Lock-in forte em Bedrock; migração custosa
  • Controle limitado sobre política de retry e backoff por tool

Ideal para MVPs e times sem expertise em orquestração distribuída. Não recomendado para ambientes com auditoria regulatória de nível 1.

B: LangGraph + EKS

Prós
  • Controle total sobre o grafo de estados, testável unitariamente
  • Suporte a retrieval híbrido customizado e re-ranking
  • Portabilidade: pode rodar em qualquer cloud ou on-prem
  • Checkpointing de estado persistente para sessões longas
Contras
  • Alta complexidade operacional: EKS, HPA, cold starts, dependency management
  • Time-to-production 3–4x maior que Bedrock Agents
  • Segurança e guardrails são responsabilidade total do time
  • P99 degradado por cold starts sem warm pool configurado

Certo para plataformas de AI com equipes de ML engineering maduras que precisam de portabilidade e controle granular. Overkill para a maioria dos casos financeiros.

C: Step Functions Orquestrado

Prós
  • Auditabilidade máxima: cada step rastreado no X-Ray com payload completo
  • Orquestração determinística com não-determinismo LLM contido
  • Custo de orquestração virtualmente zero ($1/1M transições)
  • Retry nativo com jitter, timeout por estado e compensação transacional
Contras
  • Verbosidade do ASL para loops complexos, manutenção não trivial
  • Limite de 25k caracteres por payload de estado (mitigável com S3 reference pattern)
  • Não há memória de sessão nativa, precisa ser implementada externamente
  • Loop de agente dinâmico requer Map state ou recursão, complexo de modelar

Melhor escolha para fluxos de agente com número máximo de steps conhecido e requisitos regulatórios de auditoria de nível 1. Minha recomendação principal para bancos e corretoras.

D: Híbrido Bedrock + Step Functions

Prós
  • Combina velocidade de desenvolvimento do Bedrock com controle de fluxo do SF
  • Auditoria de fluxo de negócio no SF; raciocínio interno no Bedrock trace
  • Fácil de adicionar pré/pós-processamento determinístico ao redor do agente
Contras
  • Dois sistemas de orquestração para operar e debugar
  • Loop interno do Bedrock Agent ainda é parcialmente opaco
  • Custo acumulado: Bedrock overhead + SF transitions

Bom compromisso para times que já usam Bedrock Agents e precisam adicionar governança sem reescrever tudo. Não é a escolha ideal de greenfield.

Observabilidade e SLOs: O Que Monitorar em Cada Arquitetura

Agentic RAG quebra os SLOs tradicionais de API porque a latência é uma função do número de steps de raciocínio, que é não-determinístico. Definir um SLO de P99 < 5s para um agente com até 8 steps é matematicamente impossível sem controle explícito de terminação.

Para Bedrock Agents, os sinais de observabilidade primários são: InvokeAgent duration no CloudWatch (métrica InvocationLatency), número de steps via trace parsing (campo orchestrationTrace.rationale), e taxa de THROTTLING_EXCEPTION que indica pressão no limite de TPS da conta (padrão: 10 TPS por modelo por região, aumentável via Service Quotas). Um SLO realista é P95 < 8s com budget de erro de 0.5% para throttling.

Para Step Functions, cada estado emite métricas nativas: ExecutionTime, ExecutionsFailed, ExecutionsTimedOut. Com OpenTelemetry, posso instrumentar o Lambda de cada tool com spans que propagam o traceId do Step Functions, criando uma árvore de trace end-to-end no X-Ray ou Datadog. O SLO mais útil aqui é steps por sessão: se P95 > 6 steps, há um sinal de que o prompt de sistema ou os documentos recuperados são de baixa qualidade, não que o sistema está lento.

Para LangGraph+EKS, o padrão que funciona é OpenTelemetry SDK com auto-instrumentation do LangChain, exportando para ADOT Collector no EKS e depois para CloudWatch EMF ou Datadog. Métricas críticas: llm.token.usage por nó do grafo (para controle de custo por step), retrieval.hit_rate (documentos relevantes / total recuperados) e tool.error_rate por tool name. Um retrieval.hit_rate < 0.6 em produção é alarme de degradação do índice vetorial, provavelmente drift de embeddings ou índice desatualizado.

O Paradoxo da Flexibilidade em Agentes Financeiros

A arquitetura que dá mais flexibilidade ao agente (LangGraph com grafo aberto) é precisamente a que mais dificulta a auditoria regulatória. Em finanças, o objetivo não é maximizar a autonomia do agente, é maximizar a previsibilidade do comportamento dentro de um envelope de ações autorizadas. Isso inverte a intuição de quem vem do mundo de AI research: você quer o agente mais restrito que ainda resolve o problema, não o mais capaz. Step Functions força essa restrição de forma estrutural.

Referências de Custo e Performance (Estimativas de Produção)

$0.06–0.12
Custo por sessão (5 steps, Claude 3 Sonnet, 4k tokens/step)
Válido para Opções A, C e D. Opção B adiciona ~$0.002/sessão de EKS amortizado
10 TPS
Limite padrão de invocação Bedrock por modelo por região
Throttling é o principal limitante de escala para Opções A e D em picos. Solicite aumento via Service Quotas com justificativa de caso de uso.
25 KB
Limite de payload por estado no Step Functions
Use o padrão S3 reference: armazene o contexto RAG no S3 e passe apenas o S3 URI entre estados para evitar o limite.

Anti-Padrões Críticos em Agentic RAG Financeiro

  • Sem limite de steps: Agentes sem maxIterations configurado podem entrar em loops infinitos consumindo tokens indefinidamente. Sempre configure um teto: 8 steps é razoável para a maioria dos casos financeiros.
  • Tool permissions excessivas: Action Groups ou Lambda tools com IAM policies de * em recursos. Cada tool deve ter uma IAM role dedicada com permissões mínimas e aws:ResourceTag conditions para isolamento por tenant.
  • Contexto RAG sem filtragem de metadados: Recuperar documentos sem filtrar por tenantId, classification_level ou effective_date no OpenSearch query. Em ambientes multi-tenant, isso é um vetor de vazamento de dados entre clientes.
  • Logging de prompts com PII: Habilitar trace completo no Bedrock ou logar payloads de LangGraph sem mascaramento de CPF, conta bancária e dados de posição. Isso viola LGPD e cria risco de auditoria.
  • Embeddings estáticos em produção: Indexar documentos uma vez e nunca reindexar. Drift de embeddings ao trocar de modelo de embedding invalida silenciosamente a qualidade do retrieval, monitore retrieval.hit_rate e reindexe ao trocar modelos.
FA
Nota do Arquiteto: O Que Eu Faria de Fato
Arquiteto de TI Especialista

Em qualquer ambiente financeiro regulado que eu arquitetei, a Opção C: Step Functions com Bedrock InvokeModel por estado, é o ponto de partida correto, não porque seja a mais elegante, mas porque é a mais auditável e a mais fácil de explicar para um time de compliance que nunca viu um agente de AI. A lição dura que aprendi é que a batalha de adoção de AI em finanças não é técnica, é de confiança institucional. Um fluxo Step Functions com estados nomeados (EvaluateCreditQuery, RetrieveRegulatoryDocs, ValidateToolOutput) que um auditor consegue ler no console da AWS vale mais do que um loop LangGraph perfeitamente otimizado que só o time de ML entende. Quando o negócio e a governança estiverem confortáveis, aí você evolui para o híbrido ou para LangGraph, mas comece pelo que você consegue defender numa reunião de risco.

Veredicto: Step Functions Orquestrado é a Escolha Financeiramente Responsável

Step Functions-Orchestrated (Option C) f

Para plataformas financeiras com requisitos regulatórios sérios: BACEN, CVM, SEC, LGPD, a Opção C (Step Functions orquestrado) é a recomendação principal. Ela entrega auditabilidade estrutural que nenhuma das outras opções oferece nativamente, custo de orquestração desprezível, retry e timeout determinísticos por step, e um modelo mental que times de compliance e engenharia conseguem compartilhar. O payload limit de 25KB é o único obstáculo real, resolvido com o padrão S3 reference em menos de um sprint. Bedrock Agents nativo (Opção A) é a escolha certa para MVPs, provas de conceito e casos de uso internos onde auditabilidade de nível 1 não é requisito. Não a descarte, ela tem o melhor time-to-production e o menor overhead operacional. LangGraph+EKS (Opção B) faz sentido apenas se você tem uma plataforma de AI com equipe de ML engineering dedicada, precisa de portabilidade real (multi-cloud ou on-prem) e está disposto a investir 3–4x mais tempo de engenharia. Para a maioria dos bancos e corretoras brasileiras, esse investimento não se justifica.

Referências e Leitura Complementar

AWS Bedrock Agents: Developer GuideAWS Bedrock Guardrails: Configuration ReferenceAWS Step Functions: Express WorkflowsAmazon OpenSearch Service, k-NN PluginAWS Well-Architected Framework: Machine Learning LensLangGraph: State Graph DocumentationReAct: Synergizing Reasoning and Acting in Language Models (Yao et al., 2022)Google Research Blog: Agentic RAG
#agentic-rag#bedrock#opensearch#eks#step-functions#financial-grade#governance#aws
Compartilhar:LinkedInWhatsAppXBaixar em Markdown
Fonte analisada: Agentic RAG
Próximo passo
Agentes de IA em produção na AWSComo eu desenho, oriento e audito agentes que vão ao ar, com os números e as fontes.Ver o IA BuilderTrilha Arquiteto de IA, gratuitaFundamentos, LLMs, RAG, tools, MCP e arquitetura na AWS, em aulas curtas e interativas.Começar a trilha

Continue lendo

IA & AgentesInteligência de Contratos na AWS: Arquitetura de CampoConstruir inteligência contratual com IA generativa vai muito além de conectar um LLM a PDFs. Este artigo documenta os padrões arquiteturais, armadilhas operacionais e decisões de design que fazem a diferença entre um PoC impressionante e um sistema confiável em produção financeira.Ler IA & AgentesRAG Agêntico com OpenSearch Serverless: Anatomia de um PadrãoO padrão RAG agêntico com OpenSearch Serverless promete escala elástica e recuperação semântica sem gestão de infraestrutura, mas esconde armadilhas sérias de latência, custo e consistência que sistemas financeiros não podem ignorar. Neste artigo, desmonto a anatomia do padrão, mapeio quando ele funciona, quando falha e como configurá-lo com rigor de produção.Ler IA & AgentesAmazon Bedrock AgentCore Harness: Da Ideia ao Agente de ProduçãoO AgentCore Harness chegou ao GA em junho de 2026 como uma abstração gerenciada que colapsa o plano de controle de agentes LLM em dois chamadas de API. Neste artigo, analiso como o harness funciona internamente, onde ele falha, e o que arquitetos de sistemas financeiros precisam entender antes de colocá-lo em produção.Ler
AnteriorTriagem de Alertas AML com IA Governada: Arquitetura e Trade-offsPróximoAWS WAF e Monetização de Tráfego de Bots de IA: Análise Técnica
Gostou desta análise? Receba a próxima.

Deep dives de arquitetura, AWS, IA e mercado: direto no seu email. Grátis.

Sem spam · cancele quando quiser

Pergunte ao Fernando sobre isto

Uma resposta focada sobre este artigo, do meu assistente de IA, baseada no meu trabalho.

Participe da conversa

Entre para comentar

Confirme seu e-mail para participar, você também recebe a newsletter. Sem senha.

Neste artigo
O Problema Real: Por Que RAG Simples Não Basta em FinançasOs Quatro Candidatos: Identidade Arquitetural de Cada UmArquiteturaDimensões Críticas: Onde Cada Arquitetura Ganha e Onde SangraComparativo Técnico: Quatro Arquiteturas de Agentic RAGSegurança e Governança: O Que o Comparativo Não Captura CompletamenteMatriz de Decisão: Qual Arquitetura para Qual ContextoObservabilidade e SLOs: O Que Monitorar em Cada ArquiteturaAntipadrõesVeredicto: Step Functions Orquestrado é a Escolha Financeiramente ResponsávelReferências