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