Passa al contenuto principale

Introduzione

Il Tree Agent permette di realizzare dei super agenti in grado di compiere diverse azioni in base a come si sviluppa la conversazione. Il suo nome deriva dalla tecnica con cui è realizzato: un grafo organizzato ad albero. Per ciascun nodo che si decide di inserire dentro il grafo, si disporrà di un punto di controllo aggiuntivo che permette di ottenere comportamenti complessi finemente programmabili.

In generale per ottenere agenti in grado di compiere task personalizzati si può ricorrere a due tecniche principali:

  1. Fine-tuning: tramite un allenamento extra si aggiungono dei layer alla rete neurale del LLM per modificare il suo comportamento;
  2. Prompt engineering: tramite un prompt con una struttura opportuna e con le giuste istruzioni si guida un modello generico ad eseguire operazioni specifiche.

Il Tree Agent segue la seconda strada.

Idea base

Generalmente un sistema RAG si compone di un vector store che raccoglie una collezione di chunk associati ciascuno al suo embedding. Ogni volta che si esegue una query, viene prima calcolato l'embedding, e poi vengono recuperati i chunk con gli emebedding più simili a quello della query. I chunk trovati vengono quindi aggiunti al prompt per dare il contesto utile a produrre risposte precise e puntuali.

informazioni

Un chunk è un pezzo di informazione abbastanza piccolo da poter essere caricato su un singolo prompt di un LLM. Per funzionare in maniera ottimale, il contenuto di un chunk dovrebbe essere il più possibile circostritto.

informazioni

Un embedding è un vettore di lunghezza variabile in base al modello embedder impiegato (generalmente tra 256 e 3072 elementi). Questo vettore può essere immaginato come un riassunto del contenuto del chunk. Gli embedder sono studiati per fare in modo che tanto più sono correlati due chunk, tanto più sono simili i loro embedding.

Nel Tree Agent, questo flusso viene incluso, ma anche esteso attraverso nuove logiche. Nello specifico viene definito un grafo ad albero, in cui alcuni nodi specifici (spesso i nodi foglia) includono un vector store distinto. In generale, ogni volta che si svolge una nuova interazione, a partire dall'ultimo nodo eseguito durante l'interazione precedente, si scende in direzione del nodo più promettente. Durante il percorso che separa i due estremi, ciascun nodo può contribuire a deviare o interrompere il flusso.

informazioni

Ogni nodo racchiude al suo interno un insieme di proprietà e di callback che dipendono dalla sua tipologia.

Architettura generale dell'albero

Funzionalità principali

Alcune delle caratteristiche distintive del Tree Agent rispetto ad altre soluzioni UI based progettate per la realizzazione di agenti AI sono:

  • coding: dentro ogni nodo che si aggiunge al flusso dell'agente è possibile sviluppare apposite funzioni python che consentono un controllo molto più fine di quello offerto da soluzioni completamente no code;
  • modulare: il grafo del Tree Agent può includere componenti: nodi al cui interno sono contenuti altri nodi. Grazie a questa struttura è possibile astrarre e realizzare e mantenere con maggiore semplicità progetti complessi;
  • multi agente: è possibile suddividere i nodi tra più agenti interconnessi tra loro. Grazie a questa funzinalità è possibile ottenere dei comportamenti ancora più avanzati e flessibili pronti per essere adattati a qualsiasi esigenza;
  • persistente: oltre allo storico della chat, il tree-agent dispone di una memoria strutturata a cui ciascun nodo può leggere e scrivere informazioni utili;
  • interconnesso: il comportamento del Tree Agent può essere adatatto anche a seguito del rilascio tramite diversi canali:
    • metadati: oltre al contenuto della chat inserto dal cliente, e le risposte restituite dall'agente, il Tree Agent può comunicare con il frontend tramite metadati strutturati che permettono di avere un esperienza ancora più personalizzata e integrata con il sito ospitante;
    • markers: in fase di progettazione è possibile impostare alcune variabili come il modello LLM, i prompt... in modo da rendere quest'ultime facilmente modificabili dal cliente in autonomia;
    • API chunk: la documentazione divisa in chunk e passata al modello può essere aggiornata tramite un'apposita interfaccia API e senza passare per la progettazione;
  • interazione avanzata: non solo testo, il Tree Agent può ricevere ed inviare anche immagini e documenti. Inoltre, in caso di domande chiuse, è possibile mostrare dei pulsanti in chat personalizzabili.