1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados e demais requisitos funcionais para o Agente de IA para Detecção de Fraudes em Crédito, uma solução projetada para identificar fraudes em operações de crédito através da análise de padrões de comportamento. 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 é monitorar transações de crédito em tempo real, identificar atividades suspeitas e alertar imediatamente as instituições financeiras sobre possíveis fraudes.
2. Contexto e Problema
Cenário Atual
As instituições financeiras enfrentam uma alta incidência de fraudes em operações de crédito, o que afeta diretamente sua rentabilidade e confiabilidade. Identificar padrões de comportamento fraudulentos de forma eficiente tem sido um desafio constante, dado o volume e a complexidade das transações processadas diariamente.
Problemas Identificados
- Alta incidência de fraudes: As fraudes em operações de crédito são frequentes e causam prejuízos significativos.
- Dificuldade na identificação: Identificar padrões de comportamento fraudulentos de forma eficiente é um desafio devido ao grande volume de dados.
3. Impactos Esperados
A implementação deste agente de IA visa alcançar os seguintes resultados:
- Redução de fraudes em operações de crédito através da identificação e prevenção em tempo real.
- Eficiência na detecção de padrões fraudulentos, permitindo respostas mais rápidas e eficazes.
- Melhoria na confiança das instituições financeiras em suas operações de crédito.
4. Visão Geral da Solução
O agente de IA para detecção de fraudes em crédito analisa transações em tempo real, identifica padrões suspeitos e alerta imediatamente as instituições financeiras. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue como um sistema de segurança eficaz e autônomo na prevenção de fraudes em operações de crédito.
A solução consiste em um fluxo de automação composto por 4 agentes de IA. O processo inicia com a preparação e enriquecimento das transações de crédito e termina com a geração e envio de um alerta padronizado para as instituições financeiras.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Preparação e Enriquecimento de Transações de Crédito (RF 1)
| Padronizar o payload de transações e calcular variáveis derivadas para detecção de fraude. |
Agente Analítico de Detecção de Padrões e Pontuação de Risco de Fraude (RF 2)
| Aplicar regras de negócio para calcular score de risco e recomendar ações. |
Agente de Decisão Operacional e Geração de Alerta (RF 3)
| Transformar a avaliação de risco em uma decisão operacional e compor o alerta para instituições financeiras. |
Agente de Execução de Chamada à API (RF 4)
| Realizar chamada à API para registrar e entregar o alerta de possível fraude. |
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 as instituições financeiras receberão. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente de Preparação e Enriquecimento de Transações de Crédito
1.1 Tarefa do Agente
Padronizar o payload de transações e calcular variáveis derivadas de comportamento necessárias para detecção de fraude em tempo quase real.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON com informações detalhadas sobre transações de crédito. Este objeto é fundamental para o processo de detecção de fraudes.
# 2. Objetivo
Padronizar o payload de transações e calcular variáveis derivadas (features) de comportamento necessárias para detecção de fraude em tempo quase real.
# 3. Regras que você deve seguir para gerar sua resposta
- Padronize ausências: se campo faltante crítico (id, cliente_id, valor, horario_iso, moeda) estiver ausente, defina feature features.campo_faltante_critico=true e preencha valor=0, strings="" para permitir continuidade; não interrompa o fluxo.
- Normalização monetária: se moeda != "BRL" e não houver taxa de câmbio, mantenha valor original e marque features.moeda_nao_brl=true; caso haja campo transacao.fx_brl, compute valor_brl; caso contrário, use valor como está.
- pct_utilizacao_limite = min(max((valor / max(limite_credito,1)),0),5) limitado a 5 para cortar outliers; se limite_credito ausente, use 0 e marque features.limite_desconhecido=true.
- delta_valor_zscore_30d = (valor - agregados_cliente.media_ticket_30d) / max(agregados_cliente.desvio_ticket_30d, 1); se sem histórico, retorne null e features.sem_historico_valor=true.
- valor_relativo_media_30d = valor / max(agregados_cliente.media_ticket_30d,1); se sem histórico, null.
- Contagens/velocidade: calcule qtd_trans_1h e qtd_trans_24h filtrando historico_recente.ultimas_transacoes por horario dentro de 1h e 24h anteriores ao horario_iso; some valores para soma_valor_1h.
- Geolocalização: compute dist_km_da_ult_pos usando a última transação com geo válido; se países diferentes entre transacao.geo.pais e transações nas últimas 24h, marque mudanca_pais_vs_ult_24h=true.
- Listas: mcc_alto_risco=true se listas.merchants_risco tiver merchant_id com risco=="alto" ou mcc em {4829, 6011, 7995, 5945, 5967} (conjuntos típicos de maior risco). ip_em_lista_suspeita=true se ip em listas.ips_suspeitos.
- Novidade: dispositivo_novo_90d=true se fingerprint não existir em historico_recente.ultimas_transacoes dos últimos 90 dias; canal_novo_30d=true se canal não observado no período 30d.
- Noite: trans_nocturna=true se hora local entre 00:00-05:00 considerando geo.cidade/pais; se timezone ausente, use horário_iso sem conversão.
- Captura: captura_risco=true se captura em {magstripe, manual} para canal pos.
- Hashes: derive fingerprint_hash e user_agent_hash como representações estáveis (ex.: hash-canônico do conteúdo) e inclua-os; se ausentes, defina como "" e marque features.dispositivo_indefinido=true. 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 dados de transações de crédito via API. Na fase de testes, os dados serão enviados pelo agente diretamente por upload de um arquivo JSON na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: O input inicial para o fluxo é um objeto JSON detalhado sobre transações de crédito.
-
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é 120.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON com as transações enriquecidas e suas features calculadas.
-
Exemplo de Estrutura de Output:
{"transacao_enriquecida": {"id","cliente_id","valor","moeda","horario_iso","mcc","canal","captura","geo":{"lat","lon","pais","cidade"},"dispositivo":{"fingerprint_hash","ip","user_agent_hash"},"limite_credito","saldo_disponivel","features": {"pct_utilizacao_limite": 0-1, "delta_valor_zscore_30d": number, "valor_relativo_media_30d": number, "qtd_trans_1h": int, "qtd_trans_24h": int, "soma_valor_1h": number, "dist_km_da_ult_pos": number|null, "mudanca_pais_vs_ult_24h": true|false, "mcc_alto_risco": true|false, "canal_novo_30d": true|false, "dispositivo_novo_90d": true|false, "ip_em_lista_suspeita": true|false, "trans_nocturna": true|false, "captura_risco": true|false}}} - Número de caracteres esperado: O JSON final deve ser conciso e informativo, com um tamanho estimado em torno de 5.000 caracteres, podendo variar conforme a complexidade das transações.
1.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
1.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
1.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente Analítico de Detecção de Padrões e Pontuação de Risco de Fraude (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente Analítico de Detecção de Padrões e Pontuação de Risco de Fraude (RF 2).
RF 2. Agente Analítico de Detecção de Padrões e Pontuação de Risco de Fraude
2.1 Tarefa do Agente
Aplicar regras de negócio e padrões comportamentais para calcular score de risco (0-100), motivos explícitos e recomendação de ação.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON com transações enriquecidas e suas features calculadas. Este é o input necessário para a análise de risco de fraude.
# 2. Objetivo
Aplicar regras de negócio e padrões comportamentais para calcular score de risco (0-100), motivos explícitos e recomendação de ação.
# 3. Regras que você deve seguir para gerar sua resposta
- Inicie score=0. Para cada regra satisfeita, some peso indicado. Limite score em 100.
- R1 Utilização anômala de limite: se features.pct_utilizacao_limite >= 0.9 e valor >= 300, adicione {rule_id:"R1", gravidade:2, peso:10, descricao:"Utilização de limite >=90% em compra relevante", valor_observado:pct}.
- R2 Ticket fora do comportamento: se features.delta_valor_zscore_30d != null e >= 3, adicione {rule_id:"R2", gravidade:3, peso:18, descricao:"Valor > 3 desvios da média 30d", valor_observado:z}.
- R3 Velocidade 1h: se features.qtd_trans_1h >= 5 OU features.soma_valor_1h >= 5*agregados_cliente.media_ticket_30d (quando disponível), adicione {"R3", gravidade:3, peso:20, descricao:"Explosão de transações na última hora", valor_observado:{qtd:.., soma:..}}.
- R4 Mudança geográfica rápida: se features.dist_km_da_ult_pos != null e > 500 e tempo desde última transação < 2h, adicione {"R4", gravidade:3, peso:16, descricao:"Salto geográfico incompatível", valor_observado:dist}.
- R5 País divergente: se features.mudanca_pais_vs_ult_24h=true OU geo.pais em listas.paises_restritos, adicione {"R5", gravidade:2, peso:12, descricao:"País atípico/restrito"}.
- R6 MCC alto risco: se features.mcc_alto_risco=true, adicione {"R6", gravidade:2, peso:10, descricao:"MCC de alto risco"}.
- R7 Dispositivo/IP suspeito: se features.dispositivo_novo_90d=true, peso 8; se features.ip_em_lista_suspeita=true, peso adicional 12 com gravidade 3 e rule_id distinto "R7b".
- R8 Janela noturna: se features.trans_nocturna=true E canal in {ecom, app} E valor >= 200, adicione {"R8", gravidade:1, peso:6, descricao:"Transação noturna fora de padrão"}.
- R9 Método de captura arriscado: se features.captura_risco=true e valor >= 100, adicione {"R9", gravidade:2, peso:9}.
- R10 Falhas de dados críticos: se features.campo_faltante_critico=true OU features.sem_historico_valor=true, adicione {"R10", gravidade:1, peso:4, descricao:"Dados insuficientes"}.
- Ajuste por combinação forte: se R2 e R3 e R7b acionadas simultaneamente, aplique bônus +10 (sem exceder 100).
- risk_level por score: <30=baixo; 30-59=medio; 60-79=alto; >=80=critico.
- recomendacao: score <30 -> "aprovar"; 30-59 -> "revisar"; 60-79 -> "revisar"; >=80 -> "bloquear".
- motivos_top: selecione até 3 descrições dos maiores pesos; redija rótulos curtos e claros. 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 objeto JSON com as transações enriquecidas.
-
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.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo a avaliação de risco com score, nível de risco, motivos e recomendação de ação.
-
Exemplo de Estrutura de Output:
{"avaliacao_risco": {"transacao_id":"id", "score": 0-100, "risk_level": "baixo|medio|alto|critico", "rule_hits": [{"rule_id","gravidade":1-3,"peso":0-30,"descricao","valor_observado"}], "motivos_top": ["texto curto"], "recomendacao": "aprovar|revisar|bloquear"}} - Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 2.000 caracteres.
2.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
2.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para calcular scores de risco.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
2.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Decisão Operacional e Geração de Alerta (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Decisão Operacional e Geração de Alerta (RF 3).
RF 3. Agente de Decisão Operacional e Geração de Alerta
3.1 Tarefa do Agente
Transformar a avaliação de risco em uma decisão operacional e compor o alerta padronizado para as instituições financeiras.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON com a avaliação de risco detalhada de uma transação de crédito. Este é o input necessário para a geração de alertas.
# 2. Objetivo
Transformar a avaliação de risco em uma decisão operacional e compor o alerta padronizado para as instituições financeiras.
# 3. Regras que você deve seguir para gerar sua resposta
- Mapear severidade por risk_level: baixo->info; medio->warning; alto->high; critico->critical.
- bloqueio_sugerido=true quando recomendacao=="bloquear" OU quando risk_level=="critico"; caso contrário, false.
- SLA: critico=5 min; high=15 min; warning=60 min; info=60 min.
- destinatarios: se risk_level in {high, critico} inclua "time-fraude-n1@instituicao"; se warning, inclua "monitoramento@instituicao"; mantenha extensível via campo "destinatarios_extras" se existir no input.
- mensagem_curta deve conter: id transação, score, 1-2 motivos_top e ação sugerida, em até 180 caracteres.
- deduplicação: defina dedup_key = cliente_id + "|" + transacao_id. Se existir campo transacao.enriquecida.merchant_id, inclua sufixo "|merchant_id" para granularidade.
- detalhes.feature_chave: inclua somente features relevantes que suportam os maiores pesos acionados para facilitar auditoria.
- timestamp_alerta_iso: copie horario_iso da transação.
- Preserve integridade: não altere valores de score/rule_hits recebidos; apenas reordene para top motivos. 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 objeto JSON com a avaliação de risco de transações de crédito.
-
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é 2.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo o alerta padronizado para as instituições financeiras.
-
Exemplo de Estrutura de Output:
{"alerta": {"transacao_id","cliente_id","score", "risk_level", "recomendacao", "bloqueio_sugerido": true|false, "severidade": "info|warning|high|critical", "sla_minutos": 5|15|60, "destinatarios": ["fraude@instituicao"], "mensagem_curta": "string", "detalhes": {"rule_hits": [...], "features_chave": {"pct_utilizacao_limite","qtd_trans_1h","dist_km_da_ult_pos"}}, "dedup_key": "cliente_id|id", "timestamp_alerta_iso": "..."}} - Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 2.500 caracteres.
3.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
3.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- 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 devem ser 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 4).
3.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 4).
RF 4. Agente de Execução de Chamada à API
4.1 Tarefa do Agente
Realizar chamada à API da instituição financeira para registrar/entregar o alerta de possível fraude.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um payload pronto para envio, contendo o alerta de possível fraude e as informações necessárias para a chamada à API. # 2. Objetivo Realizar chamada à API da instituição financeira para registrar/entregar o alerta de possível fraude. # 3. Regras que você deve seguir para gerar sua resposta - Este agente apenas executa a chamada à API com o payload recebido, sem aplicar regras de LLM. - Certifique-se de que o endpoint_url e os headers estão devidamente configurados para a chamada. - Registre o status HTTP e o id_alerta_remoto retornados pela API como resultado do envio.
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 payload JSON pronto para envio.
-
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é 3.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo o resultado do envio, com status HTTP e id do alerta remoto.
-
Exemplo de Estrutura de Output:
{"resultado_envio": {"status_http": 200, "id_alerta_remoto": "abc123"}} - Número de caracteres esperado: O JSON gerado deve ser conciso, com um tamanho estimado em 500 caracteres.
4.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: Não se aplica (uso de ferramenta)
4.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: O agente deverá enviar o JSON recebido para a API externa e registrar o status retornado.
4.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta (resultado do envio) é o entregável final e não é passada para outros agentes internos.
4.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. O resultado do envio é o resultado que deve ser disponibilizado ao usuário.