Agente de IA para Detecção de Oportunidades de Investimento

07 de December de 2025 • Tempo de leitura: 5 min

Como criar um agente de IA que monitora o mercado financeiro em tempo real para identificar e notificar clientes.

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 e demais requisitos funcionais para o Agente de IA para Detecção de Oportunidades de Investimento. Esta documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.

O agente tem como objetivo monitorar o mercado financeiro em tempo real para identificar e notificar clientes sobre novas oportunidades de investimento, personalizando as notificações de acordo com o perfil de cada cliente.

2. Contexto e Problema

Os investidores enfrentam dificuldades em identificar e reagir rapidamente a novas oportunidades de investimento no mercado financeiro. Muitas vezes, a falta de um sistema eficiente para monitorar o mercado em tempo real impede que os investidores aproveitem essas oportunidades. Além disso, é necessário personalizar as notificações de oportunidades de investimento com base nos interesses e perfil dos clientes.

3. Impactos Esperados

A implementação deste agente de IA visa alcançar os seguintes resultados:

  • Agilidade na identificação de oportunidades: Permitir que os investidores recebam notificações em tempo real sobre novas oportunidades de investimento.
  • Personalização das notificações: Enviar informações relevantes e personalizadas de acordo com o perfil de cada cliente.
  • Eficiência no monitoramento de mercado: Monitorar continuamente o mercado financeiro e identificar oportunidades relevantes de forma automatizada.

4. Visão Geral da Solução

O agente de IA para detecção de oportunidades de investimento monitora o mercado financeiro em tempo real e personaliza notificações para clientes com base em seus perfis de investimento. 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 identificação de oportunidades de investimento.

A solução é composta por uma sequência de agentes de IA que realizam desde a preparação dos parâmetros de consulta até a personalização das notificações para os clientes.

Agentes Função Principal
Agente de Preparação de Parâmetros da Consulta de Mercado Construir o payload de consulta à API de mercado, definindo universo de ativos, janelas temporais e campos necessários para detecção de oportunidades.
Agente de Execução de Chamada à API Realizar chamada à API do sistema de mercado financeiro para obter cotações, volumes e dados históricos necessários ao monitoramento.
Agente de Detecção e Priorização de Oportunidades Analisar os dados de mercado brutos e identificar eventos configurados como oportunidades, calculando score de relevância.
Agente de Enriquecimento e Contextualização da Oportunidade Gerar um card informativo por oportunidade com métricas-chave, contexto sucinto e campos padronizados para notificação.
Agente de Personalização e Geração de Notificações por Cliente Filtrar e priorizar os cards de oportunidade conforme o perfil de investimento do cliente e produzir a mensagem de notificaçã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 Preparação de Parâmetros da Consulta de Mercado

1.1 Tarefa do Agente

Construir o payload de consulta à API de mercado, definindo universo de ativos, janelas temporais e campos necessários para detecção de oportunidades.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo as configurações de monitoramento do mercado financeiro, incluindo classes de ativos, mercados e eventos alvo.

# 2. Objetivo
Construir o payload de consulta à API de mercado, definindo universo de ativos, janelas temporais e campos necessários para detecção de oportunidades.

# 3. Regras que você deve seguir para gerar sua resposta
- Se classes_ativos não forem informadas, definir padrão: acoes e etfs dos mercados informados; se mercados não informados, usar B3 e NASDAQ.
- Gerar tickers a partir de universos padrão do mercado alvo quando não vier lista explícita; remover duplicidades e tickers em exclusoes_e_restricoes.
- Incluir sempre campos: preco_ult, preco_abertura, max_20d, min_20d, volume, media_volume_20, timestamp, book_liquidez (se disponível).
- Definir timezone como 'UTC' e incluir no payload.
- Mapear eventos_alvo em requisitos de campos e janelas: variacao intraday requer 1m/5m e diário; rompimentos requer diário+histórico 20 dias; volume_anormal requer volume e média_volume_20.
- Aplicar filtros: descartar ativos com liquidez média diária inferior a liquidez_min (se não informado, usar 100.000 unidades ou equivalente monetário), e com preço fora do intervalo preco_min/preco_max.
- Definir limites_paginacao para evitar respostas truncadas (ex: limit 1000 por página) e solicitar paginação contínua via cursor/offset, se aplicável. 
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 das configurações de monitoramento 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 na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: O input inicial para o fluxo é um conjunto de configurações de monitoramento do mercado financeiro.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs nos formatos: .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 JSON contendo o payload de consulta à API de mercado.
  • Exemplo de Estrutura de Output:
     {
      "payload_consulta_api": {
        "tickers": [],
        "campos_requeridos": [],
        "periodos": [],
        "timezone": "UTC",
        "limites_paginacao": 1000,
        "janela_observacao_por_evento": {}
      }
    } 
  • 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 próximo agente no fluxo.

1.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o próximo agente no fluxo.

RF 2. Agente de Execução de Chamada à API

2.1 Tarefa do Agente

