I grandi modelli linguistici (LLM) stanno rivoluzionando il nostro modo di interagire con la tecnologia, sfruttando l'elaborazione avanzata del linguaggio naturale per portare a termine compiti complessi. Questi sistemi di intelligenza artificiale di prossima generazione, noti come agenti LLM, sono progettati specificamente per eseguire operazioni complesse che richiedono una profonda capacità di ragionamento, la capacità di anticipare gli eventi futuri, di memorizzare le conversazioni passate e di utilizzare una varietà di strumenti per adattare le risposte in base alla situazione e allo stile richiesto. Il framework di agenti Mosaic AI, sviluppato da Databricks, offre agli sviluppatori la possibilità di creare sistemi di agenti su scala di produzione tramite qualsiasi LLM, consentendo un'ampia personalizzazione e fornendo agli agenti i mezzi per prendere decisioni autonome e informate.

Negli ultimi anni, abbiamo assistito a come i modelli LLM all'avanguardia abbiano abilitato una vasta gamma di applicazioni innovative. L'anno scorso, in particolare, ha segnato una svolta significativa verso la Generazione Aumentata per Recupero (RAG). In questo approccio, gli utenti hanno creato chatbot IA interattivi alimentando gli LLM con i propri dati organizzativi, solitamente tramite l'integrazione vettoriale. Sebbene la RAG si sia dimostrata estremamente potente e utile per fornire risposte contestualizzate basate su conoscenze statiche, essa rappresenta solo l'inizio di ciò che è possibile realizzare con gli LLM. La sua applicazione, infatti, è limitata principalmente al recupero di informazioni esistenti, senza una vera e propria capacità d'azione.

Immaginate un agente di servizio clienti che non solo risponde alle domande basandosi sui dati interni, ma è anche in grado di intraprendere azioni concrete con un intervento umano minimo. Con gli LLM, siamo ora in grado di costruire applicazioni decisionali completamente autonome che non si limitano a rispondere, ma agiscono in base alle richieste degli utenti. Le possibilità in questo campo sono praticamente infinite: dall'analisi approfondita dei dati interni alle ricerche sul web, fino a compiti molto più complessi. La comprensione semantica e le capacità linguistiche intrinseche dei grandi modelli linguistici ci permettono di creare applicazioni che possono non solo "rispondere", ma anche "agire" in modo significativo in risposta alle interazioni degli utenti.

Il framework Mosaic AI Agent di Databricks

Databricks ha lanciato il framework di agenti Mosaic AI con l'obiettivo di fornire agli sviluppatori una piattaforma robusta per costruire framework di agenti su scala di produzione utilizzando qualsiasi LLM. Una delle sue capacità principali è la possibilità di creare strumenti all'interno dell'ecosistema Databricks, progettati per aiutare a costruire, distribuire e valutare agenti IA di qualità produttiva, come le applicazioni di generazione aumentata per recupero (RAG) e molto altro. Gli sviluppatori possono facilmente creare e registrare agenti utilizzando qualsiasi libreria e integrarli con MLFlow, un sistema per gestire il ciclo di vita dell'apprendimento automatico. È possibile parametrizzare gli agenti per sperimentare e iterare rapidamente sullo sviluppo, accelerando il processo di creazione.

Inoltre, il tracciamento degli agenti è una funzionalità fondamentale che consente agli sviluppatori di registrare, analizzare e confrontare le tracce delle interazioni. Questo è essenziale per il debug e per comprendere in profondità come l'agente risponde a specifiche query. Questa prima parte del blog esplorerà in dettaglio gli agenti, i loro componenti principali, e ci guiderà nella costruzione di un agente IA autonomo di servizio clienti multi-turno per un'azienda di vendita al dettaglio online, utilizzando uno dei modelli fondamentali Databricks più performanti e open source sulla piattaforma. Nelle prossime serie di blog, approfondiremo il framework multi-agente e costruiremo un agente multi-step con ragionamento avanzato per la stessa applicazione aziendale, spingendoci oltre le attuali capacità.

Comprendere gli agenti LLM

Gli agenti LLM sono sistemi IA avanzati di nuova generazione, specificamente progettati per eseguire compiti complessi che richiedono capacità di ragionamento sofisticate. Sono in grado di anticipare le esigenze, di ricordare le conversazioni passate e di utilizzare una varietà di strumenti esterni per modulare e aggiustare le loro risposte in base alla situazione e allo stile richiesto. Costituiscono una progressione naturale del paradigma RAG, rappresentando un approccio in cui i modelli linguistici all'avanguardia vengono potenziati con sistemi esterni, strumenti o funzioni, al fine di prendere decisioni autonome e intraprendere azioni concrete. In un sistema IA composito, un agente può essere concettualizzato come un motore decisionale dotato di memoria, capacità di introspezione, utilizzo di strumenti e molto altro ancora. Possiamo considerarli come motori decisionali super intelligenti, capaci di apprendere, ragionare e agire in modo indipendente: l'obiettivo ultimo della creazione di un'applicazione IA veramente autonoma e proattiva.

