Agente de IA para Classificação de Perfis de Risco

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

Como criar um agente de IA que classifica perfis de risco financeiro com base em dados de crédito.

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 criação do Agente de IA para Classificação de Perfis de Risco. Esta documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.

O objetivo principal é utilizar dados de crédito para classificar perfis de risco financeiro de clientes, aplicando modelos de machine learning para melhorar a precisão da classificação de risco e fornecer insights que permitam ajustes eficazes nas estratégias de crédito e cobrança.

2. Contexto e Problema

Problemas Específicos

O agente de IA para classificação de perfis de risco financeiro precisa resolver os seguintes problemas:

  • Dificuldade em classificar perfis de risco financeiro de forma precisa e confiável.
  • Necessidade de ajustar estratégias de crédito e cobrança com base na classificação de risco.

3. Impactos Esperados

A implementação deste agente de IA visa alcançar os seguintes resultados:

  • Melhoria na precisão da classificação de risco financeiro.
  • Ajustes eficazes nas estratégias de crédito e cobrança.
  • Redução de inadimplência através de estratégias de crédito mais assertivas.

4. Visão Geral da Solução

O agente de IA para classificação de perfis de risco financeiro processa dados de crédito para classificar perfis de risco e fornecer insights para ajustes estratégicos. 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 classificação de perfis de risco financeiro.

A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo começa com a validação e padronização dos dados de crédito e termina com a recomendação de estratégias de crédito e cobrança.

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

Agentes Função Principal
Agente de Validação e Padronização de Dados de Crédito (RF 1) Validar consistência e padronizar os dados de crédito de clientes.
Agente de Classificação de Risco Financeiro (RF 2) Atribuir escore e faixa de risco ao cliente com base em variáveis de crédito padronizadas.
Agente de Recomendações de Estratégia de Crédito e Cobrança (RF 3) Sugerir parâmetros de concessão de crédito e táticas de cobrança alinhados à faixa de risco.

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 Validação e Padronização de Dados de Crédito

1.1 Tarefa do Agente

Validar consistência e padronizar os dados de crédito de clientes, produzindo um payload normalizado e indicadores de qualidade para uso posterior.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados de crédito brutos de clientes em formato JSON. Este conjunto de dados inclui informações financeiras e demográficas dos clientes.

# 2. Objetivo
Validar a consistência e padronizar os dados de crédito, produzindo um payload normalizado e indicadores de qualidade para uso posterior.

