1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados, busca online e demais requisitos funcionais para o Fluxo de Agentes "Relatórios de Acompanhamento de Mercado", uma solução automatizada para a elaboração de relatórios diários 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 é coletar dados de mercado em tempo real, aplicar análises e gerar relatórios diários precisos e atualizados para consultorias de investimento.
2. Contexto e Problema
Problemas Específicos
O agente de IA para relatórios de acompanhamento de mercado visa resolver problemas críticos enfrentados por consultorias de investimento, incluindo:
- Acompanhamento em tempo real de grandes volumes de dados de mercado.
- Elaboração de relatórios diários precisos e atualizados.
- Integração de dados de múltiplas fontes para uma visão coesa e compreensiva.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Melhora na precisão e atualidade dos relatórios diários fornecidos às consultorias de investimento.
- Integração eficiente de dados de múltiplas fontes de mercado.
- Redução do tempo de elaboração de relatórios, permitindo foco em análises estratégicas.
4. Visão Geral da Solução
O agente de IA para relatórios de acompanhamento de mercado coleta dados de eventos de mercado em tempo real, aplica análises para identificar informações críticas e gera relatórios diários que são claros, concisos e acionáveis. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue como um assistente útil e autônomo na elaboração de relatórios de mercado.
A solução consiste em um fluxo de automação composto por 5 agentes de IA. O processo inicia com a preparação dos parâmetros de coleta e termina com a geração do relatório diário em formato Markdown.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Preparação de Parâmetros de Coleta (RF 1)
| Consolidar o escopo diário e preparar parâmetros de consulta para cada fonte aprovada de mercado. |
Agente de Busca Online (RF 2)
| Realizar chamadas de busca online e/ou APIs de mercado com os parâmetros prontos para obter os dados brutos. |
Agente de Normalização e Qualidade de Dados (RF 3)
| Unificar o esquema, remover duplicidades e avaliar a qualidade e atualidade dos dados coletados. |
Agente de Análise e Detecção de Tendências (RF 4)
| Identificar informações críticas e tendências emergentes a partir do dataset normalizado. |
Agente de Geração de Relatórios (RF 5)
| Gerar relatório diário claro, conciso e acionável para consultorias de investimento. |
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 de Coleta
1.1 Tarefa do Agente
Consolidar o escopo diário e preparar parâmetros de consulta para cada fonte aprovada de mercado.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo a configuração do dia com dados como data de referência, janela temporal, fuso do relatório, lista de classes de ativos e tickers prioritários, moeda de referência do relatório e catálogo de fontes aprovadas. # 2. Objetivo Consolidar o escopo diário e preparar parâmetros de consulta para cada fonte aprovada de mercado. # 3. Regras que você deve seguir para gerar sua resposta - Converter toda janela temporal para UTC e definir time_start/time_end ISO8601 sem milissegundos. - Para cada classe de ativo, incluir campos mínimos: preço último, variação absoluta, variação %, volume, máximo/mínimo do dia, timestamp da observação, moeda do ativo, fonte. - Montar payloads agrupados por fonte e por tipo de dado (preço intraday, fechamento, volume, notícias/eventos) para evitar mistura de esquemas. - Definir prioridade: notícias/eventos = alta; preços em tempo real = alta; preços de fechamento anterior = média; séries históricas complementares = baixa. - Definir retry_policy no payload (até 2 novas tentativas com backoff 2s/5s) apenas como metadado para o executor. - Incluir lista de símbolos de FX necessários para conversão à moeda do relatório (ex.: EURUSD, USDBRL) com mesma janela temporal dos preços. - Produzir campo "consulta_pack_id" único para o lote do dia e registrar em cada payload.
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 de configuração do dia 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: Dados estruturados contendo configuração do dia, janela temporal, fuso horário, lista de classes de ativos e tickers, moeda de referência e catálogo de fontes.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs nos formatos:
.json(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 uma lista de payloads de busca por fonte contendo: endpoint_id, símbolos/tickers, campos necessários, janela temporal em UTC, limites de paginação, taxa máxima de requisições, prioridade de execução e chaves de autenticação já referenciadas.
-
Exemplo de Estrutura de Output:
[{ "endpoint_id": "fonte_1", "symbols": ["AAPL", "GOOGL"], "fields": ["price_last", "pct_change", "volume"], "time_window": {"start": "2025-12-06T00:00:00Z", "end": "2025-12-06T23:59:59Z"}, "pagination": {"limit": 100}, "max_requests": 10, "priority": "high", "auth_keys": "key_123" }] - Número de caracteres esperado: O output deve ser conciso e informativo, com um tamanho estimado em torno de 3.000 caracteres.
1.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
1.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
1.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Busca Online (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 (RF 2).
RF 2. Agente de Busca Online
2.1 Tarefa do Agente
Realizar chamadas de busca online e/ou APIs de mercado com os parâmetros prontos para obter os dados brutos.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo payloads de busca prontos, contendo endpoint_id, parâmetros, limites de paginação, chaves de autenticação referenciadas e consulta_pack_id. # 2. Objetivo Realizar chamadas de busca online e/ou APIs de mercado com os parâmetros prontos para obter os dados brutos. # 3. Regras que você deve seguir para gerar sua resposta - Para cada payload, execute a chamada de busca online utilizando as chaves de autenticação e parâmetros fornecidos. - Preserve metadados essenciais, incluindo source_name, endpoint_id, payload_hash, timestamp_coleta_utc, páginas obtidas, total_registros e bloco de dados original. - Em caso de falha na chamada, implemente a política de retry definida no payload (até 2 novas tentativas com backoff 2s/5s). - Retorne os dados brutos organizados por fonte, com todos os metadados preservados.
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: Lista de payloads de busca contendo endpoint_id, símbolos/tickers, campos necessários, janela temporal em UTC, limites de paginação, taxa máxima de requisições, prioridade de execução e chaves de autenticação.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 10.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser uma coleção de dados brutos recuperados por fonte, preservando metadados essenciais.
-
Exemplo de Estrutura de Output:
[{ "source_name": "fonte_1", "endpoint_id": "fonte_1", "payload_hash": "hash_123", "timestamp_coleta_utc": "2025-12-06T14:08:00Z", "pages_obtained": 2, "total_records": 200, "data_block": [ {"symbol": "AAPL", "price_last": 150.00, "volume": 1000000} ] }] - Número de caracteres esperado: O output deve ser conciso e informativo, com um tamanho estimado em torno de 5.000 caracteres.
2.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
2.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Utiliza a ferramenta de busca online para obter dados de mercado.
- Sistemas Externos: Se conecta a APIs externas de mercado para coleta de dados.
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 Normalização e Qualidade de Dados (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Normalização e Qualidade de Dados (RF 3).
RF 3. Agente de Normalização e Qualidade de Dados
3.1 Tarefa do Agente
Unificar o esquema, remover duplicidades e avaliar a qualidade e atualidade dos dados coletados.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados brutos por fonte com metadados de coleta e a moeda de referência do relatório.
# 2. Objetivo
Unificar o esquema, remover duplicidades e avaliar a qualidade e atualidade dos dados coletados.
# 3. Regras que você deve seguir para gerar sua resposta
- Esquema alvo por observação: {symbol, asset_class, ts_utc, price_last, pct_change, abs_change, volume, day_high, day_low, currency, source_name}.
- Converter todos timestamps para ts_utc (ISO8601, sem milissegundos) e ordenar por symbol, ts_utc asc.
- Deduplicação: chave de unicidade = symbol + ts_utc; em conflito, manter registro da fonte com maior prioridade (ordem: bolsas oficiais > provedores institucionais > agregadores > mídia) e maior timestamp_coleta_utc.
- Consistência de moeda: quando currency != report_currency, incluir campos fx_pair e fx_rate utilizados e calcular price_last_report_ccy, abs_change_report_ccy.
- Outliers: sinalizar como outlier valores com |pct_change| > 20% intraday sem notícia/evento correlato na mesma janela de 60 min; marcar flag_outlier=true e manter dado, não excluir.
- Atualidade: flag_stale=true para símbolo cuja última observação esteja defasada > 15 min para ativos intraday ou ausente no dia para ativos de fechamento; incluir motivo_stale.
- Integridade: se volume ausente, preencher volume=null e adicionar em issues["missing_volume"]. Não inventar valores.
- Produzir indicadores agregados: cobertura_por_classe (% de símbolos com dados válidos), qtd_outliers, qtd_stale, fontes_mais_confiaveis (top por uso pós-deduplicação).
- Sinalizar data_quality_ok=true somente se cobertura_por_classe >= 90% e qtd_stale por classe <= 10% dos símbolos. 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: Dados brutos por fonte com metadados de coleta e a moeda de referência do relatório.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 15.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um dataset unificado em esquema padronizado e um relatório de qualidade com indicadores e flags por ativo e por fonte.
-
Exemplo de Estrutura de Output:
{ "unified_dataset": [ {"symbol": "AAPL", "asset_class": "equity", "ts_utc": "2025-12-06T14:08:00Z", "price_last": 150.00, "pct_change": 0.02, "volume": 1000000, "currency": "USD"} ], "quality_report": { "cobertura_por_classe": 95, "qtd_outliers": 2, "qtd_stale": 1, "fontes_mais_confiaveis": ["fonte_1", "fonte_2"] } } - Número de caracteres esperado: O output deve ser detalhado e informativo, com 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 Agente de Análise e Detecção de Tendências (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Análise e Detecção de Tendências (RF 4).
RF 4. Agente de Análise e Detecção de Tendências
4.1 Tarefa do Agente
Identificar informações críticas e tendências emergentes a partir do dataset normalizado.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um dataset unificado com flags de qualidade e conversões, além de eventos/notícias estruturados quando disponíveis.
# 2. Objetivo
Identificar informações críticas e tendências emergentes a partir do dataset normalizado.
# 3. Regras que você deve seguir para gerar sua resposta
- Cálculos base: variação diária = (price_last - preço_ref_dia_anterior)/preço_ref_dia_anterior; volatilidade intraday = (day_high - day_low)/preço_ref_dia_anterior.
- Sinais críticos: volume_spike=true quando volume > 2,0 x média móvel de 20 dias; breakout=true quando price_last cruza 30 dias máx/mín; gap_abertura=true quando |abertura - fechamento_anterior| > 1,5%.
- Tendências: classificar direcao em {alta, baixa, lateral} por limiares de variação diária: alta >= +1,0%; baixa <= -1,0%; caso contrário, lateral.
- Relevância do insight (score 0-100): 40% magnitude de movimento (capado em 5%), 30% concordância de fontes (n_fonte_distintas/total >= 2), 20% novidade (não recorrente nos últimos 5 dias), 10% impacto setorial (n_symbols_afetados_no_setor).
- Confianca (0-1): min(1, fontes_concordantes/3) ajustada para -0,2 se flag_outlier=true e +0,1 se houver evento corroborando na janela de 60 min.
- Estrutura do insight: {id, titulo_curto, descricao, direcao, classe, symbols, evidencias[{tipo: "preco|volume|noticia|evento", referencia, ts_utc}], impacto_est, horizonte:{curto|medio|longo}, acao_sugerida:{observar|revisar_carteira|alerta_risco}, confianca, score, fontes}.
- Seleção final: retornar top 10 insights por score, garantindo diversidade: no máximo 3 por mesma classe e 2 por mesmo setor.
- Produzir resumo_mercado: {mapa_setorial_com_var,%avanco_vs_queda, top_alta[5], top_baixa[5], ativos_maior_vol_spike[5], riscos_latentes}.
- Se data_quality_ok=false, incluir insight especial "Limitações de dados" com impacto_est="alto" e acao_sugerida="observar". 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: Dataset unificado com flags de qualidade e conversões, além de eventos/notícias estruturados quando disponíveis.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 10.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser uma lista priorizada de insights e um resumo de mercado padronizado.
-
Exemplo de Estrutura de Output:
{ "insights": [ {"id": "insight_01", "titulo_curto": "AAPL em alta", "descricao": "AAPL apresenta alta significativa com volume acima da média.", "direcao": "alta", "classe": "equity", "symbols": ["AAPL"], "evidencias": [{"tipo": "preco", "referencia": "150.00", "ts_utc": "2025-12-06T14:08:00Z"}], "impacto_est": "medio", "horizonte": "curto", "acao_sugerida": "observar", "confianca": 0.9, "score": 85, "fontes": ["fonte_1"]} ], "resumo_mercado": {"mapa_setorial_com_var": {}, "%avanco_vs_queda": "60/40", "top_alta": ["AAPL"], "top_baixa": [], "ativos_maior_vol_spike": ["AAPL"], "riscos_latentes": []} } - Número de caracteres esperado: O output deve ser detalhado e informativo, com um tamanho estimado em torno de 8.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: Utiliza lógica interna para calcular variações e volatilidade.
- 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 Agente de Geração de Relatórios (RF 5).
4.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Geração de Relatórios (RF 5).
RF 5. Agente de Geração de Relatórios
5.1 Tarefa do Agente
Gerar relatório diário claro, conciso e acionável para consultorias de investimento.
5.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo top insights priorizados, resumo_mercado, indicadores de qualidade e metadados (data de emissão, moeda do relatório, consulta_pack_id).
# 2. Objetivo
Gerar relatório diário claro, conciso e acionável para consultorias de investimento.
# 3. Regras que você deve seguir para gerar sua resposta
- Estrutura fixa do relatório: 1) Resumo Executivo (5 bullets); 2) Destaques do Dia (top 5 insights); 3) Tendências por Classe de Ativo; 4) Eventos e Catalisadores; 5) Riscos e Oportunidades; 6) Recomendações Acionáveis (máx. 8 itens, com acao_sugerida e horizonte); 7) Anexos (tabelas).
- Apresentar métricas sempre com unidade e moeda (ex.: % ou BRL/USD). Datas e horas em fuso do cliente, com nota "Fonte: UTC convertida".
- Tabelas mínimas: top 10 altas/baixas com {symbol, var%, volume, fonte}; volumetria anômala; cobertura_e_qualidade.
- Linguagem: objetiva, sem jargão excessivo; cada insight em até 80 palavras; evitar recomendações de compra/venda explícitas, focar em ações de acompanhamento.
- Incluir seção "Limitações e Assunções" quando data_quality_ok=false ou quando cobertura_por_classe<90% para qualquer classe.
- Inserir no final um bloco JSON "report_metadata": {emissao_ts_local, consulta_pack_id, moeda_relatorio, data_quality_ok, fontes_usadas[até 10], classes_cobertas, qtd_insights, versao_relatorio}.
- Garantir consistência numérica: se houver discrepância entre texto e tabela, privilegiar os valores das tabelas. 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: Top insights priorizados, resumo_mercado, indicadores de qualidade e metadados (data de emissão, moeda do relatório, consulta_pack_id).
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(JSON). - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 12.000 caracteres.
5.3.2 Especificação do Output
- Formato de output: O output deve ser um relatório diário em formato Markdown e um bloco JSON final de metadados do relatório.
-
Exemplo de Estrutura de Output:
{ "relatorio_markdown": "# Relatório Diário\n## Resumo Executivo\n- AAPL em alta;\n- Mercado volátil;\n- Volume anômalo em tech;\n- Riscos geopolíticos;\n- Oportunidades em energia.\n## Destaques do Dia\n1. AAPL em alta com volume acima da média.\n2. ...", "report_metadata": { "emissao_ts_local": "2025-12-06T14:08:00-03:00", "consulta_pack_id": "pack_123", "moeda_relatorio": "USD", "data_quality_ok": true, "fontes_usadas": ["fonte_1", "fonte_2"], "classes_cobertas": ["equity", "commodity"], "qtd_insights": 5, "versao_relatorio": "1.0" } } - Número de caracteres esperado: O output deve ser detalhado e informativo, com um tamanho estimado em torno de 15.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 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.
5.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.