1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados, ferramentas como busca online e demais requisitos funcionais para o Fluxo de Agentes "Elaboração de Propostas Personalizadas de Alocação de Ativos", uma solução de automação projetada para criar propostas de alocação de ativos personalizadas com base no perfil do cliente e nas condições de mercado. 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 do cliente e informações de mercado em uma proposta de alocação de ativos que atenda aos objetivos financeiros e à tolerância ao risco do cliente, enquanto se adapta às mudanças nas condições de mercado.
2. Contexto e Problema
Cenário Atual
Consultores financeiros enfrentam desafios ao criar propostas de alocação de ativos que considerem o perfil individual do cliente e as condições de mercado em tempo real. A personalização de estratégias financeiras para atender a diferentes objetivos e tolerâncias ao risco dos clientes é complexa e demorada.
Problemas Identificados
- Dificuldade em personalização: Criar propostas que considerem o perfil individual do cliente e as condições de mercado em tempo real é desafiador.
- Necessidade de adaptação contínua: As condições de mercado mudam rapidamente, exigindo ajustes frequentes nas estratégias de alocação de ativos.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Melhorar a precisão das propostas de alocação de ativos ao integrar dados de mercado em tempo real.
- Reduzir o tempo de elaboração de propostas personalizadas.
- Aumentar a satisfação do cliente com estratégias de investimento mais alinhadas aos seus objetivos e perfil de risco.
4. Visão Geral da Solução
O agente de IA para elaboração de propostas personalizadas de alocação de ativos analisa o perfil do cliente, suas metas financeiras, e monitora continuamente as condições de mercado para ajustar as propostas conforme necessário. 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 propostas personalizadas de alocação de ativos.
A solução consiste em um fluxo de automação composto por 6 agentes de IA. O processo inicia com a análise do perfil do cliente e termina com a geração de uma proposta final de alocação de ativos.
A execução dos agentes é sequencial, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Análise de Perfil do Cliente (RF 1)
| Estruturar o perfil do cliente em um JSON padronizado para orientar a alocação. |
Agente de Busca Online de Dados de Mercado (RF 2)
| Obter dados recentes de mercado necessários à análise. |
Agente de Interpretação de Condições de Mercado (RF 3)
| Normalizar dados de mercado em indicadores utilizáveis para alocação. |
Agente de Construção de Alocação Base (RF 4)
| Gerar uma proposta de alocação estratégica e tática. |
Agente de Validação de Suitability e Conformidade (RF 5)
| Checar a proposta frente às regras de suitability e diretrizes regulatórias. |
Agente de Geração da Proposta Final ao Cliente (RF 6)
| Consolidar a alocação ajustada e o parecer de conformidade em uma proposta final. |
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 Análise de Perfil do Cliente
1.1 Tarefa do Agente
Estruturar o perfil do cliente em um JSON padronizado com metas, tolerância a risco, horizonte, restrições e necessidades de liquidez, para orientar a construção da alocação.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados do cliente em JSON ou texto estruturável contendo objetivos, prazo, tolerância a risco, situação patrimonial, necessidades de liquidez, preferências e restrições.
# 2. Objetivo
Estruturar o perfil do cliente em um JSON padronizado para orientar a construção da alocação.
# 3. Regras que você deve seguir para gerar sua resposta
- Se o horizonte < 3 anos e objetivo for preservação, force suitability_bucket = conservador independentemente da autoavaliação.
- Mapeie tolerância a risco para score_risco_0a100: baixa=25, moderada=55, alta=80; ajuste ±5 pontos conforme volatilidade histórica alegada pelo cliente (se fornecida).
- Defina necessidade_liquidez_meses: se não informada, use 6 meses; se objetivo tem gasto definido em data específica dentro do horizonte, inclua campo "metas_com_data" com valor e data.
- Construa restrições combinando preferências, proibições e limites legais: campos padronizados {proibidos[], max_exposicao_por_ativo: 0.2 por padrão, max_exposicao_classe: {acoes: 0.8, rf: 1.0, multimercado: 0.6}, min_ef: 0.0}.
- Moeda base: se país de residência for BR, use BRL; se não informado, herde do país do documento apresentado; registre incerteza_em_moeda=true se inferido.
- Gere suitability_bucket com base em score: 0-35 conservador, 36-65 moderado, 66-100 arrojado; sempre inclua justificativa_bucket textual.
- Sempre produza campo gatilhos.checagem_conformidade_necessaria=true se houver qualquer restrição legal, uso de derivativos, alavancagem ou produtos complexos mencionados; caso contrário, false. 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 do cliente 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 arquivo de dados do cliente em formato JSON ou texto estruturável.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados nos formatos:
.json,.txt. - 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 JSON estruturado contendo o perfil do cliente com todos os campos padronizados e calculados conforme as regras.
-
Exemplo de Estrutura de Output:
{"perfil_cliente": {"objetivos": ["aposentadoria"], "horizonte_anos": 10, "tolerancia_risco": "moderada", "score_risco_0a100": 55, "moeda_base": "BRL", "necessidade_liquidez_meses": 6, "restricoes": {"proibidos": ["tabaco"], "min_ef": 0.0, "max_alavancagem": 0.0}, "preferencias": {"esg": true}, "situacao": {"renda_mensal": 12000, "patrimonio_investivel": 300000}, "suitability_bucket": "moderado", "regras_fiscais_relevantes": ["isencao_fii_ate_limite_vigente"], "gatilhos": {"checagem_conformidade_necessaria": true}}} - Número de caracteres esperado: O JSON final deve ser conciso e informativo, com 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 Busca Online de Dados 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 Busca Online de Dados de Mercado (RF 2).
RF 2. Agente de Busca Online de Dados de Mercado
2.1 Tarefa do Agente
Realizar busca online para obter dados recentes de mercado necessários à análise.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo parâmetros de busca prontos em JSON para obter dados de mercado. # 2. Objetivo Executar busca online e retornar os dados obtidos sem transformação adicional. # 3. Regras que você deve seguir para gerar sua resposta - Este agente apenas executa a busca online com os parâmetros recebidos e retorna os dados obtidos sem transformação adicional.
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 com os parâmetros de busca.
-
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.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo os dados de mercado obtidos.
-
Exemplo de Estrutura de Output:
{"dados_mercado_raw": [{"item": "selic", "valor": 0.1215, "timestamp": "2025-12-21T23:00:00Z", "fonte": "bcb"}, {"item": "ibov_vol_30d", "valor": 0.22, "timestamp": "2025-12-21T23:00:00Z", "fonte": "provedor_x"}]} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 1.500 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: Executa busca online para obter dados de mercado.
- 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 Interpretação de Condições de Mercado (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Interpretação de Condições de Mercado (RF 3).
RF 3. Agente de Interpretação de Condições de Mercado
3.1 Tarefa do Agente
Consolidar e normalizar os dados brutos de mercado em indicadores utilizáveis para alocação.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo dados de mercado brutos em JSON e parâmetros do cliente. # 2. Objetivo Consolidar e normalizar os dados brutos de mercado em indicadores utilizáveis para alocação. # 3. Regras que você deve seguir para gerar sua resposta - Validade dos dados: se qualquer item-chave (juros, inflação esperada, vol de ações locais) estiver com timestamp > 48h, marque dados_faltantes e defina regimes correspondentes como "desconhecido"; não gere sinais táticos para itens desconhecidos. - Classificação de volatilidade: vol_30d <= 0.15 baixa, 0.15-0.25 média, >0.25 alta. - Regime de juros: use taxa básica e slope (10y - 2y). Se taxa > 10% a.a. e slope plano (+/- 50 bps), rotule "elevados_estaveis"; se taxa em queda > 50 bps nos últimos 30 dias, rotule "queda". - Crédito: se spreads < percentil 30% histórico, "spreads_estreitos"; >70% "spreads_largos". - Valuation relativo: se P/L abaixo da mediana 5 anos por mais de 10%, rotule "atrativo"; acima de +10% "caro"; caso contrário "neutro". - Gere sinais_taticos por classe somente quando houver pelo menos dois indicadores convergentes (ex.: juros em queda e valuation atrativo para prefixados). Convicção: 0.6 quando dois sinais, 0.8 quando três ou mais. - Sempre retornar timestamp_ref e lista de dados_faltantes.
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 dados de mercado brutos e parâmetros do cliente 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 até 3.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo os indicadores de mercado consolidados e normalizados.
-
Exemplo de Estrutura de Output:
{"condicoes_mercado": {"timestamp_ref": "2025-12-21T23:00:00Z", "regimes": {"volatilidade": "alta", "juros": "elevados_estaveis", "credito": "spreads_estreitos"}, "tendencias": {"acoes_br": "neutra", "rf_prefixados": "leve_alta"}, "valuation_relativo": {"acoes_br": "atrativo", "fiis": "neutro"}, "sinais_taticos": [{"classe": "rf_prefixados", "direcao": "+", "conviccao_0a1": 0.6}], "dados_faltantes": []}} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado 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 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 Construção de Alocação Base (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Construção de Alocação Base (RF 4).
RF 4. Agente de Construção de Alocação Base
4.1 Tarefa do Agente
Gerar uma proposta de alocação estratégica e tática por classe de ativos em percentuais, coerente com o perfil do cliente e as condições de mercado interpretadas.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o perfil do cliente e as condições de mercado em JSON.
# 2. Objetivo
Gerar uma proposta de alocação estratégica e tática coerente com o perfil do cliente e as condições de mercado.
# 3. Regras que você deve seguir para gerar sua resposta
- Defina vol_target_aa a partir de score_risco: 0-35 => 6%, 36-65 => 12%, 66-100 => 18%.
- Bandas por suitability: conservador {acoes 0-30, rf 60-100}; moderado {acoes 20-60, rf 40-80}; arrojado {acoes 40-80, rf 20-60}. FII soma com ações no limite superior de risco quando necessário.
- Reserva de liquidez: aloque caixa mínimo para cobrir necessidade_liquidez_meses com base em despesas mensais estimadas; se não houver despesa, use 6% do patrimônio investível.
- Respeite restrições.proibidos e max_exposicao_por_ativo; se sinal tático sugerir classe proibida, ignore e registre justificativa em "conflitos_resolvidos".
- Hedging cambial: se moeda_base = BRL e horizonte > 5 anos e score_risco >= 55, hedge 50% de exposição internacional; se conservador, hedge 80%.
- Ajustes táticos: limite absoluto de ±10 p.p. por classe e ±15 p.p. somados; nunca violar bandas de suitability após ajustes.
- Arredondamento: percentuais finais em múltiplos de 0,5 p.p.; garanta soma = 100% com correção na classe de maior peso.
- Sempre incluir metas_risco, justificativas e lista de conflitos_resolvidos[]. 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 o perfil do cliente e as condições de mercado 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 até 5.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo a proposta de alocação estratégica e tática.
-
Exemplo de Estrutura de Output:
{"alocacao_base": {"estrategica": {"caixa": 5, "renda_fixa_prefixados": 25, "renda_fixa_inflacao": 25, "acoes": 35, "fiis": 10}, "taticos": [{"classe": "renda_fixa_prefixados", "ajuste_pontos_percentuais": +5, "racional": "juros em queda"}], "alocacao_final": {"caixa": 5, "renda_fixa_prefixados": 30, "renda_fixa_inflacao": 25, "acoes": 30, "fiis": 10}, "metas_risco": {"vol_target_aa": 0.12, "max_drawdown_esperado": 0.20}, "hedge_moeda": {"percent_hedge": 50, "criterio": "horizonte 5-10 anos"}}} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 2.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 gerada por este agente deve ser visível para o Agente de Validação de Suitability e Conformidade (RF 5).
4.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Validação de Suitability e Conformidade (RF 5).
RF 5. Agente de Validação de Suitability e Conformidade
5.1 Tarefa do Agente
Checar a proposta frente às regras de suitability, restrições do cliente e diretrizes regulatórias, produzindo um parecer e recomendações de ajuste.
5.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o perfil do cliente e a proposta de alocação base em JSON.
# 2. Objetivo
Checar a proposta frente às regras de suitability, restrições do cliente e diretrizes regulatórias.
# 3. Regras que você deve seguir para gerar sua resposta
- Verifique bandas por suitability e max_exposicao_por_ativo/classe; se violado, inclua em violacoes com campo {regra, valor_atual, limite}.
- Cheque presença de produtos proibidos em restricoes.proibidos.
- Avalie concentração: nenhum único ativo > 20% por padrão; se não houver lista de ativos ainda, marque como pendente.
- Sinalize incompatibilidades fiscais óbvias (ex.: produto sem compatibilidade com regime do cliente) em observacoes_fiscais.
- Se aprovado=false, forneça ajustes_recomendados como deltas de classe que resolvam todas as violações sem quebrar outras regras.
- Sempre retornar aprovado boolean e lista completa de violacoes (possivelmente vazia). 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 o perfil do cliente e a proposta de alocação base 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 até 6.000 caracteres.
5.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo o parecer de conformidade e recomendações de ajuste.
-
Exemplo de Estrutura de Output:
{"parecer_conformidade": {"aprovado": true, "violacoes": [], "ajustes_recomendados": [], "observacoes_fiscais": ["avaliar isencao de IR em FIIs"], "riscos_relevantes": ["concentracao em acoes 30% proximo ao limite" ]}} - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 1.500 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 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 da Proposta Final ao Cliente (RF 6).
5.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Geração da Proposta Final ao Cliente (RF 6).
RF 6. Agente de Geração da Proposta Final ao Cliente
6.1 Tarefa do Agente
Consolidar a alocação ajustada e o parecer de conformidade em uma proposta final legível por humano e máquina, incluindo métricas esperadas e política de rebalanceamento.
6.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo a alocação base, o parecer de conformidade e o perfil do cliente em JSON. # 2. Objetivo Consolidar a alocação ajustada e o parecer de conformidade em uma proposta final legível por humano e máquina. # 3. Regras que você deve seguir para gerar sua resposta - Se parecer_conformidade.aprovado=false e houver ajustes_recomendados, aplique-os para gerar alocacao ajustada; marque status="pendente_ajustes" se ainda houver violacoes remanescentes. - Calcule métricas esperadas coerentes com metas_risco: retorno_esperado_aa proporcional ao mix de classes com premissas conservadoras (ex.: rf_prefixados ~= juros atuais - 0,5 p.p.; acoes ~= prêmio de risco 5-7% sobre juros reais). - Defina rebalanceamento padrão: 6 meses e banda ±5 p.p.; se volatilidade regime=alta, reduza periodicidade para 3 meses. - Sempre incluir campo pendencias[] com mensagens objetivas (ex.: "definir veículos específicos por classe"). - Gere texto_explicativo sem jargões excessivos, citando objetivos, horizonte, racional dos ajustes táticos e principais riscos. - Garanta consistência: soma 100%, tipos numéricos em decimais ponto, percentuais em 0-100, moedas herdadas de perfil.
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 a alocação base, o parecer de conformidade e o perfil do cliente 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 até 7.000 caracteres.
6.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo a proposta final com alocação ajustada, métricas e política de rebalanceamento.
-
Exemplo de Estrutura de Output:
{"proposta_final": {"alocacao": {"caixa": 5, "renda_fixa_prefixados": 30, "renda_fixa_inflacao": 25, "acoes": 30, "fiis": 10}, "metricas": {"retorno_esperado_aa": 0.11, "vol_esperada_aa": 0.12, "var_95_30d": 0.08}, "custos_estimados_aa": 0.012, "rebalanceamento": {"periodicidade_meses": 6, "banda_tolerancia_pp": 5}, "texto_explicativo": "Resumo amigável da estratégia, riscos e justificativas", "pendencias": [], "status": "pronto_para_aprovacao"}} - 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: Não utiliza.
- 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 é o entregável final e não é passada para outros agentes internos.
6.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. A proposta gerada é o resultado que deve ser disponibilizado ao cliente.