Todos os case studies

06Detalhamento · handoff

Passar a conversa pra uma pessoa sem o cliente repetir nada

O agente sabe a hora de parar. O difícil é tudo depois: quem é avisado, o que essa pessoa vê, o que o cliente vê, e como o agente sabe que tem que ficar quieto e não falar por cima.

Em produçãoDavid RochaFaz parte do sistema ZapBeta
01

O problema

O agente sabe a hora de parar: um caso difícil, ou um cliente pedindo uma pessoa. Parar é fácil. O trabalho é tudo que vem depois — quem é avisado, o que essa pessoa vê quando chega, o que o cliente vê enquanto espera, e a parte que quase todo mundo esquece: o agente saber que não pode mais falar depois que alguém assumiu.

02

As restrições

  • 01Nunca derrubar a conversa. Handoff que perde contexto faz o cliente repetir tudo, e aí era melhor não ter handoff.
  • 02O humano chega com tudo na mão: histórico inteiro, o pedido em aberto e as ferramentas pra responder.
  • 03O agente silencia na deixa. Duas vozes respondendo a mesma pessoa é a coisa mais grotesca que pode acontecer num atendimento, e não acontece.
  • 04Credencial é permissão, não intenção. Ter direito de entrar na conversa não faz de você quem deve responder.
03

A arquitetura

  1. agente detecta o limite

    um caso difícil, ou um pedido explícito por uma pessoa

  2. card + aviso

    cria um card e chama o humano no próprio canal, com contexto

  3. humano assume

    copiloto: o telefone é a credencial — permissão, não intenção

  4. agente silencia

    mudo até o "resolver" devolver o controle

Tudo gira em torno de uma distinção que a primeira versão errou: um telefone cadastrado pra receber aviso é permissão pra entrar, não sinal de que aquela pessoa agora é quem fala. Confundir as duas coisas foi o que deixou a identidade de um humano avisado substituir o Especialista no meio da conversa, sem ninguém ter pedido.

04

A parte difícil

O bug mais feio do fluxo foi um Especialista que sumia. Um telefone guardado como alvo de notificação — alguém que só devia ser avisado — era lido como intenção: o sistema entendia que aquela pessoa estava respondendo, o Especialista silenciava e desaparecia do chat. O cliente ficava conversando com uma cadeira vazia.

A correção foi conceitual antes de virar código: separar credencial de ação em todo lugar. Estar na lista de aviso quer dizer que você pode assumir, nunca que assumiu; só um "assumir esta conversa" explícito troca quem fala. A mesma classe de bug estava nas automações: três lugares mandavam mensagem por fora da conversa, então o follow-up saía sem aparecer no chat que o humano estava olhando. Hoje todo envio automático passa por uma função só, que escreve no chat antes de mandar.

05

Trade-offs

  • Silenciar o agente no instante em que o humano entra abre uma brecha curta, se ele demorar a digitar. Prefiro dois segundos de silêncio a duas vozes se contradizendo.
  • Mandar o contexto inteiro faz o humano ver mais do que às vezes precisa. Sobrar informação é melhor do que faltar: ele passa o olho e acha.
  • Rotear aviso por telefone é simples e é o que as pessoas já têm. Mas foi isso que me obrigou a deixar a diferença entre credencial e intenção explícita no código.
06

O que eu faria diferente

Eu faria de "quem está falando" um estado único e explícito, com um dono por vez, em vez de deixar isso ser inferido de alvo de aviso e origem de mensagem. Quase todo bug de handoff era o mesmo bug de roupa diferente: o sistema discordando de si mesmo sobre quem tinha a palavra. Uma resposta só, autoritativa, teria evitado todos.

Vamos conversar

Estou aberto a trabalhos remotos construindo com LLMs: agentes, avaliação, ferramental e o produto inteiro em volta disso. Ficarei feliz em mostrar muito mais numa call. Pode chamar.

Disponível para posições remotas, trabalhando do Brasil.Fuso: UTC−3 (Brazil)