Três formas de construir chat em grupo com IA: Por que escolhemos o caminho difícil

Reverie Team

Reverie Team

12/9/2025

#engenharia#arquitetura de IA#chat em grupo#análise técnica profunda
Três formas de construir chat em grupo com IA: Por que escolhemos o caminho difícil

A pergunta que começou tudo

"Por que cada personagem não pode ter seu próprio balão de mensagem, como outros apps?"

Recebemos muito essa pergunta. E honestamente, é uma ótima pergunta. A maioria dos apps de chat mostra mensagens como balões separados - um por pessoa. Então por que nosso chat em grupo combina múltiplas respostas de personagens em uma única mensagem?

A resposta não é preguiça ou descuido. É uma escolha de engenharia deliberada nascida de meses de experimentação com três abordagens fundamentalmente diferentes para conversas em grupo com IA.

As três arquiteturas

Ao construir conversas de IA com múltiplos personagens, cada plataforma enfrenta a mesma decisão. Existem exatamente três formas de fazer isso, cada uma com implicações profundas para custo, qualidade e experiência do usuário.

1. Saída estruturada (Arrays JSON)

A abordagem mais comum na indústria. Você pede à IA para retornar um array JSON onde cada elemento representa a resposta de um personagem:

[
  {
    "speaker": "Sherlock",
    "emotion": "intrigado",
    "content": "Fascinante. O padrão da lama sugere..."
  },
  {
    "speaker": "Watson",
    "emotion": "confuso",
    "content": "Holmes, o que você quer dizer?"
  }
]

O apelo:

  • Uma chamada de API, um consumo de créditos
  • Fácil de parsear e renderizar como balões de mensagem separados
  • Pode incluir metadados ricos (emoções, ações, descrições de cena)
  • Perfeito para gerar sugestões de resposta do usuário

A realidade:

  • Apenas modelos premium caros (Claude, GPT-4) suportam saída estruturada de forma confiável - a maioria dos modelos acessíveis tem dificuldade com formatação JSON consistente
  • Erros de formato quebram toda a resposta
  • Instruções JSON consomem tokens, reduzindo espaço criativo
  • Modelos se sentem "restritos" - criatividade frequentemente sofre
  • Restrições de conteúdo se tornam mais rígidas: o modo de saída estruturada frequentemente aciona filtragem de conteúdo mais agressiva, tornando cenários de roleplay maduros ou ousados mais propensos a falhar
  • Poluição de contexto: seu histórico de conversa se enche de estruturas JSON
  • Complexidade de tratamento de erros: o que acontece quando o parsing falha no meio do streaming?

A maioria das plataformas de personagens de terceiros usa essa abordagem. Funciona, mas as restrições são reais.

2. Chamada de ferramentas (Modo Agente)

A abordagem mais "inteligente". A IA decide qual personagem deve falar a seguir, chama uma ferramenta para indicar isso, então gera a resposta daquele personagem. Repita até a cena estar completa.

IA pensa: "Watson deveria reagir a essa revelação"
→ chama ferramenta: next_speaker("Watson")
→ gera resposta do Watson
→ IA pensa: "Agora Sherlock interviria"
→ chama ferramenta: next_speaker("Sherlock")
→ gera resposta do Sherlock
...

O apelo:

  • Fluxo de conversa mais natural
  • IA tem controle criativo total sobre o ritmo da cena
  • Cada resposta de personagem obtém qualidade de geração dedicada
  • Naturalmente produz mensagens separadas por personagem

A realidade:

  • Múltiplas chamadas de API = múltiplas cobranças de créditos
  • Latência se acumula: N personagens = N viagens de ida e volta
  • Apenas modelos de ponta (Claude, GPT-4) lidam com chamadas de ferramentas de forma confiável - modelos mais baratos frequentemente falham ou alucinam chamadas de ferramentas
  • Gerenciamento de estado complexo entre chamadas
  • Risco de loops infinitos ou terminação inesperada
  • Pesadelos de debugging: problemas são difíceis de reproduzir

Esta é a "arquitetura dos sonhos" que parece linda no papel mas cria dores de cabeça operacionais em escala.

3. Saída de texto livre (Nossa escolha atual)

A abordagem mais simples. Peça à IA para escrever a cena naturalmente, deixando-a decidir como apresentar múltiplos personagens em prosa fluida:

Sherlock inclinou-se para frente, olhos aguçados. "Fascinante. O
padrão da lama sugere que nosso suspeito veio do lado leste."

Watson franziu a testa. "Holmes, o que você quer dizer? É só lama."

"Só lama?" Sherlock sorriu. "Meu caro Watson, não existe
tal coisa como 'só' qualquer coisa."

O apelo:

  • Funciona com todo modelo de IA, não requer recursos especiais
  • Máxima liberdade criativa - IA escreve naturalmente
  • Contexto limpo: histórico de conversa lê-se como um romance
  • Excelente experiência de streaming
  • Uma chamada, custos previsíveis
  • Mais simples de implementar e manter

