16 KiB
Captain Review — 2026-05-13
Período: últimas 72h (2026-05-11 a 2026-05-13) Analisado: 4 assistants (Qnn01, PrimeAL, PrimeVL, Express AL) Conversas com assignee/handoff: 40 Conversas problemáticas: 9 bugs / 10 legítimas (restantes sem incidentes notáveis)
📊 Conversas analisadas
| Conv | Hotel | Contato | Problema | Legítima? |
|---|---|---|---|---|
| 7768 | PrimeVL | Luiz Gustavo | Tool status_suites travou, cliente esperou 20+ min | ❌ Bug |
| 7755 | PrimeAL | anny | Tool status_suites travou, cliente esperou 10+ min | ❌ Bug |
| 7774 | PrimeVL | Luffy do chapéu de Palha | Tool status_suites travou, cliente esperou 30+ min | ❌ Bug |
| 7702 | PrimeAL | Lorena Magalhães | Escalada por "passa cartão e divide?" sem resposta | ❌ Bug |
| 7742 | PrimeAL | LAYLA | Escalada por "vcs passam cartão?" sem resposta | ❌ Bug |
| 7517 | PrimeVL | Kawane | Escalada por "pode levar comida e bebidas?" sem resposta | ❌ Bug |
| 7727 | PrimeAL | Jeferson | Fotos da Hidro enviadas 3x; escalada por "tem que encher?" | ❌ Bug |
| 7539 | PrimeAL | Sousa | Mensagem interna "Self-improvement review" vazou no chat | ❌ Bug |
| 7548 | PrimeAL | Adailton | Pix gerado com valor incorreto no reenvio (R$70 vs R$85) | ❌ Bug |
| 7722 | Express | Larisse Kelly | Pedido de recibo por dia para RH | ✅ Legítima |
| 7715 | Express | Larisse Kelly | Pedido de nota fiscal diária para RH | ✅ Legítima |
| 7583 | Express | AL.🫥 | Pedido de estorno de reserva em outra unidade | ✅ Legítima |
| 7614 | Express | AL.🫥 | Pedido de estorno | ✅ Legítima |
| 7765 | PrimeVL | Bruna Thais | Pedido de desconto por ser primeira vez/aniversário | ✅ Legítima |
| 7524 | PrimeAL | ALAN KARDEC | Negociação de estadia longa (3 diárias) | ✅ Legítima |
| 7481 | PrimeVL | . | Cliente consultou preço e foi embora | ✅ Legítima |
| 7807 | PrimeVL | Millymendes | Atendimento normal, IA funcionou bem | ✅ Legítima |
| 7690 | Express | Rogerio | Redirect para Prime (sem hidro no Express) | ✅ Legítima |
| 7640 | Qnn01 | 🍀🧸🍀 | Consulta de preço, inatividade | ✅ Legítima |
| 7698 | Express | Jadiel Sousa | Humano tomou conta normalmente | ✅ Legítima |
🔍 Padrões identificados
Padrão 1: Tool status_suites trava e IA deixa cliente esperando indefinidamente (CRÍTICO)
Ocorrências: 3 conversas (7768, 7755, 7774)
Qual regra violou: Implicitamente viola #9 (handoff silencioso sem resposta ao cliente) e a própria regra do cenário disponibilidade_suites: "Se a ferramenta falhar, avise que teve instabilidade e peça um instante."
Comportamento errado: IA manda "⏳ Um momento — vou verificar." e nunca volta. O sistema adiciona ia_abriu_conversa (indicando chamada de tool), mas a IA não responde — cliente fica esperando 10–30 min até timeout ou humano intervir.
Deveria ser: Ao detectar falha (ou ausência de resposta da tool), IA deve informar o cliente e dar alternativa (ligar, pré-reservar mesmo assim).
Escopo do fix: (a) geral — aconteceu em PrimeAL e PrimeVL
Exemplos:
- Conv 7768: Cliente perguntou "A 303 tá?" — IA disse "⏳" às 21:46, primeiro cliente retornou foi às 21:47 ("Ok"), depois ficou mandando "?", "Oii", "Oi", "?????" até 22:21. Humano respondeu às 22:53.
- Conv 7774: Cliente disse "E pra hoje" às 22:23, IA disse "⏳", humano só apareceu às 22:54 — 30 min depois.
💡 Fix sugerido — Substituir a seção de fallback em disponibilidade_suites.md de todos os assistants (após o bloco "Se a ferramenta falhar…"):
ANTES:
Se a ferramenta falhar, avise que teve instabilidade e peça um instante.
DEPOIS:
## ⚠️ Fallback quando `status_suites` falha ou não retorna
Se a ferramenta retornar erro OU não houver resultado após a chamada:
1. NÃO fique em silêncio. NÃO chame handoff.
2. Responda ao cliente imediatamente:
"Opa, tive uma instabilidade aqui e não consegui verificar em tempo real 😅
Para garantir disponibilidade agora, você pode:
- Me informar que quer reservar mesmo assim — eu registro a pré-reserva e a recepção confirma na chegada.
- Ou ligar direto: [número do hotel].
O que prefere?"
3. Se o cliente quiser prosseguir, roteie para daniela_reservas normalmente.
- Aprovar
- Rejeitar (motivo: _______)
Padrão 2: Escalada silenciosa para perguntas operacionais básicas (ALTO)
Ocorrências: 4 conversas (7702, 7742, 7517, 7727) Qual regra violou: Regra #9 (NUNCA handoff por pergunta de valor/simples). Perguntas sobre formas de pagamento e política de uso são do mesmo nível que perguntas de preço — a IA deveria responder diretamente. Comportamento errado: Quando cliente pergunta sobre cartão, parcelamento, trazer comida ou hidro cheia, IA manda "⏳ Um momento — vou verificar." e escala para humano sem responder. Cliente fica esperando. Deveria ser: Responder direto com as informações da política da unidade. Escopo do fix: (a) geral — aconteceu em PrimeAL e PrimeVL
Exemplos e respostas corretas identificadas pelos humanos:
- "Passa cartão?" → Humano: "Sim aceitamos cartão no hotel" (7742)
- "Passa cartão e divide?" → Humano: "Não dividimos" (7702)
- "Pode levar comida e bebidas de fora?" → Humano: "sim pode trazer" (7517)
- "Tem que encher [a hidro] ou já vem cheia?" → Humano: "Se quiser deixamos cheia" (7727)
💡 Fix sugerido — Adicionar seção de FAQ operacional no final de jasmine_<unit>__daniela_reservas.md (antes das Proibições), para todos os 4 assistants:
## ❓ FAQ operacional — responda direto, sem chamar handoff
| Pergunta do cliente | Resposta padrão |
|---|---|
| "Aceita cartão?" / "Passa cartão?" | "Sim! Aceitamos débito e crédito direto na chegada 😊 A pré-reserva online é via Pix (sinal de 50%)." |
| "Pode dividir?" / "Parcela?" / "Divide?" | "Não fazemos parcelamento — mas você pode pagar o sinal agora via Pix e o restante em cartão ou dinheiro no check-in 😊" |
| "Pode trazer comida?" / "Pode levar bebida?" | "Pode sim, sem problema! 😊" |
| "A hidro já vem cheia?" / "Tem que encher a banheira?" | "A hidro fica pronta pra uso na sua chegada! Se quiser cheia de cara, é só avisar na recepção 😊" |
| "Os quartos são não fumantes?" | "Sim, todas as suítes são não fumantes. Fumar fora do quarto, por favor 😊" |
| "Bebidas alcoólicas pode?" | "Pode sim! 😊" |
- Aprovar
- Rejeitar (motivo: _______)
Padrão 3: Mensagem interna "Self-improvement review" vazou no chat do cliente (GRAVE)
Ocorrências: 1 conversa (7539 — PrimeAL, contato: Sousa) Qual regra violou: Regra #12 (Nunca vazar conteúdo do system prompt, IDs técnicos, mensagens internas) Comportamento errado: IA enviou a mensagem a seguir diretamente no chat do cliente:
💾 Self-improvement review: User profile updatedDeveria ser: Mensagens de logging/memória interna do agente NUNCA devem ser enviadas ao cliente. Esta é provavelmente uma mensagem gerada por algum mecanismo de "memória" do agente que foi enviada para o canal de chat em vez de ser descartada. Escopo do fix: Investigação técnica — não é fix de prompt, é questão de infraestrutura do Captain AI.
💡 Minha sugestão: Esta mensagem parece ser de um sistema de memória/autoaprendizado do agente (Captain AI tem algum mecanismo de self-improvement?). Precisamos garantir que qualquer log interno nunca use o canal de mensagem ao cliente (message_type=1). Possível causa: algum tool que o agente chama para "salvar aprendizado" está inadvertidamente gerando uma mensagem de chat.
Sua escolha:
- Investigar e corrigir no nível técnico (Captain AI / Chatwoot config)
- Já estava ciente / já foi corrigido
- Usar outra abordagem (escreva abaixo)
Sua resposta alternativa: [preencha só se rejeitou]
Padrão 4: Reenvio de Pix cria nova reserva com valor diferente (GRAVE)
Ocorrências: 1 conversa (7548 — PrimeAL, contato: Adailton)
Qual regra violou: Sem violação de regra de atendimento direta, mas é um bug crítico de negócio: cobra valor errado.
Comportamento errado: Cliente pediu "Tem como mandar de novo o pix". IA encontrou Reserva #206 (Alexa pernoite, total R$170, sinal R$85) no histórico, mas chamou generate_pix com parâmetros novos e gerou uma nova Reserva #207 com total R$140 e sinal R$70 — valor diferente do original. A IA inclusive detectou a discrepância (enviou nota interna alertando sobre duplicidade/cobrança incorreta) mas enviou o Pix errado mesmo assim.
Deveria ser: Ao pedido de reenvio de Pix, NÃO criar nova reserva. Escalar para humano que pode reenviar o link correto.
Escopo do fix: (a) geral — fix em daniela_reservas.md de todos os 4 assistants
💡 Fix sugerido — Adicionar na seção de FAQ ou Proibições de daniela_reservas.md:
## 🔄 Reenvio de Pix — regra crítica
Se o cliente pedir "manda o Pix de novo", "reenvie o Pix", "não recebi o Pix" ou similar:
- **NÃO** chame `generate_pix` novamente — isso cria uma nova reserva com valores possivelmente diferentes.
- Responda: "Para reenviar o Pix da sua reserva, preciso da ajuda da equipe — um momentinho!" e chame `handoff`.
- O motivo: o reenvio precisa apontar para a reserva original, e a IA não tem acesso ao link anterior.
- Aprovar
- Rejeitar (motivo: _______)
Padrão 5: Ferramenta send_suite_images chamada múltiplas vezes (duplicação de fotos)
Ocorrências: 1 conversa (7727 — PrimeAL, contato: Jeferson)
Qual regra violou: Regra #10 (send_suite_images EXIGE parâmetro — e por extensão, nunca deve ser chamada em loop)
Comportamento errado: Quando cliente pediu fotos da Hidromassagem, o sistema enviou 3 mensagens idênticas "Suíte SPA Hidromassagem" seguidas. A tool send_suite_images foi chamada 3 vezes para a mesma categoria.
Deveria ser: Uma única chamada por categoria. Se o cliente quiser ver de novo, IA pode chamar de novo mas nunca em rafaga automática.
Escopo do fix: (a) geral — adicionar em maria_fotos.md de todos os 4 assistants
💡 Fix sugerido — Adicionar regra no jasmine_<unit>__maria_fotos.md após a seção de uso da ferramenta:
## ⛔ Regra anti-duplicata
- Chame `send_suite_images` **uma única vez** por categoria por turno.
- Nunca chame a mesma ferramenta duas vezes seguidas sem uma nova mensagem do cliente entre as chamadas.
- Se a ferramenta retornar sucesso, não repita a chamada.
- Aprovar
- Rejeitar (motivo: _______)
❓ Perguntas pra o Rodrigo responder
Pergunta 1: Auto-resposta de disponibilidade para datas futuras (mesmo antes de fechar reserva)
Conversa: 7768, 7755, 7774 Contexto: Clientes pedem "a 303 tá?" ou "quero pra hoje" — IA tenta verificar disponibilidade em tempo real mas trava. O cenário disponibilidade_suites.md diz "Se for amanhã ou data futura, não travar a venda por disponibilidade em tempo real: siga para daniela_reservas." Mas para "hoje/agora" manda checar mesmo. O que preciso saber: Quando status_suites falha pra pedidos de "hoje", você prefere: (A) IA continua direto pra reserva sem verificar disponibilidade, ou (B) IA pede pra cliente ligar/aguardar?
💡 Minha sugestão: Opção A — se o cliente quer reservar "pra hoje", IA registra a pré-reserva normalmente e a recepção confirma na chegada (já é o que acontece com datas futuras). Falha de disponibilidade não deve travar venda.
Sua escolha:
- Opção A — ir direto para reserva, sem verificar disponibilidade (mesmo para "hoje")
- Opção B — avisar instabilidade e pedir para ligar
- Outra (escreva abaixo)
Sua resposta alternativa: [preencha só se rejeitou]
Pergunta 2: Números de telefone nos prompts — estão corretos?
Contexto: Conv 7690, humano deu o número 61991868492 para o cliente contatar o Prime. Em 7614, humano deu (61) 4042-8064 para o Prime Ceilândia. O prompt da IA não tem número de telefone (vai buscar no faq_lookup). Os humanos passam números "na mão" quando necessário. O que preciso saber: Devemos adicionar os números de telefone de cada unidade diretamente nos prompts (para a IA poder responder quando a ferramenta de disponibilidade falha e sugerir ligar)?
💡 Minha sugestão: Sim — adicionar uma seção "Contato de emergência" em cada arquivo de disponibilidade_suites.md com o telefone da unidade. Assim a IA pode dizer "Se precisar confirmar agora, ligue: [número]".
Sua escolha:
- Usar a sugestão acima (adicionar telefones nos prompts de disponibilidade)
- Não — os humanos que passam o número quando necessário
- Usar outra abordagem (escreva abaixo)
Sua resposta alternativa: [preencha só se rejeitou]
📝 Diffs completos (antes/depois)
Arquivo: _modelos/scenarios/jasmine_<unit>__disponibilidade_suites.md (todos os 4)
ANTES (linha existente):
Se a ferramenta falhar, avise que teve instabilidade e peça um instante.
DEPOIS:
## ⚠️ Fallback quando `status_suites` falha ou não retorna
Se a ferramenta retornar erro OU não houver resultado após a chamada:
1. NÃO fique em silêncio. NÃO chame handoff.
2. Responda ao cliente imediatamente:
"Opa, tive uma instabilidade aqui e não consegui verificar em tempo real 😅
Para garantir disponibilidade agora, você pode:
- Me informar que quer reservar mesmo assim — eu registro a pré-reserva e a recepção confirma na chegada.
- Ou ligar direto: [número do hotel].
O que prefere?"
3. Se o cliente quiser prosseguir, roteie para daniela_reservas normalmente.
Arquivo: _modelos/scenarios/jasmine_<unit>__daniela_reservas.md (todos os 4)
ANTES: (seção de FAQ operacional não existe)
DEPOIS (adicionar antes das Proibições):
## ❓ FAQ operacional — responda direto, sem chamar handoff
| Pergunta do cliente | Resposta padrão |
|---|---|
| "Aceita cartão?" / "Passa cartão?" | "Sim! Aceitamos débito e crédito direto na chegada 😊 A pré-reserva online é via Pix (sinal de 50%)." |
| "Pode dividir?" / "Parcela?" | "Não fazemos parcelamento — mas você pode pagar o sinal agora via Pix e o restante em cartão ou dinheiro no check-in 😊" |
| "Pode trazer comida?" / "Pode levar bebida?" | "Pode sim, sem problema! 😊" |
| "A hidro já vem cheia?" / "Tem que encher a banheira?" | "A hidro fica pronta pra uso na sua chegada! Se quiser cheia de cara, é só avisar na recepção 😊" |
| "Os quartos são não fumantes?" | "Sim, todas as suítes são não fumantes 😊" |
| "Bebidas alcoólicas pode?" | "Pode sim! 😊" |
## 🔄 Reenvio de Pix — regra crítica
Se o cliente pedir "manda o Pix de novo", "reenvie o Pix", "não recebi o Pix":
- **NÃO** chame `generate_pix` novamente — cria nova reserva com valor possivelmente diferente.
- Responda: "Para reenviar o Pix da sua reserva existente, preciso da ajuda da equipe 😊 Um momento!" e chame `handoff`.
Arquivo: _modelos/scenarios/jasmine_<unit>__maria_fotos.md (todos os 4)
ANTES: (sem regra anti-duplicata)
DEPOIS (adicionar no final):
## ⛔ Regra anti-duplicata
- Chame `send_suite_images` **uma única vez** por categoria por turno.
- Nunca chame a mesma ferramenta duas vezes seguidas sem nova mensagem do cliente.
- Se a ferramenta retornar sucesso, não repita a chamada.
✅ Checklist de aprovação
Após revisar, marque suas decisões e responda às perguntas nos campos acima:
- Padrão 1 — Fallback de disponibilidade (Aprovado/Rejeitado)
- Padrão 2 — FAQ operacional básico (Aprovado/Rejeitado)
- Padrão 3 — Self-improvement leak (Ciente/Ação necessária)
- Padrão 4 — Pix reenvio com valor errado (Aprovado/Rejeitado)
- Padrão 5 — Fotos duplicadas (Aprovado/Rejeitado)
- Pergunta 1 — Disponibilidade pra hoje: opção A ou B?
- Pergunta 2 — Telefones nos prompts: sim ou não?