Agente de IA para Identificação de Padrões de Fraude em Transações Financeiras

23 de December de 2025 • Tempo de leitura: 5 min

Como criar um agente de IA que analisa transações financeiras em tempo real para identificar padrões suspeitos.

1. Propósito e Escopo

Este documento define todos os prompts, configurações de memória, transição entre estados, ferramentas como chamadas a sistemas externos e demais requisitos funcionais para o Fluxo de Agentes "Identificação de Padrões de Fraude em Transações Financeiras", uma solução projetada para analisar transações financeiras em tempo real e identificar padrões suspeitos. Essa documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.

O objetivo principal é detectar transações fraudulentas, identificar padrões suspeitos e alertar rapidamente as equipes de gerenciamento de fraudes para que medidas possam ser tomadas em tempo hábil.

2. Contexto e Problema

Cenário Atual

As instituições financeiras enfrentam desafios significativos para detectar transações fraudulentas em meio a grandes volumes de dados. As fraudes podem passar despercebidas devido à complexidade e à quantidade de transações processadas diariamente. É essencial identificar padrões suspeitos, como transações fora do padrão ou em locais incomuns, para mitigar riscos e prevenir perdas financeiras.


Problemas Identificados

  • Detecção Ineficiente: A dificuldade em detectar fraudes em tempo real pode resultar em perdas significativas.
  • Volume de Dados: Grandes volumes de transações dificultam a identificação de padrões suspeitos sem comprometer a precisão.
  • Adaptação a Novos Padrões: A evolução constante dos métodos de fraude exige que os sistemas se adaptem rapidamente.
  • Resposta Lenta: A demora na identificação e comunicação de fraudes pode impedir ações corretivas eficazes.

3. Impactos Esperados

A implementação deste fluxo de automação visa alcançar os seguintes resultados:

  • Detecção Rápida e Precisa: Melhorar significativamente a capacidade de detectar fraudes em tempo real.
  • Aumento da Eficiência: Processar grandes volumes de dados sem comprometer a precisão na identificação de fraudes.
  • Adaptação Contínua: Utilizar aprendizado de máquina para se adaptar a novos padrões de fraude.
  • Resposta Imediata: Fornecer alertas em tempo real para equipes de gerenciamento de fraudes, permitindo uma resposta rápida e eficaz.

4. Visão Geral da Solução

O agente de IA para identificação de padrões de fraude em transações financeiras analisa transações em tempo real, utiliza algoritmos de aprendizado de máquina para identificar padrões suspeitos e alerta a equipe de gerenciamento de fraudes. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue como um assistente útil e autônomo na detecção de fraudes.

A solução consiste em um fluxo de automação composto por 6 agentes de IA. O processo inicia com a execução de consultas em banco de dados e termina com a formatação de um alerta para o sistema de gerenciamento de fraudes.

A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.

Agentes Função Principal
Agente de Execução de Consultas em Banco de Dados (RF 1) Realizar conexão com o data warehouse de pagamentos para obter histórico transacional.
Agente de Execução de Chamada à API (RF 2) Realizar chamada à API de enriquecimento de risco para obter dados adicionais.
Agente de Consolidação e Normalização da Transação (RF 3) Unificar transações com históricos e enriquecimentos para preparar o contexto analítico.
Agente de Detecção por Regras e Sinais de Risco (RF 4) Gerar sinais de risco determinísticos e justificáveis a partir do contexto consolidado.
Agente de Agregação, Escoragem e Decisão (RF 5) Combinar subscores e sinais para produzir score de risco e decisão.
Agente de Formatação de Alerta (RF 6) Gerar o payload final de alerta operacional para o sistema interno de gerenciamento de fraudes.

5. Protótipos

Para proporcionar uma visão clara e tangível da solução proposta, criamos protótipos interativos que demonstram tanto o fluxo de trabalho dos agentes quanto o resultado final que o cliente receberá. Explore os links abaixo para entender melhor a solução em ação.

6. Requisitos Funcionais

RF 1. Agente de Execução de Consultas em Banco de Dados

1.1 Tarefa do Agente

Realizar conexão com o data warehouse de pagamentos para obter histórico transacional do portador e listas internas (merchants de risco, dispositivos suspeitos, cartões comprometidos).

1.2 Prompt ou Instruções do Agente
 Esse agente não precisa de instruções de LLM. Sua função é executar a consulta ao banco com os parâmetros recebidos e retornar exatamente os dados solicitados, sem transformação. 
1.3 Configurações do Agente