Realizar chamada à API do sistema de mercado financeiro para obter cotações, volumes e dados históricos necessários ao monitoramento.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o payload de consulta à API do mercado financeiro, preparado pelo agente anterior.

# 2. Objetivo
Realizar chamada à API do sistema de mercado financeiro para obter cotações, volumes e dados históricos necessários ao monitoramento.

# 3. Regras que você deve seguir para gerar sua resposta
- Este agente não precisa de instruções para LLM; sua função é executar a chamada à API com o payload recebido e retornar os dados obtidos sem transformação. 
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.
  • Tipo do input: Este agente deve ser apto a receber como input o JSON contendo o payload de consulta à API 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é 10.000 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo os dados de mercado brutos retornados pela API.
  • Exemplo de Estrutura de Output:
     {
      "dados_mercado_brutos": {
        "series_por_ticker": [{
          "ticker": "",
          "periodo": "",
          "candles": [{
            "timestamp": "",
            "open": "",
            "high": "",
            "low": "",
            "close": "",
            "volume": ""
          }]
        }],
        "metadados_paginacao": {},
        "timezone": "UTC"
      }
    } 
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 5.000 caracteres.

2.3.3 Parâmetros de Geração

  • Modelo: Não se aplica (uso de ferramenta)
  • Temperatura: Não se aplica

2.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: O agente deverá enviar o JSON recebido para a API externa e retornar os dados obtidos.

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 próximo agente no fluxo.

2.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o próximo agente no fluxo.

RF 3. Agente de Detecção e Priorização de Oportunidades

3.1 Tarefa do Agente

Analisar os dados de mercado brutos e identificar eventos configurados como oportunidades, calculando score de relevância.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo os dados de mercado brutos obtidos pela chamada à API do agente anterior.

# 2. Objetivo
Analisar os dados de mercado brutos e identificar eventos configurados como oportunidades, calculando score de relevância.

# 3. Regras que você deve seguir para gerar sua resposta
- Calcular variacao_percentual intraday com base em close atual vs close de t-1h (se disponível) e vs abertura do dia; marcar evento 'variacao_intraday' quando exceder limiar (padrão 2%).
- Detectar 'gap_abertura' quando |abertura - fechamento_anterior|/fechamento_anterior >= limiar (padrão 2.5%).
- Detectar 'rompimento_max_20d' quando high atual > max_20d anterior por pelo menos 0.5% e volume_ratio >= 1.2.
- Calcular volume_ratio = volume_atual_acumulado_do_dia / media_volume_20; marcar 'volume_anormal' quando volume_ratio >= fator (padrão 1.5x).
- Só registrar oportunidade se a liquidez_diaria_estimada estiver acima de 100.000 unidades (ou equivalente monetário se disponível) e preço_evento > 0.
- score_relevancia = soma ponderada dos componentes normalizados: movimento (|variacao_percentual|), impulso de volume (volume_ratio), consistência_temporal (n de candles consecutivos alinhados ao movimento; normalizar 0-1), liquidez (normalizar por percentil no universo). Usar pesos_score informados; se ausentes, usar {movimento:0.4, volume:0.3, consistencia:0.2, liquidez:0.1}.
- Preencher racional_score textual curto explicando quais limiares foram superados e por quê o score foi atribuído.
- Evitar duplicidade: para o mesmo ticker e evento_tipo dentro de janela_confirmacao_minutos, manter apenas o registro de maior score.
- Classificar classe_ativo e mercado a partir de metadados/ticker; se ausente, inferir pelo sufixo do ticker (ex: '.SA' -> B3). 
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.
  • Tipo do input: Este agente deve ser apto a receber como input o JSON contendo os dados de mercado brutos.
  • 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é 20.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo as oportunidades detectadas com seus respectivos scores de relevância.
  • Exemplo de Estrutura de Output:
     {
      "oportunidades_detectadas": [{
        "ticker": "",
        "classe_ativo": "",
        "mercado": "",
        "evento_tipo": "",
        "timestamp_evento": "",
        "variacao_percentual": "",
        "variacao_absoluta": "",
        "volume_ratio": "",
        "gap_percentual": "",
        "rompimento_referencia": "",
        "preco_referencia": "",
        "preco_evento": "",
        "liquidez_diaria_estimada": "",
        "score_relevancia": "",
        "racional_score": "",
        "dados_de_base_minimos": {}
      }]
    } 
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 10.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 próximo agente no fluxo.

3.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o próximo agente no fluxo.

RF 4. Agente de Enriquecimento e Contextualização da Oportunidade

4.1 Tarefa do Agente

Gerar um card informativo por oportunidade com métricas-chave, contexto sucinto e campos padronizados para notificação.

4.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo as oportunidades detectadas pelo agente anterior.

# 2. Objetivo
Gerar um card informativo por oportunidade com métricas-chave, contexto sucinto e campos padronizados para notificação.

