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 Agente de IA para Gestão de Empréstimos e Devoluções. 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 é automatizar o processo de empréstimo e devolução de livros, garantindo que os registros sejam atualizados em tempo real e que notificações automáticas sobre prazos de devolução e disponibilidade de livros reservados sejam enviadas aos usuários.
2. Contexto e Problema
Cenário Atual
Atualmente, o processo de gestão de empréstimos e devoluções de livros na biblioteca é manual e demorado, resultando em ineficiências e erros no controle de prazos e disponibilidade de livros.
- Processo manual e demorado de gestão de empréstimos e devoluções de livros na biblioteca.
- Necessidade de garantir a eficiência e a precisão no controle de prazos e disponibilidade de livros.
Problemas Identificados
- Consumo de tempo: O processo manual consome tempo valioso que poderia ser melhor aproveitado em outras atividades da biblioteca.
- Erros de registro: A atualização manual dos registros é propensa a erros, levando a inconsistências nos dados de disponibilidade de livros.
- Falta de notificações automáticas: Usuários não recebem lembretes automáticos sobre prazos de devolução, aumentando o risco de atrasos.
3. Impactos Esperados
A implementação deste agente de IA visa alcançar os seguintes resultados:
- Reduzir o tempo de processamento de empréstimos e devoluções em pelo menos 70%.
- Melhorar a precisão dos registros de disponibilidade de livros.
- Automatizar o envio de notificações para lembrar os usuários sobre prazos de devolução e disponibilidade de reservas.
4. Visão Geral da Solução
O agente de IA para gestão de empréstimos e devoluções automatiza o processo de empréstimo e devolução de livros, garantindo a atualização em tempo real dos registros e o envio de notificações automáticas. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue eficientemente na gestão de empréstimos e devoluções na biblioteca.
A solução consiste em um fluxo de automação composto por diversos agentes de IA. O processo inicia com a validação e orquestração dos empréstimos e termina com a execução de notificações para os usuários.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Validação e Orquestração de Empréstimo | Validar a elegibilidade do usuário e a disponibilidade do exemplar, calcular data de devolução, resolver filas de reserva e produzir payloads padronizados para atualização do sistema e envio de notificações. |
Agente de Execução de Chamada à API - Biblioteca (Empréstimo) | Realizar a chamada à API do Sistema de Biblioteca para registrar o empréstimo e atualizar status do exemplar e da fila de reservas (se aplicável). |
Agente de Preparação de Notificação de Empréstimo | Formatar mensagens e agendamentos de lembretes do empréstimo conforme preferências do usuário e políticas de aviso. |
Agente de Execução de Notificações (Empréstimo) | Executar o envio das notificações preparadas (email, SMS, push) e programar lembretes. |
Agente de Validação e Cálculo de Devolução | Validar a devolução, identificar atraso e multas conforme política, preparar payloads para atualização do sistema e notificações ao usuário. |
Agente de Execução de Chamada à API - Biblioteca (Devolução) | Realizar a chamada à API do Sistema de Biblioteca para registrar a devolução, liberar o exemplar e aplicar multas quando previsto. |
Agente de Preparação de Notificação de Devolução | Preparar mensagem ao usuário confirmando a devolução e informando eventual atraso e multa. |
Agente de Execução de Notificações (Devolução) | Enviar a notificação de devolução ao usuário. |
Agente de Preparação de Notificação de Disponibilidade de Reserva | Quando houver reserva pendente após devolução, preparar mensagem informando disponibilidade ao próximo da fila e prazo para retirada. |
Agente de Execução de Notificações (Reserva Disponível) | Enviar notificação ao próximo usuário da fila quando a reserva fica disponível. |
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 Validação e Orquestração de Empréstimo
1.1 Tarefa do Agente
Validar a elegibilidade do usuário e a disponibilidade do exemplar, calcular data de devolução, resolver filas de reserva e produzir payloads padronizados para atualização do sistema e envio de notificações.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados estruturados para validar a elegibilidade de um usuário para empréstimo de livro, incluindo informações sobre o usuário, livro e políticas da biblioteca.
# 2. Objetivo
Validar a elegibilidade do usuário, a disponibilidade do exemplar, calcular a data de devolução e resolver filas de reserva.
# 3. Regras que você deve seguir para gerar sua resposta
- Negar empréstimo se usuario.multa_em_aberto > 0 ou usuario.atrasos_abertos > 0; definir emprestimo_autorizado=false e motivo_bloqueio="pendencias".
- Negar se contagem de usuario.emprestimos_ativos >= politicas.limite_emprestimos_por_categoria[usuario.categoria]; motivo_bloqueio="limite_atingido".
- Verificar reserva: se livro.fila_reserva não vazia e primeiro da fila != usuario.id, negar com motivo_bloqueio="reserva_prioritaria" e prioridade_reserva_respeitada=false; se usuario.id for o primeiro, prioridade_reserva_respeitada=true.
- Verificar disponibilidade: se livro.exemplares_disponiveis < 1 e não há prioridade de reserva para o usuário, negar com motivo_bloqueio="sem_exemplar".
- Em caso autorizado, calcular data_prevista_devolucao = data_referencia + politicas.prazo_por_categoria_dias[usuario.categoria] (não ajustar fins de semana a menos que política traga exceção; se trouxer, role para o próximo dia útil). Saída no formato ISO YYYY-MM-DD.
- Preencher payload_api_atualizacao com operacao="registrar_emprestimo" e datas; nunca incluir campos nulos.
- Montar payload_notificacao.tipo="emprestimo_confirmado" com variáveis obrigatórias (nome_usuario, titulo_livro, data_prevista_devolucao) e lembretes em P-3d e P-1d relativos à data_prevista_devolucao.
- Definir usuario_posicao_fila conforme posição do usuário na fila (0 se não está na fila); se usuário for atendido por reserva, removê-lo logicamente da fila ao construir o payload (não executa remoção; apenas sinaliza via payload_api_atualizacao.extensoes = {"remover_reserva": true}). 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 estruturados 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: Dados estruturados contendo informações sobre o usuário, livro e políticas da biblioteca.
-
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.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo a validação do empréstimo e os payloads para atualização do sistema e notificações.
-
Exemplo de Estrutura de Output:
{ "emprestimo_autorizado": true|false, "motivo_bloqueio": "string|null", "data_prevista_devolucao": "YYYY-MM-DD|null", "prioridade_reserva_respeitada": true|false, "usuario_posicao_fila": 0|n|null, "payload_api_atualizacao": {"operacao": "registrar_emprestimo", "usuario_id": "string", "livro_id": "string", "data_emprestimo": "YYYY-MM-DD", "data_prevista_devolucao": "YYYY-MM-DD"}, "payload_notificacao": {"tipo": "emprestimo_confirmado", "destinatario_usuario_id": "string", "canal_preferencial": "email|sms|push", "variaveis": {"nome_usuario": "string", "titulo_livro": "string", "data_prevista_devolucao": "YYYY-MM-DD"}, "lembretes": [{"quando": "P-3d"}, {"quando": "P-1d"}] } } - Número de caracteres esperado: O JSON de output terá um tamanho aproximado de 2.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 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.