Tre modi per costruire chat di gruppo AI: Perché abbiamo scelto la strada difficile

Reverie Team
12/9/2025

La domanda che ha iniziato tutto
"Perché ogni personaggio non può avere la propria bolla messaggio, come altre app?"
Riceviamo spesso questa domanda. E onestamente, è un'ottima domanda. La maggior parte delle app di chat mostra i messaggi come bolle separate - una per persona. Allora perché la nostra chat di gruppo combina più risposte dei personaggi in un singolo messaggio?
La risposta non è pigrizia o trascuratezza. È una scelta ingegneristica deliberata nata da mesi di sperimentazione con tre approcci fondamentalmente diversi alle conversazioni di gruppo AI.
Le tre architetture
Quando si costruiscono conversazioni AI multi-personaggio, ogni piattaforma affronta la stessa decisione. Ci sono esattamente tre modi per farlo, ognuno con profonde implicazioni su costo, qualità ed esperienza utente.
1. Output strutturato (Array JSON)
L'approccio più comune nel settore. Chiedi all'AI di restituire un array JSON dove ogni elemento rappresenta la risposta di un personaggio:
[
{
"speaker": "Sherlock",
"emotion": "incuriosito",
"content": "Affascinante. Il pattern del fango suggerisce..."
},
{
"speaker": "Watson",
"emotion": "confuso",
"content": "Holmes, cosa intende?"
}
]
L'attrattiva:
- Singola chiamata API, singolo consumo di crediti
- Facile da parsare e renderizzare come bolle messaggio separate
- Può includere metadati ricchi (emozioni, azioni, descrizioni di scena)
- Perfetto per generare suggerimenti di risposta utente
La realtà:
- Solo i modelli premium costosi (Claude, GPT-4) supportano l'output strutturato in modo affidabile - la maggior parte dei modelli accessibili fatica con la formattazione JSON coerente
- Gli errori di formato rompono l'intera risposta
- Le istruzioni JSON consumano token, riducendo lo spazio creativo
- I modelli si sentono "vincolati" - la creatività spesso ne soffre
- Le restrizioni sui contenuti diventano più rigide: la modalità output strutturato spesso attiva filtri di contenuto più aggressivi, rendendo più probabile il fallimento di scenari di roleplay maturi o audaci
- Inquinamento del contesto: la cronologia delle conversazioni si riempie di strutture JSON
- Complessità nella gestione degli errori: cosa succede quando il parsing fallisce a metà streaming?
La maggior parte delle piattaforme di personaggi di terze parti usa questo approccio. Funziona, ma i vincoli sono reali.
2. Chiamata di strumenti (Modalità Agente)
L'approccio più "intelligente". L'AI decide quale personaggio dovrebbe parlare dopo, chiama uno strumento per indicarlo, poi genera la risposta di quel personaggio. Ripeti finché la scena non è completa.
L'AI pensa: "Watson dovrebbe reagire a questa rivelazione"
→ chiama strumento: next_speaker("Watson")
→ genera la risposta di Watson
→ L'AI pensa: "Ora Sherlock interverrebbe"
→ chiama strumento: next_speaker("Sherlock")
→ genera la risposta di Sherlock
...
L'attrattiva:
- Flusso di conversazione più naturale
- L'AI ha pieno controllo creativo sul ritmo della scena
- Ogni risposta del personaggio ottiene qualità di generazione dedicata
- Produce naturalmente messaggi separati per personaggio
La realtà:
- Chiamate API multiple = addebiti di crediti multipli
- La latenza si accumula: N personaggi = N round trip
- Solo i modelli di fascia alta (Claude, GPT-4) gestiscono le chiamate di strumenti in modo affidabile - i modelli più economici spesso falliscono o allucinano chiamate di strumenti
- Gestione dello stato complessa tra le chiamate
- Rischio di loop infiniti o terminazione inaspettata
- Incubi di debugging: i problemi sono difficili da riprodurre
Questa è l'"architettura dei sogni" che sembra bella sulla carta ma crea grattacapi operativi su scala.
3. Output testo libero (La nostra scelta attuale)
L'approccio più semplice. Chiedi all'AI di scrivere la scena naturalmente, lasciandola decidere come presentare più personaggi in prosa fluida:
Sherlock si sporse in avanti, occhi acuti. "Affascinante. Il
pattern del fango suggerisce che il nostro sospetto veniva dal lato est."
Watson aggrottò la fronte. "Holmes, cosa intende? È solo fango."
"Solo fango?" Sherlock sorrise. "Mio caro Watson, non esiste
niente che sia 'solo' qualcosa."
L'attrattiva:
- Funziona con ogni modello AI, nessuna funzionalità speciale richiesta
- Massima libertà creativa - l'AI scrive naturalmente
- Contesto pulito: la cronologia delle conversazioni si legge come un romanzo
- Eccellente esperienza di streaming
- Singola chiamata, costi prevedibili
- Il più semplice da implementare e mantenere
La realtà:
- Tutti i personaggi in un blocco messaggio unico
- Non si può facilmente rigenerare la risposta di un singolo personaggio
- La flessibilità dell'UI è limitata
- Gli utenti che si aspettano bolle stile chat potrebbero essere confusi
L'abbiamo imparato nel modo difficile
Ecco qualcosa che non abbiamo condiviso pubblicamente prima: la nostra prima versione della chat di gruppo usava la chiamata di strumenti.
Credevamo nell'"architettura dei sogni". L'AI decide chi parla dopo, ogni personaggio ottiene generazione dedicata, belle bolle messaggio separate. Era elegante. Era intelligente. Era anche un disastro in produzione.
Gli utenti sperimentavano costi imprevedibili - a volte 3x quello che si aspettavano per la stessa conversazione. I tempi di risposta variavano enormemente a seconda di quanti personaggi l'AI decideva di coinvolgere. I modelli più economici allucinavano chiamate di strumenti o si bloccavano in loop. I nostri log degli errori si riempirono di casi limite che non avevamo mai anticipato.
Dopo mesi di patch e workaround, abbiamo preso la difficile decisione di ricostruire da zero con output testo libero. Sembrava un passo indietro. Ma a volte la soluzione "meno intelligente" è la scelta più saggia.
Perché abbiamo fatto questa scelta
Dopo aver testato tutti e tre gli approcci estensivamente - e averne spedito uno in produzione - abbiamo scelto l'output testo libero per la chat di gruppo. Ecco perché:
Stabilità sopra le funzionalità - L'output strutturato fallisce in modo imprevedibile. Quando la tua chat di gruppo si rompe a metà conversazione, agli utenti non importa più delle bolle separate - vogliono solo che funzioni. Il testo libero non fallisce mai per problemi di formato.
Qualità sopra la quantità - I formati vincolati riducono sottilmente la creatività dell'AI. Quando abbiamo confrontato gli output, il testo libero ha prodotto costantemente interazioni tra personaggi più vivide e naturali. L'AI poteva concentrarsi sulla narrazione invece che sulla sintassi JSON.
Prevedibilità dei costi - La modalità agente addebita per personaggio per risposta. Una scena con cinque personaggi potrebbe costare 5-10x più del previsto. Gli utenti meritano prezzi prevedibili.
Compatibilità universale - Supportiamo più modelli AI. Non tutti supportano l'output strutturato o la chiamata di strumenti ugualmente bene. Il testo libero funziona ovunque, dando agli utenti più scelta di modelli.
Il compromesso che accettiamo
Sì, sacrifichiamo l'esperienza "una bolla per personaggio". Ma guadagniamo:
- Affidabilità solida come roccia
- Migliore qualità creativa
- Costi prevedibili
- Supporto modelli più ampio
- Cronologia conversazioni più pulita
Per il roleplay di gruppo, dove l'immersione conta di più, crediamo che questo compromesso ne valga la pena.
Cosa sta arrivando: Modalità Storia
Ecco qualcosa di emozionante: stiamo costruendo una nuova Modalità Storia che usa l'output strutturato.
Perché l'approccio diverso? La Modalità Storia ha priorità diverse:
- Il controllo preciso della scena conta più della creatività libera
- I metadati ricchi (angoli di camera, spunti musicali, interruzioni di capitolo) aggiungono valore
- Il formato è più prevedibile (struttura chiara di capitoli/scene)
- Gli utenti si aspettano un'esperienza più "prodotta"
Casi d'uso diversi meritano architetture diverse. Non siamo dogmatici su nessun singolo approccio - scegliamo ciò che serve meglio gli utenti.
La verità onesta
Non esiste una soluzione perfetta per le conversazioni AI multi-personaggio. Ogni approccio scambia qualcosa di prezioso per qualcos'altro.
Altre piattaforme che mostrano bolle separate? Probabilmente stanno usando output strutturato e accettando i suoi limiti. Piattaforme con controllo della scena più "intelligente"? Probabilmente chiamata di strumenti con costi e latenza più alti.
Abbiamo scelto il percorso che dà priorità a ciò che i nostri utenti apprezzano di più: roleplay di gruppo affidabile, creativo ed economico.
L'esperienza delle bolle separate è bella. Ma non al costo di tutto il resto.
Cosa stiamo esplorando
Stiamo sperimentando approcci ibridi:
- Parsing post-elaborazione: Usare modelli leggeri per dividere il testo libero in segmenti di personaggi dopo la generazione
- Modalità strutturata opzionale: Permettere agli utenti avanzati di scegliere l'output strutturato quando hanno bisogno di controllo preciso
- Rilevamento intelligente della scena: Identificare automaticamente punti di interruzione naturali per una migliore presentazione UI
L'obiettivo non è trovare la risposta "giusta". È continuare a migliorare l'esperienza mantenendo ciò che funziona.
Hai idee su come dovrebbe funzionare la chat di gruppo? Ci piacerebbe sentirti.
Pronto a sperimentare conversazioni dinamiche con l'IA?
Unisciti a migliaia di utenti che già esplorano personalità infinite e interazioni coinvolgenti su Reverie.