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 de IA "Monitoramento de Transações de Vale-Refeição", uma solução de automação projetada para monitorar transações em tempo real, detectar atividades suspeitas e prevenir fraudes.
O objetivo principal é implementar um sistema de monitoramento contínuo que possa identificar e alertar sobre transações suspeitas de forma imediata, garantindo a segurança dos usuários e a integridade das transações realizadas com vale-refeição.
2. Contexto e Problema
Cenário Atual
As transações de vale-refeição estão sujeitas a riscos significativos de fraude, que podem resultar em perdas financeiras tanto para os usuários quanto para as empresas emissoras. A necessidade de um monitoramento em tempo real é crucial para detectar atividades suspeitas e tomar medidas preventivas rapidamente.
Problemas Identificados
- Risco de Fraudes: Transações fraudulentas podem ocorrer em grande volume, causando prejuízos significativos.
- Necessidade de Monitoramento em Tempo Real: A capacidade de detectar e responder a atividades suspeitas imediatamente é essencial para mitigar riscos.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Aumentar a segurança das transações de vale-refeição.
- Reduzir o risco de fraudes por meio de monitoramento em tempo real.
- Proteger os usuários de transações não autorizadas.
- Melhorar a confiança dos clientes no sistema de vale-refeição.
4. Visão Geral da Solução
O agente de IA para monitoramento de transações de vale-refeição processa eventos de transações em tempo real, aplica regras de detecção de fraudes e emite alertas para atividades suspeitas. 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.
A solução consiste em um fluxo de automação composto por 5 agentes de IA. O processo inicia com a recepção do evento de transação e termina com a execução de ações corretivas e notificações.
A execução dos agentes é sequencial, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Normalização e Enriquecimento de Evento de Transação (RF 1)
| Receber o evento bruto de transação e produzir um payload normalizado, com features calculadas e parâmetros prontos para consultas externas. |
Agente de Execução de Consultas em Banco de Dados (RF 2)
| Realizar conexão com sistemas transacionais e data marts para obter histórico recente e listas de risco. |
Agente de Análise de Risco de Fraude em Tempo Real (RF 3)
| Combinar o evento normalizado com dados históricos para calcular score e sugerir medidas preventivas. |
Agente de Geração de Alerta e Plano de Ação (RF 4)
| Transformar a decisão de risco em payloads operacionais para alerta interno e notificações ao usuário. |
Agente de Execução de Chamada à API (RF 5)
| Enviar comandos operacionais aos sistemas para execução de ações corretivas e notificações. |
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 Normalização e Enriquecimento de Evento de Transação
1.1 Tarefa do Agente
Receber o evento bruto de transação de vale-refeição e produzir um payload normalizado, com features calculadas e parâmetros prontos para consultas externas.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um evento bruto de transação de vale-refeição em tempo real. Este evento contém detalhes da transação que precisam ser normalizados e enriquecidos para análise de risco.
# 2. Objetivo
Normalizar os dados do evento de transação e calcular features imediatas para auxiliar na análise de risco.
# 3. Regras que você deve seguir para gerar sua resposta
- Padronize datas para ISO-8601; derive ts_local usando fuso do estabelecimento (fallback: fuso da sede da empresa).
- Normalize CNPJ (apenas dígitos, 14 chars). MCC deve ser string de 4 dígitos; se ausente, defina "0000" e marque feature missing_mcc=true.
- Canal deve ser um de {POS, ECOM, APP, QR}; se outro, defina canal="OUTRO" e flag canal_desconhecido=true.
- Calcule features imediatas sem histórico: eh_madrugada se hora_local ∈ [0,5]; eh_horario_refeicao se hora_local ∈ [11,15] ou [18,22]; valor_arredondado se valor tem centavos == 00.
- Valide campos obrigatórios: transacao_id, timestamp, portador_id, cartao_id, empresa_id, estabelecimento_id, valor. Se faltar algum, inclua lista campos_faltantes no output e defina feature evento_incompleto=true.
- Gere parametros_consulta contendo IDs e janelas de interesse; nunca inclua dados sensíveis do portador além de IDs.
- Se geo ausente, não calcule distância; defina precisa_geo=false. 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 eventos de transação em tempo real 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 evento bruto de transação em tempo real.
-
Formatos Suportados: Esse agente deve ser capaz de receber eventos nos formatos:
.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 objeto JSON contendo o evento normalizado, features imediatas e parâmetros de consulta.
-
Exemplo de Estrutura de Output:
{"transacao_id":"abc123","evento_normalizado":{"ts_utc":"2025-12-23T10:38:12Z","ts_local":"2025-12-23T07:38:12-03:00","dia_semana":2,"hora_local":7,"portador_id":"u-001","cartao_id":"c-789","empresa_id":"e-555","estabelecimento_id":"m-321","cnpj":"00000000000100","mcc":"5411","valor":72.5,"moeda":"BRL","canal":"POS","geo":{"lat":-23.5,"lng":-46.6},"device_id":"d-111"},"features_imediatas":{"valor_abs":72.5,"valor_arredondado":false,"eh_madrugada":false,"eh_horario_refeicao":true},"parametros_consulta":{"portador_id":"u-001","cartao_id":"c-789","empresa_id":"e-555","estabelecimento_id":"m-321","cnpj":"00000000000100","mcc":"5411","janelas":{"minutos_5":true,"minutos_30":true,"horas_24":true,"dias_30":true}}} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 3.500 caracteres.
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 de Execução de Consultas em Banco de Dados (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 Consultas em Banco de Dados (RF 2).
RF 2. Agente de Execução de Consultas em Banco de Dados
2.1 Tarefa do Agente
Realizar conexão com os sistemas transacionais e data marts para obter histórico recente do portador e do estabelecimento, limites de política e listas de risco.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo parâmetros prontos para consulta que devem ser usados para acessar dados históricos e listas de risco em sistemas externos. # 2. Objetivo Executar consultas em bancos de dados para recuperar informações necessárias para a análise de risco de fraude. # 3. Regras que você deve seguir para gerar sua resposta - Este agente apenas executa as consultas conforme parâmetros recebidos e retorna os dados recuperados, sem lógica adicional.
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 bem-sucedida do agente anterior (RF 1).
- Tipo do input: Este agente deve ser apto a receber parâmetros de consulta em formato JSON.
-
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.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo os dados históricos recuperados e listas de risco necessárias para a análise de risco.
-
Exemplo de Estrutura de Output:
{"historico_transacoes_portador_24h":[...],"agregados_velocidade":{"5m":{...},"30m":{...},"24h":{...}},"perfil_horario_portador":{"janela_refeicoes":[11,15,18,22],"media_valor_30d":45.8,"desvio_valor_30d":18.2},"limites_politica":{"valor_max_transacao":120.0,"valor_max_dia":200.0,"mcc_permitidos":["5411","5812","5814"],"horario_permitido":{"inicio":6,"fim":23}},"listas_risco":{"cartoes_bloqueados":["c-000"],"cnpjs_bloqueados":["11111111000111"],"dispositivos_suspeitos":["d-999"]},"dispositivos_conhecidos":["d-101","d-111"]} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 3.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: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: O agente se conecta aos sistemas transacionais e data marts para executar consultas.
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 Análise de Risco de Fraude em Tempo Real (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Análise de Risco de Fraude em Tempo Real (RF 3).
RF 3. Agente de Análise de Risco de Fraude em Tempo Real
3.1 Tarefa do Agente
Combinar o evento normalizado com dados históricos e de políticas para calcular score, identificar regras acionadas, decidir e sugerir medidas preventivas.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um pacote que combina o evento normalizado de transação com dados históricos e de políticas.
# 2. Objetivo
Analisar o pacote de dados para calcular um score de risco, identificar regras acionadas e sugerir ações preventivas para a transação.
# 3. Regras que você deve seguir para gerar sua resposta
- Calcule score_risco em 0–100 somando pesos de regras acionadas; categorize: 0–39 BAIXO, 40–69 MEDIO, 70–100 ALTO.
- Regras determinísticas críticas (se qualquer uma acionar, suspeita_fraude=true e acao_recomendada>=BLOQUEAR_AUTORIZACAO):
• CARTAO_BLOQUEADO se cartao_id em listas_risco.cartoes_bloqueados.
• CNPJ_BLOQUEADO se cnpj em listas_risco.cnpjs_bloqueados.
• DISPOSITIVO_SUSPEITO se device_id em listas_risco.dispositivos_suspeitos e não em dispositivos_conhecidos.
- Regras de política e comportamento (atribua pesos sugeridos):
• HORARIO_FORA_PERMITIDO (+25): se hora_local fora [limites_politica.horario_permitido.inicio, fim].
• MCC_NAO_PERMITIDO (+30): se mcc não em limites_politica.mcc_permitidos.
• VALOR_ACIMA_LIMITE_TRANSACAO (+20): valor > limites_politica.valor_max_transacao.
• EXTRAPOLACAO_GASTO_DIARIO (+20): soma valores aprovados no dia + valor atual > limites_politica.valor_max_dia.
• VELOCIDADE_TRANSACOES_5M (+20): contagem_portador_5m >= 3 ou soma_valor_5m > 2× media_valor_30d.
• FRACIONAMENTO_MESMO_ESTAB (+15): >=3 transações no mesmo estabelecimento em 15 min com valores similares (variação <=10%).
• PADRAO_VALOR_REDONDO_REPETIDO (+10): >=3 transações com valores múltiplos de 10 em 30 min fora de horário de pico.
• DISPOSITIVO_NOVO_SEM_HABITO (+10): device_id não em dispositivos_conhecidos e valor > media_valor_30d + 1,5×desvio.
• GEO_VELOCIDADE_IMPROVAVEL (+30): distância_km entre última transação e atual / delta_t_horas > 500 km/h.
• LOCALIDADE_SUBITA_DISTANTE (+15): distância_km > 100 km fora de período de viagem cadastrada.
• TENTATIVAS_FALHAS_RECENTES (+15): >=3 negativas nas últimas 2h antes da pendente.
- Decisão baseada no score e regras críticas:
• Se regra crítica acionada ou score>=80: acao_recomendada = BLOQUEAR_AUTORIZACAO; medidas: bloqueio_temporario_30min, notificar_usuario_otp.
• Se 60<=score<80: acao_recomendada = STEP_UP_AUTENTICACAO (OTP no app); medidas: solicitar_otp, notificar_usuario_informativo.
• Se 40<=score<60: acao_recomendada = REVISAR_MANUAL; medidas: abrir_ticket,
• Se score<40 e sem regras críticas: APROVAR_COM_MONITORAMENTO; medidas: monitorar.
- Prioridade do alerta: P1 se BLOQUEAR; P2 se STEP_UP; P3 se REVISAR; P4 se APROVAR_COM_MONITORAMENTO. Defina sla_resposta_segundos: P1=5, P2=30, P3=300, P4=0.
- Sempre preencher regras_acionadas como lista de objetos {codigo,peso} e motivos em linguagem clara para auditoria.
- Defina acao_requer_envio_api=true quando acao_recomendada in {BLOQUEAR_AUTORIZACAO, STEP_UP_AUTENTICACAO, APROVAR_COM_MONITORAMENTO} para permitir envio de comandos e notificações.
- Não inclua dados pessoais além de IDs; nunca registrar PAN completo. 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 bem-sucedida do agente anterior (RF 2).
- Tipo do input: Este agente deve ser apto a receber um pacote de dados em formato JSON que combina evento normalizado e dados históricos.
-
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é 10.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo a decisão estruturada sobre a transação, incluindo score de risco, ações recomendadas e medidas preventivas.
-
Exemplo de Estrutura de Output:
{"transacao_id":"abc123","suspeita_fraude":true,"score_risco":87,"categoria_risco":"ALTO","regras_acionadas":[{"codigo":"HORARIO_FORA_PERMITIDO","peso":25},{"codigo":"GEOVIAGEM_IMPOSSIVEL","peso":30}],"motivos":["Transação fora do horário permitido","Velocidade incompatível com deslocamento"],"acao_recomendada":"BLOQUEAR_AUTORIZACAO","medidas_preventivas":["bloqueio_temporario_30min","notificar_usuario_otp"],"prioridade_alerta":"P1","sla_resposta_segundos":5,"acao_requer_envio_api":true} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 2.000 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: Utiliza lógica interna para calcular score de risco e categorizar decisões.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
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 Geração de Alerta e Plano de Ação (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Geração de Alerta e Plano de Ação (RF 4).
RF 4. Agente de Geração de Alerta e Plano de Ação
4.1 Tarefa do Agente
Transformar a decisão de risco em payloads operacionais para alerta interno e notificações ao usuário, prontos para execução.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo uma decisão de risco estruturada de uma transação que precisa ser transformada em ações operacionais. # 2. Objetivo Gerar payloads operacionais para alerta interno, ações de sistema e notificações ao usuário com base na decisão de risco recebida. # 3. Regras que você deve seguir para gerar sua resposta - Mapeie acao_recomendada para payload_acao_sistema: BLOQUEAR_AUTORIZACAO => bloquear transação e cartão por duracao_bloqueio_min; STEP_UP_AUTENTICACAO => solicitar OTP e aguardar confirmação; APROVAR_COM_MONITORAMENTO => aprovar e monitorar; REVISAR_MANUAL => não executar ação automática, apenas abrir alerta. - Ajuste payload_notificacao_usuario: incluir somente informações necessárias (valor, estabelecimento genérico, sem CNPJ completo). - Defina destinatarios_equipes conforme prioridade: P1->fraude_rt; P2->fraude_rt; P3->analise_fraude; P4->monitoramento. - Se categoria_risco = ALTO e regra crítica presente, force step_up=false no bloqueio (bloqueio imediato). Se MEDIO com STEP_UP, step_up=true e não bloquear cartão preventivamente. - Todos os payloads devem conter transacao_id para rastreabilidade.
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 bem-sucedida do agente anterior (RF 3).
- Tipo do input: Este agente deve ser apto a receber uma decisão de risco estruturada em formato JSON.
-
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.500 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo payloads operacionais para alertas, ações de sistema e notificações ao usuário.
-
Exemplo de Estrutura de Output:
{"payload_alerta_operacional": {"prioridade":"P1","titulo":"Fraude potencial em vale-refeição","descricao":"Transação abc123 com risco ALTO (87)","regras":[...],"sla_segundos":5,"destinatarios_equipes":["fraude_rt","op_autorizacoes"]},"payload_acao_sistema": {"transacao_id":"abc123","acao":"BLOQUEAR_AUTORIZACAO","duracao_bloqueio_min":30,"step_up":false},"payload_notificacao_usuario": {"portador_id":"u-001","canal":"APP","template":"suspeita_fraude_otp","parametros":{"valor":72.5,"estabelecimento_id":"m-321"}}} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 2.000 caracteres.
4.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
4.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
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 gerada por este agente deve ser visível para o Agente de Execução de Chamada à API (RF 5).
4.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 5).
RF 5. Agente de Execução de Chamada à API
5.1 Tarefa do Agente
Enviar comandos operacionais aos sistemas: bloqueio/liberação de autorização, abertura de alerta/ticket e envio de notificação ao usuário.
5.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo payloads prontos para execução operacional, incluindo ações de sistema e notificações. # 2. Objetivo Executar as chamadas às APIs de autorização/risco, gestão de tickets e notificações conforme payloads recebidos. # 3. Regras que você deve seguir para gerar sua resposta - Este agente apenas executa as chamadas às APIs de autorização/risco, gestão de tickets e notificações conforme payloads recebidos, retornando os resultados de execução.
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 bem-sucedida do agente anterior (RF 4).
- Tipo do input: Este agente deve ser apto a receber payloads prontos em formato JSON.
-
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.500 caracteres.
5.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo os resultados da execução das chamadas às APIs.
-
Exemplo de Estrutura de Output:
{"resultado_execucao": {"acao_sistema": {"status":"SUCESSO","protocolo":"op-20251223-001"},"alerta_operacional": {"status":"SUCESSO","ticket_id":"TCK-98765"},"notificacao_usuario": {"status":"SUCESSO","mensagem_id":"MSG-123"}}} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 1.500 caracteres.
5.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
5.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: O agente se conecta aos sistemas de autorização/risco, gestão de tickets e notificações para executar comandos.
5.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 é o entregável final e não é passada para outros agentes internos.
5.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. Os resultados das execuções são registrados para auditoria e controle.