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, consulta a documentos e demais requisitos funcionais para o Fluxo de Agentes "Análise de Uso e Consumo de Vale-Transporte", uma solução de automação projetada para analisar dados de uso dos cartões de vale-transporte e identificar padrões de consumo. 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 o input de dados de uso em insights sobre padrões de consumo, sugerindo otimizações no serviço de transporte.
2. Contexto e Problema
Cenário Atual
Atualmente, as empresas de transporte enfrentam dificuldades em obter insights precisos sobre o uso dos cartões de vale-transporte. Isso se deve à falta de análise detalhada dos dados de uso, o que impede a identificação de padrões de consumo que poderiam otimizar o serviço.
Problemas Identificados
- Falta de insights: A ausência de uma análise detalhada impede a identificação de padrões de consumo.
- Dificuldade em otimizar o serviço: Sem a identificação de padrões, é difícil propor otimizações eficientes.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Identificação de padrões de consumo para otimizar o serviço de transporte.
- Propostas de otimizações baseadas em dados concretos, aumentando a eficiência do serviço.
4. Visão Geral da Solução
O agente de IA para análise de uso e consumo de vale-transporte processa dados de uso dos cartões, identifica padrões de consumo e sugere otimizações no serviço. 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 dos dados de vale-transporte.
A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo inicia com a consolidação dos dados de uso e termina com a geração de um relatório executivo com insights e recomendações.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Profiling e Métricas de Consumo de Vale-Transporte (RF 1)
| Consolidar dados brutos de uso, computar KPIs e padrões de consumo, detectar anomalias e oportunidades de otimização. |
Agente de Preparação de Camadas GeoJSON de Demanda (Condicional) (RF 2)
| Gerar camadas GeoJSON para hotspots de embarque e fluxos OD, preservando privacidade. |
Agente de Síntese e Recomendações de Otimização do Serviço (RF 3)
| Converter métricas e camadas espaciais em relatório executivo com insights e recomendações. |
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 Profiling e Métricas de Consumo de Vale-Transporte
1.1 Tarefa do Agente
Consolidar dados brutos de uso de cartões de vale-transporte, computar KPIs e padrões de consumo temporal/espacial, detectar anomalias operacionais e oportunidades de otimização, retornando um JSON único e padronizado para consumo por agentes seguintes.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados brutos de uso de cartões de vale-transporte em formato tabular. Este é o registro detalhado das transações de uso dos cartões.
# 2. Objetivo
Consolidar os dados de uso, computar KPIs e padrões de consumo, detectar anomalias e sugerir oportunidades de otimização.
# 3. Regras que você deve seguir para gerar sua resposta
- Analise os dados para identificar padrões de consumo.
- Sugira otimizações no serviço com base nos padrões identificados.
- Retorne um JSON padronizado com as métricas e insights gerados.
# 4. Exemplo de Output que você deve produzir
{
"periodo_analisado": {"inicio": "YYYY-MM-DD", "fim": "YYYY-MM-DD"},
"kpis_gerais": {"usuarios_ativos": 0, "cartoes_ativos": 0, "viagens_totais": 0, "taps_in": 0, "taps_out": 0, "recharges": 0, "ticket_medio_viagem": 0.0},
"padroes_tempo": {"uso_por_hora": [{"hora": 0, "taps": 0}], "uso_por_dia_semana": [{"dia_semana": "seg", "taps": 0}], "sazonalidade_semana": [{"data": "YYYY-MM-DD", "taps": 0}]},
"padroes_rotas": {"uso_por_rota": [{"route_id": "", "taps": 0}], "top_rotas": [{"route_id": "", "participacao_percentual": 0.0}]},
"pontos_e_integracoes": {"top_embarques": [{"stop_id": "", "taps": 0}], "taxa_transferencia": 0.0, "janelas_transferencia": {"minutos": 90, "metodo": "tempo_e_proximidade"}},
"segmentacoes": {"por_faixa_horaria": [{"faixa": "pico_manha", "taps": 0}], "por_perfil_usuario": [{"perfil": "indeterminado", "taps": 0}]},
"anomalias": {"retaps_curto_intervalo": [{"card_id": "", "intervalo_segundos": 0}], "velocidade_impossivel": [{"card_id": "", "velocidade_kmh": 0.0}], "uso_simultaneo_mesmo_cartao": [{"card_id": "", "eventos": 0}], "taps_duplicados": 0},
"oportunidades": {"inatividade_cartoes": [{"card_id": "", "dias_inativo": 0}], "quebra_saldo_aparente": {"metodo": "proxy", "valor_medio_nao_usado": 0.0}},
"flags": {"possui_geolocalizacao": false, "possui_tap_out": false, "qualidade_timestamp": "boa|razoavel|ruim"}
} 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 arquivo de dados de uso de vale-transporte via API. Na fase de testes, os dados serão enviados diretamente por upload do arquivo 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 tabulares, que pode ser em formato .csv, .xlsx ou JSON.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados nos formatos:
.csv,.xlsx,.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 100.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um arquivo JSON que estrutura as métricas, padrões de consumo e oportunidades de otimização identificadas.
-
Exemplo de Estrutura de Output:
{ "periodo_analisado": {"inicio": "YYYY-MM-DD", "fim": "YYYY-MM-DD"}, "kpis_gerais": {"usuarios_ativos": 0, "cartoes_ativos": 0, "viagens_totais": 0, "taps_in": 0, "taps_out": 0, "recharges": 0, "ticket_medio_viagem": 0.0}, "padroes_tempo": {"uso_por_hora": [{"hora": 0, "taps": 0}], "uso_por_dia_semana": [{"dia_semana": "seg", "taps": 0}], "sazonalidade_semana": [{"data": "YYYY-MM-DD", "taps": 0}]}, "padroes_rotas": {"uso_por_rota": [{"route_id": "", "taps": 0}], "top_rotas": [{"route_id": "", "participacao_percentual": 0.0}]}, "pontos_e_integracoes": {"top_embarques": [{"stop_id": "", "taps": 0}], "taxa_transferencia": 0.0, "janelas_transferencia": {"minutos": 90, "metodo": "tempo_e_proximidade"}}, "segmentacoes": {"por_faixa_horaria": [{"faixa": "pico_manha", "taps": 0}], "por_perfil_usuario": [{"perfil": "indeterminado", "taps": 0}]}, "anomalias": {"retaps_curto_intervalo": [{"card_id": "", "intervalo_segundos": 0}], "velocidade_impossivel": [{"card_id": "", "velocidade_kmh": 0.0}], "uso_simultaneo_mesmo_cartao": [{"card_id": "", "eventos": 0}], "taps_duplicados": 0}, "oportunidades": {"inatividade_cartoes": [{"card_id": "", "dias_inativo": 0}], "quebra_saldo_aparente": {"metodo": "proxy", "valor_medio_nao_usado": 0.0}}, "flags": {"possui_geolocalizacao": false, "possui_tap_out": false, "qualidade_timestamp": "boa|razoavel|ruim"} } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 5.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 devem ser visíveis para o Agente de Síntese e Recomendações de Otimização do Serviço (RF 3).
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Síntese e Recomendações de Otimização do Serviço (RF 3).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Preparação de Camadas GeoJSON de Demanda (RF 2), caso a condição de geolocalização seja atendida.
RF 2. Agente de Preparação de Camadas GeoJSON de Demanda (Condicional)
2.1 Tarefa do Agente
Gerar camadas GeoJSON agregadas para hotspots de embarque e fluxos OD (quando inferíveis), preservando privacidade e retornando estrutura padronizada para visualização.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON de métricas produzido pelo Agente de Profiling com geolocalização ativada.
# 2. Objetivo
Gerar camadas GeoJSON para visualização de hotspots de embarque e fluxos OD.
# 3. Regras que você deve seguir para gerar sua resposta
- Usar WGS84 (EPSG:4326) para coordenadas.
- Aplicar k-anonimato para privacidade.
- Retornar um GeoJSON estruturado para visualização.
# 4. Exemplo de Output que você deve produzir
{
"hotspots_embarque": {"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "Point", "coordinates": [-43.2, -22.9]}, "properties": {"taps": 120, "hora": 8}}]},
"fluxos_od": {"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "LineString", "coordinates": [[-43.2, -22.9], [-43.3, -22.95]]}, "properties": {"viagens": 85}}]},
"metadados": {"grid": "hex_500m", "privacidade_k_min": 8, "periodo": {"inicio": "YYYY-MM-DD", "fim": "YYYY-MM-DD"}}
} 2.3 Configurações do Agente
2.3.1 Condições de Ativação
Este agente é acionado somente se a seguinte condição for atendida:
- O campo
possui_geolocalizacaono output do Agente de Profiling e Métricas de Consumo de Vale-Transporte (RF 1) é igual a "true".
2.3.2 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado condicionalmente após a conclusão do agente anterior (RF 1), apenas se a geolocalização estiver ativada.
- Tipo do input: Este agente deve ser apto a receber o objeto JSON de métricas do agente anterior, acompanhado do dataset original contendo dados de geolocalização.
-
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 até 50.000 caracteres.
2.3.3 Especificação do Output
- Formato de output: O output deve ser um arquivo no formato GeoJSON contendo as camadas de hotspots de embarque e fluxos OD.
-
Exemplo de Estrutura de Output:
{ "hotspots_embarque": {"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "Point", "coordinates": [-43.2, -22.9]}, "properties": {"taps": 120, "hora": 8}}]}, "fluxos_od": {"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "LineString", "coordinates": [[-43.2, -22.9], [-43.3, -22.95]]}, "properties": {"viagens": 85}}]}, "metadados": {"grid": "hex_500m", "privacidade_k_min": 8, "periodo": {"inicio": "YYYY-MM-DD", "fim": "YYYY-MM-DD"}} } - Número de caracteres esperado: O GeoJSON gerado deve ter um tamanho estimado em torno de 6.000 caracteres.
2.3.4 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
2.3.5 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.
2.3.6 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 Síntese e Recomendações de Otimização do Serviço (RF 3).
2.3.7 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Síntese e Recomendações de Otimização do Serviço (RF 3).
RF 3. Agente de Síntese e Recomendações de Otimização do Serviço
3.1 Tarefa do Agente
Converter métricas e camadas espaciais em relatório executivo conciso com insights acionáveis e recomendações priorizadas para otimização do serviço de transporte.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um objeto JSON com métricas e, opcionalmente, camadas GeoJSON de demanda. # 2. Objetivo Gerar um relatório executivo com insights e recomendações de otimização do serviço. # 3. Regras que você deve seguir para gerar sua resposta - Baseie-se nas métricas e camadas para formular recomendações. - Estruture o relatório em seções claras e concisas. - Destaque pelo menos 2 quick wins (alto impacto, baixo esforço). # 4. Exemplo de Output que você deve produzir # Relatório de Uso e Consumo de Vale-Transporte\n\n## Sumário Executivo\n- Período analisado: YYYY-MM-DD a YYYY-MM-DD\n- Principais KPIs: ...\n\n## Padrões de Consumo\n- Por hora do dia: ...\n- Por dia da semana: ...\n- Por rotas e paradas: ...\n\n## Transferências e Integração\n- Taxa de transferência: ...\n- Janela aplicada: ...\n\n## Anomalias e Riscos\n- Retaps de curto intervalo: ...\n- Velocidades impossíveis: ...\n\n## Oportunidades\n- Inatividade de cartões: ...\n- Quebra potencial de saldo (proxy): ...\n\n## Evidências Espaciais (quando disponível)\n- Hotspots de embarque: ...\n- Fluxos OD: ...\n\n## Recomendações Priorizadas (Impacto x Esforço)\n1. [Título] — Impacto: Alto | Esforço: Baixo — Métrica-alvo: ... — Justificativa: ...\n2. ...\n\n## Próximos Passos\n- Testes A/B e pilotos: ...\n- Métricas de sucesso: ...
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 um objeto JSON com métricas e, opcionalmente, camadas GeoJSON.
-
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 até 60.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um relatório em formato Markdown, estruturado com seções claras e concisas, contendo insights e recomendações baseadas nas métricas e camadas recebidas.
-
Exemplo de Estrutura de Output:
# Relatório de Uso e Consumo de Vale-Transporte\n\n## Sumário Executivo\n- Período analisado: YYYY-MM-DD a YYYY-MM-DD\n- Principais KPIs: ...\n\n## Padrões de Consumo\n- Por hora do dia: ...\n- Por dia da semana: ...\n- Por rotas e paradas: ...\n\n## Transferências e Integração\n- Taxa de transferência: ...\n- Janela aplicada: ...\n\n## Anomalias e Riscos\n- Retaps de curto intervalo: ...\n- Velocidades impossíveis: ...\n\n## Oportunidades\n- Inatividade de cartões: ...\n- Quebra potencial de saldo (proxy): ...\n\n## Evidências Espaciais (quando disponível)\n- Hotspots de embarque: ...\n- Fluxos OD: ...\n\n## Recomendações Priorizadas (Impacto x Esforço)\n1. [Título] — Impacto: Alto | Esforço: Baixo — Métrica-alvo: ... — Justificativa: ...\n2. ...\n\n## Próximos Passos\n- Testes A/B e pilotos: ...\n- Métricas de sucesso: ...
- Número de caracteres esperado: O relatório 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 é 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.