Multi agente
Il Tree Agent supporta nativamente la gestione di più agenti. Questa caratteristica rende possibile organizzare dei flussi più complessi in modo ordinato, e programmare comportamenti ancora più personalizzati agli utenti. Ogni agente dispone di un nodo di tipo agent in testa, dove è possibile specificare un ruolo distinto, inltre, il framework memorizza per ciascun agente l'ultimo nodo eseguito e l'ultimo step concluso. Tramite la proprietà resume = True disponibile nell'oggetto restituito dalle callback after e before_run è possibile passare l'esecuzione tra un agente e l'altro riprendendola dall'ultimo nodo e step eseguiti.
Nel caso in cui si utilizza il resume = True il node_target deve necessariamente essere un nodo di tipo agente, in quel caso infatti il nodo da eseguire sarà poi individuat automaticamente in base allo stato memorizzato nell'agente.
Tramite le callback after e before_run è comunque possibile indicare un nodo presente in un agente diverso dall'attuale senza impostare resume = True, in quel caso, l'esecuzione sarà forzata partendo dal nodo e lo step indicati ingorando quelli memorizzati nell'agente.
Spostamento tra agenti
Lo spostamento tra nodi presenti in agenti distinti avviene in gran parte seguendo le stesse logiche applicate tra nodi dello stesso agente. Nello specifico esistono questi 5 meccanismi per spostarsi tra i nodi:
| Metodo | Supporta il multi agent | Descrizione |
|---|---|---|
Durante lo step explore | ⛔ | Automaticamente durante lo step explore il sistema si sposta nel nodo figlio più promettente se questo possiede dei chunk con similarità minima combinata sufficiente |
Durante il reach_anchor | ⛔ | Automaticamente in alcune circostanze ci si sposta sul nodo genitore |
Tramite after | ✅ | Manualmente tramite node_target restituito dalla callback after |
Tramite before_rum | ✅ | Manualmente tramite node_target restituito dalla callback before_run |
Tramite fallback | ✅ | Manualmente tramite node_target restituito dalla callback fallback |
Come si può osservare, ad eccezione dei primi due metodi che si basano su relazioni di adiacenza nel grafo, tutti i metodi manuali permettono di indicare anche nodi appartenenti ad agenti distinti.