1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados e demais requisitos funcionais para o Fluxo de Agentes "Classificação de Ativos", uma solução de automação projetada para categorizar e classificar ativos financeiros com base em critérios predefinidos, facilitando a análise e o monitoramento. 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 é implementar um sistema de classificação que atualiza continuamente as classificações com base em mudanças de mercado, fornecendo relatórios de análise para insights mais precisos.
2. Contexto e Problema
Cenário Atual
As empresas financeiras enfrentam desafios significativos na categorização e classificação de ativos financeiros devido à complexidade e à quantidade de dados envolvidos. Estes problemas incluem:
- Necessidade de categorizar e classificar ativos financeiros para facilitar a análise e o monitoramento.
- Integração de critérios predefinidos na classificação de ativos.
A classificação manual é ineficiente e propensa a erros, dificultando a análise precisa e o monitoramento em tempo real. Com a volatilidade do mercado, as classificações precisam ser atualizadas regularmente para refletir as condições atuais.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Melhorar a precisão e a eficiência na classificação de ativos financeiros.
- Fornecer insights acionáveis através de relatórios de análise baseados em classificações atualizadas.
- Reduzir o tempo e o esforço necessários para a categorização manual de ativos.
- Manter as classificações atualizadas com as condições de mercado em constante mudança.
4. Visão Geral da Solução
O agente de IA para classificação de ativos categoriza e classifica ativos financeiros com base em critérios predefinidos, produzindo relatórios de análise para monitoramento contínuo. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue como um assistente útil e autônomo na classificação de ativos financeiros.
A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo inicia com a execução de chamadas à API de mercado e termina com a geração de relatórios de análise.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Execução de Chamada à API de Mercado (RF 1)
| Realizar chamadas a APIs de dados de mercado para obter cotações e metadados necessários à classificação de ativos. |
Agente de Classificação de Ativos Financeiros (RF 2)
| Categorizar e classificar ativos financeiros com base em critérios predefinidos, produzindo pontuações e rótulos padronizados. |
Agente de Relatório de Análise com Base na Classificação (RF 3)
| Gerar relatório estruturado de análise e monitoramento a partir do classification_result. |
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 Execução de Chamada à API de Mercado
1.1 Tarefa do Agente
Realizar chamadas a APIs de dados de mercado para obter cotações, curvas, índices e metadados necessários à classificação de ativos.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um payload contendo informações sobre o mercado financeiro que precisam ser processadas para obtenção de cotações e metadados.
# 2. Objetivo
Realizar chamadas a APIs de dados de mercado para obter cotações, curvas, índices e metadados necessários à classificação de ativos financeiros.
# 3. Regras que você deve seguir para gerar sua resposta
- Utilize os dados do payload para configurar a chamada à API de mercado.
- Garanta que todas as informações necessárias para a classificação de ativos sejam obtidas.
- Registre qualquer falha na chamada da API para análise posterior.
# 4. Exemplo de Output que você deve produzir
market_data_snapshot com estrutura: { snapshot_id, vendor, reference_date, symbols[], data_by_symbol: { [symbol]: { price, price_prev, return_window, volume, bid_ask_spread, dv_30d, vol_30d, rating_ext, sector, country, fx_rate } }, benchmarks: { cdi, selic, inflation, vix, curves: { gov_br: [ {tenor, rate} ], usd: [...] } } }. 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 payload de dados de mercado 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 payload 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 texto com até 15.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo todas as informações de mercado necessárias para a classificação de ativos.
-
Exemplo de Estrutura de Output:
{ "snapshot_id": "abc123", "vendor": "market_vendor", "reference_date": "2025-12-03", "symbols": ["AAPL", "GOOGL"], "data_by_symbol": { "AAPL": { "price": 150.0, "price_prev": 148.0, "return_window": 0.0135, "volume": 1000000, "bid_ask_spread": 0.01, "dv_30d": 1.2, "vol_30d": 0.25, "rating_ext": "AA", "sector": "Technology", "country": "USA", "fx_rate": 1.0 } }, "benchmarks": { "cdi": 0.12, "selic": 0.13, "inflation": 0.04, "vix": 0.2, "curves": { "gov_br": [ {"tenor": "1Y", "rate": 0.07} ], "usd": [ {"tenor": "1Y", "rate": 0.05} ] } } } - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.000 caracteres, dependendo da quantidade de símbolos processados.
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: Utiliza para obter dados de mercado em tempo real.
- Sistemas Externos: Conecta-se a APIs de mercado para obtenção de dados.
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 Classificação de Ativos Financeiros (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Classificação de Ativos Financeiros (RF 2).
RF 2. Agente de Classificação de Ativos Financeiros
2.1 Tarefa do Agente
Categorizar e classificar ativos financeiros com base em critérios predefinidos, produzindo pontuações e rótulos padronizados para análise e monitoramento.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON contendo dados de ativos financeiros que precisam ser classificados de acordo com critérios predefinidos.
# 2. Objetivo
Categorizar e classificar ativos financeiros com base em critérios predefinidos, produzindo pontuações e rótulos padronizados para análise e monitoramento.
# 3. Regras que você deve seguir para gerar sua resposta
- Utilize os critérios fornecidos para classificar cada ativo em categorias de risco, retorno, e liquidez.
- Atualize as classificações com base em mudanças no mercado ou nos critérios.
- Forneça relatórios de análise usando as classificações para insights mais precisos.
# 4. Exemplo de Output que você deve produzir
classification_result: { reference_date, criteria_version, market_snapshot_id (nullable), assets: [ { asset_id, symbol, canonical_asset_type, sector_std, country, scores: { risk: 0-100, return: 0-100, liquidity: 0-100, composite: 0-100 }, classes: { risk: "baixo|medio|alto", return: "baixo|medio|alto", liquidity: "baixa|media|alta", overall: "A|B|C|D" }, rationale: ["texto curto e objetivo com até 240 caracteres explicando a decisão"], data_quality_flags: { missing_fields: [], used_defaults: boolean, outliers: [] }, compliance_flags: { criteria_override_applied: boolean, rule_ids: [] } } ], aggregation: { by_class_overall: { A: qtd, B: qtd, C: qtd, D: qtd }, by_asset_type: { ... }, exposures: { currency: { ... }, country: { ... }, sector: { ... } } }, classificacao_atualizada: "sim|nao" }. 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 estruturado contendo dados de ativos financeiros.
- Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
- Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 20.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo as classificações e análises dos ativos financeiros.
-
Exemplo de Estrutura de Output:
{ "reference_date": "2025-12-03", "criteria_version": "v1.0", "market_snapshot_id": "abc123", "assets": [ { "asset_id": "1", "symbol": "AAPL", "canonical_asset_type": "Equity", "sector_std": "Technology", "country": "USA", "scores": { "risk": 25, "return": 80, "liquidity": 90, "composite": 70 }, "classes": { "risk": "baixo", "return": "alto", "liquidity": "alta", "overall": "A" }, "rationale": ["volatilidade baixa", "retorno > benchmark"], "data_quality_flags": { "missing_fields": [], "used_defaults": false, "outliers": [] }, "compliance_flags": { "criteria_override_applied": false, "rule_ids": [] } } ], "aggregation": { "by_class_overall": { "A": 10, "B": 5, "C": 3, "D": 2 }, "by_asset_type": { "Equity": 15, "Bond": 5 }, "exposures": { "currency": { "USD": 70, "EUR": 30 }, "country": { "USA": 60, "Germany": 40 }, "sector": { "Technology": 50, "Finance": 50 } } }, "classificacao_atualizada": "sim" } - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 8.000 caracteres, dependendo do número de ativos classificados.
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: Utiliza lógica interna para cálculos de classificação.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
2.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Relatório de Análise com Base na Classificação (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Relatório de Análise com Base na Classificação (RF 3).
RF 3. Agente de Relatório de Análise com Base na Classificação
3.1 Tarefa do Agente
Gerar relatório estruturado de análise e monitoramento a partir do classification_result, destacando insights acionáveis e mudanças relevantes.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um classification_result contendo as classificações e análises dos ativos financeiros.
# 2. Objetivo
Gerar relatório estruturado de análise e monitoramento a partir do classification_result, destacando insights acionáveis e mudanças relevantes.
# 3. Regras que você deve seguir para gerar sua resposta
- Utilize o classification_result para compor um relatório que destaque as principais análises e insights.
- Inclua seções para riscos, retornos, liquidez e concentrações, conforme necessário.
- Forneça recomendações baseadas nas análises realizadas.
# 4. Exemplo de Output que você deve produzir
report_json: { generated_at, reference_date, summary: { carteiras_por_classe: {A,B,C,D}, destaques: [ ... ] }, insights: [ { title, severity: info|warning|critical, insight_text, related_assets:[asset_id], rule_ref } ], tables: { top_risk: [...], top_return: [...], low_liquidity: [...] }, diffs (se baseline): [ { asset_id, from_overall, to_overall, delta_composite } ], recomendações_regrais (opcional): ["revisar limiar de risco", ...] } 3.3 Configurações do Agente
3.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 2).
- Tipo do input: Este agente deve ser apto a receber como input um JSON contendo o classification_result.
- 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.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo o relatório de análise e monitoramento dos ativos financeiros.
-
Exemplo de Estrutura de Output:
{ "generated_at": "2025-12-03T11:23:00", "reference_date": "2025-12-03", "summary": { "carteiras_por_classe": { "A": 10, "B": 5, "C": 3, "D": 2 }, "destaques": [ "AAPL com alto retorno", "GOOGL com baixa liquidez" ] }, "insights": [ { "title": "Alto Retorno em AAPL", "severity": "info", "insight_text": "AAPL apresentou retorno acima do benchmark com volatilidade controlada.", "related_assets": ["AAPL"], "rule_ref": "retorno" } ], "tables": { "top_risk": ["GOOGL"], "top_return": ["AAPL"], "low_liquidity": ["GOOGL"] }, "diffs": [], "recomendações_regrais": ["revisar limiar de risco"] } - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 7.000 caracteres, dependendo da complexidade do relatório.
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: Utiliza lógica interna para cálculos de análise.
- 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 é o entregável final e não é passada para outros agentes internos.
3.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.