I componenti chiave di un'applicazione agente

Un'applicazione agente è composta da diversi elementi interconnessi che lavorano insieme per abilitare le sue capacità avanzate. I componenti chiave di un'applicazione agente includono:

  • Il Core LLM (Modello, Prompt e Personalizzazione)

L'elemento principale di qualsiasi framework di agenti è un modello linguistico generale pre-addestrato ad alte prestazioni, capace di elaborare e comprendere i dati. L'interazione con questi modelli inizia con la creazione di prompt specifici che forniscono un contesto essenziale, guidando l'agente su come rispondere, quali strumenti utilizzare e quali obiettivi raggiungere durante l'interazione. Un framework di agenti, come quello di Databricks, consente anche un'ampia personalizzazione, permettendo di assegnare un'identità distinta al modello. Ciò significa che è possibile adattare le sue caratteristiche e competenze per soddisfare al meglio i requisiti di un compito o di un'interazione particolare. In definitiva, un agente LLM combina in modo fluido capacità avanzate di elaborazione dei dati con funzionalità personalizzabili, rendendolo uno strumento inestimabile per gestire diverse attività con precisione e flessibilità.

  • Memoria

La memoria è un componente cruciale dell'architettura di un agente. Funge da archivio temporaneo che l'agente utilizza per conservare le conversazioni. Può trattarsi di una memoria di lavoro a breve termine, dove l'agente LLM mantiene le informazioni correnti con un contesto immediato e cancella la memoria una volta completato il compito. Questa forma di memoria è volatile e temporanea.

D'altra parte, esiste la memoria a lungo termine (a volte denominata memoria episodica), che conserva le conversazioni di lunga durata e può aiutare l'agente a comprendere schemi, apprendere da compiti precedenti e richiamare informazioni per prendere decisioni migliori in interazioni future. Questa conversazione è tipicamente persistente in un database esterno, come ad esempio un database vettoriale. La combinazione di queste due forme di memoria consente a un agente di fornire risposte personalizzate e di funzionare meglio in base alle preferenze dell'utente nel tempo. È importante notare di non confondere la memoria dell'agente con la memoria conversazionale del nostro LLM; entrambe servono a scopi diversi e distinti.

  • Pianificazione e Ragionamento

Il componente successivo di un agente LLM è la sua capacità di pianificazione, che lo aiuta a scomporre compiti complessi in sotto-compiti gestibili ed eseguire ciascuno di essi in sequenza. Durante la formulazione del piano, il componente di pianificazione può impiegare diverse tecniche di ragionamento, come il ragionamento a catena di pensiero (Chain of Thought) o il ragionamento gerarchico, simile agli alberi decisionali, per scegliere il percorso più efficace da seguire. Una volta creato il piano, gli agenti lo esaminano e ne valutano l'efficacia attraverso vari meccanismi di feedback interni. Alcuni metodi comuni utilizzati per questo scopo includono ReAct e Reflexion. Questi metodi aiutano gli LLM a risolvere compiti complessi iterando attraverso una sequenza di pensieri e osservando i risultati delle proprie azioni. Il processo si ripete, consentendo un miglioramento iterativo e continuo delle prestazioni dell'agente.

In un tipico chatbot multi-turno con un singolo agente LLM, la pianificazione e l'orchestrazione sono eseguite da un unico modello linguistico. Tuttavia, in un framework multi-agente, agenti distinti possono essere designati per eseguire compiti specifici come il routing delle richieste, la pianificazione dettagliata e altre funzioni specializzate. Approfondiremo ulteriormente questo concetto nella prossima parte del blog, dedicata al framework multi-agente e alle sue implicazioni per la creazione di sistemi IA ancora più sofisticati e distribuiti.

  • Strumenti

Gli strumenti sono gli elementi costitutivi fondamentali degli agenti; essi eseguono compiti diversi secondo le istruzioni impartite dal nucleo centrale dell'agente. Gli strumenti possono essere esecutori di compiti di varia natura e forma. Possono includere chiamate API per interagire con servizi esterni, funzioni Python o SQL per l'elaborazione interna dei dati, moduli per la ricerca web per accedere a informazioni aggiornate, capacità di codifica per generare o eseguire codice, l'ambiente Databricks Genie per compiti specifici sulla piattaforma, o qualsiasi altra funzione personalizzata che si desideri implementare per lo strumento. Con l'integrazione di questi strumenti, un agente LLM è in grado di eseguire compiti specifici che vanno oltre le sue capacità intrinseche di elaborazione del linguaggio, estendendo notevolmente il suo raggio d'azione e la sua utilità in scenari reali.