9.6 KiB
| description |
|---|
| padrao jasmine docs |
Guia de pensamento para alinhar Jasmine + Daniela Reservas
Sempre que precisar revisar ou ajustar o fluxo de reservas, siga este checklist mental. Ele garante que toda intervenção esteja alinhada com o objetivo macro que você descreveu (contato cordial → ativar Daniela → coleta completa → cálculo do valor por dia → Pix de 50% → confirmação final).
-
Entenda o contexto final do usuário
- O cliente entra com um “bom dia”, “posso reservar?” ou similar.
- O objetivo é caminhar até uma reserva confirmada com Pix: sem desvios, sem repetição de perguntas.
- Qualquer erro deve ser interpretado à luz desse fluxo (não como uma exceção isolada).
-
Priorize o fluxo estruturado, não atalhos “temáticos”
- Jasmine deve sempre responder com cordialidade inicial e detectar quando acionar Daniela.
- Toda ação de reserva (dados do cliente, suíte, data, valor) deve ser comandada por Daniela, informando o cliente do próximo passo.
- Evite fallback direto do Brain para respostas livres quando o fluxo já está em andamento.
-
Mantenha estado consistente durante todo o fluxo
- O cenário ativo precisa persistir na conversa:
active_scenario_key,expires_at,active_scenario_state. - O
stateguarda stage, dados coletados (CPF, suíte, data) e resultados de ferramentas (availability, pix). - Em cada turno, atualize esse estado e só encerre quando o Pix for gerado ou o cliente disser “cancelar/obrigado”.
- O cenário ativo precisa persistir na conversa:
-
Ferramentas obedecem ao roteiro
check_availabilitydetermina o valor correto conforme a data e o dia da semana (verfica as tabelas).create_reservation_intentguarda os dados coletados; jamais pula etapas.generate_pixdeve receber o valor calculado e aplicar exatamentevalor / 2quando solicitado (entrada 50%).- Se algum passo falhar, o sistema deve comunicar o erro (fallback adequado) e manter o cliente no fluxo, não encerrar com mensagens genéricas como “dificuldades técnicas”.
-
Fluxo conversacional esperado
- Jasmine responde com cordialidade e confirma a intenção.
- Daniela entra pedindo nome/CPF, suíte, data, horário.
- Daniela informa valor, explica “pode pagar 50% agora via Pix”.
- Daniela chama
generate_pix, envia o código, explica "copie e cole". - Após cliente avisar “paguei”, Daniela confirma a reserva e encerra o cenário.
- Se o cliente desistir ou pedir humano, encerre/limpe sticky e deixe Lucia (Jasmine) responder com fallback apropriado.
-
Logs e documentação
- Sempre que alterar algo, registre nas instruções/prompt das agents (ex: prompt da Daniela deve explicitar o roteiro).
- Se necessário fazer mudanças pontuais, vincule essas mudanças ao fluxo (não apenas "ajustar o Pix").
- Use este documento como ponto de referência antes de testar: se você “esquecer”, leia e repita mentalmente o que o Rodrigo quer.
Se precisar de ajuda para transformar isso em tarefas técnicas (migrations, short-circuit, state), é só avisar.
Documento de referência ampliado (fluxo reserva + Pix)
1. Objetivo “padrão-ouro”
O sistema deve rodar este fluxo previsível para cada pedido de reserva:
- Cliente cumprimenta → Jasmine responde educadamente.
- Cliente manifesta “quero reservar” → Jasmine delega para Daniela.
- Daniela conduz todo o plano: coleta dados, chama ferramentas (precio/disponibilidade/pix), monta a próxima mensagem.
- Jasmine publica o texto final no tom oficial (voz única para o cliente).
- Coleta obrigatória concentrada na Daniela: nome completo, CPF, suíte, data, horário/período.
- Daniela confirma: “Sua reserva ficou assim… total R$T. Posso gerar o Pix (50%)?”
- Cliente confirma → Daniela gera Pix de metade do total e instrui “copie e cole no seu banco”.
- Após o cliente avisar “paguei”, Daniela confirma o pagamento e informa que a reserva está confirmada.
Sucesso significa que a reserva segue esse roteiro, com Pix gerado/confirmado e sem decisões aleatórias.
2. Papéis e responsabilidades
- Jasmine (“interface única”): cumprimenta, decide se deve delegar, publica as respostas da Daniela e mantém o tom padrão. Nunca responde diretamente sobre reservas, preços ou Pix — sempre delega ao subagente adequado.
- Daniela (“motor transacional”): permanece na camada interna. Recebe contexto, coleta dados, valida, chama
check_availability,create_reservation_intent,generate_pix, constrói omensagem_para_clientee retorna também oestado_atualizadoe as ações requisitadas.
3. Regras de comportamento
- Tom educado e uniforme mesmo quando a resposta vem da Daniela.
- Não inventar preços ou disponibilidade: os valores derivam exclusivamente de
check_availabilitye do histórico fornecido. - Sempre perguntar “posso gerar o Pix?” antes de chamar
generate_pix. - Não sair do fluxo: enquanto o sticky scenario estiver ativo, o Brain não deve responder com mensagens independentes ou fallback.
4. Arquitetura mínima para consistência
A) Sticky “modo reserva” – Conversa persiste: active_scenario_key, active_scenario_expires_at, active_scenario_state. Uma vez ativado por Daniela, todas as próximas mensagens vão direto para ela até conclusão/cancelamento.
B) Estado mínimo persistido – active_scenario_state deve conter:
stage(p.ex. collecting_data, quoting, waiting_payment)collected(nome, CPF, suíte, data, horário)last_quote(preço, disponibilidade, dia/turno)pix_status(pending/paid/confirmed) Isso evita perda de memória entre turnos e mantém o fluxo determinístico.
5. Tratamento de erros (visão macro)
Quando surgir um erro (resposta desalinhada, ferramenta falhando, handoff disparado), trace o contexto:
- Qual stage estava ativo?
- Jasmine desviou e respondeu sozinha?
- Daniela repetiu perguntas ou perdeu dados?
- Qual tool falhou ou retornou inválido? Corrija sempre com base nesse fluxo padrão — não apenas “ajuste a frase”, mas reforce o sticky/state/sequence.
6. Como trabalhamos na prática
Sempre que você me mostrar um erro, envie:
- Mensagem do cliente.
- Resposta publicada pela Jasmine.
- Trecho do log relevante (20–60 linhas) indicando decisão/tool.
Com isso eu devolvo:
- Onde travar o sticky/state.
- Qual prompt deve ser ajustado.
- Qual ferramenta/filtro precisa validar o valor ou o Pix.
7. Regra mestre
“Daniela é o cérebro do fluxo transacional e retorna o texto pronto; Jasmine é a única voz que publica para o cliente no tom oficial. O sistema deve manter estado e sticky para que o fluxo seja determinístico.”
🎯 Simulação de atendimento ideal – experiência perfeita de reserva
Cliente:
Boa noite
Jasmine:
Boa noite! 😊
Seja bem-vindo. Como posso te ajudar hoje?
Cliente:
Gostaria de fazer uma reserva
Jasmine:
Perfeito! Vou te ajudar com isso 😊
Para darmos continuidade à sua reserva, poderia me informar, por favor, seu nome completo e CPF?
Cliente:
João Pedro da Silva, CPF 123.456.789-00
Jasmine:
Obrigada, João 😊
Agora me diga, por favor: qual suíte você deseja reservar?
Cliente:
Suíte Luxo
Jasmine:
Ótima escolha! ✨
Para qual data e horário/período você gostaria da reserva?
Cliente:
Dia 20/02, das 22h às 10h
Jasmine:
Perfeito! Só um instante que vou verificar a disponibilidade e os valores para você 😊
(internamente: Daniela consulta disponibilidade e preço)
Jasmine:
Prontinho! 😊
Sua reserva ficou assim:
• Suíte: Luxo
• Data: 20/02
• Horário: das 22h às 10h
• Valor total: R$ 300,00
Para confirmar a reserva, é necessário o pagamento de 50% (R$ 150,00).
Posso gerar o Pix para você agora?
Cliente:
Pode sim
Jasmine:
Perfeito 😊
Segue abaixo o Pix para pagamento da entrada:
💰 Valor: R$ 150,00
📌 Chave Pix: 123e4567-e89b-12d3-a456-426614174000
👉 Basta copiar a chave Pix, colar no aplicativo do seu banco e realizar o pagamento.
Assim que pagar, me avise por aqui para que eu confirme sua reserva, tudo bem?
Cliente:
Pronto, acabei de pagar
Jasmine:
Só um instante que vou confirmar o pagamento para você 😊
(internamente: Daniela confirma pagamento)
Jasmine:
Pagamento confirmado com sucesso! ✅
Sua reserva está confirmada 🎉
Resumo final:
• Suíte: Luxo
• Data: 20/02
• Horário: das 22h às 10h
• Entrada paga: R$ 150,00
Qualquer dúvida ou se precisar de algo mais, é só me chamar.
Será um prazer te receber! 😊✨
🔑 Por que essa experiência é boa
- Linguagem humana e educada
- Um pedido por vez (sem sobrecarregar)
- Confirmação clara antes da cobrança
- Segurança no Pix
- Encerramento com sensação de sucesso
Se quiser, nos próximos passos posso:
- marcar onde entra cada stage,
- transformar isso em script técnico para os prompts da Daniela/Jasmine, ou
- criar a versão “anti-confusão” (quando o cliente muda de assunto ou responde errado).
💬 Instrução extra: Pix Copia e Cola completo
Quando o GeneratePixTool retornar o código, garanta que o bloco de código contenha a string inteira, iniciando em 0002010... e terminando no checksum ...6304XXXX. Esse é o valor que o cliente precisa colar no banco; qualquer corte causa “Pix inválido”. Copie exatamente o raw_payload do tool (ou o formatted_message caso já contenha a string completa) e anexe no bloco antes de enviar. Nada deve ser truncado ou substituído pela Jasmine depois de a mensagem sair.