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 Fluxo de Agentes "Validação de Dados em Bureaus de Crédito", uma solução projetada para revisar e validar dados de crédito de maneira automática e precisa. 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 é assegurar a consistência e a precisão das informações de crédito recebidas, garantindo que as decisões financeiras sejam baseadas em dados confiáveis e corretos.
2. Contexto e Problema
Problemas Específicos
O fluxo de validação enfrenta os seguintes desafios principais:
- Inconsistências e erros frequentes nos dados de crédito recebidos de diferentes fontes.
- Falta de validação eficiente e precisa dos dados de crédito.
- Necessidade de garantir a integridade e a precisão das informações de crédito utilizadas para decisões financeiras.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Melhorar a qualidade dos dados de crédito eliminando inconsistências e erros.
- Aumentar a eficiência do processo de validação de dados.
- Garantir a confiança nas decisões financeiras baseadas nos dados validados.
4. Visão Geral da Solução
O agente de IA para validação de dados em bureaus de crédito analisa e processa dados de crédito, assegurando a precisão e consistência das informações. 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 eficiente de validação de dados em bureaus de crédito.
A solução consiste em um fluxo de automação composto por 4 agentes de IA. O processo inicia com a normalização e validação sintática dos dados de crédito e termina com a preparação dos dados para decisões financeiras.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Normalização e Validação Sintática de Dados de Crédito (RF 1)
| Padronizar o payload recebido em um esquema canônico e validar a estrutura e a sintaxe dos campos. |
Agente de Validação Semântica e Regras de Negócio de Crédito (RF 2)
| Aplicar validações cruzadas e de negócio sobre os dados normalizados. |
Agente de Consolidação e Reconciliação entre Fontes (RF 3)
| Unificar múltiplos registros referentes ao mesmo CPF/person_id vindos de diferentes fontes. |
Agente de Sinalização Final de Qualidade e Preparação para Decisão (RF 4)
| Calcular o score de qualidade de dados e produzir o payload final padronizado para motores de decisão. |
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 Validação Sintática de Dados de Crédito
1.1 Tarefa do Agente
Padronizar o payload recebido em um esquema canônico e validar a estrutura e a sintaxe dos campos (formato, tipo, máscaras e checksums), preparando os registros para validações semânticas.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo uma lista de registros de crédito em JSON, possivelmente heterogêneos por fonte, com metadados de origem.
# 2. Objetivo
Padronizar o payload recebido em um esquema canônico e validar a estrutura e a sintaxe dos campos, preparando os registros para validações semânticas.
# 3. Regras que você deve seguir para gerar sua resposta
- Defina esquema canônico obrigatório por registro: {nome:string, cpf:string (11 dígitos), data_nascimento:date ISO-8601 (YYYY-MM-DD), renda_mensal:number decimal ponto, limite_credito:number decimal ponto, moeda:string ISO 4217, historico_pagamento:enum[ADIMPLENTE, INADIMPLENTE, ATRASOS_ESPORADICOS, DESCONHECIDO], source:string, received_at:datetime ISO-8601}.
- Normalização de texto: nome em caixa alta sem múltiplos espaços; remover títulos (SR., SRA., DR.) mantendo sufixos Jr/Filho; truncar espaços à esquerda/direita.
- CPF: remover tudo que não for dígito; validar comprimento=11 e dígitos verificadores (módulo 11); se inválido, marcar code=CPF_INVALID com severity=error; se válido, armazenar apenas dígitos.
- Datas: aceitar DD/MM/YYYY, YYYY-MM-DD, DD-MM-YYYY; converter para YYYY-MM-DD; rejeitar datas impossíveis (ex.: 31/02); idade calculável (>=0 anos); se parsing falhar, code=DATE_PARSE_ERROR severity=error.
- Moeda: se ausente, assumir BRL; validar contra lista ISO 4217; se diferente de BRL, manter moeda informada e não converter valores; code=CURRENCY_NON_BRL severity=warning.
- Valores monetários: aceitar vírgula ou ponto; remover separadores de milhar; garantir ponto como separador decimal; valores negativos não permitidos para renda_mensal e limite_credito (code=NEGATIVE_VALUE severity=error).
- Histórico de pagamento: mapear variações para enum canônico (ex.: "ok"→ADIMPLENTE; "inadimplente"→INADIMPLENTE; desconhecidos→DESCONHECIDO com warning).
- Telefones e e-mails (se existirem): normalizar DDI +55 e E.164 para telefones; e-mail minúsculo e trim; validar padrão básico; em caso de falha, severity=warning (não bloqueante).
- Record linkage preliminar: criar person_id como "cpf:{cpf}"; se CPF inválido, usar hash determinístico do nome+data_nascimento (code=WEAK_PERSON_ID severity=warning).
- Saída deve listar field_level_issues por campo com {person_id, field, code, severity, details}; status do registro: error se houver qualquer severity=error; warning se houver warnings e nenhum error; ok caso contrário.
- Não infira valores não fornecidos; não preencha valores padrão além dos definidos (moeda=BRL). 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 uma lista de registros de crédito em JSON 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 é uma lista de registros de crédito em 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é 50.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON com: normalized_records, field_level_issues, normalization_map, record_status.
-
Exemplo de Estrutura de Output:
{"normalized_records":[{"person_id":"cpf:12345678909","nome":"JOAO DA SILVA","cpf":"12345678909","data_nascimento":"1988-03-12","renda_mensal":4500.00,"limite_credito":10000.00,"moeda":"BRL","historico_pagamento":"ADIMPLENTE","source":"BureauX","received_at":"2025-12-12T10:00:00Z"}],"field_level_issues":[{"person_id":"cpf:12345678909","field":"cpf","code":"CPF_FORMAT_OK","severity":"info"}],"normalization_map":{"BureauX":{"renda_mensal":"income","limite_credito":"credit_limit"}},"record_status":[{"person_id":"cpf:12345678909","status":"ok"}]} - Número de caracteres esperado: O JSON final deve ser claro e direto, com um tamanho estimado em 5.000 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 Validação Semântica e Regras de Negócio 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 Validação Semântica e Regras de Negócio de Crédito (RF 2).
RF 2. Agente de Validação Semântica e Regras de Negócio de Crédito
2.1 Tarefa do Agente
Aplicar validações cruzadas e de negócio sobre os dados normalizados, calcular métricas derivadas e classificar violações por severidade.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo a saída do Agente de Normalização, que inclui registros normalizados, issues de nível de campo e status de registro. # 2. Objetivo Aplicar validações cruzadas e de negócio sobre os dados normalizados, calcular métricas derivadas e classificar violações por severidade. # 3. Regras que você deve seguir para gerar sua resposta - Idade: calcular a partir de data_nascimento na data de processamento; se idade < 18, code=UNDERAGE severity=block; se > 100, severity=warning. - Consistência renda vs. limite: se limite_credito > 5× renda_mensal, code=CREDIT_LIMIT_OUT_OF_POLICY severity=warning; se > 10×, severity=block. - Renda zero: renda_mensal=0 → code=ZERO_INCOME severity=block; renda ausente → MISSING_INCOME severity=block. - Histórico de pagamento: ADIMPLENTE=ok; INADIMPLENTE → code=DELINQUENCY_PRESENT severity=warning; ATRASOS_ESPORADICOS → severity=warning; DESCONHECIDO → severity=warning. - Derivados: calcular dti_placeholder (se houver dividas_totais no payload, senão null); utilization_placeholder (se houver saldo_devedor e limite_credito); não bloquear por placeholders nulos. - Datas de recência: validar received_at ≤ agora; se registro com received_at > agora + 5min, code=FUTURE_TIMESTAMP severity=warning; se registro com mais de 24 meses (pela melhor informação temporal disponível), code=STALE_DATA severity=warning. - Campos obrigatórios: cpf válido, nome, data_nascimento, renda_mensal, limite_credito; ausência gera code=MISSING_REQUIRED severity=block por campo. - Status semântico por registro: block se existir qualquer violation severity=block; warning se houver apenas warnings; ok se vazio. - metrics_summary: contagem por code e severidade; percentuais de ok/warning/block.
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 a saída do Agente de Normalização, que inclui registros normalizados, issues de nível de campo e status de registro.
-
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.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON com: enriched_records, business_rule_violations, semantic_status por registro e metrics_summary agregada.
-
Exemplo de Estrutura de Output:
{"enriched_records":[],"business_rule_violations":[],"semantic_status":[],"metrics_summary":{}} - Número de caracteres esperado: O JSON final deve ser claro e direto, com um tamanho estimado em 5.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.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
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 Reconciliação entre Fontes (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 Reconciliação entre Fontes (RF 3).
RF 3. Agente de Consolidação e Reconciliação entre Fontes
3.1 Tarefa do Agente
Unificar múltiplos registros referentes ao mesmo CPF/person_id vindos de diferentes fontes, resolvendo conflitos com base em regras de precedência e recência.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo enriched_records e violações do agente anterior, potencialmente com múltiplos registros por person_id e metadados de source e received_at.
# 2. Objetivo
Unificar múltiplos registros referentes ao mesmo CPF/person_id vindos de diferentes fontes, resolvendo conflitos com base em regras de precedência e recência.
# 3. Regras que você deve seguir para gerar sua resposta
- Agrupar por person_id. Se houver person_id fraco (gerado por nome+data), manter grupo separado e flag WEAK_PERSON_GROUP severity=warning.
- Precedência de fonte (se metadata source_priority existir no input, usar; senão regra padrão): Regulador/Gov > Bureau primário > Bureau secundário > Instituições financeiras > Outros.
- Recência: preferir valor do registro com maior received_at quando fontes de mesma prioridade.
- Consistência por campo: renda_mensal e limite_credito divergentes → escolher por precedência/recência e registrar discrepancy_report com {person_id, field, values_by_source, chosen_value, rationale}.
- Fusão de histórico de pagamento: escolher o pior entre as fontes (ordem severidade: INADIMPLENTE > ATRASOS_ESPORADICOS > ADIMPLENTE > DESCONHECIDO) e registrar decisão.
- Datas de nascimento divergentes: se diferença ≤ 1 dia, normalizar para a mais frequente (provável erro de formato); se maior, severity=block com code=IDENTITY_MISMATCH.
- Nomes divergentes: se variação for apenas acentuação/abreviação, aceitar o mais completo; se sobrenomes distintos, registrar WARNING_NAME_VARIATION.
- consolidated_status: block se qualquer conflito de identidade (CPF válido diferente dentro do mesmo grupo ou data_nascimento incompatível) ou se qualquer registro base esteja em block sem alternativa limpa; warning se somente discrepâncias não críticas; ok caso contrário. 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 enriched_records e violações do agente anterior, potencialmente com múltiplos registros por person_id e metadados de source e received_at.
-
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 objeto JSON com: consolidated_records, reconciliation_decisions, discrepancy_report e consolidated_status.
-
Exemplo de Estrutura de Output:
{"consolidated_records":[],"reconciliation_decisions":[],"discrepancy_report":[],"consolidated_status":[]} - Número de caracteres esperado: O JSON final deve ser claro e direto, com um tamanho estimado em 5.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: Não utiliza.
- 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 Sinalização Final de Qualidade e Preparação para Decisão (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Sinalização Final de Qualidade e Preparação para Decisão (RF 4).
RF 4. Agente de Sinalização Final de Qualidade e Preparação para Decisão
4.1 Tarefa do Agente
Calcular o score de qualidade de dados, consolidar flags bloqueantes e de alerta, e produzir o payload final padronizado para consumo por motores de decisão.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo a saída do Agente de Consolidação, que inclui consolidated_records, reconciliation_decisions, discrepancy_report e consolidated_status.
# 2. Objetivo
Calcular o score de qualidade de dados, consolidar flags bloqueantes e de alerta, e produzir o payload final padronizado para consumo por motores de decisão.
# 3. Regras que você deve seguir para gerar sua resposta
- data_quality_score: iniciar em 100; subtrair 40 por cada issue block (até mínimo 0); subtrair 10 por warning distinto (cap a 60 de desconto total por warnings); nunca abaixo de 0.
- readiness_for_decision: true somente se consolidated_status=ok e não existirem blocking_issues; caso contrário false.
- blocking_issues: incluir códigos herdados (UNDERAGE, MISSING_REQUIRED, CREDIT_LIMIT_OUT_OF_POLICY[block], IDENTITY_MISMATCH, ZERO_INCOME) com descrição curta e campo afetado.
- warnings: incluir todas as demais violações não bloqueantes e discrepâncias resolvidas.
- decision_hints: listar até 5 regras mais relevantes disparadas, priorizando bloqueios e as de maior impacto no score.
- audit_trail por campo: {field, chosen_value, sources_considered: [source], chosen_source, chosen_timestamp, rationale} derivado das decisões de reconciliação.
- versionamento: incluir policy_version (ex.: "credit_data_validation:v1.0") e processed_at em ISO-8601.
- Estabilidade de chaves: garantir nomes de campos exatamente do esquema canônico; não adicionar campos fora das seções definidas. 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 a saída do Agente de Consolidação, que inclui consolidated_records, reconciliation_decisions, discrepancy_report e consolidated_status.
-
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.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON final por person_id com: final_record, data_quality_score, blocking_issues[], warnings[], readiness_for_decision, decision_hints, audit_trail e versionamento da política.
-
Exemplo de Estrutura de Output:
{"final_record":{},"data_quality_score":100,"blocking_issues":[],"warnings":[],"readiness_for_decision":true,"decision_hints":[],"audit_trail":{},"policy_version":"credit_data_validation:v1.0","processed_at":"2025-12-12T10:22:00Z"} - Número de caracteres esperado: O JSON final deve ser claro e direto, com um tamanho estimado em 5.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.
- 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 (JSON final) é 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 JSON gerado é o resultado que deve ser disponibilizado para consumo por motores de decisão.