1.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente é o ponto de partida do fluxo e deve ser acionado pelo envio de parâmetros específicos via API. Na fase de testes, o fluxo será iniciado pelo envio manual dos dados, que serão enviados para o agente diretamente por upload na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: O input inicial para o fluxo é um conjunto de parâmetros que definem a consulta ao banco de dados.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 5.000 caracteres.

1.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo o histórico transacional e as listas de risco.
  • Exemplo de Estrutura de Output:
     { "historico": [ { "tx_id": "string", "timestamp": "ISO-8601", "valor": 123.45, "moeda": "BRL", "pais": "BRA", "mcc": "5812", "merchant_id": "string", "canal": "ecommerce|pos", "status": "aprovada|negada|chargeback" } ], "listas": { "merchants_risco": ["merchant_id"], "dispositivos_suspeitos": ["device_id"], "cartoes_comprometidos": ["card_id"] } } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 3.000 caracteres, variando conforme o volume de dados retornados.

1.3.3 Parâmetros de Geração

  • Modelo: Não se aplica
  • Temperatura: Não se aplica

1.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Conecta-se ao data warehouse de pagamentos para realizar a consulta.

1.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não são visíveis para nenhum agente subsequente.
  • Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Execução de Chamada à API (RF 2).

1.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Execução de Chamada à API (RF 2).

RF 2. Agente de Execução de Chamada à API

2.1 Tarefa do Agente

Realizar chamada à API de enriquecimento de risco para obter dados de IP/geolocalização, ASN, proxy/VPN, reputação de e-mail e verificação BIN do cartão.

2.2 Prompt ou Instruções do Agente
 Esse agente não precisa de instruções de LLM. Sua função é executar a chamada à API externa com o payload recebido e retornar o conteúdo bruto da resposta. 
2.3 Configurações do Agente

2.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 1).
  • Tipo do input: Este agente deve ser apto a receber um JSON contendo os dados necessários para a chamada à API de enriquecimento de risco.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 2.000 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo os dados de risco enriquecidos.
  • Exemplo de Estrutura de Output:
     { "ip": { "pais": "USA", "cidade": "Miami", "asn": 13335, "is_proxy": true, "is_vpn": false, "is_datacenter": true, "risco_ip": 0.82 }, "email": { "idade_conta_dias": 45, "dominio_risco": false, "disposable": false, "risco_email": 0.31 }, "bin": { "pais_emissor": "BRA", "tipo": "credit", "bandeira": "VISA" } } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 1.500 caracteres.

2.3.3 Parâmetros de Geração

  • Modelo: Não se aplica
  • Temperatura: Não se aplica

2.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Conecta-se à API de enriquecimento de risco para obter dados adicionais.

2.3.5 Memória

2.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Consolidação e Normalização da Transação (RF 3).

RF 3. Agente de Consolidação e Normalização da Transação

3.1 Tarefa do Agente

Unificar a transação corrente com históricos e enriquecimentos, validar campos obrigatórios, normalizar unidades e preparar o contexto analítico.

3.2 Prompt ou Instruções do Agente
 - Rejeite a consolidação se faltar qualquer um dos campos obrigatórios: tx_id, timestamp, valor, moeda, pais, mcc, merchant_id, canal, account_id ou card_id; retorne erro_campo_ausente listando os campos faltantes.
- Converta valores para BRL quando moeda != BRL utilizando taxa_conversao informada no input (se ausente, assuma 1.0 e registre flag taxa_conversao_desconhecida=true).
- Normalize país para ISO-3166-3 e horário para ISO-8601 em UTC, mantendo offset original em campo auxiliar.
- Calcule métricas de perfil: ticket_medio_30d, desvio_padrao_ticket_30d, frequencia_diaria_30d, listas de países/MCCs/horários habituais com base em moda e quantis do histórico.
- Calcule contadores de velocidade para janelas 5m/30m/60m e soma de valor_24h usando timestamps do histórico.
- Defina flags de listas: merchant_em_lista_risco verdadeiro se merchant_id ∈ merchants_risco; device_suspeito verdadeiro se device_id ∈ dispositivos_suspeitos; cartao_comprometido verdadeiro se card_id ∈ cartoes_comprometidos.
- Produza saída exatamente no esquema previsto em expected_output, sem campos adicionais. 
3.3 Configurações do Agente

