Agenti Documentali
Prototipo di agenti intelligenti specializzati nell'analisi, sintesi e gestione di documenti aziendali.
Introduzione
Le organizzazioni professionali generano ogni giorno un volume considerevole di documenti: rapporti di attività, verbali di riunione, contratti, fatture, specifiche tecniche, corrispondenza, studi, processi verbali. Questo flusso documentale, indispensabile al funzionamento dell'azienda, diventa rapidamente ingestibile man mano che si accumula. Un servizio legale riceve centinaia di contratti al mese, una direzione tecnica archivia migliaia di specifiche, un servizio commerciale accumula preventivi e scambi con i clienti. L'estrazione manuale delle informazioni pertinenti da questa massa documentale è non solo dispendiosa in termini di tempo ma anche fonte di errori e dimenticanze. I collaboratori passano una parte crescente del loro tempo a cercare, leggere e riassumere documenti, a scapito dei compiti a valore aggiunto.
Gli approcci classici di elaborazione documentale mostrano rapidamente i loro limiti. La ricerca full-text, sebbene utile per trovare una parola chiave, non cattura né il senso né le relazioni tra le informazioni. Si basa su una corrispondenza lessicale esatta che ignora sinonimi, abbreviazioni e contesto: una ricerca su «risoluzione» non troverà un documento che menziona «annullamento» o «estinzione del contratto». L'OCR semplice, comunemente utilizzato per digitalizzare documenti scansionati, estrae testo grezzo senza struttura né comprensione semantica: produce una stringa di caratteri dove tabelle, intestazioni, firme e annotazioni sono mescolati senza distinzione. I sistemi RAG di base, che associano un database vettoriale a un LLM, migliorano la ricerca semantica ma rimangono limitati: trattano ogni richiesta in modo isolato, senza memoria delle analisi precedenti, senza capacità di costruire una sintesi cumulativa e senza una visione d'insieme sul corpus documentale.
Di fronte a queste limitazioni, è necessario un approccio radicalmente diverso. Il progetto Agenti Documentali esplora la progettazione di agenti intelligenti specializzati nel trattamento di documenti professionali, dotati di una memoria contestuale persistente, capacità di pianificazione e strumenti specializzati per interagire con i documenti. L'idea centrale è di non considerare più un documento come un file statico da elaborare occasionalmente, ma come un nodo in un grafo di conoscenza vivente, dove ogni analisi arricchisce la comprensione globale del dominio. L'agente non si limita a rispondere a una domanda: costruisce progressivamente una rappresentazione strutturata e interconnessa di tutte le informazioni che elabora.
La visione del progetto è quella di un sistema capace di comprendere, organizzare e sfruttare la conoscenza contenuta nei documenti professionali con una profondità e una continuità inaccessibili agli approcci tradizionali. Laddove un sistema RAG classico risponde a una domanda e poi dimentica, l'agente documentale conserva la memoria di ogni analisi, di ogni decisione, di ogni collegamento stabilito tra informazioni. Può così rilevare contraddizioni tra documenti, identificare tendenze su un periodo, collegare decisioni alle loro giustificazioni e produrre sintesi che riflettono la conoscenza cumulativa del corpus. Questa memoria persistente trasforma l'elaborazione documentale: ogni documento letto arricchisce la base di conoscenza, ogni analisi migliora la qualità delle analisi future.
L'architettura del sistema si basa su un orchestratore centrale che coordina diversi agenti specializzati. Ogni agente è progettato per una missione specifica ed espone le proprie capacità tramite il protocollo MCP (Model Context Protocol), garantendo l'interoperabilità e la scalabilità del sistema. L'orchestratore riceve i documenti in entrata, analizza la natura del compito da svolgere, pianifica la sequenza di intervento degli agenti, ripartisce il lavoro e assicura la coerenza globale del trattamento. Gestisce le priorità, le dipendenze tra le fasi e i casi di errore. Gli agenti comunicano tra loro tramite un bus di messaggi, condividono un contesto comune e possono interrogarsi reciprocamente per validare o completare un'analisi. Questa architettura modulare permette di aggiungere nuovi agenti senza perturbare il sistema esistente e di specializzare ogni agente sul proprio ambito di competenza.
L'agente di analisi è il primo anello della catena di trattamento. La sua missione è l'estrazione profonda di informazioni dai documenti: identificazione delle entità nominate (persone, organizzazioni, luoghi, date, importi, riferimenti), rilevamento delle relazioni tra queste entità (un contratto legato a un cliente, una clausola associata a una data di scadenza), estrazione di fatti ed eventi (decisioni prese, azioni da realizzare, scadenze) e cattura dei metadati strutturali (tipo di documento, autore, destinatario, versione, data di creazione). L'agente di analisi non si limita a un'estrazione superficiale: comprende la struttura del documento, distingue le sezioni, gli allegati e i riferimenti incrociati, e identifica le informazioni implicite — ad esempio un obbligo di notifica che deriva da una clausola senza essere esplicitamente nominato come tale. I risultati dell'analisi sono strutturati secondo un modello di dati standardizzato e inseriti nel grafo di conoscenza.
L'agente di sintesi subentra per produrre una visione aggregata e intelligibile delle informazioni estratte. Contrariamente a un semplice riassunto automatico, è capace di sintetizzare più documenti simultaneamente, identificando i punti comuni, le divergenze e le complementarità. La sua missione include la generazione di report strutturati: schede di sintesi per documento, rapporti tematici che coprono un insieme di documenti su un dato argomento, tabelle comparative tra più versioni o varianti, cronologie di eventi ricostruite da fonti multiple. L'agente di sintesi si basa sul grafo di conoscenza per navigare tra i documenti collegati e utilizza la ricerca vettoriale per trovare passaggi pertinenti al di là dei collegamenti espliciti. Adatta il livello di dettaglio e il formato di output alle esigenze dell'utente: sintesi esecutiva di un paragrafo, rapporto dettagliato di più pagine o tabella di dati strutturati.
L'agente di classificazione assicura il routing e la categorizzazione dei documenti nel sistema. Analizza ogni documento per determinarne la natura (contratto, rapporto, fattura, lettera, specifica), il dominio (giuridico, tecnico, commerciale, finanziario), il livello di sensibilità (confidenziale, interno, pubblico) e il grado di urgenza (trattamento immediato, programmato, archiviabile). La classificazione non si ferma a un'unica etichetta: un documento può appartenere a più categorie con pesi diversi. L'agente di classificazione prioritizza inoltre i documenti da trattare secondo regole configurabili: un contratto in fase di negoziazione sarà prioritario rispetto a un documento archiviato, una richiesta di reclamo cliente passerà prima di un rapporto periodico. Le decisioni di classificazione sono memorizzate nel grafo di conoscenza e possono essere riviste manualmente, permettendo un apprendimento tramite feedback dell'utente.
L'agente di coordinamento svolge un ruolo trasversale essenziale. Orchestra i flussi di lavoro di trattamento definendo le dipendenze tra gli agenti: un documento deve prima essere classificato prima di essere analizzato, e l'analisi deve precedere la sintesi. Gestisce i casi complessi in cui più documenti devono essere trattati in un ordine specifico o dove i risultati di un agente condizionano il lavoro di un altro. L'agente di coordinamento assicura inoltre la validazione incrociata: quando due documenti contengono informazioni contraddittorie, attiva una procedura di verifica che può coinvolgere una rilettura umana o un'analisi approfondita da parte dell'agente di analisi. Supervisiona l'esecuzione dei flussi di lavoro, rileva i blocchi, riassegna i compiti in caso di fallimento e produce rapporti di attività sullo stato di avanzamento dei trattamenti.
La memoria contestuale persistente è l'innovazione centrale del progetto, distinta dai sistemi RAG senza stato. Ogni sessione di analisi conserva la cronologia completa delle interazioni, delle decisioni prese e dei risultati prodotti. Questa memoria permette all'utente di riprendere un'analisi interrotta, di consultare le giustificazioni di una decisione passata o di richiedere una sintesi evolutiva che integri i risultati di più sessioni. La memoria si basa su due tecnologie complementari. Neo4j, il database a grafo, memorizza la struttura della conoscenza: i documenti, le entità, le relazioni, le categorie, le decisioni, formando una rete semantica navigabile. Ogni nodo e ogni relazione porta metadati — data di creazione, fonte, livello di confidenza — assicurando una tracciabilità completa. Le query sul grafo permettono di trovare percorsi tra informazioni, scoprire relazioni indirette ed esplorare il corpus in modo non lineare.
Qdrant, il database vettoriale, completa il grafo assicurando la ricerca semantica sul contenuto testuale. Ogni documento, ogni paragrafo, ogni estratto di analisi è convertito in un vettore di embedding che cattura il suo significato semantico. La ricerca vettoriale permette di trovare passaggi pertinenti anche quando i termini esatti non corrispondono: una ricerca su «responsabilità contrattuale» troverà documenti che trattano di colpa, danno e nesso di causalità, anche se questi termini non appaiono esplicitamente. La combinazione del grafo e dei vettori offre il meglio di entrambi i mondi: la precisione delle relazioni strutturate di Neo4j e la ricchezza della ricerca semantica di Qdrant. L'agente può navigare dal grafo verso i vettori per trovare documenti connessi, e dai vettori verso il grafo per esplorare le relazioni di un passaggio pertinente.
I casi d'uso del progetto coprono tre domini principali. Nel dominio giuridico, il sistema assiste i team nell'analisi dei contratti: estrazione delle clausole essenziali, identificazione degli obblighi reciproci, rilevamento delle date di scadenza e delle condizioni di rinnovo, confronto tra versioni successive di uno stesso contratto e alert sulle clausole atipiche o a rischio. Per uno studio legale o un servizio giuridico aziendale, l'agente può elaborare centinaia di contratti in pochi minuti, laddove un'analisi manuale richiederebbe giorni. Il grafo di conoscenza giuridica permette di collegare i contratti tra loro tramite le parti interessate, gli oggetti o le clausole, offrendo una visione consolidata degli impegni dell'organizzazione.
Nel dominio tecnico, il sistema elabora specifiche, documentazioni di API, manuali d'uso e rapporti di test. L'agente di analisi estrae le architetture software, le dipendenze tra componenti, le versioni e i prerequisiti tecnici. L'agente di sintesi produce una documentazione consolidata a partire da fonti eterogenee o genera un rapporto di non regressione tra due versioni di un sistema. L'agente di classificazione organizza i documenti per componente, per versione e per criticità. Per un team di sviluppo, il sistema diventa un hub documentale che mantiene aggiornata la conoscenza dell'architettura e delle decisioni tecniche, anche quando i team cambiano o la documentazione si accumula.
Nel dominio commerciale, il sistema analizza preventivi, proposte, verbali di riunione e scambi con i clienti. Estrae gli impegni presi, le date di consegna concordate, i perimetri contrattualizzati e i punti di blocco. L'agente di sintesi produce schede prospetti consolidate che raggruppano tutti gli scambi e i documenti legati a un cliente. L'agente di classificazione prioritizza le opportunità commerciali in base alla loro maturità e al loro importo. Per un direttore commerciale, il sistema offre una visione d'insieme degli impegni commerciali, rileva gli scostamenti tra proposte e consegne e alerta sui rischi di non conformità.
I benefici del sistema sono molteplici e misurabili. La tracciabilità delle decisioni è assicurata dalla memoria contestuale persistente: ogni estrazione, ogni classificazione, ogni sintesi conserva la provenienza delle informazioni utilizzate. Per una questione normativa o un audit, è possibile risalire alla fonte esatta di ogni informazione, al documento originale, al passaggio preciso. La qualità delle analisi migliora nel tempo: il grafo di conoscenza si arricchisce di ogni nuovo documento elaborato, affinando la comprensione del dominio e la precisione delle estrazioni future. La produttività dei team aumenta significativamente: il tempo speso a cercare, leggere e riassumere documenti è ridotto di diverse ore a settimana per collaboratore, liberando tempo per i compiti a valore aggiunto — analisi strategica, decisione, relazione con il cliente.
L'affidabilità è rafforzata dalla validazione incrociata tra agenti e dalla conservazione dello storico completo delle analisi. Gli errori di estrazione sono rilevati per confronto tra documenti e tramite gli alert dell'agente di coordinamento. La coerenza delle informazioni è mantenuta nel grafo di conoscenza, che rileva le contraddizioni e le incoerenze. Per un'organizzazione soggetta a obblighi di conformità (GDPR, regolamentazione settoriale), la capacità di dimostrare la provenienza e l'affidabilità delle informazioni trattate è un vantaggio decisivo. La standardizzazione del trattamento garantisce una qualità omogenea su tutti i documenti, indipendentemente dalla persona o dal servizio che li ha introdotti nel sistema.
Le prospettive di evoluzione del progetto sono promettenti. L'apprendimento continuo è una pista importante: le correzioni e le validazioni apportate dagli utenti umani sono reimmesse per migliorare i modelli di estrazione e classificazione. Un utente che corregge un'entità mal identificata o una classificazione errata arricchisce il sistema, che adatta il proprio comportamento per i documenti futuri. Il feedback umano, integrato sotto forma di cicli di retroazione, permette di affinare progressivamente le performance di ogni agente. A termine, il sistema potrebbe proporre analisi preventive, anticipando i bisogni informativi prima ancora che l'utente li formuli. L'arricchimento automatico del grafo di conoscenza tramite incrocio con fonti esterne — dati pubblici, basi giuridiche, referenziali tecnici — aprirebbe la strada a una conoscenza sempre più ricca e contestuale.
La generalizzazione ad altri tipi di documenti e ad altri domini aziendali è naturale grazie all'architettura modulare. Ogni nuovo dominio può essere coperto dall'aggiunta di un agente specializzato e dall'arricchimento del modello di conoscenza corrispondente. L'integrazione con sistemi esistenti — GED, ERP, CRM — tramite il protocollo MCP permetterebbe di alimentare il sistema direttamente dai flussi documentali dell'organizzazione. L'evoluzione verso agenti capaci di proporre raccomandazioni attive — suggerire una modifica contrattuale, alertare su una scadenza imminente, proporre una risposta tipo a un cliente — trasformerebbe il sistema da uno strumento di analisi passiva a un assistente attivo della decisione. Agenti Documentali pone le fondamenta di una nuova generazione di sistemi di gestione della conoscenza professionale, dove l'intelligenza artificiale non si limita a rispondere ma comprende, memorizza e anticipa.
Obiettivi
- 1Progettare un'architettura multi-agente per il trattamento documentale
- 2Sviluppare una memoria contestuale persistente per sessione e per documento
- 3Implementare strumenti specializzati (ricerca, estrazione, sintesi, classificazione)
- 4Garantire la tracciabilità delle decisioni e la provenienza delle informazioni
- 5Validare il prototipo su casi d'uso reali con utenti
Architettura Tecnica
Sistema multi-agente con orchestratore centrale: ogni agente è un microservizio che espone le proprie capacità tramite MCP. Un grafo di conoscenza (Neo4j) memorizza le relazioni tra documenti, entità e concetti. Memoria vettoriale (Qdrant) per la ricerca semantica.
Tecnologie
LangChain
Framework di orchestrazione degli agenti
Neo4j
Database a grafo per la conoscenza documentale
Qdrant
Memoria vettoriale per la ricerca semantica
Mistral
LLM per l'analisi e la sintesi
FastAPI
API REST per gli agenti