Acelerar o modelo não é a única resposta para latência em agentes de voz em tempo real. O harness cascateado faz o oposto: aceita um modelo inteligente e lento, e distribui o trabalho de esconder a espera entre transcrição, raciocínio e síntese.
O que é um agente de voz em tempo real com harness cascateado?
Um agente de voz em tempo real é um sistema que ouve, decide e responde falando durante a ligação. No harness cascateado, três estágios separados fazem esse trabalho: transcrição, modelo de linguagem e síntese de fala.
Bohan Li, que trabalha no harness de voz da EliseAI, apresentou essa arquitetura na conferência AI Engineer em setembro de 2026. A ideia central é otimizar cada estágio de forma independente, sem trocar o modelo de raciocínio por uma versão menor e menos capaz.
O resultado prático é uma conversa que parece rápida mesmo quando o modelo por trás dela leva centenas de milissegundos para gerar texto. O truque não está em acelerar o modelo, e sim em esconder a espera.
Vale distinguir as duas famílias de arquitetura que dividem o campo hoje. Uma é o modelo de fala ponta a ponta, que recebe áudio e devolve áudio dentro de uma única rede. A outra é o harness cascateado, em que cada etapa é um componente separado que você pode medir, trocar e ajustar sozinho. A palestra de Bohan Li defende a segunda opção quando a prioridade é manter um modelo de fronteira no centro da conversa.
As três camadas do agente de voz em tempo real
Bohan Li compara o harness de voz a um carro autônomo, comparação que vem da trajetória dele no setor de veículos autônomos. Cada camada tem uma função clara e um conjunto próprio de métricas de otimização.
| Camada | No carro autônomo | No agente de voz | O que otimiza |
|---|---|---|---|
| Percepção | Câmera, lidar, caixas delimitadoras | Transcrição da fala | Latência e precisão do texto |
| Planejamento | Decisão de trajetória | Modelo de linguagem | Qualidade da resposta |
| Controle | Direção e acelerador | Síntese de fala | Velocidade do primeiro áudio |
A analogia importa porque separa responsabilidades. Quando algo falha na ligação, você sabe em qual estágio procurar: na percepção, no planejamento ou no controle. Também ajuda a decidir onde investir esforço. Melhorar a transcrição não vai consertar uma resposta ruim do modelo, e trocar o modelo de linguagem não resolve um áudio que só começa a tocar depois de dois segundos.
Transcrição especulativa em streaming: dois motores ao mesmo tempo
A camada de percepção usa dois transcritores em paralelo. Um modelo rápido emite texto imediatamente; um segundo modelo, mais lento e com mais contexto, corrige quando necessário. Na demonstração, o par é o Flux como transcritor de streaming e o Scribe V2 como transcritor preciso. Essa é uma implementação descrita pela EliseAI, não um recurso padrão do setor.
Um detalhe decisivo do desenho: a correção tardia é descartada se áudio mais novo já chegou. Mais contexto recente vence o texto antigo, mesmo que o antigo seja mais preciso.
O transcritor lento recebe também a pergunta que o agente fez. Sabendo que perguntou nome e data de nascimento, ele usa esse contexto para decidir qual trecho da fala é um nome e qual é uma data. Isso melhora a correção sem exigir um modelo maior.
No exemplo da palestra, a primeira detecção sai imediatamente pelo transcritor rápido. A camada corretiva não dispara, porque o texto confere. Mais texto chega, nova detecção surge e a correção anterior é cancelada: chegou áudio mais recente. Só depois o Scribe V2 entende que a fala traz um nome e uma data de nascimento e entrega o texto corrigido ao agente.
O custo dessa escolha é claro: você mantém dois motores de transcrição rodando ao mesmo tempo, com o gasto de computação que isso implica, para ganhar o direito de corrigir sem travar a conversa.
Tool calling em segundo plano: como o agente de voz evita idas e voltas
Cada ida e volta até o modelo de linguagem custa tempo em uma ligação. O harness reduz esse número com um agente de segundo plano que faz as chamadas de ferramenta e devolve o resultado ao contexto do agente principal.
O agente principal então age como se tivesse feito a chamada sozinho. É uma economia de latência, não uma mudança de capacidade do modelo.
Enquanto o usuário fala, o harness dispara gerações antecipadas. Se a fala ainda não terminou, essas gerações são canceladas. Só quando o resultado da ferramenta chega é que a resposta é emitida de verdade.
O caso do nome ilustra bem o mecanismo. O agente pergunta o nome e a data de nascimento, o usuário responde "Elise Trial" com uma data de nascimento, e a transcrição não bate com nada reconhecível. Enquanto isso, o agente de segundo plano procura o nome na fala e aplica correspondência fonética para corrigir erros de transcrição. A geração antecipada feita sem o resultado da ferramenta é cancelada no instante em que o dado verdadeiro chega. O agente então responde com a informação certa, sem ter esperado por uma chamada síncrona.
Duas regras práticas saem daí. Primeiro: só vale disparar uma geração antecipada se você tiver como cancelá-la barato. Segundo: a ferramenta precisa ser idempotente, porque o agente de segundo plano pode consultar o mesmo dado mais de uma vez durante a mesma fala.
Cache de prefixo e síntese de fala: escondendo a latência
A camada de síntese usa um cache de prefixo que observa o fluxo de texto do agente e verifica se já existe áudio gravado para aquela sequência de palavras de um turno anterior. Aberturas de conversa se repetem muito, então o cache acerta com frequência.
O cache espera três palavras antes da primeira tentativa de acerto, para não disparar em cada palavra isolada. Quando as palavras ficam únicas, o cache erra e o resto da frase vai para o provedor de síntese.
O provedor recebe a frase inteira e gera áudio com prosódia natural. O harness já tocou a parte cacheada, então suprime o áudio sobreposto e reproduz apenas o restante. Duas metades se juntam sem emenda perceptível.
O exemplo da palestra mostra por que o ponto de erro é previsível. Frases como "você disse que seu nome é" aparecem em quase toda ligação e acertam o cache. O nome em si nunca se repete, então é exatamente ali que o cache erra e a requisição ao provedor de síntese começa. O provedor não sabe que existe um cache antes dele: recebe a frase inteira e devolve o áudio completo. O harness descarta a parte que já tocou e emenda o resto, o que pode deixar um microcorte que o ouvinte raramente percebe.
A palestra do AI Engineer está publicada no YouTube e serve como referência para quem quiser ouvir o encaixe do áudio.
Por que a inteligência do modelo continua intacta
O objetivo declarado do harness é manter um modelo de fronteira no centro da conversa. A latência é tratada nos estágios ao redor, não na qualidade do raciocínio.
Arquiteturas alternativas de voz unificam áudio e texto em um único modelo. A escolha cascateada aceita pagar latência de rede em troca de controle sobre cada etapa.
Você troca simplicidade por controle. Um pipeline de três estágios tem mais pontos de falha, mais telemetria e mais peças móveis do que um modelo de fala ponta a ponta.
O trade-off aparece em três frentes. Em custo, cada estágio é um serviço cobrado à parte. Em depuração, você precisa correlacionar logs de transcrição, raciocínio e síntese para achar a origem de um atraso. Em evolução, cada melhoria de fornecedor exige reintegrar e testar a linha do tempo do áudio. Em troca, você mantém a liberdade de usar qualquer modelo de linguagem novo que apareça, sem esperar que um fornecedor lance um modelo de fala ponta a ponta à altura.
Passo a passo para montar um harness cascateado
Se você quer reproduzir esse desenho, a ordem importa mais do que a escolha de fornecedor.
- Separe percepção, planejamento e controle em serviços independentes, cada um com sua própria métrica de latência.
- Meça primeiro o tempo até o primeiro áudio, não o tempo total da resposta. É essa a métrica que o usuário percebe.
- Ligue dois transcritores em paralelo e defina a regra de descarte: áudio mais recente sempre vence a correção antiga.
- Passe a pergunta do agente para o transcritor lento, para que ele saiba o que está procurando na fala.
- Mova as chamadas de ferramenta para um agente de segundo plano e devolva o resultado ao contexto do agente principal.
- Ative geração antecipada a cada detecção e cancele quando a fala continuar ou quando o resultado da ferramenta chegar.
- Adicione o cache de prefixo na saída de síntese e só tente acerto depois de três palavras.
- Suprima no áudio do provedor o trecho já reproduzido pelo cache e emende o restante.
- Instrumente cada camada com telemetria própria, senão você não consegue atribuir o atraso a nenhum estágio.
Estudo de caso: uma ligação real de agendamento clínico
A demonstração apresentada na palestra é uma ligação para agendar uma ultrassonografia. A agente atende como Bo OBGYN e conduz toda a conversa: pergunta nome e data de nascimento, pergunta se é paciente nova, oferece um link por mensagem para enviar dados do plano de saúde e propõe horários.
O ponto alto é o pedido de soletrar o nome quando o agente suspeita de erro de transcrição. É um comportamento que só existe porque o harness expõe incerteza ao modelo, em vez de entregar texto já finalizado.
O trecho do agendamento mostra a conversa real. A agente oferece quinta-feira, 2 de julho, às 10h. O usuário pede um instante para checar a agenda, ela espera, e ele pergunta por algo na semana seguinte. A segunda oferta é uma ultrassonografia com a Dra. Avery Stone, na North Clinic, terça-feira, 7 de julho, às 14h ou às 15h. O usuário escolhe as 14h e a consulta é confirmada.
O chamado completo ilustra o que o harness entrega: uma conversa com pausas curtas e correções invisíveis. Nada na fala revela quantos modelos estavam rodando em segundo plano.
Quem constrói e onde aprender mais sobre harness de voz
A palestra foi apresentada por Bohan Li, que veio do setor de carros autônomos antes de trabalhar na EliseAI, empresa de software com sede em Nova York e com expansão no Bay Area. A comparação com percepção, planejamento e controle vem dessa trajetória. A EliseAI atua em habitação e saúde, dois setores em que uma ligação perdida custa caro.
Quem estuda arquitetura de software no Brasil encontra material parecido no trabalho de comunidades como a do Gustavo Dev Doido, que publica conteúdo sobre stacks modernas em seu canal no YouTube.
Para quem quer ir além do vídeo, vale estudar o ecossistema TypeScript aplicado a agentes. O Crazystack Typescript reúne trilhas e projetos práticos nessa direção, e o Bootcamp do Dev Doido cobre a construção de aplicações completas com esse stack.
Perguntas frequentes sobre agentes de voz em tempo real
O que é um agente de voz em tempo real?
É um sistema que escuta a fala do usuário, decide uma resposta com um modelo de linguagem e responde com áudio durante a ligação. Em harnesses cascateados, transcrição, raciocínio e síntese são estágios separados com otimizações próprias.
Por que usar uma arquitetura cascateada em vez de um modelo de fala ponta a ponta?
Porque ela permite manter um modelo de fronteira no centro da conversa e otimizar cada estágio de forma independente. O preço é mais latência de rede, mais peças móveis e mais telemetria para manter.
O que é transcrição especulativa em streaming?
É rodar dois transcritores ao mesmo tempo: um rápido, que emite texto na hora, e um mais lento, com mais contexto, que corrige depois. A correção é descartada quando chega áudio mais recente que ela.
Cache de prefixo deixa a resposta mais rápida ou só mais curta?
O ganho é de latência percebida. O cache não reduz o tempo de geração do modelo; ele antecipa a reprodução de trechos previsíveis, como aberturas de conversa, enquanto o restante da frase ainda está sendo gerado.
Por que o cache de prefixo espera três palavras antes de tentar um acerto?
Porque tentar acerto em cada palavra isolada geraria trabalho inútil. Depois de três palavras, a sequência já tem contexto suficiente para indicar se aquele trecho provavelmente apareceu em um turno anterior.
A transcrição especulativa pode piorar o resultado?
Pode, se implementada sem descarte. A regra do harness é jogar fora a correção tardia quando áudio mais recente já chegou, porque contexto recente vence o texto antigo mais preciso.
O agente de segundo plano altera o que o modelo principal decide?
Ele não muda o modelo principal, mas muda o contexto que ele recebe. O resultado da ferramenta entra no histórico, e o agente principal age como se tivesse feito a chamada.
Por que o agente pede para soletrar o nome?
Porque o harness expõe a incerteza da transcrição ao modelo, em vez de entregar texto já finalizado. Quando o nome não bate com nada reconhecível, o agente pede confirmação e o agente de segundo plano aplica correspondência fonética para corrigir.
Esse desenho exige um provedor específico de síntese?
Não, mas exige um provedor que aceite streaming e devolva áudio por frase inteira. A supressão do trecho já reproduzido depende do harness controlar a linha do tempo do áudio.
Qual é o maior risco ao montar um harness cascateado?
Perder a capacidade de atribuir o atraso a um estágio. Sem telemetria separada por camada, você não sabe se a demora vem da transcrição, do modelo de linguagem ou da síntese, e passa a otimizar no lugar errado.
Como transformar uma palestra técnica em artigo publicado
Você acabou de ver quanto detalhe técnico cabe em treze minutos de palestra. Transcrição, cache de prefixo, cancelamento de geração antecipada: cada decisão renderia um artigo próprio. O trabalho de transformar isso em texto legível costuma travar justamente aí.
Se você tem conhecimento, entrevistas, opiniões ou aulas gravadas em vídeos no YouTube, dá para reaproveitar esse material. Com o Skala Blog, você cola a URL do vídeo, gera a transcrição e produz um artigo a partir dela.
Esconder latência em um agente de voz é editar bem: mostrar a parte certa no momento certo e deixar o resto acontecer fora de cena. Se esse raciocínio está gravado em algum vídeo seu, o Skala Blog transforma a gravação em artigo publicado.
Fork this article
Start a new branch from the same video, shaped your way. You keep the credit; the original keeps the attribution.
A fork in another language is filed as a translation of this article, so the two pages point at each other. You can unlink it later from the editor.
0/240
You are creating
- Format
- For
- Language
- Source
- Your angle
You will be asked to sign in before it is generated.
Buy credits