{"id":2209,"date":"2026-05-20T09:20:43","date_gmt":"2026-05-20T07:20:43","guid":{"rendered":"https:\/\/userbot.ai\/blog\/?p=2209"},"modified":"2026-05-20T09:20:47","modified_gmt":"2026-05-20T07:20:47","slug":"osservabilita-e-debug-degli-agenti-ai","status":"publish","type":"post","link":"https:\/\/userbot.ai\/blog\/osservabilita-e-debug-degli-agenti-ai\/","title":{"rendered":"Osservabilit\u00e0 e debug degli Agenti AI: come funziona in pratica"},"content":{"rendered":"\n<p>Quando un agente AI fa qualcosa di sbagliato, risponde male o non esegue un&#8217;azione che dovrebbe eseguire, qual \u00e8 la prima cosa che fai?<\/p>\n\n\n\n<p>Se la risposta \u00e8 &#8220;rileggo il prompt e sperimento&#8221;, sei in buona compagnia. Ma sei anche in un posto che, a lungo andare, non scala.<\/p>\n\n\n\n<p>Il problema non \u00e8 la risposta sbagliata in s\u00e9. Il problema \u00e8 che non sai perch\u00e9 \u00e8 successa. E se non sai perch\u00e9 \u00e8 successa, non puoi correggere in modo affidabile: puoi solo sperare che la prossima versione funzioni meglio. Questo va bene per un prototipo. Non va bene per un sistema in produzione.<\/p>\n\n\n\n<p><strong>L&#8217;osservabilit\u00e0 e il debug degli agenti AI<\/strong> sono esattamente la risposta a questo problema: la capacit\u00e0 di aprire quella scatola nera e leggere quello che c&#8217;\u00e8 dentro. In questo articolo vediamo perch\u00e9 \u00e8 pi\u00f9 difficile di quanto sembri, quali sono i livelli del problema, e come Userbot 3.0 li affronta in modo concreto con strumenti pensati per sviluppatori, team operations e auditor.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Perch\u00e9 il debug degli agenti AI non funziona come il debug tradizionale<\/strong><\/h2>\n\n\n\n<p>Con i vecchi chatbot a flusso fisso la vita era pi\u00f9 semplice, almeno su questo fronte. L&#8217;utente diceva X, il bot seguiva il ramo Y, qualcosa andava storto nel ramo Y. Trovavi il ramo, correggevi il testo, fine. La logica era tutta l\u00ec, visibile, percorribile passo dopo passo.<\/p>\n\n\n\n<p>Gli agenti AI funzionano in modo fondamentalmente diverso. Non seguono un percorso predefinito: <strong>prendono decisioni<\/strong>. Valutano il contesto della conversazione, scelgono quale <a href=\"https:\/\/userbot.ai\/blog\/tools-quando-lagente-decide-davvero-cosa-fare\/\">tool<\/a> chiamare, stabiliscono se hanno abbastanza informazioni per rispondere o se devono raccoglierne altre, decidono quando passare la mano a un operatore umano. Ogni interazione \u00e8 il risultato di una catena di ragionamenti che, nella maggior parte dei sistemi, rimane completamente invisibile.<\/p>\n\n\n\n<p>Quello che vedi dall&#8217;esterno \u00e8 solo l&#8217;inizio e la fine: l&#8217;input dell&#8217;utente e l&#8217;output dell&#8217;agente. Tutto ci\u00f2 che \u00e8 successo nel mezzo (quale routing \u00e8 stato scelto, quali fonti sono state consultate, quali tool sono stati invocati, quali variabili erano disponibili in quel momento) rimane opaco. \u00c8 quella che si chiama &#8220;black box&#8221; dell&#8217;AI, e finch\u00e9 resta tale il <strong>debug degli agenti AI<\/strong> \u00e8 impossibile da fare in modo sistematico. Si va avanti per tentativi, il che non \u00e8 un metodo: \u00e8 una speranza.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Cos&#8217;\u00e8 l&#8217;osservabilit\u00e0 degli agenti AI, e perch\u00e9 \u00e8 pi\u00f9 difficile di quanto sembri<\/strong><\/h2>\n\n\n\n<p>Nel software tradizionale, l&#8217;osservabilit\u00e0 \u00e8 un concetto consolidato: \u00e8 la capacit\u00e0 di capire lo stato interno di un sistema a partire dai suoi output, attraverso metriche, log e trace. \u00c8 una disciplina matura, con strumenti maturi.<\/p>\n\n\n\n<p>Nei sistemi agentici il concetto di partenza \u00e8 lo stesso, ma la natura del problema \u00e8 diversa. Non stai tracciando l&#8217;esecuzione di codice deterministico, dove lo stesso input produce sempre lo stesso output. Stai tracciando il <strong>ragionamento di un sistema probabilistico<\/strong>, che pu\u00f2 prendere strade diverse a seconda di come \u00e8 formulata la domanda, di quale versione del modello \u00e8 in uso, di quali informazioni erano disponibili nel knowledge base in quel momento.<\/p>\n\n\n\n<p>Questo rende l&#8217;<strong>osservabilit\u00e0 degli agenti AI<\/strong> sia pi\u00f9 difficile che pi\u00f9 necessaria rispetto al software classico. Pi\u00f9 difficile perch\u00e9 non basta loggare &#8220;l&#8217;agente ha risposto Y a X&#8221;: devi documentare perch\u00e9 ha risposto Y, quale percorso ha selezionato, su quali fonti si \u00e8 basato, quali tool ha chiamato con quali parametri, e come tutto questo ha influenzato il risultato finale. Pi\u00f9 necessaria perch\u00e9 senza questa visibilit\u00e0 qualsiasi ottimizzazione \u00e8 un&#8217;operazione nel buio: puoi modificare il prompt e vedere che le cose &#8220;sembrano andare meglio&#8221;, senza poter sapere se hai risolto il problema o se lo stai solo spostando altrove.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>I tre livelli del problema<\/strong><\/h2>\n\n\n\n<p>Quando si parla di <strong>monitoraggio degli agenti AI<\/strong>, vale la pena distinguere tre livelli diversi, perch\u00e9 richiedono risposte diverse.<\/p>\n\n\n\n<p>Il primo \u00e8 il <strong>livello della conversazione<\/strong>: cosa ha detto l&#8217;utente, cosa ha risposto l&#8217;agente. \u00c8 il pi\u00f9 visibile, ed \u00e8 il livello su cui si concentra di solito il feedback degli utenti finali. Il problema \u00e8 che da solo racconta pochissimo sulle cause. Una risposta sbagliata pu\u00f2 dipendere da un routing errato, da una fonte di conoscenza incompleta, da un tool che ha restituito un errore gestito male, da un prompt che non copre un caso limite. Senza andare pi\u00f9 in profondit\u00e0, questi scenari sono indistinguibili.<\/p>\n\n\n\n<p>Il secondo \u00e8 il <strong>livello dell&#8217;esecuzione<\/strong>: quali componenti sono stati attivati, in quale ordine, con quali input e output. Qui troviamo il router (quale percorso ha scelto e perch\u00e9), il retriever (quali documenti ha recuperato), i tool chiamati con i loro parametri e le loro risposte, le condizioni valutate, le variabili aggiornate. \u00c8 il livello che permette di fare <strong>debug reale<\/strong>: se il router ha instradato male una richiesta puoi vederlo, se il retriever ha recuperato documenti poco pertinenti puoi intervenire sulla strategia, se un tool ha restituito un errore puoi capire se \u00e8 un problema di schema, di timeout o di parametri.<\/p>\n\n\n\n<p>Il terzo \u00e8 il <strong>livello del ragionamento<\/strong>: perch\u00e9 l&#8217;agente ha preso quella decisione? Quali alternative aveva valutato? Su quali criteri si \u00e8 basato? Non \u00e8 una curiosit\u00e0 tecnica. \u00c8 ci\u00f2 che permette di verificare se il comportamento dell&#8217;agente \u00e8 davvero allineato con le intenzioni di chi lo ha progettato, e di dimostrarlo quando serve, anche in contesti regolamentati.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Come funziona in pratica: i badge delle sessioni in Userbot<\/strong><\/h2>\n\n\n\n<p>Passiamo al concreto. Come si trasforma tutto questo in qualcosa di utilizzabile ogni giorno?<\/p>\n\n\n\n<p>In <strong>Userbot 3.0<\/strong>, il punto di accesso all&#8217;osservabilit\u00e0 \u00e8 la sezione <strong>Conversazioni<\/strong>. Ogni sessione, di test o di produzione, \u00e8 navigabile nel dettaglio: non una semplice trascrizione di messaggi, ma una mappa di tutti i blocchi che sono stati attraversati durante quell&#8217;interazione, ognuno con il proprio <strong>badge informativo<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"772\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2-1200x772.png\" alt=\"\" class=\"wp-image-2215\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2-1200x772.png 1200w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2-300x193.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2-768x494.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2-1536x988.png 1536w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2-542x349.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2-1084x697.png 1084w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2-792x509.png 792w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2-1230x791.png 1230w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.44.15-2.png 1912w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-element-caption\"><strong>Esempio di una sessione in Conversazioni<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>L&#8217;idea alla base \u00e8 semplice: ogni blocco del flusso, nel momento in cui viene eseguito, produce una traccia. Quella traccia viene resa leggibile come badge e resa accessibile direttamente dalla sessione. Il risultato \u00e8 che puoi ripercorrere un&#8217;interazione passo dopo passo, dall&#8217;input iniziale fino all&#8217;ultima azione eseguita, e capire esattamente cosa \u00e8 successo in ogni punto. Non devi ricostruire niente: \u00e8 tutto l\u00ec.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Blocchi non agentici: codice, HTTP, condizioni<\/strong><\/h3>\n\n\n\n<p>Anche i blocchi &#8220;tradizionali&#8221;, quelli senza LLM, hanno il loro badge, e spesso \u00e8 gi\u00e0 sufficiente per risolvere il problema.<\/p>\n\n\n\n<div class=\"wp-block-group has-blush-light-purple-gradient-background has-background is-nowrap is-layout-flex wp-container-core-group-is-layout-a5ad78dc wp-block-group-is-layout-flex\" style=\"padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0\"><img loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"76\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.53.09.png\" alt=\"\" class=\"wp-image-2217\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.53.09.png 458w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.53.09-300x50.png 300w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><figcaption class=\"wp-element-caption\"><strong>Badge di un blocco Codice JS<\/strong><\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0\"><img loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"576\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.52.57.png\" alt=\"\" class=\"wp-image-2218\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.52.57.png 902w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.52.57-300x192.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.52.57-768x490.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.52.57-542x346.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.52.57-792x506.png 792w\" sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<p>Un blocco di <strong>codice JavaScript<\/strong> mostra il codice che \u00e8 stato eseguito, l&#8217;esito e, se qualcosa \u00e8 andato storto, il messaggio di errore con il dettaglio necessario per capire dove e perch\u00e9 si \u00e8 rotto. <\/p>\n\n\n\n<div class=\"wp-block-group has-background is-nowrap is-layout-flex wp-container-core-group-is-layout-51ff4772 wp-block-group-is-layout-flex\" style=\"background:radial-gradient(rgb(255,206,236) 0%,rgb(152,150,240) 100%);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"878\" height=\"82\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.18.png\" alt=\"\" class=\"wp-image-2220\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.18.png 878w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.18-300x28.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.18-768x72.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.18-542x51.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.18-792x74.png 792w\" sizes=\"auto, (max-width: 878px) 100vw, 878px\" \/><figcaption class=\"wp-element-caption\"><strong>Badge di un blocco Richiesta HTTP<\/strong><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"742\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.31-2.png\" alt=\"\" class=\"wp-image-2223\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.31-2.png 766w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.31-2-300x291.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-14.59.31-2-542x525.png 542w\" sizes=\"auto, (max-width: 766px) 100vw, 766px\" \/><\/figure>\n<\/div>\n\n\n\n<p>Un blocco di <strong>request HTTP<\/strong> ti mostra l&#8217;input della chiamata, la risposta ricevuta dal sistema esterno e quali valori sono stati poi salvati nelle variabili del flusso, utile per verificare se l&#8217;integrazione ha restituito quello che ti aspettavi e se i dati sono stati mappati nel modo corretto. <\/p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"background:radial-gradient(rgb(255,206,236) 0%,rgb(152,150,240) 100%);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-c385debf wp-block-group-is-layout-constrained\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--20);margin-right:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--20);margin-left:var(--wp--preset--spacing--80)\"><img loading=\"lazy\" decoding=\"async\" width=\"354\" height=\"88\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-15.31.57.png\" alt=\"\" class=\"wp-image-2226\" style=\"border-style:none;border-width:0px;aspect-ratio:4.022753128555176;width:363px;height:auto\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-15.31.57.png 354w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-13-alle-15.31.57-300x75.png 300w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><figcaption class=\"wp-element-caption\"><strong>Badge di un blocco Condizioni<\/strong><\/figcaption><\/figure>\n<\/div><\/div><\/div>\n\n\n\n<p>Un blocco di <strong>verifica condizione<\/strong> ti mostra cosa \u00e8 stato valutato: il valore della variabile presa in esame, la condizione applicata, il ramo che \u00e8 stato scelto.<\/p>\n\n\n\n<p>In tutti questi casi, e per qualsiasi tipo di blocco, il badge fa una cosa sola, ma la fa bene: trasforma ogni blocco da elemento opaco a elemento leggibile. Non devi ipotizzare cosa ha fatto, lo vedi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Blocchi agentici: prompt, parametri e memoria<\/strong><\/h3>\n\n\n\n<p>Nei blocchi che coinvolgono un agente AI il badge si arricchisce ulteriormente.<\/p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"background:radial-gradient(rgb(255,206,236) 0%,rgb(152,150,240) 100%)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\" style=\"margin-top:var(--wp--preset--spacing--20);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"719\" height=\"531\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-16.29.25.png\" alt=\"\" class=\"wp-image-2234\" style=\"aspect-ratio:1.35407899308907\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-16.29.25.png 719w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-16.29.25-300x222.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-16.29.25-542x400.png 542w\" sizes=\"auto, (max-width: 719px) 100vw, 719px\" \/><figcaption class=\"wp-element-caption\"><strong>Focus sulla sezione Impostazioni del badge del blocco Agente Custom<\/strong><\/figcaption><\/figure>\n<\/div><\/div><\/div>\n\n\n\n<p>Per ogni agente trovi esposti i parametri di configurazione e di chiamata: il prompt inserito, il modello selezionato, la temperatura, i max token. Trovi la <strong><a href=\"https:\/\/userbot.ai\/blog\/memoria-negli-agenti-ai-breve-lunga-e-rischi\/\">memoria attivata<\/a><\/strong> in quel momento (conversazionale o profonda) cos\u00ec puoi vedere esattamente quale contesto era disponibile per l&#8217;agente quando ha elaborato la risposta. Se la risposta \u00e8 sembrata &#8220;scollata&#8221; dalla conversazione precedente, spesso \u00e8 perch\u00e9 la memoria non era configurata come pensavi.<\/p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"background:radial-gradient(rgb(255,206,236) 0%,rgb(152,150,240) 100%)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"1136\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.46.29-1.png\" alt=\"\" class=\"wp-image-2228\" style=\"aspect-ratio:0.845088070166984;width:435px;height:auto\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.46.29-1.png 960w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.46.29-1-254x300.png 254w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.46.29-1-768x909.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.46.29-1-542x641.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.46.29-1-792x937.png 792w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><figcaption class=\"wp-element-caption\"><strong>Focus sui parametri e i chunk del badge del blocco dell&#8217;Agente Retriever<\/strong><\/figcaption><\/figure>\n<\/div><\/div><\/div>\n\n\n\n<p>Nel caso del <strong>Retriever Agent<\/strong> trovi anche i <a href=\"https:\/\/userbot.ai\/blog\/chunking-la-decisione-che-cambia-tutto\/\">chunk estratti<\/a> dalle fonti e utilizzati per costruire la risposta. Non solo &#8220;ha consultato la knowledge base&#8221;, ma quali porzioni specifiche di quali documenti sono state recuperate. Quando un retriever risponde in modo impreciso o fuori tema, questa \u00e8 la prima cosa da guardare: spesso il problema non \u00e8 nel prompt, ma nella qualit\u00e0 dei chunk o nella pertinenza delle fonti.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Il Thought of Process: la cosa pi\u00f9 importante<\/strong><\/h3>\n\n\n\n<p>La sezione pi\u00f9 preziosa del badge agentico si chiama <strong>Thought of Process<\/strong>, ed \u00e8 quella che cambia davvero il modo di lavorare con gli agenti AI.<\/p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"background:radial-gradient(rgb(255,206,236) 0%,rgb(152,150,240) 100%)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"978\" height=\"726\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.48.17.png\" alt=\"\" class=\"wp-image-2229\" style=\"aspect-ratio:1.3471096600729786;width:525px;height:auto\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.48.17.png 978w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.48.17-300x223.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.48.17-768x570.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.48.17-542x402.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.48.17-792x588.png 792w\" sizes=\"auto, (max-width: 978px) 100vw, 978px\" \/><figcaption class=\"wp-element-caption\"><strong>Focus sul Thought of Process del badge del blocco dell&#8217;Agente Router<\/strong><\/figcaption><\/figure>\n<\/div><\/div><\/div>\n\n\n\n<p>Non \u00e8 un log tecnico nel senso tradizionale. \u00c8 la spiegazione che l&#8217;agente produce su se stesso: perch\u00e9 ha risposto in quel modo, quale ragionamento ha seguito, quali elementi del contesto o del prompt hanno guidato la sua decisione. In sostanza, <strong>l&#8217;agente ti racconta cosa ha pensato<\/strong>.<\/p>\n\n\n\n<p>Immagina di ricevere una risposta inattesa da un agente. Prima del Thought of Process, il processo di debug era: formulare un&#8217;ipotesi su dove il prompt poteva essere ambiguo, fare una modifica, ritestare, sperare. Un ciclo lento, costoso, e spesso frustrante. Con il Thought of Process, salti quella fase: l&#8217;agente ti dice direttamente dove il prompt non era chiaro, cosa aveva capito e perch\u00e9 ha preso quella direzione.<\/p>\n\n\n\n<p>\u00c8 anche lo strumento che permette di distinguere due tipi di problema che all&#8217;esterno sembrano identici ma richiedono interventi completamente diversi: un agente che ha sbagliato perch\u00e9 il <strong>prompt era incompleto<\/strong>, e un agente che ha sbagliato perch\u00e9 le <strong>informazioni disponibili erano insufficienti o errate<\/strong>. Nel primo caso lavori sul prompt, nel secondo lavori sulle fonti. Senza il Thought of Process, spesso non sai da dove iniziare.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>I tool: sai sempre se sono stati chiamati e come \u00e8 andata<\/strong><\/h3>\n\n\n\n<p>Per i blocchi che coinvolgono tool, chiamate ad API esterne, integrazioni con CRM, ERP, sistemi di ticketing, il badge risponde sempre alle due domande fondamentali: il tool \u00e8 stato invocato? La chiamata \u00e8 andata a buon fine?<\/p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"background:radial-gradient(rgb(255,206,236) 0%,rgb(152,150,240) 100%)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"972\" height=\"828\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.52.21.png\" alt=\"\" class=\"wp-image-2230\" style=\"aspect-ratio:1.173918864640514;width:492px;height:auto\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.52.21.png 972w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.52.21-300x256.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.52.21-768x654.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.52.21-542x462.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-alle-10.52.21-792x675.png 792w\" sizes=\"auto, (max-width: 972px) 100vw, 972px\" \/><figcaption class=\"wp-element-caption\"><strong>Focus sulla sezione Tools del badge di un blocco agentico<\/strong><\/figcaption><\/figure>\n<\/div><\/div><\/div>\n\n\n\n<p>Sembra una cosa ovvia, ma in pratica risolve uno dei pattern di errore pi\u00f9 frustranti nel debug degli agenti AI. Quando un agente &#8220;non fa niente&#8221;, non apre il ticket, non aggiorna il record nel CRM, non invia la notifica, la prima cosa da capire \u00e8 se il problema \u00e8 nell&#8217;agente o nell&#8217;integrazione. Il tool \u00e8 stato chiamato? Se s\u00ec, cosa ha restituito? Se no, perch\u00e9 no? Con il badge questa informazione \u00e8 sempre l\u00ec, senza bisogno di andare a cercare nei log di sistema o fare debug lato API.<\/p>\n\n\n\n<p>Sapere se il tool \u00e8 stato chiamato con successo o meno ti dice immediatamente dove guardare dopo. E questo, in pratica, pu\u00f2 fare la differenza tra mezz&#8217;ora di debug e mezza giornata.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>L&#8217;osservabilit\u00e0 non si aggiunge dopo: va progettata dall&#8217;inizio<\/strong><\/h2>\n\n\n\n<p>Una cosa che abbiamo imparato costruendo sistemi agentici in produzione \u00e8 che l&#8217;osservabilit\u00e0 non \u00e8 una feature che si aggiunge a sistema pronto. \u00c8 una propriet\u00e0 che va progettata dall&#8217;inizio, nell&#8217;architettura. Se la pensi come un&#8217;aggiunta successiva, arrivi tardi: nel momento in cui ne hai davvero bisogno, le informazioni non ci sono.<\/p>\n\n\n\n<p>Questo significa che ogni componente (router, retriever, tool executor, agente di condizione) deve produrre output strutturati e tracciabili. Il sistema deve mantenere un contesto di esecuzione navigabile attraverso tutti i passaggi di un&#8217;interazione. E le informazioni esposte devono essere progettate per rispondere a domande specifiche, non solo per &#8220;registrare eventi&#8221;.<\/p>\n\n\n\n<p>In Userbot 3.0, questo principio ha guidato la progettazione della sezione Conversazioni e del sistema di badge fin dall&#8217;inizio. L&#8217;obiettivo non era costruire uno strumento di debug riservato agli sviluppatori, ma rendere il ragionamento dell&#8217;AI leggibile e verificabile per chiunque abbia bisogno di capire o migliorare il comportamento di un agente: un engineer, un team operations, un auditor che deve dimostrare conformit\u00e0 a un processo.<\/p>\n\n\n\n<p>Nella pratica, questo significa che quando qualcosa non funziona non si parte da zero. Si apre la sessione, si scorrono i blocchi attraversati, si apre il badge del punto in cui il comportamento era inatteso, si legge il Thought of Process. In molti casi la causa \u00e8 immediatamente visibile: un parametro configurato male, una memoria che non era attiva, un chunk poco pertinente recuperato dal retriever, un tool che ha restituito un errore non gestito. Si interviene in modo chirurgico, si ritesta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Il legame tra osservabilit\u00e0 e stabilit\u00e0 nel tempo<\/strong><\/h2>\n\n\n\n<p>C&#8217;\u00e8 un ultimo aspetto che vale la pena nominare, perch\u00e9 tende ad essere sottovalutato nelle fasi iniziali di un progetto agentico, e diventa evidente solo pi\u00f9 avanti.<\/p>\n\n\n\n<p>L&#8217;<strong>osservabilit\u00e0 degli agenti AI<\/strong> non serve solo a correggere gli errori di oggi. Serve a mantenere il sistema stabile nel tempo, anche quando i componenti sottostanti cambiano, e cambieranno, perch\u00e9 \u00e8 la natura di questo campo. I modelli LLM vengono aggiornati dai provider. Le fonti di conoscenza evolvono. Le policy aziendali cambiano. In un sistema ben osservabile puoi introdurre questi cambiamenti in modo controllato: misuri il comportamento prima, introduci la modifica, verifichi che il comportamento resti allineato con le aspettative.<\/p>\n\n\n\n<p>In un sistema opaco, ogni cambiamento \u00e8 un rischio che scopri solo dopo. Non sai cosa hai rotto finch\u00e9 qualcuno non se ne accorge, che in produzione di solito significa un utente insoddisfatto o un processo che si \u00e8 interrotto.<\/p>\n\n\n\n<p>Per questo in Userbot 3.0 l&#8217;architettura separa nettamente i layer che devono restare stabili (policy, guardrail, contratti delle API) da quelli che possono variare, come il modello LLM utilizzato per un determinato task. Quando questi layer sono separati, la visibilit\u00e0 su ciascuno diventa uno strumento di governance attivo: ti permette di cambiare quello che vuoi cambiare senza toccare quello che vuoi mantenere stabile.<\/p>\n\n\n\n<p>In fondo, l&#8217;osservabilit\u00e0 \u00e8 la condizione che rende possibile la <strong>fiducia verificabile<\/strong> nell&#8217;AI. Non la fiducia cieca nel fatto che &#8220;di solito funziona bene&#8221;, ma quella basata su dati, tracce e misure concrete. Quella che serve quando gli agenti AI entrano nei processi davvero critici, dove sbagliare ha un costo reale.<\/p>\n\n\n\n<p>Con Userbot 3.0, l&#8217;AI non \u00e8 pi\u00f9 un atto di fede. \u00c8 un processo che puoi osservare, misurare e migliorare nel tempo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<style>\n  .ub4 {\n    font-family: 'Inter', -apple-system, sans-serif;\n    background: #0d1b3e;\n    background-image: radial-gradient(ellipse at 70% 30%, #122b6b 0%, #0d1b3e 70%);\n    border-radius: 16px;\n    padding: 44px 48px;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    position: relative;\n    overflow: hidden;\n    max-width: 520px;\n    margin: 8px auto;\n  }\n  .ub4-deco1 {\n    position: absolute; top: -80px; right: -80px;\n    width: 260px; height: 260px; border-radius: 50%;\n    background: rgba(62,174,255,0.07); pointer-events: none;\n  }\n  .ub4-deco2 {\n    position: absolute; bottom: -60px; left: -60px;\n    width: 200px; height: 200px; border-radius: 50%;\n    background: rgba(62,174,255,0.05); pointer-events: none;\n  }\n  .ub4-icon {\n    width: 48px; height: 48px;\n    background: rgba(62,174,255,0.12);\n    border: 1.5px solid rgba(62,174,255,0.28);\n    border-radius: 12px;\n    display: flex; align-items: center; justify-content: center;\n    margin-bottom: 20px;\n    position: relative;\n  }\n  .ub4-eyebrow {\n    font-size: 11px; font-weight: 600;\n    letter-spacing: 0.13em; text-transform: uppercase;\n    color: #3EAEFF;\n    margin-bottom: 10px;\n    position: relative;\n  }\n  .ub4-title {\n    font-size: 24px; font-weight: 700;\n    color: #ffffff;\n    line-height: 1.3; margin-bottom: 10px;\n    position: relative;\n  }\n  .ub4-sub {\n    font-size: 15px;\n    color: rgba(255,255,255,0.62);\n    line-height: 1.6;\n    margin-bottom: 28px;\n    position: relative;\n  }\n  .ub4-btn {\n    display: inline-flex !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    align-items: center;\n    gap: 8px;\n    background: #3EAEFF !important;\n    color: #ffffff !important;\n    font-size: 15px;\n    font-weight: 700;\n    padding: 15px 36px;\n    border-radius: 10px;\n    border: none;\n    cursor: pointer;\n    white-space: nowrap;\n    font-family: inherit;\n    position: relative;\n    z-index: 10;\n    box-shadow: 0 0 0 3px rgba(62,174,255,0.3);\n  }\n  .ub4-btn:hover {\n    background: #2298f0 !important;\n    transform: translateY(-1px);\n  }\n  .ub4-btn:active { transform: scale(0.98); }\n<\/style>\n\n<div class=\"ub4\" role=\"complementary\" aria-label=\"Banner demo Userbot\">\n  <div class=\"ub4-deco1\"><\/div>\n  <div class=\"ub4-deco2\"><\/div>\n\n  <div class=\"ub4-icon\">\n    <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\">\n      <rect x=\"2\" y=\"5\" width=\"18\" height=\"13\" rx=\"3\" stroke=\"#3EAEFF\" stroke-width=\"1.6\"\/>\n      <path d=\"M7 9h8M7 12.5h5\" stroke=\"#3EAEFF\" stroke-width=\"1.6\" stroke-linecap=\"round\"\/>\n      <circle cx=\"17\" cy=\"4\" r=\"3\" fill=\"#3EAEFF\"\/>\n    <\/svg>\n  <\/div>\n\n  <div class=\"ub4-eyebrow\">Scopri Userbot<\/div>\n  <div class=\"ub4-title\">Pronto a scoprire come<br>possiamo aiutarti?<\/div>\n  <div class=\"ub4-sub\">Richiedi una demo gratuita o contattaci:<br>il nostro team \u00e8 a tua disposizione.<\/div>\n\n  <a href=\"https:\/\/userbot.typeform.com\/to\/ctnyuoTq?_gl=1*jrn3dk*_gcl_au*NDU3NjU4NTAwLjE3NzI3MTc1Mzg.&#038;typeform-embed=popup-classic&#038;typeform-source=userbot.ai&#038;typeform-medium=embed-sdk&#038;embed-hide-headers=true&#038;typeform-embed-id=qjr2w\" target=\"_blank\" class=\"ub4-btn\">\n\n  <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n\n    <path d=\"M2 8h10M8 4l4 4-4 4\" stroke=\"#ffffff\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n\n  <\/svg>\n\n  Contattaci\n\n<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"Quando un agente AI fa qualcosa di sbagliato, risponde male o non esegue un&#8217;azione che dovrebbe eseguire, qual&hellip;","protected":false},"author":7,"featured_media":2211,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"csco_display_header_overlay":false,"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_reading_time":"","csco_page_toc_navigation":"","csco_post_video_location":[],"csco_post_video_location_hash":"","csco_post_video_url":"","csco_post_video_bg_start_time":0,"csco_post_video_bg_end_time":0,"csco_post_video_bg_volume":false,"footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-2209","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-senza-categoria","8":"cs-entry","9":"cs-video-wrap"},"_links":{"self":[{"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/posts\/2209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/comments?post=2209"}],"version-history":[{"count":13,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/posts\/2209\/revisions"}],"predecessor-version":[{"id":2239,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/posts\/2209\/revisions\/2239"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/media\/2211"}],"wp:attachment":[{"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/media?parent=2209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/categories?post=2209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/tags?post=2209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}