Crea un assistente AI autonomo con il framework Mosaic AI Agent di Databricks

I modelli di linguaggio di grandi dimensioni (LLM) stanno rivoluzionando il modo in cui interagiamo con la tecnologia, sfruttando l'elaborazione avanzata del linguaggio naturale per eseguire compiti complessi. Gli agenti LLM sono sistemi di intelligenza artificiale avanzati di prossima generazione, progettati per eseguire compiti complessi che richiedono ragionamento, pianificazione, memoria di conversazioni passate e l'uso di diversi strumenti per adattare le risposte. Il framework Mosaic AI Agent permette agli sviluppatori di creare sistemi di agenti su scala di produzione attraverso qualsiasi LLM, consentendo la personalizzazione e abilitando gli agenti a prendere decisioni autonome.

Negli ultimi anni, abbiamo assistito a modelli LLM all'avanguardia che hanno permesso un'ampia gamma di applicazioni innovative. L'anno scorso ha segnato un passaggio verso la RAG (Generazione Aumentata dal Recupero), dove gli utenti hanno creato chatbot AI interattivi alimentando gli LLM con i loro dati organizzativi (tramite l'embedding vettoriale). Ma stiamo solo scalfendo la superficie. Sebbene potente, la "Generazione Aumentata dal Recupero" limita la nostra applicazione al recupero di conoscenza statica. Immaginate un tipico agente di servizio clienti che non solo risponde a domande basate su dati interni, ma agisce con un intervento umano minimo. Con gli LLM, possiamo creare applicazioni decisionali completamente autonome che non solo rispondono, ma agiscono anche sulle query degli utenti. Le possibilità sono infinite: dall'analisi dei dati interni alla ricerca web e oltre. La comprensione semantica e la capacità linguistica dei modelli di linguaggio di grandi dimensioni ci consentono di creare applicazioni decisionali completamente autonome che possono non solo rispondere, ma anche "agire" basandosi sulle query degli utenti.

Il framework Mosaic AI Agent di Databricks

Databricks ha lanciato il framework Mosaic AI Agent che consente agli sviluppatori di creare un framework per agenti su scala di produzione attraverso qualsiasi LLM. Una delle capacità principali è la creazione di strumenti all'interno di Databricks progettati per aiutare a costruire, implementare e valutare agenti AI di qualità di produzione, come applicazioni di Generazione Aumentata dal Recupero (RAG) e molto altro. Gli sviluppatori possono creare e registrare agenti utilizzando qualsiasi libreria e integrarli con MLFlow. Possono parametrizzare gli agenti per sperimentare e iterare rapidamente nello sviluppo. Il tracciamento degli agenti permette agli sviluppatori di registrare, analizzare e confrontare le tracce per eseguire il debug e comprendere come l'agente risponde alle richieste.

In questa prima parte del blog, esploreremo gli agenti, i loro componenti principali e costruiremo un agente AI autonomo e multi-turno di servizio clienti per un'azienda di vendita al dettaglio online, utilizzando uno dei modelli Fondamentali di Databricks (open source) con le migliori prestazioni sulla Piattaforma. Nella prossima serie del blog, esploreremo il framework multi-agente e costruiremo un agente di ragionamento avanzato a più passaggi per la stessa applicazione aziendale.

Che cosa sono gli agenti LLM?

Gli agenti LLM sono sistemi di intelligenza artificiale avanzati di prossima generazione, progettati per eseguire compiti complessi che richiedono ragionamento. Possono pensare in anticipo, ricordare conversazioni passate e utilizzare vari strumenti per adattare le loro risposte in base alla situazione e allo stile necessari. Essi rappresentano una progressione naturale della RAG, un approccio in cui i modelli di linguaggio di grandi dimensioni all'avanguardia sono potenziati con sistemi/strumenti o funzioni esterne per prendere decisioni autonome. In un sistema AI composito, un agente può essere considerato un motore decisionale potenziato con memoria, capacità di introspezione, uso di strumenti e molto altro. Pensate a loro come motori decisionali super intelligenti che possono imparare, ragionare e agire in modo indipendente: l'obiettivo finale di creare un'applicazione AI veramente autonoma.

