{"id":2177,"date":"2026-05-13T09:01:47","date_gmt":"2026-05-13T07:01:47","guid":{"rendered":"https:\/\/userbot.ai\/blog\/?p=2177"},"modified":"2026-05-13T09:01:49","modified_gmt":"2026-05-13T07:01:49","slug":"memoria-negli-agenti-ai-breve-lunga-e-rischi","status":"publish","type":"post","link":"https:\/\/userbot.ai\/blog\/memoria-negli-agenti-ai-breve-lunga-e-rischi\/","title":{"rendered":"Memoria negli Agenti AI: breve termine, lungo termine e rischi nascosti"},"content":{"rendered":"\n<p>Nel <a href=\"https:\/\/userbot.ai\/blog\/dal-prompt-al-context-engineering\/\" data-type=\"post\" data-id=\"1924\">post su Context Engineering<\/a> abbiamo introdotto la <strong>memoria <\/strong>come uno dei quattro building block fondamentali per gestire il contesto di un agente AI. Abbiamo distinto tra working memory, memoria semantica e memoria episodica,&nbsp; abbastanza per capire il quadro generale. Ma &#8220;<em>abbastanza per capire il quadro<\/em>&#8221; non \u00e8 sufficiente per costruire un Agente AI affidabile in produzione.<\/p>\n\n\n\n<p>In questo articolo andiamo pi\u00f9 a fondo. Come funziona la memoria di un agente? Come l&#8217;abbiamo implementata su Userbot? E soprattutto: cosa pu\u00f2 andare storto quando la memoria cresce troppo o viene usata male?<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Breve termine vs lungo termine<\/h2>\n\n\n\n<p>Prima di entrare nei dettagli tecnici, vale la pena chiarire una distinzione fondamentale nella progettazione di agenti.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Memoria a breve termine (short-term memory)<\/strong><\/h4>\n\n\n\n<p>La memoria a <strong>breve termine<\/strong> (<em>short-term memory<\/em>) \u00e8 quella che l&#8217;agente pu\u00f2 vedere durante una singola inferenza. <\/p>\n\n\n\n<p>Vive dentro la finestra di contesto (<em>context window<\/em>) e contiene:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>il system prompt,<\/li>\n\n\n\n<li>la cronologia della conversazione, <\/li>\n\n\n\n<li>i risultati dei tool invocati, <\/li>\n\n\n\n<li>i chunk recuperati dal RAG. <\/li>\n<\/ul>\n\n\n\n<p>Ma attenzione, \u00e8 <strong>temporanea<\/strong>: sparisce quando la sessione termina o smette di aggiornarsi quando si raggiunge il limite di token della finestra di contesto.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Memoria a lungo termine (long-term memory)<\/strong><\/h4>\n\n\n\n<p>La memoria a <strong>lungo termine<\/strong> \u00e8 tutto ci\u00f2 che deve sopravvivere oltre la conversazione corrente: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>informazioni sull&#8217;utente, <\/li>\n\n\n\n<li>stato di processi precedenti,<\/li>\n\n\n\n<li>dati storici. <\/li>\n<\/ul>\n\n\n\n<p>Per la sua natura non pu\u00f2 stare sempre nella context window: viene archiviata esternamente e reiniettata nel contesto solo quando serve.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Memoria a breve termine: come funziona la context window<\/h2>\n\n\n\n<p>La working memory di un agente \u00e8 strutturata intorno alla context window del modello. In ogni chiamata, il modello riceve una fotografia del contesto corrente: le istruzioni di sistema, la conversazione fino a quel punto, eventuali risultati di tool o documenti recuperati. \u00c8 volatile per definizione e non persiste tra una sessione\/conversazione e l&#8217;altra.<\/p>\n\n\n\n<p>Una pratica comune, che abbiamo menzionato nell&#8217;articolo precedente, \u00e8 includere gli ultimi N messaggi della conversazione. <\/p>\n\n\n\n<p>Funziona. <\/p>\n\n\n\n<p>Fino a un certo punto.<\/p>\n\n\n\n<p><strong>Il problema \u00e8 che i modelli non leggono il contesto in modo uniforme.<\/strong> <a href=\"https:\/\/arxiv.org\/abs\/2307.03172\" data-type=\"link\" data-id=\"https:\/\/arxiv.org\/abs\/2307.03172\" target=\"_blank\" rel=\"noopener\">Ricercatori<\/a> hanno documentato questo comportamento nel paper &#8220;<em>Lost in the Middle<\/em>&#8220;: le performance degradano sistematicamente quando l&#8217;informazione rilevante si trova nella parte centrale di un contesto lungo, mentre tendono a essere migliori quando quella stessa informazione \u00e8 posizionata all&#8217;inizio o alla fine della finestra di contesto. Il risultato \u00e8 che <strong>aggiungere messaggi non garantisce che il modello li usi, e spesso non li usa nel modo atteso<\/strong>.<\/p>\n\n\n\n<p>Questo non significa che la working memory sia inutile, <strong>\u00e8 indispensabile<\/strong>. <\/p>\n\n\n\n<p>Significa che va gestita attivamente: non basta aggiungere messaggi, <strong>bisogna scegliere la quantit\u00e0 e che tipi di messaggi aggiungono davvero valore al contesto e quali no<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Come Userbot gestisce la memoria degli Agenti AI<\/h2>\n\n\n\n<p>Nella configurazione di un Agente su Userbot, la tab <strong><em>Memoria<\/em><\/strong> espone tre modalit\u00e0 operative che corrispondono a tre scelte architetturali precise.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full has-custom-border\" style=\"margin-top:0;margin-right:var(--wp--preset--spacing--40);margin-bottom:0;margin-left:var(--wp--preset--spacing--40)\"><img loading=\"lazy\" decoding=\"async\" width=\"1088\" height=\"1372\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.46.47.png\" alt=\"\" class=\"wp-image-2180\" style=\"border-style:none;border-width:0px\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.46.47.png 1088w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.46.47-238x300.png 238w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.46.47-952x1200.png 952w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.46.47-768x968.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.46.47-542x683.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.46.47-1084x1367.png 1084w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.46.47-792x999.png 792w\" sizes=\"auto, (max-width: 1088px) 100vw, 1088px\" \/><figcaption class=\"wp-element-caption\"> Configurazione della memoria negli Agenti<\/figcaption><\/figure>\n<\/div>\n\n\n<p><strong>No Memory<\/strong> \u00e8 la modalit\u00e0 pi\u00f9 semplice: l&#8217;agente risponde senza alcun accesso al contesto di interazioni precedenti. Ogni messaggio viene trattato come se fosse l&#8217;unico. \u00c8 la scelta giusta per task completamente isolati, dove il contesto pregresso non \u00e8 rilevante o potrebbe addirittura introdurre rumore.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\" style=\"margin-right:var(--wp--preset--spacing--50);margin-left:var(--wp--preset--spacing--50)\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"162\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.08.png\" alt=\"\" class=\"wp-image-2196\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.08.png 1000w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.08-300x49.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.08-768x124.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.08-542x88.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.08-792x128.png 792w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">Configurazione nessuna memoria.<\/figcaption><\/figure>\n<\/div>\n\n\n<pre class=\"wp-block-preformatted\"><strong>Esempio:<\/strong><br>Un agente di rilevamento PII analizza ogni messaggio in ingresso per identificare la presenza di dati personali sensibili, come codice fiscale, numero di telefono o indirizzo email. Il suo output \u00e8 binario, true quando viene rilevato un dato sensibile (e si innescano le azioni successive) oppure false quando il messaggio \u00e8 pulito e il flusso prosegue normalmente. Non ha bisogno di sapere cosa ha scritto l'utente nei messaggi precedenti, perch\u00e9 ogni testo \u00e8 un'unit\u00e0 di analisi indipendente. Portare in contesto la cronologia della conversazione non aggiungerebbe nulla alla rilevazione e aumenterebbe solo il rischio di interferenza.<\/pre>\n\n\n\n<p><strong>Conversation Memory<\/strong> \u00e8 la modalit\u00e0 predefinita: l&#8217;agente ricorda i messaggi scambiati nella conversazione corrente, e puoi configurare quanti messaggi mantenere in memoria. Il default \u00e8 20. Come vedremo nella sezione sui rischi, questo numero non \u00e8 arbitrario: la scelta di N ha conseguenze dirette sulla qualit\u00e0 delle risposte. In Userbot viene selezionata come scelta predefinita e corrisponde a una short-memory standard.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\" style=\"margin-right:var(--wp--preset--spacing--50);margin-left:var(--wp--preset--spacing--50)\"><img loading=\"lazy\" decoding=\"async\" width=\"986\" height=\"414\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.39.png\" alt=\"\" class=\"wp-image-2197\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.39.png 986w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.39-300x126.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.39-768x322.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.39-542x228.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.46.39-792x333.png 792w\" sizes=\"auto, (max-width: 986px) 100vw, 986px\" \/><figcaption class=\"wp-element-caption\">Configurazione memoria conversazionale<\/figcaption><\/figure>\n<\/div>\n\n\n<pre class=\"wp-block-preformatted\"><strong>Esempio:<\/strong><br>Un agente di supporto gestisce l'apertura di un ticket in modo conversazionale. L'utente descrive il problema, l'agente fa domande di chiarimento nel corso di pi\u00f9 turni: qual \u00e8 il dispositivo coinvolto, da quando si verifica il problema, se ci sono stati cambiamenti recenti. Alla fine chiama il tool di creazione ticket con tutti i dati raccolti. Senza memoria di conversazione, chiederebbe le stesse informazioni a ogni messaggio. Con la cronologia disponibile, costruisce il contesto progressivamente e sa esattamente a che punto \u00e8 il processo.<\/pre>\n\n\n\n<p><strong>Deep Memory <\/strong>aggiunge un livello ulteriore: oltre ai messaggi scambiati con l&#8217;utente, l&#8217;agente memorizza il proprio ragionamento interno e le informazioni di debugging tra i vari blocchi del flusso. \u00c8 la modalit\u00e0 pi\u00f9 ricca di contesto, pensata per scenari complessi dove capire come l&#8217;agente \u00e8 arrivato a una certa risposta \u00e8 tanto importante quanto la risposta stessa. Utile in fase di sviluppo e testing, o in workflow dove la tracciabilit\u00e0 del processo decisionale \u00e8 un requisito. La nota negativa di questa modalit\u00e0 sono l&#8217;introduzione di <em>rumore<\/em> e l&#8217;aumento dei token di contesto.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\" style=\"margin-right:var(--wp--preset--spacing--50);margin-left:var(--wp--preset--spacing--50)\"><img loading=\"lazy\" decoding=\"async\" width=\"986\" height=\"416\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.47.01.png\" alt=\"\" class=\"wp-image-2198\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.47.01.png 986w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.47.01-300x127.png 300w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.47.01-768x324.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.47.01-542x229.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-12-alle-07.47.01-792x334.png 792w\" sizes=\"auto, (max-width: 986px) 100vw, 986px\" \/><figcaption class=\"wp-element-caption\">Configurazione memoria profonda.<\/figcaption><\/figure>\n<\/div>\n\n\n<pre class=\"wp-block-preformatted\"><strong>Esempio<\/strong>:<br>In un workflow Agentico di qualificazione commerciale, un primo agente conversazionale raccoglie le informazioni iniziali dal potenziale cliente: settore, dimensione aziendale, problema che vuole risolvere. Con la Deep Memory attiva, passa al secondo agente non solo le risposte dell'utente, ma anche il proprio ragionamento: perch\u00e9 ha classificato il lead come qualificato, quali segnali ha rilevato nella conversazione, quali obiezioni sono gi\u00e0 emerse. Il secondo agente, specializzato nella proposta commerciale, riceve un contesto completo e costruisce una risposta mirata senza dover rielaborare da zero le informazioni gi\u00e0 raccolte.<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\" style=\"margin-right:var(--wp--preset--spacing--50);margin-left:var(--wp--preset--spacing--50)\"><img loading=\"lazy\" decoding=\"async\" width=\"1092\" height=\"1172\" src=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.50.03.png\" alt=\"\" class=\"wp-image-2181\" srcset=\"https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.50.03.png 1092w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.50.03-280x300.png 280w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.50.03-768x824.png 768w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.50.03-542x582.png 542w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.50.03-1084x1163.png 1084w, https:\/\/userbot.ai\/blog\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-11-alle-11.50.03-792x850.png 792w\" sizes=\"auto, (max-width: 1092px) 100vw, 1092px\" \/><figcaption class=\"wp-element-caption\">Configurazione prompt in un Agente Custom<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Vale la pena notare che <strong>la configurazione della memoria non \u00e8 separata dalla configurazione del prompt<\/strong>: il campo Agent Prompt nella tab Parametri definisce le istruzioni di sistema che vengono combinate con la memoria selezionata a ogni inferenza. <strong>La qualit\u00e0 della working memory, infatti, dipende da entrambi: da quanti messaggi includi e da come hai strutturato le istruzioni che li accompagnano.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rischi nascosti della memoria negli Agenti AI<\/h2>\n\n\n\n<p>Pi\u00f9 memoria non equivale automaticamente a un agente migliore. In alcuni scenari, una memoria mal gestita produce errori ambigui e difficili da diagnosticare rispetto a un agente senza memoria.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Allucinazioni da contesto lungo<\/h3>\n\n\n\n<p>Il rischio pi\u00f9 documentato \u00e8 l&#8217;aumento delle allucinazioni all&#8217;aumentare della lunghezza del contesto. Quando la conversation history cresce, il modello non elabora ogni token con la stessa attenzione. Tende a mescolare informazioni provenienti da punti diversi della conversazione, a confondere contesti simili o a generare risposte che sembrano coerenti con la memoria ma non lo sono.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Uso errato dei tool<\/h3>\n\n\n\n<p>Un secondo rischio, meno ovvio ma ugualmente rilevante, riguarda il comportamento dell&#8217;agente nella scelta e nell&#8217;uso dei tool. In conversazioni lunghe, <strong>il modello tende a &#8220;implicare&#8221; le risposte dalla memoria<\/strong> invece di invocare il tool corretto per recuperare informazioni aggiornate.<\/p>\n\n\n\n<p>Il meccanismo \u00e8 questo: il modello trova nella cronologia della conversazione una risposta plausibile a una domanda simile a quella attuale, e la usa, anche quando quella risposta \u00e8 obsoleta oppure quando si riferisce a un contesto diverso. Non \u00e8 un errore intenzionale: \u00e8 una conseguenza di come i modelli bilanciano il costo computazionale tra generazione diretta e tool use.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Risposte implicite da memoria<\/h3>\n\n\n\n<p>Connessa al punto precedente, c&#8217;\u00e8 la tendenza del modello a formulare risposte per analogia con interazioni passate, bypassando il ragionamento esplicito. Se un utente ha posto una domanda simile tre iterazioni prima, e quella domanda ha ricevuto una risposta specifica, l&#8217;agente pu\u00f2 usare quel precedente come shortcut anche quando la situazione attuale richiede una risposta diversa.<\/p>\n\n\n\n<p>Il problema non \u00e8 tanto la risposta sbagliata, \u00e8 che l&#8217;errore \u00e8 difficile da rilevare, perch\u00e9 la risposta \u00e8 coerente con la memoria anche se non \u00e8 corretta per il contesto attuale. Pi\u00f9 la memoria \u00e8 ricca, pi\u00f9 questo rischio \u00e8 elevato.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Best practice: come tenere la memoria sotto controllo<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>La prima pratica \u00e8 calibrare il numero di messaggi (N)<\/strong>. Su Userbot il default di 20 messaggi per la Memoria Conversazionale \u00e8 un punto di partenza ragionevole, ma non \u00e8 una risposta universale. Per conversazioni brevi e transazionali come apertura di ticket, prenotazioni oppure FAQ, 10 messaggi possono essere pi\u00f9 che sufficienti. Per conversazioni complesse e multi-turno, potrebbero esserne necessari anche pi\u00f9 di 20. La regola pratica \u00e8: includi solo i messaggi che aggiungono contesto utile, non quelli che aggiungono lunghezza.<\/li>\n\n\n\n<li><strong>La seconda pratica \u00e8 separare i tipi di memoria.<\/strong> E&#8217; opportuno non mescolare informazioni fisse (profilo utente, preferenze) con informazioni transitorie (cronologia della conversazione corrente) nella stessa struttura.<\/li>\n\n\n\n<li><strong>La terza pratica \u00e8 preferire tool call esplicite a recuperi impliciti dalla memoria per informazioni critiche.<\/strong> Se lo stato di un ordine, il saldo di un account o la disponibilit\u00e0 di un prodotto devono essere accurati, l&#8217;agente deve chiamare il tool, non fare inferenza dalla cronologia. Questo pu\u00f2 essere imposto esplicitamente nel system prompt, ma richiede anche che il tool sia progettato per essere chiamato frequentemente senza costi eccessivi.<\/li>\n\n\n\n<li><strong>La quarta pratica \u00e8 usare la Deep Memory con criterio.<\/strong> Il fatto che la Memoria Profonda memorizzi ragionamento e debugging la rende potente in fase di sviluppo, ma quella stessa ricchezza aumenta la lunghezza del contesto e conseguentemente il rischio di interferenza. In produzione, la Conversation Memory \u00e8 spesso la scelta pi\u00f9 stabile.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Memoria agentica: il fattore che determina affidabilit\u00e0 in produzione<\/h2>\n\n\n\n<p>La memoria \u00e8 un aspetto spesso sottovalutato nella progettazione di agenti AI. Non perch\u00e9 sia difficile da implementare, su Userbot bastano tre click. Ma perch\u00e9 le sue conseguenze, quando mal configurata, emergono lentamente e in modo non ovvio: risposte leggermente sbagliate, tool invocati con parametri errati, comportamenti che si degradano nel tempo. Conoscere la memoria di un agente, nei meccanismi e nei limiti, \u00e8 quello che separa una demo da un sistema affidabile in produzione.<\/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\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"Nel post su Context Engineering abbiamo introdotto la memoria come uno dei quattro building block fondamentali per gestire&hellip;","protected":false},"author":8,"featured_media":2185,"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-2177","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\/2177","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/comments?post=2177"}],"version-history":[{"count":14,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/posts\/2177\/revisions"}],"predecessor-version":[{"id":2206,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/posts\/2177\/revisions\/2206"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/media\/2185"}],"wp:attachment":[{"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/media?parent=2177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/categories?post=2177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/userbot.ai\/blog\/wp-json\/wp\/v2\/tags?post=2177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}