3.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 2).
  • Tipo do input: Este agente deve ser apto a receber um JSON contendo a transação corrente, histórico e dados enriquecidos.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 5.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo o contexto consolidado e normalizado da transação.
  • Exemplo de Estrutura de Output:
     { "contexto": { "tx": { "tx_id": "string", "timestamp": "ISO-8601", "valor_brl": 123.45, "pais": "BRA", "mcc": "5812", "merchant_id": "string", "canal": "ecommerce", "ip": "string", "device_id": "string" }, "perfil_cliente": { "ticket_medio_30d": 85.30, "desvio_padrao_ticket_30d": 20.10, "frequencia_diaria_30d": 1.6, "paises_usuais": ["BRA"], "horarios_habituais": ["08:00-22:00"], "mccs_habituais": ["5812","5999"], "chargebacks_180d": 1 }, "velocidade": { "tx_5m": 2, "tx_30m": 3, "tx_60m": 5, "valor_24h": 420.00 }, "listas": { "merchant_em_lista_risco": false, "device_suspeito": false, "cartao_comprometido": false }, "enriquecimento": { "ip": { "pais": "USA", "asn": 13335, "is_proxy": true }, "email": { "risco_email": 0.31 }, "bin": { "pais_emissor": "BRA" } } } } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 4.000 caracteres.

3.3.3 Parâmetros de Geração

  • Modelo: Não se aplica
  • Temperatura: Não se aplica

3.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Utiliza lógica interna para normalização e cálculo de métricas.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

3.3.5 Memória

3.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Detecção por Regras e Sinais de Risco (RF 4).

RF 4. Agente de Detecção por Regras e Sinais de Risco

4.1 Tarefa do Agente

Gerar sinais de risco determinísticos e justificáveis a partir do contexto consolidado.

4.2 Prompt ou Instruções do Agente
 - Velocidade: se tx_5m > 2, adicionar sinal velocidade_tx_5m_alta (severidade=alta quando >4; média quando 3-4; baixa quando 3 e valor baixo < R$50).
- Spike de valor: se valor_brl > ticket_medio_30d + 3*desvio_padrao_ticket_30d, adicionar sinal spike_valor (severidade=alta se >5*desvio_padrao; média se entre 3-5*desvio_padrao).
- Geodesvio: se ip.pais != contexto.tx.pais e ip.is_proxy=true, adicionar sinal origem_proxy_pais_divergente (severidade=alta). Se ip.pais divergente sem proxy, severidade=média.
- BIN x País: se bin.pais_emissor != contexto.tx.pais, adicionar sinal emissor_pais_divergente (severidade=média; alta se também ip.pais divergente).
- MCC incomum: se mcc da transação não pertence a mccs_habituais, adicionar sinal mcc_incomum (severidade=baixa; média se valor_brl > ticket_medio_30d).
- Horário atípico: se timestamp fora de qualquer intervalo em horarios_habituais, adicionar sinal horario_atipico (severidade=baixa; média se combinado com velocidade alta).
- Merchants de risco: se merchant_em_lista_risco, adicionar sinal merchant_risco (severidade=alta).
- Dispositivo suspeito: se device_suspeito, sinal dispositivo_suspeito (severidade=alta).
- Cartão comprometido: se cartao_comprometido, sinal cartao_comprometido (severidade=alta e prioridade máxima).
- Chargebacks: se chargebacks_180d >= 2, sinal historico_chargeback (severidade=média; alta se >=3).
- Email arriscado: se enriquecimento.email.risco_email >= 0.7, sinal email_alto_risco (severidade=alta; média se 0.4-0.69).
- Para cada sinal, preencher valor_observado, limite (quando aplicável) e evidência textual curta e objetiva.
- Calcular subscores em escala 0-1 por dimensão com média ponderada dos sinais da dimensão: alta=1.0, média=0.6, baixa=0.3; pesos: comportamental 0.35, geolocalizacao 0.20, dispositivo 0.10, pagamento 0.25, listas 0.10. 
4.3 Configurações do Agente

4.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 3).
  • Tipo do input: Este agente deve ser apto a receber um JSON contendo o contexto consolidado da transação.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 4.000 caracteres.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo os sinais de risco gerados e os subscores por dimensão.
  • Exemplo de Estrutura de Output:
     { "sinais": [ { "id": "velocidade_tx_5m_alta", "severidade": "alta|media|baixa", "valor_observado": 4, "limite": 2, "evidencia": "4 transações em 5m; limite=2" } ], "subscores": { "comportamental": 0.35, "geolocalizacao": 0.20, "dispositivo": 0.10, "pagamento": 0.25, "listas": 0.10 } } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 3.000 caracteres.

4.3.3 Parâmetros de Geração

  • Modelo: Não se aplica
  • Temperatura: Não se aplica

