1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados, chamadas a sistemas externos e demais requisitos funcionais para o Fluxo de Agentes "Geração de Relatórios de Risco de Crédito", uma solução projetada para analisar dados de crédito de consumidores e empresas e gerar relatórios detalhados de risco para instituições financeiras. 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 é automatizar a análise de dados de crédito, utilizando algoritmos de machine learning para prever riscos e gerar relatórios detalhados e personalizados, reduzindo o tempo e esforço manual dos analistas financeiros.
2. Contexto e Problema
Cenário Atual
As instituições financeiras enfrentam desafios significativos na análise de risco de crédito devido à necessidade de compilar dados de múltiplas fontes, o que consome tempo e recursos. Os analistas frequentemente gastam horas em processos manuais para gerar relatórios de risco detalhados.
- Dificuldade em compilar dados de crédito de diversas fontes de forma eficiente e precisa.
- Necessidade de análises detalhadas e personalizadas para diferentes perfis de clientes.
- Tempo excessivo gasto por analistas financeiros na geração manual de relatórios de risco.
Problemas Identificados
- Consumo de tempo: A compilação manual e análise de dados de crédito é um processo demorado.
- Falta de precisão: A análise manual está sujeita a erros, resultando em relatórios de qualidade inconsistente.
- Incapacidade de personalização: A dificuldade em personalizar análises para diferentes perfis de clientes limita a eficácia dos relatórios.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Reduzir o tempo de geração de relatórios em pelo menos 70%.
- Aumentar a precisão das análises de risco de crédito.
- Fornecer relatórios personalizados para diferentes perfis de clientes.
- Melhorar a eficiência dos analistas financeiros, permitindo que se concentrem em decisões estratégicas.
4. Visão Geral da Solução
O agente de IA para geração de relatórios de risco de crédito automatiza a coleta e análise de dados de crédito, utilizando algoritmos de machine learning para prever riscos e gerar relatórios personalizados. 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 análise de risco de crédito.
A solução consiste em um fluxo de automação composto por 7 agentes de IA. O processo inicia com a coleta de dados de múltiplas fontes e termina com a geração de um relatório de risco de crédito detalhado.
A execução dos agentes é sequencial, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente Preparador de Coleta de Dados de Crédito (RF 1)
| Preparar os payloads para chamadas às múltiplas fontes de dados de crédito. |
Agente de Execução de Chamada à API - Fontes de Crédito (RF 2)
| Realizar as chamadas às APIs das fontes de crédito e retornar os dados brutos. |
Agente de Consolidação e Normalização de Dados de Crédito (RF 3)
| Consolidar e normalizar os dados brutos em um esquema unificado. |
Agente Preparador de Features de Risco (RF 4)
| Transformar o consolidado em vetor de features para input de modelo de ML. |
Agente de Execução de Chamada à API - Scoring de Risco (RF 5)
| Realizar a chamada ao serviço de ML para obter previsão de risco a partir das features. |
Agente de Análise e Interpretação de Risco de Crédito (RF 6)
| Interpretar o resultado do modelo e gerar classificação de risco e recomendações. |
Agente Gerador de Relatório de Risco de Crédito (RF 7)
| Produzir o relatório final de risco de crédito em formato legível para analistas. |
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 Preparador de Coleta de Dados de Crédito
1.1 Tarefa do Agente
Preparar, a partir dos identificadores do cliente e do escopo solicitado, os payloads padronizados para chamadas às múltiplas fontes de dados de crédito (bureaus e fontes internas/externas).
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON com os identificadores do cliente e o escopo solicitado para a coleta de dados de crédito.
# 2. Objetivo
Preparar os payloads padronizados para chamadas às múltiplas fontes de dados de crédito (bureaus e fontes internas/externas).
# 3. Regras que você deve seguir para gerar sua resposta
- Regra 1 (validação de identidade): Exigir para PF: identificadores.cpf com 11 dígitos numéricos e identificadores.data_nascimento em ISO 8601 (YYYY-MM-DD). Exigir para PJ: identificadores.cnpj com 14 dígitos numéricos e identificadores.razao_social não vazio. Se ausente ou malformatado, produzir saída no formato {"erro": {"codigo": "IDENTIFICADOR_INVALIDO", "detalhe": "campo_faltante_ou_formato_invalido"}} e não gerar chamadas.
- Regra 2 (normalização): Remover máscaras de CPF/CNPJ (apenas dígitos). Converter datas e timestamps para ISO 8601 UTC (YYYY-MM-DD ou YYYY-MM-DDTHH:MM:SSZ). Normalizar strings de fonte para minúsculas e snake_case.
- Regra 3 (janela temporal): Se escopo.janela_meses não informado, usar 24. Aplicar limites: mínimo 6, máximo 60. Calcular periodo_inicio = data_atual - janela_meses (começo do dia), periodo_fim = data_atual (fim do dia) e incluir no payload das fontes que exigem período (ex.: open_banking).
- Regra 4 (roteamento por fonte): Mapear fonte -> endpoint obrigatório: bureau_A -> "/consulta-score"; bureau_B -> "/consulta-score"; open_banking -> "/extratos/consolidados"; cadastro_interno -> "/clientes/historico_credito". Se fonte desconhecida, omitir e adicionar aviso em {"avisos": ["fonte_desconhecida:"]}.
- Regra 5 (payload mínimo): Incluir apenas chaves exigidas pela fonte: cpf_cnpj (numérico), janela_meses ou periodo_inicio/periodo_fim, e identificadores internos quando fornecidos (ex.: id_interno). Não incluir dados pessoais não necessários (nome, endereço, e-mail).
- Regra 6 (consentimento): Se fonte em {open_banking, bureau_A, bureau_B} e consentimento.termo_assinado != true, abortar e retornar {"erro": {"codigo": "CONSENTIMENTO_AUSENTE", "detalhe": "termo_assinado=false"}}. Se true, propagar no payload apenas flags exigidas (ex.: {"consentimento_ts": timestamp}).
- Regra 7 (idempotência): Garantir que duas execuções com o mesmo input gerem a mesma lista e ordem de chamadas. Ordenar chamadas por fonte em ordem alfabética.
- Regra 8 (auditoria de preparo): Incluir no topo do output opcional {"meta": {"tipo_cliente": "PF|PJ", "janela_meses": N, "fontes_solicitadas": [...], "timestamp_preparo": "ISO_UTC"}}.
- Regra 9 (segurança): Nunca incluir credenciais, chaves de API ou tokens de sessão no payload preparado. Substituir qualquer campo sensível inadvertido por null e registrar em avisos.
# 4. Exemplo de Output que você deve produzir
{"chamadas": [{"fonte": "bureau_A", "endpoint": "/consulta-score", "payload": {"cpf_cnpj": "00000000000", "janela_meses": 24}}, {"fonte": "open_banking", "endpoint": "/extratos/consolidados", "payload": {"cpf_cnpj": "00000000000", "periodo_inicio": "2023-12-01", "periodo_fim": "2025-11-28"}}, {"fonte": "cadastro_interno", "endpoint": "/clientes/historico_credito", "payload": {"id_interno": "abc-123"}}]} 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 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 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 com identificadores e consentimentos do cliente.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 10.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo as chamadas preparadas para as fontes de dados de crédito. A estrutura deve incluir a fonte, o endpoint e o payload para cada chamada.
-
Exemplo de Estrutura de Output:
{"chamadas": [{"fonte": "bureau_A", "endpoint": "/consulta-score", "payload": {"cpf_cnpj": "00000000000", "janela_meses": 24}}, {"fonte": "open_banking", "endpoint": "/extratos/consolidados", "payload": {"cpf_cnpj": "00000000000", "periodo_inicio": "2023-12-01", "periodo_fim": "2025-11-28"}}, {"fonte": "cadastro_interno", "endpoint": "/clientes/historico_credito", "payload": {"id_interno": "abc-123"}}]} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 2.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 Chamada à API - Fontes de Crédito (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 - Fontes de Crédito (RF 2).
RF 2. Agente de Execução de Chamada à API - Fontes de Crédito
2.1 Tarefa do Agente
Realizar as chamadas às APIs das fontes de crédito conforme os payloads preparados e retornar os dados brutos por fonte.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON no formato {"chamadas": [{"fonte": "bureau_A", "endpoint": "/consulta-score", "payload": {...}}, ...]}
# 2. Objetivo
Realizar as chamadas às APIs das fontes de crédito e retornar os dados brutos por fonte.
# 3. Regras que você deve seguir para gerar sua resposta
- Esse agente não precisa de instruções para chamadas ao LLM, pois sua única função é executar a(s) chamada(s) à(s) API(s) cujo payload já recebe pronto. 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 contendo as chamadas preparadas para as fontes de dados de crédito.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 10.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo os dados brutos retornados de cada fonte de crédito consultada.
-
Exemplo de Estrutura de Output:
{"resultados": [{"fonte": "bureau_A", "status": 200, "dados": {"score": 713, "faixa": "B"}}, {"fonte": "open_banking", "status": 200, "dados": {"receitas_12m": 125000.45, "despesas_12m": 99000.12, "sazonalidade": {"q1": 0.9, "q2": 1.1, "q3": 1.2, "q4": 0.8}}]} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.000 caracteres.
2.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: Não se aplica (uso de ferramenta)
2.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: O agente deverá executar as chamadas às APIs externas conforme os endpoints e payloads recebidos.
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 Consolidação e Normalização de Dados de Crédito (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 de Dados de Crédito (RF 3).
RF 3. Agente de Consolidação e Normalização de Dados de Crédito
3.1 Tarefa do Agente
Consolidar e normalizar os dados brutos retornados de múltiplas fontes em um esquema unificado e com métricas derivadas padronizadas.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON com os resultados das fontes de crédito consultadas.
# 2. Objetivo
Consolidar e normalizar os dados brutos retornados de múltiplas fontes em um esquema unificado e com métricas derivadas padronizadas.
# 3. Regras que você deve seguir para gerar sua resposta
- Regra 1 (filtro e status): Ignorar entradas cujo status não esteja em {200, 206}. Se nenhuma fonte válida, retornar {"erro": {"codigo": "SEM_DADOS_VALIDOS"}}.
- Regra 2 (normalização semântica): Mapear chaves heterogêneas para o esquema alvo: scores., registro_inadimplencia.{quantidade,mais_recente}, consultas.{ultimos_6m,instituicoes_unicas_6m}, open_banking.{receita_12m,despesa_12m,volatilidade}, cadastro_interno.{limite_atual,atrasos_12m}. Manter nomes de fonte em snake_case.
- Regra 3 (resolução por recência e confiabilidade): Para campos conflitantes com timestamp, escolher o mais recente. Se empate, aplicar prioridade de fonte: cadastro_interno > open_banking > bureau_A > bureau_B. Registrar em "proveniencia" o par {"campo":"fonte_escolhida","timestamp":"ISO"} para cada decisão crítica.
- Regra 4 (score_composto): Se existirem n scores em escala 0–1000, calcular média ponderada. Pesos padrão: fonte_principal = 0.5 (se definida em input meta; senão, a de maior recência), segunda = 0.3, terceira = 0.2; se apenas 2 fontes, normalizar pesos para somar 1; se 1 fonte, peso 1. Arredondar para inteiro.
- Regra 5 (consultas 6m): Se houver lista de consultas por data/instituição, contar eventos com data >= (data_atual - 180 dias) e computar instituições distintas no mesmo período. Se apenas contadores agregados forem fornecidos, usar o valor direto.
- Regra 6 (volatilidade de receita): Calcular volatilidade = desvio_padrão(mensal_receita_12m) / média(mensal_receita_12m). Se não houver série mensal, aproximar por sazonalidade informada; se indisponível, setar null.
- Regra 7 (qualidade do dado): Completude = (#campos_essenciais_presentes)/(#campos_essenciais), onde campos_essenciais = {scores, registro_inadimplencia, consultas, open_banking.receita_12m, open_banking.despesa_12m}. Consistência = 1 - (conflitos_resolvidos/total_campos_avaliados). Reportar fontes_disponiveis = lista de fontes com status válido.
- Regra 8 (deduplicação de eventos): Unificar eventos de inadimplência se (tipo igual) AND (valor dentro de ±5%) AND (datas em janela de ±15 dias). Após deduplicar, recomputar quantidade e mais_recente.
- Regra 9 (identificador e tipo): Inferir tipo_cliente por tamanho do identificador (11->PF, 14->PJ) se não vier explícito. Popular consolidado.identificador com CPF/CNPJ numérico.
- Regra 10 (sanidade): Capear métricas em intervalos de negócio: consultas.ultimos_6m ∈ [0, 50]; open_banking.receita_12m, despesa_12m ≥ 0; volatilidade ∈ [0, 5]. Valores fora do intervalo devem ser ajustados ao limite e anotados em "avisos".
# 4. Exemplo de Output que você deve produzir
{"consolidado": {"tipo_cliente": "PF|PJ", "identificador": "CPF ou CNPJ", "scores": {"bureau_A": 713, "bureau_B": 680, "score_composto": 701}, "registro_inadimplencia": {"quantidade": 2, "mais_recente": "2025-03-10"}, "consultas": {"ultimos_6m": 8, "instituicoes_unicas_6m": 5}, "open_banking": {"receita_12m": 125000.45, "despesa_12m": 99000.12, "volatilidade": 0.22}, "cadastro_interno": {"limite_atual": 15000, "atrasos_12m": 1}, "qualidade_dado": {"completude": 0.94, "consistencia": 0.9, "fontes_disponiveis": ["bureau_A", "open_banking", "cadastro_interno"]}}} 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 contendo os dados brutos retornados de cada fonte de crédito consultada.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 12.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON consolidado e normalizado, contendo todas as métricas derivadas padronizadas.
-
Exemplo de Estrutura de Output:
{"consolidado": {"tipo_cliente": "PF|PJ", "identificador": "CPF ou CNPJ", "scores": {"bureau_A": 713, "bureau_B": 680, "score_composto": 701}, "registro_inadimplencia": {"quantidade": 2, "mais_recente": "2025-03-10"}, "consultas": {"ultimos_6m": 8, "instituicoes_unicas_6m": 5}, "open_banking": {"receita_12m": 125000.45, "despesa_12m": 99000.12, "volatilidade": 0.22}, "cadastro_interno": {"limite_atual": 15000, "atrasos_12m": 1}, "qualidade_dado": {"completude": 0.94, "consistencia": 0.9, "fontes_disponiveis": ["bureau_A", "open_banking", "cadastro_interno"]}}} - 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: GPT-5
- Temperatura: 0.6
3.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Utiliza lógica interna para calcular métricas derivadas.
- 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 Preparador de Features de Risco (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente Preparador de Features de Risco (RF 4).
RF 4. Agente Preparador de Features de Risco
4.1 Tarefa do Agente
Transformar o consolidado em vetor de features padronizado para input de modelo de ML (scoring/PD/LGD).
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON com o bloco "consolidado" unificado.
# 2. Objetivo
Transformar o consolidado em vetor de features padronizado para input de modelo de ML (scoring/PD/LGD).
# 3. Regras que você deve seguir para gerar sua resposta
- Regra 1 (seleção de variáveis): Popular features com chaves fixas: score_composto, qtd_inadimplencia, consulta_6m, renda_receita_12m, despesa_12m, relacao_despesa_receita, volatilidade, limite_atual, atrasos_12m, idade_credito_meses, setor_pj (para PJ) e renda_presumida (para PF, se disponível). Ausentes devem ser imputados.
- Regra 2 (imputação): Numéricas: usar mediana de referência do portfólio (se não fornecida, usar 0). Categóricas: usar "desconhecido". relacao_despesa_receita = despesa_12m / max(renda_receita_12m, 1). volatilidade: se null, setar 0.0.
- Regra 3 (transformações): Aplicar caps: consulta_6m ∈ [0,50]; qtd_inadimplencia ∈ [0,50]; relacao_despesa_receita ∈ [0,5]; volatilidade ∈ [0,5]. Aplicar log1p para receita e despesa adicionais somente se modelo exigir via flag "transformacao": não aplicar por padrão.
- Regra 4 (reprodutibilidade): Fixar ordem de chaves do objeto features conforme lista da Regra 1. Não incluir qualquer campo derivado de relógio além de metadata.timestamp.
- Regra 5 (metadata): Incluir tipo_cliente, identificador numérico (não ofuscado para o serviço de modelo), e timestamp ISO UTC. Não incluir nome, data de nascimento, razão social.
- Regra 6 (sanidade): Se renda_receita_12m = 0 e despesa_12m > 0, definir relacao_despesa_receita = 5 (cap) e adicionar aviso "sem_receita_com_despesa" em metadata. Se limite_atual negativo, ajustar para 0.
# 4. Exemplo de Output que você deve produzir
{"modelo": "credit_risk_v1", "features": {"score_composto": 701, "qtd_inadimplencia": 2, "consulta_6m": 8, "renda_receita_12m": 125000.45, "despesa_12m": 99000.12, "volatilidade": 0.22, "relacao_despesa_receita": 0.79, "limite_atual": 15000, "atrasos_12m": 1, "idade_credito_meses": 56, "setor_pj": null}, "metadata": {"tipo_cliente": "PF", "identificador": "00000000000", "timestamp": "2025-11-28T04:54:00Z"}} 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 objeto JSON com o bloco "consolidado" unificado.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 5.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo o vetor de features padronizado para input de modelo de ML.
-
Exemplo de Estrutura de Output:
{"modelo": "credit_risk_v1", "features": {"score_composto": 701, "qtd_inadimplencia": 2, "consulta_6m": 8, "renda_receita_12m": 125000.45, "despesa_12m": 99000.12, "volatilidade": 0.22, "relacao_despesa_receita": 0.79, "limite_atual": 15000, "atrasos_12m": 1, "idade_credito_meses": 56, "setor_pj": null}, "metadata": {"tipo_cliente": "PF", "identificador": "00000000000", "timestamp": "2025-11-28T04:54:00Z"}} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 2.500 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.
- Calculadora: Utiliza lógica interna para calcular transformações de features.
- 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 - Scoring de Risco (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 - Scoring de Risco (RF 5).
RF 5. Agente de Execução de Chamada à API - Scoring de Risco
5.1 Tarefa do Agente
Realizar a chamada ao serviço de Machine Learning para obter previsão de risco (ex.: PD, score, LGD) a partir das features.
5.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON no formato {"modelo": "credit_risk_v1", "features": {...}, "metadata": {...}}
# 2. Objetivo
Realizar a chamada ao serviço de Machine Learning para obter previsão de risco (ex.: PD, score, LGD) a partir das features.
# 3. Regras que você deve seguir para gerar sua resposta
- Esse agente não precisa de instruções para chamadas ao LLM, pois sua única função é executar a chamada à API do modelo de ML cujo payload ele já recebe pronto. 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 objeto JSON no formato esperado pelo serviço de Machine Learning.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 5.000 caracteres.
5.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo a previsão de risco e a explicação das principais variáveis que influenciaram o modelo.
-
Exemplo de Estrutura de Output:
{"scoring": {"modelo": "credit_risk_v1", "score": 0.78, "pd_12m": 0.065, "lgd": 0.35, "faixa": "M"}, "explainability": {"top_drivers": [{"feature": "qtd_inadimplencia", "impact": 0.21}, {"feature": "relacao_despesa_receita", "impact": 0.18}]}} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 2.000 caracteres.
5.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: Não se aplica (uso de ferramenta)
5.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: O agente deverá executar a chamada à API do serviço de Machine Learning para obter as previsões de risco.
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 deve ser visível para o Agente de Análise e Interpretação de Risco de Crédito (RF 6).
5.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Análise e Interpretação de Risco de Crédito (RF 6).
RF 6. Agente de Análise e Interpretação de Risco de Crédito
6.1 Tarefa do Agente
Interpretar o resultado do modelo e o consolidado de crédito para gerar classificação de risco, limites recomendados e condições de crédito com justificativas.
6.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON contendo o resultado do modelo e o consolidado de crédito.
# 2. Objetivo
Interpretar o resultado do modelo e o consolidado de crédito para gerar classificação de risco, limites recomendados e condições de crédito com justificativas.
# 3. Regras que você deve seguir para gerar sua resposta
- Regra 1 (classificação por PD): Definir cortes padrão PD_12m: Baixo < 0.03; Médio ∈ [0.03, 0.08]; Alto > 0.08. Se tabela de política vier no input, usá-la e ignorar os cortes padrão.
- Regra 2 (faixa do score): Mapear score (0–1) do modelo para faixas A–E: A ≥ 0.85; B ∈ [0.75, 0.85); C ∈ [0.65, 0.75); D ∈ [0.50, 0.65); E < 0.50. Se o modelo já retornar faixa, validar consistência e priorizar a do modelo em caso de divergência pequena (|dif| ≤ 0.02).
- Regra 3 (limite recomendado): Calcular capacidade_mensal = max((receita_12m - despesa_12m)/12, 0). Fator_risco = map(PD): PD<3% -> 6.0; 3–8% -> 3.5; >8% -> 1.5. limite_base = capacidade_mensal * Fator_risco. Aplicar redutores: -20% se qtd_inadimplencia ≥ 1; -10% se consultas_6m > 10; -15% se volatilidade > 0.5. Aplicar caps: minimo 0; máximo cap_politica (se fornecido), senão 20x capacidade_mensal. Arredondar para múltiplos de 100.
- Regra 4 (condições recomendadas): taxa_juros_anual por risco: Baixo -> base; Médio -> base + 4pp; Alto -> base + 8pp (base padrão = 20% a.a. se não houver política). prazo_max_meses: Baixo 36; Médio 24; Alto 12. Garantias: sugerir "None" se PD<3% e sem inadimplência recente; caso contrário, sugerir garantia leve (ex.: aval) para Médio e garantia real para Alto se limite_base > limiar_garantia (ex.: R$ 30k).
- Regra 5 (flags): red se: inadimplencia nos últimos 90 dias, consultas_6m > 20, queda de receita_12m > 30% vs média histórica. amber se: volatilidade > 0.4, consistencia < 0.85, consultas_6m ∈ (10,20]. green se: atrasos_12m = 0, relacao_despesa_receita < 0.6, receita estável (volatilidade < 0.2). Reportar todas que se aplicam.
- Regra 6 (personalização PF vs PJ): Para PJ, considerar setor_pj: se setor de alto risco (ex.: construção, bares) e volatilidade>0.5, reduzir limite em 10% adicionais. Para PF, se renda_presumida baixa (< 2 SM) e consultas elevadas (> 12), subir faixa de risco em 1 nível (ex.: de Médio para Alto) salvo se PD < 3%.
- Regra 7 (justificativas): Construir lista de 2–5 frases citando: PD, principais drivers (explainability.top_drivers ordenados por impacto), métricas de capacidade (relação D/R), histórico (inadimplência/atrasos) e qualquer ajuste de política aplicado.
- Regra 8 (qualidade e política): Se qualidade_dado.completude < 0.8 OU consistencia < 0.8, setar politicas.aprovacao_automatica=false e politicas.necessita_comite=true e limitar limite_recomendado a no máximo 50% do limite_base.
- Regra 9 (auditoria): Incluir fontes_utilizadas exatamente como em consolidado.qualidade_dado.fontes_disponiveis e refletir os índices de qualidade (completude, consistencia).
# 4. Exemplo de Output que você deve produzir
{"analise": {"classificacao_risco": "Baixo|Médio|Alto", "faixa_score": "A|B|C|D|E", "limite_recomendado": 20000, "condicoes_recomendadas": {"taxa_juros_anual": 0.249, "prazo_max_meses": 24, "garantias": ["None"], "condicoes_especiais": []}, "flags": {"red": ["inadimplencia_recente"], "amber": ["consultas_elevadas_6m"], "green": ["receita_consistente"]}, "justificativas": ["PD 6,5% impulsionado por 2 registros de inadimplência e relação despesa/receita de 0,79."], "politicas": {"aprovacao_automatica": false, "necessita_comite": true}}, "auditoria": {"qualidade_dado": {"completude": 0.94, "consistencia": 0.9}, "fontes_utilizadas": ["bureau_A", "open_banking", "cadastro_interno"]}} 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 objeto JSON contendo o resultado do modelo e o consolidado de crédito.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 8.000 caracteres.
6.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo a análise de risco de crédito com classificações, recomendações e justificativas detalhadas.
-
Exemplo de Estrutura de Output:
{"analise": {"classificacao_risco": "Baixo|Médio|Alto", "faixa_score": "A|B|C|D|E", "limite_recomendado": 20000, "condicoes_recomendadas": {"taxa_juros_anual": 0.249, "prazo_max_meses": 24, "garantias": ["None"], "condicoes_especiais": []}, "flags": {"red": ["inadimplencia_recente"], "amber": ["consultas_elevadas_6m"], "green": ["receita_consistente"]}, "justificativas": ["PD 6,5% impulsionado por 2 registros de inadimplência e relação despesa/receita de 0,79."], "politicas": {"aprovacao_automatica": false, "necessita_comite": true}}, "auditoria": {"qualidade_dado": {"completude": 0.94, "consistencia": 0.9}, "fontes_utilizadas": ["bureau_A", "open_banking", "cadastro_interno"]}} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 3.000 caracteres.
6.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
6.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Utiliza lógica interna para calcular classificações e recomendações de crédito.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
6.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 Gerador de Relatório de Risco de Crédito (RF 7).
6.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente Gerador de Relatório de Risco de Crédito (RF 7).
RF 7. Agente Gerador de Relatório de Risco de Crédito
7.1 Tarefa do Agente
Produzir o relatório final de risco de crédito em formato legível para analistas, com resumo executivo, indicadores, interpretações, recomendações e trilha de auditoria.
7.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um objeto JSON com a análise de risco de crédito e o consolidado de dados. # 2. Objetivo Produzir o relatório final de risco de crédito em formato legível para analistas, com resumo executivo, indicadores, interpretações, recomendações e trilha de auditoria. # 3. Regras que você deve seguir para gerar sua resposta - Regra 1 (estrutura e formato): Gerar em Markdown com seções fixas: Resumo Executivo, Identificação, Indicadores-Chave, Interpretação e Principais Drivers, Recomendações de Crédito, Qualidade e Fontes de Dados, Anexos. Títulos H1/H2 conforme exemplo do expected_output. - Regra 2 (ofuscação): Exibir CPF como XXX.XXX.XXX-<últimos 2 dígitos> e CNPJ como XX.XXX.XXX/XXXX-<últimos 2 dígitos>. Não exibir nome/razão social completos. - Regra 3 (formatação numérica): Moedas em BRL com separador milhar e duas casas (R$ 1.234,56). Percentuais com uma casa para PD e duas casas para taxa de juros (ex.: 24,90%). Score composto inteiro. Datas em YYYY-MM-DD. - Regra 4 (consistência): Todos os números reportados devem ser exatamente os provenientes do input de análise/consolidado após arredondamentos definidos. Não inventar métricas ausentes; se faltantes, mostrar "N/D". - Regra 5 (drivers e racional): Listar ao menos 2 e no máximo 5 drivers com sinal (+/-) quando aplicável, alinhados a explainability.top_drivers e às métricas-chave. Explicar, em uma frase, por que cada driver influencia a decisão. - Regra 6 (recomendações alinhadas): Repetir fielmente limite_recomendado e condições_recomendadas da etapa de análise; se houver flags red, inserir aviso "Submeter a comitê de crédito" no rodapé do resumo executivo. - Regra 7 (qualidade e fontes): Exibir índices de completude e consistência com duas casas decimais. Listar fontes_utilizadas exatamente como recebidas. - Regra 8 (anexos): Incluir tabela simples dos principais campos do consolidado (scores, inadimplência, consultas, open_banking, cadastro_interno) e um log em bullet points com: período analisado, fontes consultadas, e decisões de consolidação relevantes (ex.: fonte escolhida para score). # 4. Exemplo de Output que você deve produzir # Relatório de Risco de Crédito ## Resumo Executivo - Classificação de Risco: Baixo|Médio|Alto - Faixa do Score: A|B|C|D|E - Limite Recomendado: R$ 20.000 - Condições: taxa anual 24,9%, prazo máximo 24 meses, garantias: None ## Identificação - Tipo de Cliente: PF|PJ - Identificador: CPF/CNPJ (parcialmente ofuscado) ## Indicadores-Chave - Score Composto: 701 - PD (12m): 6,5% - Inadimplência: 2 eventos (mais recente: 2025-03-10) - Consultas 6m: 8 (instituições únicas: 5) - Receita 12m: R$ 125.000,45 | Despesa 12m: R$ 99.000,12 | Relação D/R: 0,79 - Volatilidade Receita: 0,22 ## Interpretação e Principais Drivers - Principais drivers do risco: qtd_inadimplencia (+), relacao_despesa_receita (+)... - Comentários: ... ## Recomendações de Crédito - Limite recomendado e racional - Condições recomendadas (taxa, prazo, garantias) - Flags: Red [...], Amber [...], Green [...] ## Qualidade e Fontes de Dados - Completude: 0,94 | Consistência: 0,90 - Fontes utilizadas: bureau_A, open_banking, cadastro_interno ## Anexos - Tabela de métricas consolidadas - Log resumido de preparação e consolidação
7.3 Configurações do Agente
7.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 6).
- Tipo do input: Este agente deve ser apto a receber um objeto JSON com a análise de risco de crédito e o consolidado de dados.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 10.000 caracteres.
7.3.2 Especificação do Output
- Formato de output: O output deve ser um relatório em formato Markdown, contendo todas as seções especificadas no prompt.
-
Exemplo de Estrutura de Output:
# Relatório de Risco de Crédito ## Resumo Executivo - Classificação de Risco: Baixo|Médio|Alto - Faixa do Score: A|B|C|D|E - Limite Recomendado: R$ 20.000 - Condições: taxa anual 24,9%, prazo máximo 24 meses, garantias: None ## Identificação - Tipo de Cliente: PF|PJ - Identificador: CPF/CNPJ (parcialmente ofuscado) ## Indicadores-Chave - Score Composto: 701 - PD (12m): 6,5% - Inadimplência: 2 eventos (mais recente: 2025-03-10) - Consultas 6m: 8 (instituições únicas: 5) - Receita 12m: R$ 125.000,45 | Despesa 12m: R$ 99.000,12 | Relação D/R: 0,79 - Volatilidade Receita: 0,22 ## Interpretação e Principais Drivers - Principais drivers do risco: qtd_inadimplencia (+), relacao_despesa_receita (+)... - Comentários: ... ## Recomendações de Crédito - Limite recomendado e racional - Condições recomendadas (taxa, prazo, garantias) - Flags: Red [...], Amber [...], Green [...] ## Qualidade e Fontes de Dados - Completude: 0,94 | Consistência: 0,90 - Fontes utilizadas: bureau_A, open_banking, cadastro_interno ## Anexos - Tabela de métricas consolidadas - Log resumido de preparação e consolidação
- Número de caracteres esperado: O relatório final terá um tamanho aproximado de 5.000 caracteres.
7.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
7.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
7.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente é o entregável final e não é passada para outros agentes internos.
7.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. O relatório gerado é o resultado que deve ser disponibilizado ao usuário.