Torna al blog
Un direttore d'orchestra e degli specialisti: come LIA gestisce la tua richiesta
Architettura4 min di lettura

Un direttore d'orchestra e degli specialisti: come LIA gestisce la tua richiesta

Il problema

Immagina di scrivere: «manda l'indirizzo del ristorante della mia cena di venerdì a tutti gli invitati». Per riuscirci bisogna leggere il tuo calendario, ritrovare la cena, ricavarne il luogo, cercare ogni invitato nei tuoi contatti, poi preparare un'e-mail. Cinque azioni, tre servizi.

Dare tutto questo in blocco a un solo modello linguistico, con tutti gli strumenti sotto gli occhi, funziona male. Più strumenti vede, più esita e più sbaglia strumento. Ogni chiamata costa di più. E quando qualcosa va storto, è impossibile sapere dove.

Cosa volevo

Volevo che LIA lavorasse come una piccola squadra ben organizzata: qualcuno smista la richiesta, qualcuno prepara il piano, qualcuno lo verifica, qualcuno lo esegue e qualcuno ti risponde. Ogni ruolo fa una sola cosa. Intorno a loro, ogni ambito porta i propri strumenti e le relative istruzioni per l'uso: e-mail, calendario, contatti, attività, file, meteo, luoghi, itinerari, ricerca web, e persino i server MCP che aggiungi tu stesso.

Per collegare questi ruoli ho scelto LangGraph, una libreria che descrive un'elaborazione come un grafo: dei passaggi, e delle regole che dicono quale viene dopo. Il tuo messaggio segue questo grafo dall'inizio alla fine.

Come funziona

  1. Lo smistamento. Il router legge il tuo messaggio e decide se si tratta di una conversazione o di una richiesta di azione, e quali ambiti sono coinvolti. «Grazie, era perfetto» va dritto alla risposta. La cena di venerdì va al pianificatore, con il calendario, i contatti e le e-mail.
  2. Il piano. Il pianificatore riceve solo gli strumenti di quegli ambiti. Scrive un piano: quali passaggi, con quali parametri, e quali aspettano il risultato di un altro.
  3. La verifica. Prima di qualsiasi chiamata, LIA controlla questo piano: uno strumento inventato, un passaggio che ne aspetta un altro introvabile, un valore fuori dai limiti. Ciò che si può riparare viene riparato, ciò che resta dubbio torna al pianificatore.
  4. L'esecuzione. I passaggi indipendenti partono insieme, gli altri aspettano ciò di cui hanno bisogno. Qui: prima il calendario, poi tutti gli invitati in parallelo, poi la bozza dell'e-mail, che approvi prima dell'invio.
  5. Il tocco in più. Una volta tornati i risultati, LIA guarda se manca un'informazione che può semplicemente leggere. Se un'e-mail propone una riunione giovedì, può dare un'occhiata al tuo calendario di giovedì. Può anche suggerirti un'azione, senza eseguirla.
  6. La risposta. Un ultimo ruolo raccoglie ciò che è successo e te lo scrive, distinguendo ciò che è riuscito da ciò che è fallito.

Due modi di lavorare

Questo circuito è la modalità Pipeline: prima pianificare, poi eseguire. È la più economica e la più prevedibile, ed è la modalità predefinita. Ma certe domande non si pianificano in anticipo. «Cosa facciamo questo fine settimana?» dipende da ciò che LIA scoprirà strada facendo. Per quelle puoi passare alla modalità ReAct con un clic sul pulsante della modalità, in alto nello schermo: LIA avanza passo dopo passo, legge ogni risultato e sceglie il seguito. Le due modalità condividono la stessa memoria e le stesse conferme, e si ritrovano nello stesso passaggio di risposta.

Un filo che non si perde

Dopo ogni passaggio, lo stato della conversazione viene salvato nel database (PostgreSQL). Quando LIA aspetta la tua approvazione, riprende esattamente da dove si era fermata appena rispondi, finché la domanda non è scaduta. Se chiudi la scheda del browser, la risposta continua lato server e ti aspetta al tuo ritorno. E quando una conversazione diventa molto lunga, LIA ne riassume l'inizio per uso proprio, senza cancellare nulla della cronologia che vedi.

I limiti

Lo smistamento può sbagliare. Quando il router ha davvero un dubbio, ti risponde senza agire, e spesso basta riformulare. La modalità Pipeline fissa il suo piano prima di aver visto i risultati: se un passaggio fallisce, te lo dice, senza improvvisare un'altra strada. E un ambito esiste per LIA solo se il servizio è collegato: senza il tuo calendario, nessun piano può leggerlo.

Il circuito completo è descritto nella pagina tecnica.

Per approfondire: Un piano prima di agire: come LIA prepara e verifica le tue richieste in più passaggi; Pipeline o ReAct: due modi in cui LIA porta avanti la tua richiesta.

#langgraph#multi-agent#orchestration#routing#ai-architecture