1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados, ferramentas como chamadas a sistemas externos, busca online, consulta a documentos e demais requisitos funcionais para o Fluxo de Agentes "Análise de Portfólio de Investimentos", uma solução de automação projetada para revisar portfólios de investimento existentes e sugerir ajustes baseados em mudanças de mercado e perfil do investidor. 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 é transformar dados de portfólios e informações de mercado em recomendações personalizadas, otimizando o desempenho dos investimentos conforme as condições atuais do mercado e o perfil do investidor.
2. Contexto e Problema
Cenário Atual
Investidores frequentemente enfrentam desafios na revisão constante de seus portfólios de investimento devido a mudanças dinâmicas no mercado. A falta de insights personalizados para ajustes pode levar a decisões subótimas que não se alinham com os objetivos e o perfil de risco do investidor.
- Necessidade de revisão constante dos portfólios de investimento.
- Falta de insights personalizados para ajustes em portfólios com base em mudanças de mercado.
Atualmente, a análise e otimização de portfólios são processos manuais que exigem tempo e expertise para interpretar dados financeiros complexos e tendências de mercado.
Problemas Identificados
- Atualização constante: A necessidade de revisão frequente dos portfólios para se alinhar às condições de mercado.
- Falta de personalização: As estratégias de investimento frequentemente não são adaptadas às necessidades específicas de cada investidor.
- Decisões baseadas em dados: A dificuldade em acessar e interpretar dados de mercado atualizados para informar decisões de investimento.
- Eficiência de tempo: O processo manual de análise consome tempo que poderia ser utilizado para outras atividades de valor.
3. Impactos Esperados
A implementação deste agente de IA visa alcançar os seguintes resultados:
- Aumentar a precisão das recomendações de investimento com base em dados de mercado atualizados.
- Fornecer insights personalizados que se alinhem com os objetivos e o perfil de risco do investidor.
- Reduzir o tempo necessário para a análise e otimização de portfólios.
- Automatizar o processo de revisão de portfólios, permitindo ajustes mais frequentes e oportunos.
4. Visão Geral da Solução
O agente de IA para análise de portfólio de investimentos revisa portfólios existentes e sugere ajustes baseados em mudanças de mercado e perfil do investidor. 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 e otimização de portfólios de investimento.
A solução consiste em um fluxo de automação composto por 7 agentes de IA. O processo inicia com a consolidação do contexto do portfólio e termina com a geração de recomendações de ajuste e rebalanceamento.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente Preparador de Consulta de Mercado e Portfólio (RF 1)
| Consolidar o contexto do portfólio e preparar o payload para recuperação de dados de mercado. |
Agente de Execução de Chamada à API de Mercado (RF 2)
| Realizar chamada à API do Sistema MarketData para obter preços históricos e dados de mercado. |
Agente Preparador de Script de Cálculo de Métricas do Portfólio (RF 3)
| Gerar script de cálculo para consolidar retornos, risco e alocação do portfólio. |
Agente de Execução de Cálculo de Métricas (RF 4)
| Executar o script de cálculo e retornar as métricas calculadas. |
Agente Preparador de Parâmetros de Busca de Contexto de Mercado (RF 5)
| Transformar o portfólio em termos de busca para coleta de sinais de mercado. |
Agente de Busca Online de Contexto de Mercado (RF 6)
| Obter notícias e análises recentes relacionadas aos ativos do portfólio. |
Agente de Análise e Recomendações de Portfólio (RF 7)
| Interpretar métricas e sugerir ajustes práticos de alocação e rebalanceamento. |
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 investidor receberá. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente Preparador de Consulta de Mercado e Portfólio
1.1 Tarefa do Agente
Consolidar o contexto do portfólio e preparar o payload para recuperação de dados de mercado (preços históricos, cotações atuais, benchmarks e taxa livre de risco) necessários para a análise.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON com informações detalhadas sobre o investidor e seu portfólio atual.
# 2. Objetivo
Consolidar o contexto do portfólio e preparar o payload para recuperação de dados de mercado necessários para a análise.
# 3. Regras que você deve seguir para gerar sua resposta
- Regra 1 (Validação do input):
- Exija portfolio não vazio e cada item com {ticker, classe_ativo, quantidade>0, preco_medio>=0, moeda}.
- Normalize tickers para maiúsculas sem espaços.
- Remova duplicidades de tickers preservando a primeira ocorrência.
- Se moeda_base ausente, defina pela maioria dos ativos; empate -> "BRL".
- Regra 2 (Janelas temporais):
- start_date: se ausente, defina 5 anos retroativos à end_date; se houver renda_fixa majoritária (>60%), use 3 anos; se cripto>30%, use 2 anos.
- end_date: use data atual (UTC) se ausente.
- interval: "1d" por padrão; se número de tickers>150 ou horizonte=longo e apenas ações/ETFs, use "1wk".
- Regra 3 (Benchmarks):
- Se benchmarks_preferidos fornecidos, use-os após normalizar.
- Caso contrário, selecione por currency_base e composição:
BRL: ["^BVSP"], incluir "CDI" quando houver RF>20%.
USD: ["^GSPC"], incluir "^IRX" (T-Bill) quando RF>20%.
EUR: ["^STOXX50E"], incluir taxa curta europeia quando RF>20%.
- Se >20% do valor do portfólio em moeda diferente de currency_base, acrescente 1 benchmark internacional adicional correspondente.
- Evite benchmarks setoriais pertencentes a setores vetados em restricoes.
- Regra 4 (Taxa livre de risco):
- BRL: priorize "CDI"; fallback "SELIC".
- USD: "US3M"; fallback "^IRX".
- EUR: "EU3M"; fallback "ESTR".
- Retorne apenas um símbolo existente no provedor-alvo.
- Regra 5 (Moedas e FX):
- Se existir ativo cuja moeda != currency_base, marque need_fx=true e liste os pares necessários no formato "MOEDA_ATIVO/MOEDA_BASE" sem repetição (ex: "USD/BRL").
- Se todas as moedas forem iguais à currency_base, need_fx=false e fx_pairs=[].
- Regra 6 (Proventos):
- include_dividends=true sempre que o provedor suportar proventos para a classe do ativo.
- Regra 7 (Saída determinística):
- Retorne apenas os campos do expected_output, sem campos extras, mantendo a ordem das chaves conforme especificação. 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 objeto JSON com informações sobre o investidor e seu portfólio 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 objeto JSON contendo detalhes do investidor e do portfólio.
-
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.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON com as chaves especificadas para recuperação de dados de mercado, incluindo tickers, janelas temporais e benchmarks.
-
Exemplo de Estrutura de Output:
{"tickers": ["string"], "start_date": "YYYY-MM-DD", "end_date": "YYYY-MM-DD", "interval": "1d", "benchmarks": ["string"], "risk_free": "string", "currency_base": "string", "need_fx": true, "fx_pairs": ["string"], "include_dividends": true} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 1.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 de Mercado (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 de Mercado (RF 2).
RF 2. Agente de Execução de Chamada à API de Mercado
2.1 Tarefa do Agente
Realizar chamada à API do Sistema MarketData para obter preços históricos, cotações atuais, benchmarks, taxa livre de risco e pares de FX conforme payload preparado.
2.2 Prompt ou Instruções do Agente
Esse agente não precisa de instruções para chamadas ao LLM, pois sua única função é executar a chamada à API cujo payload ele 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 como input um objeto JSON com as chaves especificadas para recuperação de dados de mercado.
-
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 até 1.500 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo os dados de mercado recuperados, organizados por série temporal e benchmarks.
-
Exemplo de Estrutura de Output:
{"series": {"TICKER": [{"date": "YYYY-MM-DD", "close": number, "adj_close": number (opcional), "dividend": number (opcional)}]}, "benchmarks": {"BM": [{"date": "YYYY-MM-DD", "close": number}]}, "fx": {"PAIR": [{"date": "YYYY-MM-DD", "rate": number}]}, "risk_free": [{"date": "YYYY-MM-DD", "value": number}], "meta": {"interval": "1d|1wk|1mo", "currency_base": "string"}} - 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: Não se aplica (uso de API)
- Temperatura: Não se aplica (uso de API)
2.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: O agente deverá enviar o JSON recebido para a API externa do Sistema MarketData e retornar os dados recebidos como resposta.
2.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente Preparador de Script de Cálculo de Métricas do Portfólio (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente Preparador de Script de Cálculo de Métricas do Portfólio (RF 3).
RF 3. Agente Preparador de Script de Cálculo de Métricas do Portfólio
3.1 Tarefa do Agente
Gerar o script de cálculo para consolidar retornos, risco e contribuições por ativo, além da alocação atual do portfólio em relação ao perfil do investidor.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON contendo dados de mercado e informações detalhadas do portfólio do investidor.
# 2. Objetivo
Gerar o script de cálculo para consolidar retornos, risco e contribuições por ativo, além da alocação atual do portfólio em relação ao perfil do investidor.
# 3. Regras que você deve seguir para gerar sua resposta
- Regra 1 (Preparação das séries):
- Unifique calendários por data; preencha faltas por forward-fill até 5 dias úteis; descarte datas com cobertura <80% dos ativos.
- Converta preços para currency_base aplicando FX diário quando a moeda do ativo for diferente; se fx ausente no dia, use último disponível.
- Para retorno total, priorize adj_close; se indisponível, some dividendos aos retornos simples na data de pagamento.
- Regra 2 (Cálculos principais):
- Retornos: calcule log-returns diários; anualize volatilidade por sqrt(252) ou pela cadência de interval.
- Portfólio: compute valor por ativo = quantidade × preço; peso = valor/valor_total.
- Risco: volatilidade anualizada do portfólio, max_drawdown via pico-vale, beta vs primeiro benchmark por regressão de retornos diários.
- Correlação: matriz de correlação de Pearson entre principais ativos (limite a top-20 por peso para estabilidade).
- VaR histórico 95%: quantil 5% dos retornos diários do portfólio (sem suposição paramétrica).
- Regra 3 (Risco livre e Sharpe):
- Interpole a taxa risk_free para frequência diária; compute excesso de retorno e Sharpe anualizado.
- Regra 4 (Alocação por classe):
- Agrupe por classe_ativo e retorne lista [{classe, peso}] ordenada decrescente por peso.
- Regra 5 (Script e saída):
- Gere código Python limpo, sem comentários, que produza exatamente as chaves listadas em "outputs".
- Não inclua texto fora do JSON de saída; mantenha params conforme especificado. 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 objeto JSON contendo dados de mercado e informações detalhadas do portfólio.
-
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 até 10.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo o script de cálculo em Python e os parâmetros necessários para execução.
-
Exemplo de Estrutura de Output:
{"engine": "python", "script": "string contendo código Python compatível", "outputs": ["carteira_mensal", "retornos_diarios", "vol_anual", "max_drawdown", "beta", "correlacao", "var_95", "aloc_atual_por_classe", "metricas_agrupadas"], "params": {"usar_retorno_ajustado": true, "taxa_rf_annualizada": true}} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 2.500 caracteres.
3.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
3.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- 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 não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Execução de Cálculo de Métricas (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Execução de Cálculo de Métricas (RF 4).
RF 4. Agente de Execução de Cálculo de Métricas
4.1 Tarefa do Agente
Executar o script de cálculo no runtime de Python externo e retornar as métricas calculadas.
4.2 Prompt ou Instruções do Agente
Esse agente não precisa de instruções para chamadas ao LLM, pois sua única função é executar a chamada à API cujo payload ele já recebe pronto.
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 objeto JSON contendo o script de cálculo em Python e os parâmetros necessários para execução.
-
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 até 2.500 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo as métricas calculadas, organizadas por ativo e por portfólio.
-
Exemplo de Estrutura de Output:
{"metricas": {"retorno_anual": number, "vol_anual": number, "sharpe": number, "max_drawdown": number, "beta": number}, "por_ativo": [{"ticker": "string", "peso_atual": number, "retorno": number, "vol": number, "contribuicao_risco": number}], "correlacao": [[number]], "aloc_atual_por_classe": [{"classe": "string", "peso": number}], "series_portfolio": [{"date": "YYYY-MM-DD", "retorno": number}], "var_95_diario": number} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 3.500 caracteres.
4.3.3 Parâmetros de Geração
- Modelo: Não se aplica (uso de API)
- Temperatura: Não se aplica (uso de API)
4.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: O agente deverá executar o script de cálculo no runtime de Python externo e retornar as métricas calculadas.
4.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente Preparador de Parâmetros de Busca de Contexto de Mercado (RF 5).
4.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente Preparador de Parâmetros de Busca de Contexto de Mercado (RF 5).
RF 5. Agente Preparador de Parâmetros de Busca de Contexto de Mercado
5.1 Tarefa do Agente
Transformar o portfólio e o perfil do investidor em termos de busca objetivos para coleta de sinais de mercado recentes relevantes aos ativos e classes do portfólio.
5.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um objeto JSON com detalhes do portfólio do investidor e as métricas calculadas. # 2. Objetivo Transformar o portfólio e o perfil do investidor em termos de busca objetivos para coleta de sinais de mercado recentes relevantes aos ativos e classes do portfólio. # 3. Regras que você deve seguir para gerar sua resposta - Regra 1 (Cobertura por ativo e classe): - Gere ao menos uma query por ticker do portfólio; inclua sinônimos do nome da empresa/fundo quando disponível. - Adicione queries por classe (ex.: "juros Brasil", "commodities", "volatilidade implícita") quando a classe representar >15% do portfólio. - Regra 2 (Janela temporal): - Defina janela_dias=30 por padrão; 90 se horizonte for curto e perfil conservador (maior sensibilidade a mudanças), 14 se arrojado (foco em sinais mais recentes). - Regra 3 (Idioma e volume): - idioma: "pt" quando moeda_base="BRL"; senão, "en". - limite_resultados: 5 por query; reduza para 3 se número de tickers>40. - Regra 4 (Tópicos globais): - Inclua até 5 tópicos macro relevantes (ex.: "política monetária", "inflação", "crescimento global", "commodities", "fluxo emergentes"). - Regra 5 (Saída estrita): - Retorne apenas os campos do expected_output; datas: fim=data atual, inicio=fim - janela_dias do maior valor entre as queries.
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 como input um objeto JSON contendo as métricas calculadas e detalhes do portfólio.
-
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 até 3.500 caracteres.
5.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo as queries de busca de mercado e tópicos globais relevantes.
-
Exemplo de Estrutura de Output:
{"queries": [{"q": "string", "tickers_ref": ["string"], "idioma": "pt|en", "janela_dias": number, "limite_resultados": number}], "topicos_globais": ["string"], "periodo_referencia": {"inicio": "YYYY-MM-DD", "fim": "YYYY-MM-DD"}} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 2.000 caracteres.
5.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
5.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
5.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Busca Online de Contexto de Mercado (RF 6).
5.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Busca Online de Contexto de Mercado (RF 6).
RF 6. Agente de Busca Online de Contexto de Mercado
6.1 Tarefa do Agente
Realizar busca online para obter notícias e análises recentes relacionadas aos tickers do portfólio, tópicos globais e condições de mercado.
6.2 Prompt ou Instruções do Agente
Esse agente não precisa de instruções para chamadas ao LLM, pois sua única função é executar a busca online com parâmetros que ele já recebe pronto.
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 como input um objeto JSON contendo as queries de busca de mercado e tópicos globais relevantes.
-
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 até 2.000 caracteres.
6.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON contendo as notícias e análises recuperadas, organizadas por relevância e data.
-
Exemplo de Estrutura de Output:
{"itens": [{"titulo": "string", "url": "string", "data": "YYYY-MM-DD", "resumo": "string", "tickers_mencionados": ["string"], "topicos": ["string"]}], "janela_coberta": {"inicio": "YYYY-MM-DD", "fim": "YYYY-MM-DD"}} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 4.000 caracteres.
6.3.3 Parâmetros de Geração
- Modelo: Não se aplica (uso de API)
- Temperatura: Não se aplica (uso de API)
6.3.4 Ferramentas do Agente
- Documentos: Não consulta.
- Calculadora: Não utiliza.
- Busca Online: O agente deverá executar buscas online baseadas nos parâmetros recebidos e retornar as informações obtidas.
- Sistemas Externos: Não utiliza.
6.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Análise e Recomendações de Portfólio (RF 7).
6.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Análise e Recomendações de Portfólio (RF 7).
RF 7. Agente de Análise e Recomendações de Portfólio
7.1 Tarefa do Agente
Interpretar as métricas calculadas à luz do perfil, horizonte e objetivos do investidor e sugerir ajustes práticos de alocação e rebalanceamento, considerando mudanças de mercado recentes.
7.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um objeto JSON contendo as métricas calculadas, detalhes do portfólio e informações de contexto de mercado. # 2. Objetivo Interpretar as métricas calculadas à luz do perfil, horizonte e objetivos do investidor e sugerir ajustes práticos de alocação e rebalanceamento, considerando mudanças de mercado recentes. # 3. Regras que você deve seguir para gerar sua resposta - Regra 1 (Aderência ao Perfil): Compare vol_anual, max_drawdown e VaR do portfólio com faixas de tolerância por perfil: conservador (vol <= 8% a.a., MDD <= 15%), moderado (vol 8–15%, MDD 15–30%), arrojado (vol > 15%, MDD > 30%). Se fora da faixa, sinalize desalinhamento e proponha ajuste com meta de retorno aos intervalos. - Regra 2 (Concentração): Considere excesso quando peso_atual por ativo > 10% (conservador), 15% (moderado), 25% (arrojado) ou quando soma do top-3 > 40%/50%/60% respectivamente; recomende redução gradual priorizando ativos com maior correlação com o restante da carteira e menor contribuição marginal ao Sharpe. - Regra 3 (Correlação e Diversificação): Evite pares com correlação > 0.85 ocupando juntos > 30% do portfólio em perfis conservador/moderado; proponha substitutos de baixa correlação dentro da mesma classe ou entre classes. - Regra 4 (Alvos por Classe): Use alvos base: Conservador (RF 60–80%, Ações 10–25%, Internacional 0–15%, Alternativos 0–10%, Caixa 5–10%); Moderado (RF 30–50%, Ações 30–50%, Internacional 10–25%, Alternativos 0–15%, Caixa 3–7%); Arrojado (RF 10–25%, Ações 55–80%, Internacional 15–35%, Alternativos 0–20%, Caixa 2–5%). Ajuste +/− 5 p.p. conforme horizonte: curto -> mais RF/caixa; longo -> mais ações/internacional. - Regra 5 (Mudanças de Mercado): Sintetize 3–5 mensagens do contexto_mercado por relevância aos tickers com peso >2%. Se aumento recente de risco sistêmico (ex.: queda do benchmark em 3–6m com alta de vol), proponha mais RF/caixa para conservador/moderado; em tendência de baixa prolongada com horizonte longo e perfil arrojado, considere rebalancear pró-risco com justificativa e limites de execução. - Regra 6 (Restrições do Investidor): Remova ativos/setores vetados das sugestões e proponha substitutos com função semelhante de risco/retorno e mesma moeda sempre que possível. - Regra 7 (Threshold de Rebalanceamento): Só proponha ordens se desvio do peso atual vs alvo > 2 p.p. (conservador), 3 p.p. (moderado) ou 5 p.p. (arrojado). Agrupe ordens por ativo e por classe para minimizar custos; indique percentuais pós-execução. - Regra 8 (Justificativas e rastreabilidade): Para cada recomendação, explicite impacto esperado em vol, MDD e diversificação (com base na correlação) e referência às observações de mercado utilizadas (citar título/URL de forma sucinta na seção 6). - Regra 9 (Comunicação): Produza relatório claro em markdown nas seções definidas; plano de ordens com: ticker, direção (comprar/vender), quantidade estimada (com base no último preço), % alvo e racional objetivo. - Regra 10 (Personalização por objetivos): Priorize ajustes coerentes com objetivos (renda, preservação, crescimento); por exemplo, para renda, privilegie RF ou ações/ FIIs com proventos consistentes; para preservação, reduza drawdown esperado.
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 como input um objeto JSON contendo as métricas calculadas, detalhes do portfólio e informações de contexto de mercado.
-
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 até 4.000 caracteres.
7.3.2 Especificação do Output
- Formato de output: O output deve ser um relatório em markdown com seções definidas, incluindo resumo executivo, diagnóstico do portfólio, aderência ao perfil, recomendações de ajuste, plano de rebalanceamento e observações de mercado.
-
Exemplo de Estrutura de Output:
# Resumo Executivo - Insight 1 - Insight 2 ## Diagnóstico do Portfólio - Retorno: X% - Risco: Y% ## Aderência ao Perfil e Objetivos - Alinhamento: Z ## Recomendações de Ajuste - Ações: Comprar/Vender ## Observações de Mercado - Nota 1 ## Riscos e Trade-offs - Risco 1 ## Próximos Passos - Passo 1
- Número de caracteres esperado: O relatório gerado deve ter um tamanho estimado em torno 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 não são 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.