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 "Classificação de Ativos Financeiros", uma solução desenvolvida para classificar ativos financeiros com base em critérios de risco e retorno. 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 é auxiliar na tomada de decisão de investimento ao fornecer classificações precisas de ativos financeiros, considerando risco e retorno, além de gerar relatórios que orientem investidores na escolha de ativos.
2. Contexto e Problema
Cenário Atual
Investidores frequentemente enfrentam dificuldades para classificar de forma precisa os ativos financeiros com base em seu risco e retorno. Esse desafio é exacerbado pela necessidade de analisar grandes volumes de dados financeiros, o que pode ser demorado e propenso a erros humanos.
Problemas Identificados
- Necessidade de Classificação Precisa: A classificação precisa de ativos financeiros é essencial para decisões de investimento informadas.
- Apoio à Tomada de Decisão: Investidores precisam de informações precisas e atualizadas para escolher os ativos mais adequados aos seus perfis de risco.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Melhoria na precisão da classificação de ativos financeiros com base em critérios de risco e retorno.
- Facilitação da tomada de decisão de investimento por meio de relatórios detalhados e orientações baseadas em dados.
4. Visão Geral da Solução
O agente de IA para classificação de ativos financeiros analisa dados financeiros de ativos, aplica critérios de risco e retorno para categorizá-los e gera relatórios que auxiliam investidores na escolha de ativos. 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 ativos financeiros.
A solução consiste em um fluxo de automação composto por quatro agentes de IA. O processo inicia com a padronização e validação dos dados de ativos e termina com a geração de um relatório de investimento estruturado.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Padronização e Validação de Dados de Ativos (RF 1)
| Sanear, padronizar e validar os dados financeiros de cada ativo antes do cálculo de métricas. |
Agente de Cálculo de Métricas de Risco e Retorno (RF 2)
| Calcular métricas padronizadas de risco e retorno por ativo a partir dos dados validados. |
Agente de Classificação de Ativos Financeiros (RF 3)
| Classificar cada ativo em categorias de risco e retorno e gerar um escore composto para priorização. |
Agente de Geração de Relatório de Investimento (RF 4)
| Produzir relatório estruturado que auxilie a tomada de decisão de investimento a partir das classificações e métricas. |
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 Validação de Dados de Ativos
1.1 Tarefa do Agente
Sanear, padronizar e validar os dados financeiros de cada ativo antes do cálculo de métricas.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON contendo uma lista de ativos financeiros com seus dados associados. Este JSON é o input bruto que requer saneamento e padronização.
# 2. Objetivo
Sanear, padronizar e validar os dados financeiros de cada ativo antes do cálculo de métricas, garantindo que os dados estejam prontos para análise subsequente.
# 3. Regras que você deve seguir para gerar sua resposta
- Verificar esquema: todas as chaves obrigatórias por ativo ('ativo_id','moeda','historico_precos') devem existir; se ausentes, marcar qualidade_dado.status='falha', elegivel_metricas=false e registrar motivos.
- Ordenar historico_precos por data ascendente; remover duplicidades de data mantendo o último preço informado; datas devem estar em formato 'YYYY-MM-DD'.
- Exigir mínimo de 252 observações para janela padrão; se 126–251, marcar qualidade_dado.status='aviso' e elegivel_metricas=true; se <126, status='falha' e elegivel_metricas=false.
- Cálculo de retornos: se retornos_diarios ausentes, calcular ret diário como ln(preco_t/preco_{t-1}); excluir dias com preços não positivos; alinhar retornos e datas válidas.
- Tratamento de gaps: se houver buracos de até 3 dias úteis, permitir; buracos maiores reduzem qualidade_dado para 'aviso'; se mais de 20% de dias faltantes na janela, setar 'falha'. Não realizar preenchimento artificial de preços.
- Outliers: se |ret| > 5 desvios-padrão da série do próprio ativo, truncar para 5 desvios-padrão e registrar motivo em 'aviso'.
- Moeda: não converter moedas; apenas exigir campo 'moeda'. Se houver mix de moedas no universo, registrar 'aviso_moeda_mista'; classificação ainda é permitida, mas sinalizar no relatório.
- Benchmark: se fornecido, alinhar por interseção de datas válidas; derivar retornos log do benchmark; se não houver interseção suficiente (<126), marcar métricas dependentes de benchmark como 'na'.
- Taxa livre de risco: se ausente, definir 0% a.a.; registrar 'assuncao_rf_zero' em 'motivos'.
- Saída deve incluir 'janela_dias' com o valor recebido ou padrão 252, e 'elegivel_metricas' conforme regras de elegibilidade. 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 um arquivo JSON contendo dados de ativos 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 do JSON na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: O input inicial para o fluxo é um arquivo JSON contendo uma lista de ativos financeiros com seus dados associados.
-
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é 100.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON normalizado com dados padronizados e validados de cada ativo.
-
Exemplo de Estrutura de Output:
[{ 'ativo_id': '123', 'classe': 'acao', 'moeda': 'USD', 'datas_validas': ['2025-01-01'], 'precos_diarios': [{ 'data': '2025-01-01', 'preco_ajustado': 100.0 }], 'retornos_diarios': [{ 'data': '2025-01-01', 'ret': 0.01 }], 'benchmark_alinhado': [{ 'data': '2025-01-01', 'ret': 0.02 }], 'taxa_livre_risco_anual': 0.02, 'janela_dias': 252, 'qualidade_dado': { 'status': 'ok', 'motivos': [] }, 'elegivel_metricas': true }] - Número de caracteres esperado: O JSON final deve conter os dados padronizados e validados de cada ativo, com um tamanho estimado em torno de 5.000 caracteres por ativo.
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 retornos e validação de dados.
- 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 padronizadas de risco e retorno por ativo a partir dos dados validados.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON normalizado e validado contendo dados financeiros de ativos. Este JSON é o input necessário para o cálculo das métricas de risco e retorno. # 2. Objetivo Calcular métricas padronizadas de risco e retorno por ativo a partir dos dados validados, fornecendo uma análise detalhada que suporte a classificação subsequente. # 3. Regras que você deve seguir para gerar sua resposta - Usar fator de anualização 252 para retornos e volatilidade com base em retornos log diários. - Retorno anualizado: media_diaria * 252. - Volatilidade anualizada: desvio_padrao_diario * sqrt(252). - Taxa livre de risco diária: rf_diaria = ln(1 + rf_anual/100) / 252; se rf_anual ausente, considerar 0 e registrar 'rf_zero'. - Sharpe: (media_diaria - rf_diaria) / desvio_padrao_diario; se desvio_padrao_diario = 0, sharpe='na'. - Downside deviation: desvio-padrão dos retornos negativos em relação a 0; Sortino: (media_diaria - rf_diaria) / downside_deviation; se downside_deviation=0, sortino='na'. - Máximo drawdown: computar sobre curva de retorno acumulado exp(∑ret) com pico a pico; reportar como valor negativo (ex: -0.35 = -35%). - Beta (opcional): cov(ativo, bench) / var(bench) usando retornos alinhados; se insuficiente, beta='na'. - Tracking error (opcional): desvio-padrão de (ret_ativo - ret_bench) * sqrt(252); se insuficiente, 'na'. - VaR paramétrico 95% diário: media_diaria + z(0.05)*desvio_padrao_diario, com z=-1.645; reportar como número negativo quando apropriado. - Qualidade das métricas: 'alta' se janela>=252 e sem 'aviso' de dados; 'media' se 126–251 ou houver truncagem de outliers; 'baixa' se algum cálculo chave retornou 'na' ou houver >10% de datas faltantes. - Todas as métricas devem ser arredondadas a 4 casas decimais para consistência.
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 como input um JSON normalizado e validado com dados de ativos financeiros.
-
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é 100.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com métricas por ativo, incluindo retorno anualizado, volatilidade, Sharpe, Sortino, max drawdown, beta, tracking error, downside deviation, VaR 95% e qualidade das métricas.
-
Exemplo de Estrutura de Output:
[{ 'ativo_id': '123', 'janela_dias': 252, 'retorno_anualizado': 0.10, 'vol_anualizada': 0.15, 'sharpe': 0.67, 'sortino': 0.85, 'max_drawdown': -0.20, 'beta': 0.95, 'tracking_error': 0.05, 'downside_deviation': 0.12, 'var_95': -0.02, 'assuncoes': [], 'qualidade_metricas': 'alta' }] - Número de caracteres esperado: O JSON final deve conter as métricas calculadas para cada ativo, com um tamanho estimado em torno de 5.000 caracteres por ativo.
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: Utiliza lógica interna para cálculos de métricas financeiras.
- 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 Classificação de Ativos Financeiros (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Classificação de Ativos Financeiros (RF 3).
RF 3. Agente de Classificação de Ativos Financeiros
3.1 Tarefa do Agente
Classificar cada ativo em categorias de risco e retorno e gerar um escore composto para priorização.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON com métricas financeiras por ativo, incluindo retorno anualizado, volatilidade, Sharpe, entre outros. Este JSON é o input necessário para a classificação dos ativos. # 2. Objetivo Classificar cada ativo em categorias de risco e retorno e gerar um escore composto para priorização, utilizando as métricas financeiras calculadas. # 3. Regras que você deve seguir para gerar sua resposta - Universo elegível: considerar apenas ativos com qualidade_metricas != 'baixa'. Se total elegível >= 15, usar percentis; caso contrário, usar limiares fixos. - Limiar por percentis (universo >= 15): - Risco (vol anualizada): Baixo <= P33; Médio entre P33–P66; Alto > P66. - Retorno (retorno anualizado): Baixo <= P33; Médio entre P33–P66; Alto > P66. - Limiar fixo (universo < 15): - Risco (vol anualizada): Baixo < 0.15; Médio 0.15–0.30; Alto > 0.30. - Retorno anualizado: Baixo <= 0.00; Médio 0.00–0.15; Alto > 0.15. - Empates na fronteira: utilizar Sharpe como desempate (maior Sharpe melhora categoria de retorno; menor Sharpe piora categoria de risco). Se Sharpe='na', usar retorno_anualizado para retorno e vol para risco, mantendo determinismo com arredondamento a 4 casas. - Escore composto (0–100): 60% baseado em Sharpe normalizado no universo (ou retorno normalizado se Sharpe='na'), 40% penalização por risco (quanto maior a vol, menor o escore). Normalizações devem usar min-max do universo elegível; se min=max, atribuir 50 para esse componente. - Justificativa deve citar valores de vol, retorno e Sharpe usados e o critério (percentil ou fixo) que determinou as categorias.
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 como input um JSON com métricas financeiras por ativo.
-
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é 100.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON de classificação por ativo, incluindo categorias de risco e retorno, escore composto e justificativas.
-
Exemplo de Estrutura de Output:
[{ 'ativo_id': '123', 'categoria_risco': 'Médio', 'categoria_retorno': 'Alto', 'escore_composto': 85, 'metodologia': { 'base_limiar': 'percentil', 'limiares_risco': { 'baixo': 0.10, 'medio': 0.20 }, 'limiares_retorno': { 'baixo': 0.05, 'medio': 0.10 } }, 'justificativa': 'Vol: 0.15, Ret: 0.10, Sharpe: 0.67, Critério: percentil' }] - Número de caracteres esperado: O JSON final deve conter a classificação de cada ativo, com um tamanho estimado em torno de 5.000 caracteres por ativo.
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 cálculos de classificação.
- 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 Geração de Relatório de Investimento (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Geração de Relatório de Investimento (RF 4).
RF 4. Agente de Geração de Relatório de Investimento
4.1 Tarefa do Agente
Produzir relatório estruturado que auxilie a tomada de decisão de investimento a partir das classificações e métricas.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON de classificação por ativo e métricas provenientes dos agentes anteriores. Este JSON é o input necessário para a geração do relatório de investimento. # 2. Objetivo Produzir um relatório estruturado que auxilie a tomada de decisão de investimento, utilizando as classificações e métricas de risco e retorno calculadas. # 3. Regras que você deve seguir para gerar sua resposta - Sumário executivo: listar 3–5 destaques objetivos (ex: quantos ativos em cada quadrante risco/retorno, melhor e pior Sharpe, maiores drawdowns). - Recomendações por perfil (se fornecido): - Conservador: priorizar categoria_risco='Baixo' e Sharpe no quartil superior; excluir max_drawdown < -0.25; limitar a 5 ativos. - Moderado: aceitar 'Médio' e 'Baixo' risco; exigir Sharpe acima da mediana; limitar drawdown a -0.35. - Arrojado: permitir 'Alto' risco desde que retorno categoria='Alto' ou escore_composto >= 70; sem limite de drawdown explícito. - Restrições: remover da shortlist ativos que contenham qualquer palavra das 'restricoes' no 'ativo_id' ou 'classe'. Registrar itens removidos. - Transparência de parâmetros: declarar janela_dias, base de limiares (percentil ou fixo), taxa livre de risco assumida e presença/ausência de benchmark. - Alertas: incluir todos os 'avisos' e assunções relevantes (rf=0, moeda mista, dados truncados) em seção específica. - Determinismo: ordenar tabelas por escore_composto desc, depois por menor vol_anualizada, depois por ativo_id alfanumérico.
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 como input um JSON de classificação por ativo e métricas.
-
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é 100.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um relatório em dois formatos: a) JSON estruturado com sumário e recomendações; b) Markdown com seções: Sumário executivo, Metodologia resumida, Tabela de ativos, Top recomendações por perfil, Alertas e ressalvas, Anexos de parâmetros.
-
Exemplo de Estrutura de Output:
{ "sumario_executivo": "3 ativos em risco baixo, 2 em alto, melhor Sharpe: 0.67", "recomendacoes": { "conservador": ["ativo_1", "ativo_2"], "moderado": ["ativo_3"], "arrojado": ["ativo_4", "ativo_5"] } }## Sumário Executivo - 3 ativos em risco baixo - Melhor Sharpe: 0.67 ## Metodologia Resumida ... ## Tabela de Ativos | Ativo | Risco | Retorno | Sharpe | |------|------|--------|--------| | ativo_1 | Baixo | Alto | 0.67 | ## Top Recomendações ### Conservador - ativo_1 ## Alertas e Ressalvas - rf zero assumido ## Anexos de Parâmetros ...
- Número de caracteres esperado: O relatório final deve ser detalhado, com um tamanho estimado em torno de 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.
- Calculadora: Utiliza lógica interna para gerar recomendações e alertas.
- 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 é 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.