# 3. Regras que você deve seguir para gerar sua resposta
- Tratar valores faltantes: se renda_mensal_bruta ausente e renda_variavel_mensal presente, renda_mensal_estimada = renda_variavel_mensal; se ambas ausentes, marcar em campos_faltantes e thin_file=true.
- Calcular dti_percent = (obrigacoes_mensais / renda_mensal_estimada)*100; se renda_mensal_estimada<=0, definir dti_percent = null e registrar inconsistência.
- Calcular utilizacao_total_percent = (saldo_total_credito / limite_total_credito)*100; se limite_total_credito=0, definir como 0 se saldo_total_credito=0, caso contrário null e inconsistência.
- pct_pagamentos_em_dia_12m = (# meses com status 'em_dia' / # meses informados) * 100; se <6 meses informados, marcar thin_file=true.
- estabilidade_emprego_meses = meses desde data_admissao; se ausente, null.
- Consolidar garantias: possui_garantia=true se lista não vazia; valor_garantias = soma valor.
- Normalizar consultas_6m = consultas_credito_6m (se negativo, setar 0 e inconsistência).
- Outliers: marcar outliers_detectados se qualquer métrica estiver fora de faixas plausíveis (ex.: dti_percent>300, utilizacao_total_percent>300, idade<18 ou >95, renda_mensal_estimada>99º percentil do conjunto quando houver lote; em item único, > R$ 1.000.000 marcar outlier).
- Completude: completude_percent = 100 - (campos_faltantes/total_campos_chave*100). Campos chave: renda_mensal_estimada, obrigacoes_mensais, limite_total_credito, saldo_total_credito, historico_pagamentos_12m, inadimplencias_12m, idade_credito_meses.
- Não inferir dados demográficos sensíveis para decisão; apenas transportar idade/UF se fornecidos.
- Registrar todas imputações em observacoes_norm.imputacoes indicando campo, valor imputado e motivo. 
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 crédito em formato JSON 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 dados de crédito em formato JSON.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs nos formatos: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 100.000 caracteres.

1.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo o payload normalizado e indicadores de qualidade dos dados.
  • Exemplo de Estrutura de Output:
     {
      "normalized": {...},
      "data_quality": {...},
      "observacoes_norm": {...}
    } 
  • 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 dos dados.

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: Utiliza lógica interna para cálculos de padronização e validação.
  • 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 Classificação de Risco Financeiro (RF 2).

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

Ao concluir sua execução, esse agente aciona o Agente de Classificação de Risco Financeiro (RF 2).

RF 2. Agente de Classificação de Risco Financeiro

2.1 Tarefa do Agente

Atribuir escore e faixa de risco ao cliente com base em variáveis de crédito padronizadas e qualidade dos dados.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados normalizados e indicadores de qualidade de crédito em formato JSON, produzidos pelo agente anterior.

# 2. Objetivo
Atribuir escore e faixa de risco ao cliente com base em variáveis de crédito padronizadas e qualidade dos dados.

# 3. Regras que você deve seguir para gerar sua resposta
- Se data_quality.thin_file=true ou completude_percent<70, definir faixa_risco='inconclusivo', risco_score_0_100=null, elegibilidade_credito='pendente' e solicitar requisitos_documentais_extra=['comprovante_renda','extrato_bancario_3m'].
- Construir risco_score_0_100 (quanto maior, menor risco) pela soma de subscores:
  • Pagamentos (0-40): pct_pagamentos_em_dia_12m => >=98:40; 95-97.99:32; 90-94.99:24; 80-89.99:12; <80:4.
  • Atraso Máx (0-15): max_dias_em_atraso_12m => 0:15; 1-15:10; 16-30:6; 31-60:3; >60:0.
  • Utilização (0-15): utilizacao_total_percent => <=30:15; 30.01-50:12; 50.01-75:8; 75.01-100:4; >100:0.
  • DTI (0-15): dti_percent => <=20:15; 20.01-35:12; 35.01-50:8; 50.01-75:3; >75:0; se null, atribuir 5 e flag 'DTI_INDISPONIVEL'.
  • Idade de Crédito (0-10): idade_credito_meses => >=72:10; 36-71:7; 12-35:4; <12:1.
  • Consultas 6m (0-5): 0-1:5; 2-3:3; 4-5:1; >5:0.
- Penalizações adicionais (subtrair do score): inadimplencias_12m>0: -15; acordos_renegociados_24m>0: -5; outliers_detectados não explicados: -5; utilizacao_total_percent>120: -5 extra.
- Limitar score entre 0 e 100 após ajustes.
- Mapear faixa_risco por score: >=80: 'baixo'; 60-79: 'medio'; 40-59: 'alto'; <40: 'critico'.
- Definir elegibilidade_credito: faixa 'baixo' ou 'medio' e sem flag crítica => 'aprovado'; 'alto' => 'aprovado_condicionado'; 'critico' => 'reprovado'.
- Gerar motivos_chave listando as três variáveis com maior impacto negativo ordenadas por contribuição (ex.: alta utilização, DTI elevado, atrasos recentes) ou positivas quando risco baixo.
- Flags obrigatórias: se dti_percent=null -> 'DTI_INDISPONIVEL'; se pct_pagamentos_em_dia_12m calculado com <6 meses -> 'HISTORICO_INSUFICIENTE'; se consultas_6m>5 -> 'MUITAS_CONSULTAS'; se max_dias_em_atraso_12m>30 -> 'ATRASO_RELEVANTE'.
- requisitos_documentais_extra: para 'aprovado_condicionado' incluir documentos que comprovem renda se DTI>50 ou DTI_INDISPONIVEL.
- criterios_aplicados deve listar todas as faixas e cortes avaliados com os valores do cliente. 
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 como input um JSON contendo dados normalizados e indicadores de qualidade.
  • 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é 6.000 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo o escore de risco, faixa de risco, e recomendação de elegibilidade de crédito.
  • Exemplo de Estrutura de Output:
     {
      "id_cliente": "123456",
      "risco_score_0_100": 85,
      "faixa_risco": "baixo",
      "motivos_chave": ["alta utilização", "DTI elevado", "atrasos recentes"],
      "flags": [{"codigo": "DTI_INDISPONIVEL", "descricao": "DTI não disponível"}],
      "requisitos_documentais_extra": [],
      "elegibilidade_credito": "aprovado",
      "criterios_aplicados": [...]
    } 
  • Número de caracteres esperado: O JSON final deve ser conciso e direto, com 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: Utiliza lógica interna para cálculos de escore e faixa de risco.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

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 Recomendações de Estratégia de Crédito e Cobrança (RF 3).

RF 3. Agente de Recomendações de Estratégia de Crédito e Cobrança

3.1 Tarefa do Agente

Sugerir parâmetros de concessão de crédito e táticas de cobrança alinhados à faixa de risco e aos motivos identificados.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados de risco do cliente, incluindo escore, faixa de risco, motivos chave e flags, produzidos pelo agente anterior.

# 2. Objetivo
Sugerir parâmetros de concessão de crédito e táticas de cobrança alinhados à faixa de risco e aos motivos identificados.

# 3. Regras que você deve seguir para gerar sua resposta
- Se elegibilidade_credito='reprovado': estrategia_credito null; estrategia_cobranca focada em prevenção de inadimplência e recuperação caso haja saldo: cadencia='proativa'; tom='preventivo'; canais=['app','email','sms']; primeiro_contato_dias=0; escalonamento='juridico_apenas_se_atraso>60d'.
- Faixa 'baixo': limite_sugerido_factor=0.8 do limite disponível; prazo_max_meses=48; taxa_risco_spread_bps=+150; necessidade_garantia=false; cobranca: cadencia='leve', tom='relacional', primeiro_contato_dias=7 pós vencimento, canais=['app','email'], ofertas_negociacao='desconto_juros_5% se atraso>15d'.
- Faixa 'medio': limite_sugerido_factor=0.6; prazo_max_meses=36; spread=+300 bps; garantia=false (ou true se valor alto>R$20k); cobranca: cadencia='moderada', tom='orientativo', primeiro_contato_dias=5, canais=['app','email','sms'], escalonamento='telefone se atraso>20d'.
- Faixa 'alto': limite_sugerido_factor=0.4; prazo_max_meses=24; spread=+600 bps; necessidade_garantia=true para valores>R$10k; condicoes_previas incluir 'comprovante_renda' e 'debito_automatico'; cobranca: cadencia='intensiva', tom='objetivo', primeiro_contato_dias=3, canais=['sms','telefone','app'], ofertas_negociacao='entrada_min_15%'.
- Faixa 'critico' com elegibilidade_condicionada não permitida: manter reprovado; se política permitir exceção com garantia real >=120% do valor, sugerir condicoes_previas=['garantia_real','coobrigado'] e limite_sugerido_factor=0.2.
- Ajustes baseados em motivos_chave: se 'alta utilizacao' reduzir limite_sugerido_factor em -0.1; se 'DTI elevado' reduzir prazo_max_meses em -6 e exigir débito automático; se 'atrasos recentes' antecipar primeiro_contato_dias em -2 e incluir canal 'telefone' já no primeiro contato.
- Se flags contiverem 'HISTORICO_INSUFICIENTE', manter cadencia='moderada' e solicitar atualização cadastral em condicoes_previas.
- Rationale deve explicar mapeamento direto: faixa -> parâmetros base -> ajustes por motivos/flags. 
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 como input um JSON contendo dados de risco do cliente, incluindo escore, faixa de risco, motivos chave e flags.
  • 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é 4.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo a estratégia de crédito e cobrança sugerida.
  • Exemplo de Estrutura de Output:
     {
      "id_cliente": "123456",
      "estrategia_credito": {
        "limite_sugerido_factor": 0.8,
        "prazo_max_meses": 48,
        "taxa_risco_spread_bps": 150,
        "necessidade_garantia": false,
        "condicoes_previas": []
      },
      "estrategia_cobranca": {
        "cadencia": "leve",
        "tom": "relacional",
        "canais": ["app", "email"],
        "primeiro_contato_dias": 7,
        "escalonamento": "",
        "ofertas_negociacao": "desconto_juros_5% se atraso>15d"
      },
      "rationale": {
        "alinhamento_faixa": "baixo",
        "como_motivos_influenciaram": ["alta utilização", "DTI elevado", "atrasos recentes"]
      }
    } 
  • Número de caracteres esperado: O JSON final deve ser claro e direto, com um tamanho estimado em torno de 3.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: Utiliza lógica interna para cálculos de estratégia de crédito e cobrança.
  • 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 é o entregável final e não é passada para outros agentes internos.

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

A execução deste agente finaliza o fluxo. A estratégia gerada é o resultado que deve ser disponibilizado ao usuário.

© 2025 prototipe.ai. Todos os direitos reservados.