1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados, consulta a documentos e demais requisitos funcionais para um agente de IA dedicado à produção de relatórios de investimento. 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 grandes volumes de dados financeiros, garantindo consistência e precisão nos relatórios e proporcionando análises detalhadas de risco e retorno para suportar melhores decisões de investimento.
2. Contexto e Problema
Cenário Atual
O mercado financeiro gera uma quantidade massiva de dados que são difíceis de serem analisados manualmente com precisão. Relatórios de investimento gerados manualmente frequentemente carecem de consistência e precisão, o que pode levar a decisões de investimento subótimas.
Problemas Identificados
- Volume excessivo de dados: A quantidade de dados financeiros disponíveis torna a análise manual impraticável e propensa a erros.
- Falta de consistência: Relatórios manuais frequentemente apresentam variações na precisão e formato, prejudicando a confiabilidade.
- Necessidade de análises detalhadas: Decisões de investimento eficazes requerem insights detalhados sobre risco e retorno, que são difíceis de serem obtidos manualmente.
3. Impactos Esperados
A implementação deste agente de IA visa alcançar os seguintes resultados:
- Aumentar a precisão dos relatórios de investimento através da análise automatizada de dados.
- Garantir consistência nos relatórios gerados, independentemente do volume de dados analisado.
- Fornecer análises detalhadas de risco e retorno para apoiar decisões de investimento mais informadas.
4. Visão Geral da Solução
O agente de IA para produção de relatórios de investimento aplica modelos de análise de risco e retorno em grandes volumes de dados financeiros para gerar relatórios precisos e consistentes. 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 elaboração de relatórios de investimento detalhados.
A solução é composta por um fluxo de automação com quatro agentes de IA, cada um com uma função específica no processo de geração do relatório de investimento.
A execução dos agentes é sequencial, conforme detalhado na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Padronização e Qualidade de Dados Financeiros (RF 1)
| Normalizar, enriquecer e validar dados financeiros de entrada para um esquema padrão pronto para análise. |
Agente de Cálculo de Métricas de Risco e Retorno (RF 2)
| Calcular métricas de performance e risco para ativos e/ou portfólios a partir de dados padronizados. |
Agente de Consistência e Auditoria Analítica (RF 3)
| Verificar consistência dos cálculos e coerência econômica, sinalizando anomalias e limites fora de faixas plausíveis. |
Agente Gerador de Relatório de Investimentos (RF 4)
| Produzir relatório final estruturado com análises de risco e retorno, insights e recomendações baseadas nas métricas validadas. |
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 Padronização e Qualidade de Dados Financeiros
1.1 Tarefa do Agente
Normalizar, enriquecer e validar dados financeiros de entrada para um esquema padrão pronto para análise.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo arquivos CSV/TSV/JSON contendo séries temporais de ativos e/ou portfólios com colunas possíveis: data, ticker, tipo_ativo, preco_abertura, preco_fechamento, maximo, minimo, volume, moeda, peso_portfolio (opcional), benchmark_series (opcional).
# 2. Objetivo
Normalizar, enriquecer e validar dados financeiros de entrada para um esquema padrão pronto para análise.
# 3. Regras que você deve seguir para gerar sua resposta
- Converter todas as datas para ISO 8601 (YYYY-MM-DD) aplicando timezone informado; rejeitar linhas com datas inválidas e registrá-las em erros_bloqueantes.
- Uniformizar separador decimal como ponto e remover símbolos de milhar; valores não numéricos viram nulo e seguem a política de missing.
- Mapear colunas para o esquema padrão: obrigatórias = data, ticker, preco_fechamento OU preco_fechamento_ajustado; se ambos existirem, priorizar preco_fechamento_ajustado.
- Ajustar preços por proventos/desdobramentos quando coluna ajustada existir; se não existir, manter como informado e incluir aviso de possível viés.
- Normalizar moeda: se moeda != moeda_base, marcar necessidade de conversão em conversoes_cambio.moedas_encontradas e incluir aviso; não realizar busca de câmbio aqui.
- Validar continuidade temporal por ticker: se houver lacunas de mais de 3 dias úteis conforme calendario_mercado, registrar em avisos; aplicar politica_missing conforme parâmetro.
- Calcular retorno_diario = ln(preco_fechamento_ajustado_t / preco_fechamento_ajustado_{t-1}); para o primeiro ponto do ticker, setar retorno_diario = null.
- Se pesos de portfólio forem fornecidos, validar soma por data ≈ 1 com tolerância de 0,5%; se fora da tolerância, setar soma_pesos_valida=false e registrar aviso.
- Detectar outliers de preço por ticker com regra de variação diária absoluta > 25%; se identificado, manter dado mas registrar aviso com data e magnitude.
- Nunca prosseguir se erros_bloqueantes tiverem itens (ex.: ausência de coluna obrigatória, datas inválidas em >5% das linhas, todos os preços zero); nesses casos, produzir output apenas com metadados e erros_bloqueantes. 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 arquivos de dados financeiros 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 dos arquivos na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: Arquivos de dados financeiros em formatos CSV, TSV ou JSON.
-
Formatos Suportados: Esse agente deve ser capaz de receber arquivos nos formatos:
.csv,.tsv,.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 objeto JSON com dados normalizados, metadados e possíveis erros bloqueantes.
-
Exemplo de Estrutura de Output:
{ "schema_version": "1.0", "dados_normalizados": [ {"data_iso": "2025-01-01", "ticker": "AAPL", "preco_fechamento_ajustado": 150.0, "retorno_diario": 0.002, "moeda_base": "USD", "fonte": "B3"} ], "metadados": { "periodo": {"inicio": "2025-01-01", "fim": "2025-12-31"}, "ativos": ["AAPL"], "soma_pesos_valida": true, "linhas_descartadas": 0, "metodo_missing": "interpolar", "conversoes_cambio": {"moedas_encontradas": ["BRL"], "moeda_base": "USD"}, "avisos": [], "erros_bloqueantes": [] } } - Número de caracteres esperado: O JSON gerado deve ser conciso e informativo, com um tamanho estimado em torno de 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 Cálculo de Métricas de Risco e Retorno (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Cálculo de Métricas de Risco e Retorno (RF 2).
RF 2. Agente de Cálculo de Métricas de Risco e Retorno
2.1 Tarefa do Agente
Calcular métricas de performance e risco para ativos e/ou portfólios a partir de dados padronizados.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON do Agente de Padronização contendo dados_normalizados com retorno_diario por ticker. # 2. Objetivo Calcular métricas de performance e risco para ativos e/ou portfólios a partir de dados padronizados. # 3. Regras que você deve seguir para gerar sua resposta - Usar retorno diário logarítmico fornecido; quando necessário para agregações, converter para retorno simples: r_s = exp(r_log) - 1. - Retorno total no período: produto de (1 + r_s) - 1 por ticker. - CAGR: ((1 + retorno_total)^(dias_uteis_ano / n_obs)) - 1, onde n_obs é número de retornos válidos. - Volatilidade anual: desvio-padrão dos retornos diários simples multiplicado por sqrt(dias_uteis_ano). - Sharpe anual: (CAGR - taxa_sem_risco_anual) / volatilidade_anual; se volatilidade = 0, setar sharpe = null e registrar aviso. - Sortino anual: usar desvio-padrão apenas de retornos abaixo de 0; se não houver retornos negativos, sortino = null com aviso. - Max Drawdown e Calmar: calcular curva de valor acumulado por ticker, obter maior queda de pico ao vale; Calmar = CAGR / |max_drawdown| se max_drawdown < 0, senão null. - VaR paramétrico diário a nível informado assumindo normalidade dos retornos diários simples; anualizar apenas para reporte textual, manter VaR diário no JSON. - CVaR histórico diário: média dos retornos nas caudas piores do nível de confiança; reportar como valor negativo (perda esperada). - Se benchmark fornecido, alinhar datas com inner join: calcular beta (regressão simples de retornos diários), alpha anualizado, correlação de Pearson, tracking error (desvio-padrão de excesso de retorno) e information ratio = média excesso anual / tracking error anual. - Para portfólio com pesos por data, calcular retorno diário do portfólio por soma ponderada alinhada temporalmente; se pesos estáticos faltarem em alguma data, carregar último conhecido se politica_missing='carregar_ultimo' foi aplicada; caso contrário, excluir a data. - Tratar NaN/inf resultantes de divisões por zero setando métrica como null e registrando aviso com ticker afetado. - Garantir que todas as métricas retornem com 4 casas decimais; datas no período replicadas do input padronizado.
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: Um JSON contendo dados normalizados com retorno diário por ticker.
-
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.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com métricas de performance e risco calculadas para cada ativo ou portfólio.
-
Exemplo de Estrutura de Output:
{ "metrics_por_ticker": { "AAPL": { "retorno_total": 0.15, "CAGR": 0.12, "volatilidade_anual": 0.25, "sharpe": 0.48, "sortino": 0.60, "max_drawdown": -0.20, "calmar": 0.60, "var_parametrico": -0.05, "cvar_historico": -0.07 } }, "metrics_portfolio": {}, "metrics_vs_benchmark": {}, "periodo": {"inicio": "2025-01-01", "fim": "2025-12-31"}, "supostos": {"dias_uteis_ano": 252, "taxa_sem_risco_anual": 0.04, "nivel_confianca_var": 0.95, "metodo_var": "parametrico"}, "avisos": [] } - Número de caracteres esperado: O JSON gerado 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 documentos externos.
- Calculadora: Não utiliza.
- 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 Consistência e Auditoria Analítica (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Consistência e Auditoria Analítica (RF 3).
RF 3. Agente de Consistência e Auditoria Analítica
3.1 Tarefa do Agente
Verificar consistência dos cálculos e coerência econômica, sinalizando anomalias e limites fora de faixas plausíveis.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON de métricas do Agente de Cálculo de Métricas + amostra dos dados_normalizados (retornos diários por ticker) e parâmetros de faixas plausíveis. # 2. Objetivo Verificar consistência dos cálculos e coerência econômica, sinalizando anomalias e limites fora de faixas plausíveis. # 3. Regras que você deve seguir para gerar sua resposta - Reconciliar retorno_total com soma dos retornos diários simples: diferença absoluta > 0,5% vira alerta; > 1% vira reprovado. - Verificar que volatilidade_anual <= volatilidade_anual_max; acima disso, sinalizar alerta e recomendar revisão de outliers e timezone. - Garantir max_drawdown <= max_drawdown_min (valor negativo); se positivo, reprovar por cálculo incorreto de drawdown. - Checar Sharpe dentro de [sharpe_min, sharpe_max]; fora disso sinalizar alerta de possível problema de taxa sem risco ou escala. - Se beta existir: |correlacao| < 0,1 com beta > 1,5 vira alerta de ruído/erro de alinhamento de datas. - Executar teste de soma de pesos quando aplicável: diferença da unidade > 1% em qualquer data vira alerta e anexar datas afetadas. - Verificar cardinalidade de observações: n_obs < 60 retorna alerta 'amostra insuficiente', manter métricas mas com flag. - Qualquer reprovação zera apenas as métricas afetadas em metrics_validadas e lista recomendacoes_de_correcao específicas por check.
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: Um JSON de métricas calculadas e uma amostra dos dados normalizados.
-
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é 8.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com resultados de auditoria e métricas validadas ou sinalizadas para correção.
-
Exemplo de Estrutura de Output:
{ "auditoria": { "checks": [ {"id_check": "retorno_total_consistencia", "status": "aprovado", "detalhes": "Retorno total consistente com soma dos retornos diários."} ], "recomendacoes_de_correcao": [] }, "metrics_validadas": { "AAPL": { "retorno_total": 0.15, "CAGR": 0.12, "volatilidade_anual": 0.25, "sharpe": 0.48, "sortino": 0.60, "max_drawdown": -0.20, "calmar": 0.60, "var_parametrico": -0.05, "cvar_historico": -0.07 } } } - Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 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 documentos externos.
- Calculadora: Não utiliza.
- 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 deve ser visível para o Agente Gerador de Relatório de Investimentos (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente Gerador de Relatório de Investimentos (RF 4).
RF 4. Agente Gerador de Relatório de Investimentos
4.1 Tarefa do Agente
Produzir relatório final estruturado com análises de risco e retorno, insights e recomendações baseadas nas métricas validadas.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON de metrics_validadas e auditoria, metadados do período, supostos (taxa sem risco, dias_ano, nível de confiança), preferências de saída. # 2. Objetivo Produzir relatório final estruturado com análises de risco e retorno, insights e recomendações baseadas nas métricas validadas. # 3. Regras que você deve seguir para gerar sua resposta - Gerar Resumo Executivo com 3 a 6 bullets objetivos destacando retorno, risco, drawdown e principais alertas de auditoria. - Apresentar todas as métricas com unidades e escalas corretas: percentuais em %, VaR/CVaR como perdas esperadas por dia, datas no padrão ISO. - Incluir comparação com benchmark quando disponível: excesso de retorno anual, beta, alpha, information ratio e tracking error com interpretação clara. - Destacar riscos materiais: se max_drawdown < -0,3, inserir alerta: 'Drawdown severo'; se volatilidade_anual > 0,4, inserir 'Alta volatilidade'. - Explicitar supostos e limitações: janela de cálculo, taxa sem risco, hipótese de normalidade usada no VaR; evitar promessas de performance futura. - Se auditoria tiver status 'reprovado' em qualquer check crítico (drawdown ou reconciliação), inserir seção 'Limitações do Relatório' e marcar recomendações de correção antes de decisões. - Adaptar o nível_de_detalhe: 'executivo' resume tabelas e foca em conclusões; 'completo' inclui tabelas por ticker e apêndice metodológico com fórmulas. - Incluir lista de próximos passos acionáveis: ex.: revisar dados de câmbio, ampliar janela de observação, reequilibrar pesos, definir limites de risco.
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: Um JSON de metrics_validadas e auditoria, metadados do período, supostos e preferências de saída.
-
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é 12.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um relatório final estruturado no formato solicitado (Markdown ou JSON estruturado).
-
Exemplo de Estrutura de Output:
{ "capa": {"titulo": "Relatório de Investimentos", "data_emissao": "2025-12-04", "periodo": {"inicio": "2025-01-01", "fim": "2025-12-31"}}, "resumo_executivo": [ "Retorno total de 15% no período.", "Volatilidade anual de 25%, considerada alta.", "Drawdown máximo de 20%, dentro do esperado." ], "visao_geral": [...], "desempenho": {"tabela_metricas": [...], "comparacao_benchmark": [...]}, "risco": {"vol": 0.25, "drawdown": -0.20, "VaR": -0.05, "CVaR": -0.07}, "alertas_auditoria": [], "metodologia": {"definicoes": [...], "supostos": {...}}, "recomendacoes": ["Revisar dados de câmbio", "Ampliar janela de observação"] } - Número de caracteres esperado: O relatório final deve ser claro e direto, com um tamanho estimado em 10.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 se conecta a sistemas externos.
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 deste agente é 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 relatório gerado é o resultado que deve ser disponibilizado ao usuário.