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
- 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 Consolidação e Normalização da Transação (RF 3).
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
- 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 Detecção por Regras e Sinais de Risco (RF 4).
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.