4.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Utiliza lógica interna para cálculo de sinais e subscores.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

4.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não são visíveis para nenhum agente subsequente.
  • Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Agregação, Escoragem e Decisão (RF 5).

4.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Agregação, Escoragem e Decisão (RF 5).

RF 5. Agente de Agregação, Escoragem e Decisão

5.1 Tarefa do Agente

Combinar subscores e sinais para produzir score de risco 0-100, decisão e códigos de motivo padronizados.

5.2 Prompt ou Instruções do Agente
 - Calcular risk_score = round(100 * (0.35*comportamental + 0.20*geolocalizacao + 0.10*dispositivo + 0.25*pagamento + 0.10*listas)).
- Ajustes de teto: se existir sinal cartao_comprometido ou merchant_risco com severidade=alta, definir risk_score = max(risk_score, 85). Se existir origem_proxy_pais_divergente alta, risk_score = max(risk_score, 80).
- Decisão: approve se risk_score <= 30 e nenhum sinal com severidade=alta; review se 31-69 ou pelo menos um sinal médio; decline se risk_score >= 70 ou existir qualquer sinal crítico (cartao_comprometido, dispositivo_suspeito alta com velocidade alta, merchant_risco alta).
- reason_codes: mapear sinais para códigos estáveis em UPPER_SNAKE_CASE. Incluir no mínimo 1 e no máximo 5 motivos, priorizando severidade e impacto no score.
- sla_alerta_segundos: 5 para decline, 15 para review, 0 para approve (sem alerta). 
5.3 Configurações do Agente

5.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 4).
  • Tipo do input: Este agente deve ser apto a receber um JSON contendo os sinais de risco e os subscores por dimensão.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 3.000 caracteres.

5.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo o score de risco, decisão e códigos de motivo.
  • Exemplo de Estrutura de Output:
     { "resultado": { "risk_score": 0-100, "decision": "approve|review|decline", "reason_codes": ["VEL_HIGH","PROXY_COUNTRY_MISMATCH"], "sla_alerta_segundos": 5 } } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 1.500 caracteres.

5.3.3 Parâmetros de Geração

  • Modelo: Não se aplica
  • Temperatura: Não se aplica

5.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Utiliza lógica interna para cálculo do score e decisão.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

5.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não são visíveis para nenhum agente subsequente.
  • Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Formatação de Alerta (RF 6).

5.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Formatação de Alerta (RF 6).

RF 6. Agente de Formatação de Alerta

6.1 Tarefa do Agente

Gerar o payload final de alerta operacional para o sistema interno de gerenciamento de fraudes.

6.2 Prompt ou Instruções do Agente
 - Gerar id_alerta concatenando tx_id + sufixo incremental ou UUID.
- Definir prioridade: alta para decline, média para review, baixa para approve (não gerar alerta para approve).
- Incluir no campo detalhes apenas os 3 sinais mais relevantes por severidade e contribuição ao score.
- Garantir consistência com decision: se decision=approve, não produzir alerta; retornar objeto alerta=null.
- Timestamp do alerta deve ser o momento de geração em ISO-8601 UTC. 
6.3 Configurações do Agente

6.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 5).
  • Tipo do input: Este agente deve ser apto a receber um JSON contendo o resultado da escoragem e decisão.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 2.000 caracteres.

6.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo o alerta formatado para o sistema de gerenciamento de fraudes.
  • Exemplo de Estrutura de Output:
     { "alerta": { "id_alerta": "string", "tx_id": "string", "prioridade": "alta|media|baixa", "risk_score": 78, "decision": "decline|review", "motivos": ["PROXY_COUNTRY_MISMATCH","VEL_HIGH"], "detalhes": [ { "id": "velocidade_tx_5m_alta", "evidencia": "4 transações em 5m; limite=2" } ], "timestamp": "ISO-8601" } } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 1.500 caracteres.

6.3.3 Parâmetros de Geração

  • Modelo: Não se aplica
  • Temperatura: Não se aplica

6.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: O envio do objeto 'alerta' para o sistema de gerenciamento de fraudes deve ser configurado na etapa de integração da plataforma. Este agente apenas estrutura o payload; o envio não é realizado aqui.

6.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não são visíveis para nenhum agente subsequente.
  • Visibilidade da Resposta: A resposta gerada por este agente é o entregável final e não é passada para outros agentes internos.

6.3.6 Regras de Orquestração e Transição

A execução deste agente finaliza o fluxo. O alerta gerado é o resultado que deve ser disponibilizado ao usuário.

© 2025 prototipe.ai. Todos os direitos reservados.