Ricercatori di Microsoft propongono TaskWeaver un framework di machine learning basato sul codice per la creazione di agenti autonomi alimentati da LLM.

I ricercatori di Microsoft presentano TaskWeaver un framework basato su machine learning e codice per creare agenti autonomi alimentati da LLM.

I modelli di grande dimensione del linguaggio (LLM) hanno dimostrato impressionanti capacità di creazione e interpretazione del linguaggio naturale. Esempi di questi modelli sono GPT, Claude, Palm e Llama. Numerose applicazioni, come chatbot, assistenti virtuali e sistemi di generazione di contenuti, hanno ampiamente utilizzato questi modelli. LLM può cambiare completamente il modo in cui le persone interagiscono con la tecnologia offrendo un’esperienza più intuitiva e naturale. Un agente è definito come un’entità autonoma che può pianificare compiti, monitorare il suo ambiente e intraprendere le azioni appropriate in risposta. Gli agenti che utilizzano modelli di grande dimensione del linguaggio (LLM) o altre tecnologie di intelligenza artificiale rientrano in questa categoria.

Molte strutture hanno cercato di utilizzare LLM per conversazioni orientate al compito, tra cui Langchain, Semantic Kernel, Transformers Agent, Agents, AutoGen e JARVIS. Utilizzando queste strutture, gli utenti possono comunicare con i bot alimentati da LLM ponendo domande in linguaggio naturale e ottenendo risposte. Tuttavia, molte strutture presentano svantaggi che limitano le loro capacità di svolgere attività di analisi dei dati e situazioni peculiari a una determinata area. L’assenza di supporto nativo per la gestione di struture di dati complesse nella maggior parte delle strutture attuali è uno dei loro principali svantaggi. Per applicazioni di analisi dei dati e molti altri scenari aziendali, gli agenti alimentati da LLM devono frequentemente gestire strutture di dati complesse come liste nidificate, dizionari o frame di dati.

Tuttavia, molte strutture attuali hanno bisogno di assistenza nella gestione di queste strutture, specialmente quando si tratta di condividere dati tra diversi plugin o sessioni di chat. In queste situazioni, queste strutture codificano strutture complesse come stringhe o oggetti JSON nelle richieste o persistono dati su disco. Questi metodi funzionano, tuttavia, quando si lavora con grandi set di dati in particolare, possono diventare complessi ed aumentare i tassi di errore. Un altro svantaggio dei metodi attuali è l’incapacità di essere configurati per includere conoscenze di dominio. Sebbene queste strutture offrano strumenti e esempi di ingegneria rapida, devono offrire un modo sistematico per incorporare informazioni specifiche del dominio nel processo di pianificazione e generazione del codice.

Controllare il processo di pianificazione e generazione del codice in linea con le specifiche esigenze di dominio è difficile a causa del vincolo. Un altro problema di molte strutture attuali è che potrebbero essere più flessibili, rendendo difficile soddisfare la vasta gamma di requisiti degli utenti. I plugin possono gestire requisiti tipici, ma potrebbero avere bisogno di assistenza per gestire richieste ad hoc. Scrivere un plugin diverso per ogni query ad hoc non è fattibile. La capacità dell’agente di sviluppare codice unico per eseguire la richiesta dell’utente diventa essenziale in questi casi. Per risolvere questo problema, è necessaria una soluzione che combini senza soluzione di continuità l’esecuzione del codice su misura con l’esecuzione del plugin.

Per superare questi svantaggi, il team di ricerca di Microsoft ha suggerito TaskWeaver, un framework di codifica per la creazione di agenti autonomi alimentati da LLM. La caratteristica unica di TaskWeaver è la capacità di trattare i plugin definiti dall’utente come funzioni chiamabili, convertendo ciascuna richiesta dell’utente in codice eseguibile. TaskWeaver offre supporto per strutture dati complesse, uso flessibile dei plugin e selezione dinamica dei plugin, che lo aiutano a superare i limiti di altri framework. Implementa logiche complicate utilizzando le capacità di codifica di LLM e integra conoscenze specifiche del dominio attraverso esempi.

Inoltre, TaskWeaver offre agli sviluppatori un’interfaccia intuitiva e ha migliorato significativamente l’esecuzione sicura del codice creato. Il team di ricerca descrive l’architettura e l’implementazione di TaskWeaver in questo documento e diversi studi di casi che mostrano il modo in cui gestisce diversi compiti. TaskWeaver offre un framework solido e adattabile per la creazione di agenti conversazionali con intelligenza che possono gestire compiti impegnativi e adattarsi alle specifiche condizioni del dominio.