Sistema di Agenti Intelligenti
In Queria ogni risposta e' il risultato della collaborazione di agenti AI specializzati. Ogni agente ha un compito preciso, comunica con gli altri attraverso un protocollo strutturato e contribuisce a un processo di ragionamento che l'utente puo' seguire passo dopo passo.
Cosa sono gli agenti
Un agente e' un componente AI autonomo progettato per un compito specifico. A differenza di un singolo modello linguistico che cerca di fare tutto, ogni agente e' ottimizzato per la propria funzione. Questo approccio garantisce maggiore precisione, migliore tracciabilita' e la possibilita' di migliorare ogni componente in modo indipendente.
Gli agenti del sistema
Semantic Router
Il primo agente che entra in azione. Riceve la domanda dell'utente e ne classifica l'intento, la complessita' e il dominio tematico. In base a questa analisi, decide quale pipeline attivare:
- Ricerca semplice per domande dirette
- Decomposizione per query complesse
- Confronto strutturato per richieste comparative
- Cog-RAG Agentico per ragionamenti multi-step autonomi
Il Router opera in millisecondi e determina l'efficienza dell'intero processo successivo.
Query Decomposer
Quando il Router identifica una domanda complessa, il Decomposer la scompone in sotto-domande piu' semplici e gestibili. Sceglie la strategia di decomposizione appropriata (sequenziale, parallela, gerarchica o comparativa) e definisce le dipendenze tra le sotto-query.
Esempio pratico: la domanda "Confronta i termini di pagamento nei contratti con i fornitori italiani ed esteri dell'ultimo biennio" viene scomposta in:
- Cerca contratti con fornitori italiani (ultimi due anni)
- Cerca contratti con fornitori esteri (ultimi due anni)
- Estrai i termini di pagamento da entrambi i gruppi
- Produci un confronto strutturato
Retrieval Agent
L'agente di recupero esegue la ricerca effettiva attraverso tutte le sorgenti disponibili. Per ogni sotto-query:
- Genera il vettore di embedding della domanda
- Esegue ricerca ibrida (semantica + lessicale) sui documenti aziendali
- Interroga la Knowledge Base permanente
- Consulta le sorgenti esterne certificate se abilitate e pertinenti
- Raccoglie e unifica i risultati da tutte le fonti
I parametri di ricerca (numero di risultati, soglia di rilevanza, fattore di diversificazione) vengono calibrati automaticamente in base alla complessita' stimata dal Router.
Reranker
I risultati grezzi dalla ricerca vengono riordinati dal Reranker, che utilizza un modello cross-encoder per valutare la pertinenza di ogni risultato rispetto alla domanda originale. A differenza della ricerca iniziale basata su similarita' vettoriale, il cross-encoder analizza domanda e documento insieme, producendo un giudizio di rilevanza molto piu' preciso.
Il Reranker e' fondamentale per eliminare i falsi positivi: documenti che contengono parole simili ma non sono realmente pertinenti alla domanda.
Self-RAG Agent
Dopo il reranking, il Self-RAG Agent valuta la qualita' complessiva dei risultati. Si pone tre domande:
- I risultati sono sufficienti? Se il numero di documenti rilevanti e' troppo basso, attiva una nuova ricerca con parametri ampliati.
- I risultati coprono tutti gli aspetti della domanda? Se manca copertura su una sotto-domanda, lancia ricerche supplementari mirate.
- La qualita' e' adeguata? Se i punteggi di rilevanza sono troppo bassi, il sistema puo' riformulare la query e riprovare.
Questo meccanismo di auto-verifica distingue Cog-RAG dai sistemi che presentano qualunque risultato trovino, indipendentemente dalla qualita'.
Grounding Checker
L'agente anti-allucinazione per eccellenza. Prima che la risposta venga presentata all'utente, il Grounding Checker verifica che ogni affermazione sia effettivamente supportata dai documenti sorgente. Il suo compito:
- Confronta ogni claim della risposta con i documenti citati
- Verifica che le citazioni siano accurate e non fuori contesto
- Assegna un punteggio di confidenza alla risposta complessiva
- Se il grounding e' insufficiente, segnala le parti non supportate
Se il sistema non trova evidenze sufficienti per rispondere, attiva la modalita' astensione: comunica esplicitamente all'utente che non dispone di informazioni adeguate per fornire una risposta affidabile, piuttosto che inventare contenuti.
Synthesis Agent
L'agente di sintesi riceve i documenti verificati e produce la risposta finale. Opera con il modello Writer in modalita' di ragionamento profondo:
- Analizza tutte le fonti raccolte e il loro contesto
- Identifica informazioni complementari, ridondanti o in contrasto
- Struttura la risposta in modo logico e professionale
- Inserisce citazioni precise con riferimento alla fonte originale
[1][2][3] - Produce riassunti, confronti o analisi a seconda del tipo di domanda
La sintesi non e' una semplice concatenazione di estratti. Il Writer ragiona attivamente sulle informazioni per produrre una risposta che aggiunge valore rispetto alla lettura dei singoli documenti.
Document Generator Agent
Un agente specializzato nella creazione di documenti professionali. Partendo da template predefiniti e dati estratti:
- Genera documenti DOCX formattati con standard professionali
- Compila automaticamente i campi a partire dai documenti sorgente
- Utilizza un approccio ibrido: estrazione strutturata per dati tabellari, AI per dati non strutturati
- Valida lo schema dei dati estratti per garantire completezza
- Gestisce la compilazione interattiva per i campi mancanti
Data Extractor Agent
L'agente di estrazione dati trasforma documenti non strutturati in informazioni organizzate:
- Estrae dati da tabelle, moduli e testi liberi
- Combina estrazione basata su regole (per formati noti) e AI (per formati variabili)
- Supporta output strutturato in formato tabulare
- Gestisce l'estrazione da file XLSX con mappatura colonne automatica
Come collaborano gli agenti
La pipeline standard segue questo flusso:
[Semantic Router]
|
v
[Query Decomposer] (se necessario)
|
v
[Retrieval Agent] ---> ricerca su tutte le sorgenti
|
v
[Reranker] ---> riordinamento semantico
|
v
[Self-RAG Agent] ---> verifica qualita'
| \
| (risultati insufficienti)
| \
| v
| [Retrieval Agent] ---> nuova ricerca ampliata
| |
| v
| [Reranker]
| |
v v
[Grounding Checker]
|
v
[Synthesis Agent] ---> risposta finaleIn modalita' Cog-RAG Agentico, il sistema adotta il pattern ReAct (Reasoning + Acting): ogni agente puo' decidere autonomamente il prossimo passo, creando catene di ragionamento multi-step che si adattano dinamicamente alla complessita' del problema.
Trasparenza del ragionamento
Ogni agente registra le proprie azioni come reasoning steps visibili nell'interfaccia utente. L'utente puo' espandere il pannello di ragionamento e vedere:
- Analisi della query: come il sistema ha interpretato la domanda
- Strategia di ricerca: quale approccio e' stato scelto e perche'
- Risultati trovati: quanti documenti da quali fonti, con punteggi di rilevanza
- Valutazione qualita': se il Self-RAG ha richiesto ricerche aggiuntive
- Sintesi: come le informazioni sono state combinate nella risposta finale
Questa trasparenza non e' solo una funzionalita' di debug. In contesti regolamentati (legale, farmaceutico, qualita'), poter dimostrare il percorso logico che ha portato a una risposta e' un requisito operativo.
Misure anti-allucinazione
L'allucinazione, ovvero la generazione di informazioni plausibili ma false, e' il rischio principale dei sistemi basati su AI generativa. Queria implementa difese su piu' livelli:
- Prompting strutturato: i modelli ricevono istruzioni esplicite di basarsi esclusivamente sui documenti forniti
- Temperature controllata: parametri di generazione conservativi per risposte fattuali
- Grounding check: verifica automatica che ogni affermazione sia supportata da una fonte
- Citazioni obbligatorie: ogni claim significativo deve essere collegato a un documento sorgente
- Modalita' astensione: il sistema rifiuta di rispondere piuttosto che inventare
- Confidence scoring: ogni risposta include un indicatore di affidabilita' basato sulla qualita' delle fonti trovate
Il risultato e' un sistema che privilegia il silenzio alla speculazione. Un "non ho trovato informazioni sufficienti" e' sempre preferibile a una risposta inventata.