# 3. Regras que você deve seguir para gerar sua resposta
- Criar id_card único combinando ticker+evento+timestamp.
- Gerar resumo_curto com até 240 caracteres, citando ticker, evento e principal métrica (ex: 'PETR4 rompeu máxima de 20d com volume 1.8x').
- Preencher riscos_relevantes de forma genérica (ex: 'volatilidade elevada', 'evento pode reverter'); não sugerir compra/venda, apenas descrever fatos.
- Respeitar formato_decimal e moeda_display ao apresentar preços; se indisponíveis, usar duas casas decimais e 'BRL' para B3, 'USD' demais.
- Sinalizar sempre nao_e_recomendacao=true e evitar linguagem imperativa de execução (não usar 'compre/venda').
- Se algum campo base estiver ausente (ex: max_20d), omitir a métrica relacionada e declarar no card apenas as disponíveis. 
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.
  • Tipo do input: Este agente deve ser apto a receber como input o JSON contendo as oportunidades detectadas.
  • 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.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo os cards de oportunidade gerados para notificação.
  • Exemplo de Estrutura de Output:
     {
      "cards_oportunidade": [{
        "id_card": "",
        "ticker": "",
        "nome_ativo": "",
        "classe_ativo": "",
        "mercado": "",
        "evento_tipo": "",
        "horario_detectado": "",
        "precos": {
          "preco_evento": "",
          "preco_abertura_dia": "",
          "preco_fechamento_anterior": ""
        },
        "metricas": {
          "variacao_percentual": "",
          "gap_percentual": "",
          "volume_ratio": "",
          "rompimento_referencia": ""
        },
        "janela_observacao": "",
        "resumo_curto": "",
        "riscos_relevantes": "",
        "links_referencia": "",
        "nao_e_recomendacao": true
      }]
    } 
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 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 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 gerada por este agente deve ser visível para o próximo agente no fluxo.

4.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o próximo agente no fluxo.

RF 5. Agente de Personalização e Geração de Notificações por Cliente

5.1 Tarefa do Agente

Filtrar e priorizar os cards de oportunidade conforme o perfil de investimento do cliente e produzir a mensagem de notificação.

5.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo os cards de oportunidade gerados pelo agente anterior, assim como o perfil de investimento dos clientes.

# 2. Objetivo
Filtrar e priorizar os cards de oportunidade conforme o perfil de investimento do cliente e produzir a mensagem de notificação.

# 3. Regras que você deve seguir para gerar sua resposta
- Calcular adequacao_score combinando: compatibilidade de risco (alto peso), classe_ativo permitida, aderência setorial, moeda_preferida, e score_relevancia do card; se alguma restricao_setorial for violada, adequacao_score = 0 e descartar.
- Mapeamento de risco: eventos com variacao_percentual alta (>5%) e volume_ratio elevado (>2x) elevam risco percebido; para tolerancia_risco 'baixa', exigir variacao_percentual <= 3% e volume_ratio <= 2x, caso contrário reduzir score em 50%.
- Respeitar politicas_envio: descartar cards com score_relevancia < score_minimo (padrão 60) e limitar a max_notificacoes_por_janela (padrão 3) escolhendo os maiores adequacao_score.
- Selecionar canal_sugerido: 'push/app' para curto prazo e alto score; 'email' para médio/longo prazo ou quando experiencia=iniciante; se canais_permitidos restringirem, escolher o primeiro permitido.
- mensagen_titulo conciso com até 80 caracteres: ' ()'.
- mensagem_corpo deve incluir: contexto do evento em 1-2 frases, principais métricas (variacao_percentual, volume_ratio ou rompimento), nota de risco compatível ao perfil e o disclaimer de que não é recomendação.
- Nunca incluir instruções de execução de ordem. Finalizar com CTA padrão: 'Deseja mais detalhes?'.
- Preencher registrar_memoria com id_card e timestamp de envio para suportar histórico de interações. 
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.
  • Tipo do input: Este agente deve ser apto a receber como input o JSON contendo os cards de oportunidade e o perfil de investimento dos clientes.
  • 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é 15.000 caracteres.

5.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo as notificações personalizadas para cada cliente.
  • Exemplo de Estrutura de Output:
     {
      "notificacoes_personalizadas": [{
        "cliente": {
          "nome": ""
        },
        "id_card": "",
        "adequacao_score": "",
        "motivo_compatibilidade": "",
        "canal_sugerido": "",
        "mensagem_titulo": "",
        "mensagem_corpo": "",
        "cta": "Deseja mais detalhes?",
        "campos_chave": {
          "ticker": "",
          "evento_tipo": "",
          "variacao_percentual": "",
          "volume_ratio": ""
        },
        "registrar_memoria": {
          "oportunidade_id": "",
          "data_hora_envio": ""
        }
      }]
    } 
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 8.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 documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

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 é o entregável final e não é passada para outros agentes internos.

5.3.6 Regras de Orquestração e Transição

A execução deste agente finaliza o fluxo. As notificações geradas são o resultado que deve ser disponibilizado ao usuário.

© 2025 prototipe.ai. Todos os direitos reservados.