I componenti chiave di un'applicazione agentica

I componenti chiave di un'applicazione agentica includono:

Il Modello di Linguaggio di Grandi Dimensioni (LLM)

  • L'elemento principale di un framework di agente è un modello di linguaggio di grandi dimensioni pre-addestrato di uso generale che può elaborare e comprendere i dati.
  • Questi sono generalmente modelli pre-addestrati ad alte prestazioni; l'interazione con questi modelli inizia creando prompt specifici che forniscono un contesto essenziale, guidandoli su come rispondere, quali strumenti utilizzare e gli obiettivi da raggiungere durante l'interazione.
  • Un framework di agente consente anche la personalizzazione, permettendo di assegnare al modello un'identità distinta. Questo significa che è possibile adattare le sue caratteristiche e l'esperienza per allinearsi meglio alle esigenze di un particolare compito o interazione.
  • In definitiva, un agente LLM combina perfettamente capacità avanzate di elaborazione dei dati con caratteristiche personalizzabili, rendendolo uno strumento inestimabile per gestire diverse attività con precisione e flessibilità.

La Memoria

La memoria è un componente importante di un'architettura agentica. È una memoria temporanea che l'agente utilizza per salvare le conversazioni.

  • Memoria a breve termine: Questa è una memoria di lavoro a breve termine dove l'agente LLM mantiene le informazioni attuali con contesto immediato e cancella la memoria una volta completato il compito. Questo è temporaneo.
  • Memoria a lungo termine: D'altra parte, abbiamo la memoria a lungo termine (a volte chiamata memoria episodica) che mantiene conversazioni prolungate e può aiutare l'agente a comprendere schemi, imparare da compiti precedenti e ricordare informazioni per prendere decisioni migliori in interazioni future. Questa conversazione è generalmente persistita in un database esterno (ad esempio, un database vettoriale).

La combinazione di queste due memorie consente a un agente di fornire risposte personalizzate e di lavorare meglio in base alle preferenze dell'utente nel tempo. Ricorda, non confondere la memoria dell'agente con la memoria conversazionale del nostro LLM. Entrambe servono a scopi diversi.

La Capacità di Pianificazione

Il componente successivo di un agente LLM è la capacità di pianificazione, che aiuta a scomporre compiti complessi in compiti gestibili ed esegue ogni compito. Nel formulare il piano, il componente pianificatore può utilizzare molteplici tecniche di ragionamento, come il ragionamento a catena di pensiero o il ragionamento gerarchico, come gli alberi decisionali, per decidere quale percorso seguire.

Una volta creato il piano, gli agenti lo rivedono e valutano la sua efficacia attraverso vari meccanismi di feedback interno. Alcuni metodi comuni includono ReAct e Reflexion. Questi metodi aiutano gli LLM a risolvere compiti complessi ciclando attraverso una sequenza di pensieri e osservando i risultati. Il processo si ripete per un miglioramento iterativo.

In un tipico chatbot multi-turno con un singolo agente LLM, la pianificazione e l'orchestrazione sono eseguite da un unico modello di linguaggio, mentre in un framework multi-agente, agenti separati possono eseguire compiti specifici come l'instradamento, la pianificazione, ecc. Discuteremo questo più approfonditamente nella prossima parte del blog sul framework multi-agente.

Gli Strumenti

Gli strumenti sono i blocchi costitutivi degli agenti, eseguono compiti diversi secondo le indicazioni del nucleo centrale dell'agente. Gli strumenti possono essere vari esecutori di compiti di qualsiasi forma, come chiamate API, funzioni Python o SQL, ricerca web, codifica, lo spazio di lavoro Databricks Genie o qualsiasi altra cosa si desideri che lo strumento esegua. Con l'integrazione degli strumenti, un agente LLM esegue compiti specifici attraverso flussi di lavoro, raccogliendo osservazioni e riunendo le informazioni necessarie per completare i sotto-compiti. Quando si costruiscono queste applicazioni, una cosa da considerare è la durata del processo o dell'interazione che l'agente deve gestire, assicurandosi che gli strumenti siano ottimizzati per efficienza e scalabilità.