A realidade:

  • Todos os personagens em um bloco de mensagem
  • Não é fácil regenerar a resposta de um único personagem
  • Flexibilidade de UI é limitada
  • Usuários esperando balões estilo chat podem ficar confusos

Aprendemos isso da maneira difícil

Aqui está algo que não compartilhamos publicamente antes: nossa primeira versão do chat em grupo usava chamada de ferramentas.

Acreditávamos na "arquitetura dos sonhos". IA decidindo quem fala a seguir, cada personagem obtendo geração dedicada, lindos balões de mensagem separados. Era elegante. Era inteligente. Também foi um desastre em produção.

Usuários experimentaram custos imprevisíveis - às vezes 3x o que esperavam para a mesma conversa. Tempos de resposta variavam drasticamente dependendo de quantos personagens a IA decidia envolver. Modelos mais baratos alucinavam chamadas de ferramentas ou ficavam presos em loops. Nossos logs de erro se encheram de casos extremos que nunca antecipamos.

Após meses de patches e workarounds, tomamos a difícil decisão de reconstruir do zero com saída de texto livre. Pareceu um passo para trás. Mas às vezes a solução "menos inteligente" é a escolha mais sábia.

Por que fizemos essa escolha

Após testar todas as três abordagens extensivamente - e enviar uma para produção - escolhemos saída de texto livre para chat em grupo. Eis o porquê:

Estabilidade sobre recursos - Saída estruturada falha imprevisivelmente. Quando seu chat em grupo quebra no meio da conversa, usuários não se importam mais com balões separados - eles só querem que funcione. Texto livre nunca falha devido a problemas de formato.

Qualidade sobre quantidade - Formatos restritos sutilmente reduzem a criatividade da IA. Quando comparamos as saídas, texto livre consistentemente produziu interações de personagem mais vívidas e naturais. A IA podia focar em contar histórias em vez de sintaxe JSON.

Previsibilidade de custo - Modo agente cobra por personagem por resposta. Uma cena de cinco personagens poderia custar 5-10x mais que o esperado. Usuários merecem preços previsíveis.

Compatibilidade universal - Suportamos múltiplos modelos de IA. Nem todos suportam saída estruturada ou chamada de ferramentas igualmente bem. Texto livre funciona em qualquer lugar, dando aos usuários mais escolha de modelos.

O trade-off que aceitamos

Sim, sacrificamos a experiência "um balão por personagem". Mas ganhamos:

  • Confiabilidade sólida como rocha
  • Melhor qualidade criativa
  • Custos previsíveis
  • Suporte a modelos mais amplo
  • Histórico de conversa mais limpo

Para roleplay em grupo, onde imersão mais importa, acreditamos que esse trade-off vale a pena.

O que está vindo: Modo História

Aqui está algo emocionante: estamos construindo um novo Modo História que usa saída estruturada.

Por que a abordagem diferente? Modo História tem prioridades diferentes:

  • Controle preciso de cena importa mais que criatividade livre
  • Metadados ricos (ângulos de câmera, deixas musicais, quebras de capítulo) adicionam valor
  • O formato é mais previsível (estrutura clara de capítulos/cenas)
  • Usuários esperam uma experiência mais "produzida"

Diferentes casos de uso merecem diferentes arquiteturas. Não somos dogmáticos sobre nenhuma abordagem única - escolhemos o que melhor serve os usuários.

A verdade honesta

Não existe solução perfeita para conversas de IA com múltiplos personagens. Cada abordagem troca algo valioso por outra coisa.

Outras plataformas que mostram balões separados? Provavelmente estão usando saída estruturada e aceitando suas limitações. Plataformas com controle de cena mais "inteligente"? Provavelmente chamada de ferramentas com custos e latência maiores.

Escolhemos o caminho que prioriza o que nossos usuários mais valorizam: roleplay em grupo confiável, criativo e econômico.

A experiência de balões separados é legal. Mas não ao custo de todo o resto.

O que estamos explorando

Estamos experimentando com abordagens híbridas:

  • Parsing pós-processamento: Usando modelos leves para dividir texto livre em segmentos de personagem após a geração
  • Modo estruturado opcional: Permitindo que usuários avançados escolham saída estruturada quando precisarem de controle preciso
  • Detecção inteligente de cena: Identificando automaticamente pontos de quebra naturais para melhor apresentação de UI

O objetivo não é encontrar a resposta "certa". É continuar melhorando a experiência enquanto mantemos o que funciona.


Tem ideias sobre como chat em grupo deveria funcionar? Adoraríamos ouvir de você.

Pronto para Experimentar Conversações Dinâmicas com IA?

Junte-se a milhares de utilizadores que já exploram personalidades infinitas e interações envolventes no Reverie.

Três formas de construir chat em grupo com IA: Por que escolhemos o caminho difícil | Reverie