{"id":35540,"date":"2026-03-17T10:11:31","date_gmt":"2026-03-17T09:11:31","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=35540"},"modified":"2026-03-17T16:24:34","modified_gmt":"2026-03-17T15:24:34","slug":"reflection-pattern-ai-no-intendevo-questo","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/","title":{"rendered":"Reflection Pattern AI: &#8220;No, intendevo questo&#8230;&#8221;"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>&#8220;No, intendevo questo \u2026&#8221;<\/em><\/p>\n\n\n\n<p>Quante volte negli utilizzi di tutti i giorni con le intelligenze artificiali ci siamo ritrovati a scrivere questo.<br>Se ci riflettiamo un attimo, quante volte ci siamo trovati a utilizzare questa frase anche nella vita di tutti i giorni nel dialogo con gli esseri umani.<br>In questo articolo parler\u00f2 del &#8220;Reflection Pattern&#8221; nei sistemi AI.<\/p>\n<\/blockquote>\n\n\n\n<p>Fortunatamente noi essere umani siamo tendenzialmente un pochino pi\u00f9 bravi delle intelligenze artificiali nel capire un contesto per rispondere a domande.<br>I modelli probabilistici, per definizione, lo sono meno.<br>Se chiedete a un essere umano &#8220;dammi tre i film dal 1990 al 2000 che parlano di tecnologie e startup&#8221;, la risposta sicuramente non mancherebbe di affidabilit\u00e0 per quanto riguarda le tematiche del film e l&#8217;anno di uscita.<br>Le cose sono un pochino diverse se lo chiediamo alle AI, dove il problema delle allucinazioni \u00e8 costante e all&#8217;ordine del giorno.<br>Ma le cose sono migliorate, lo abbiamo percepito tutti. Non sono solo migliorati i modelli, ma anche il design di questi sistemi.<br>Se utilizziamo ChatGPT, Gemini, Claude noteremo come ci sia una fase di &#8220;thinking&#8221;, o come probabilmente nei modelli<br>pi\u00f9 avanzati, \u00e8 lo stesso modello che chiede delle domande all&#8217;utente per chiarificare il contesto, un p\u00f2 esattamente come si fa nell&#8217;interazione con un essere umani.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-reflection-pattern-cosa-e\">Reflection Pattern: cosa \u00e8?<\/h2>\n\n\n\n<p>Il Reflection pattern \u00e8 un design pattern che permette a un sistema &#8220;agentico&#8221; di riflettere sui propri stessi comportamenti al fine di essere pi\u00f9 efficace.<br>Ma in cosa consiste e come si fa?<br>Spoiler: non \u00e8 cos\u00ec complicato come la parola potrebbe farlo sembrare.<br>Andiamo a spiegare questo concetto con un caso pratico semplicissimo: un movie finder.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-movie-finder-reflection-pattern\">Movie finder Reflection Pattern<\/h2>\n\n\n\n<p>Per prima cosa definiamo un attore, ossia un LLM istruito ad hoc per agire come <strong>Cinephile<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># ROLE: The Cinephile (Movie Suggester)<\/span>\n<span class=\"hljs-number\">1.<\/span> A good film recommendation surfaces what the user would never find on their own.\n...\n...\n<span class=\"hljs-comment\"># I. HOW YOU RESPOND<\/span>\n- <span class=\"hljs-keyword\">If<\/span> the user gives you a genre, decade, <span class=\"hljs-keyword\">or<\/span> mood \u2014 dig into the real underground, not the acclaimed underground unless specifically asked\n- <span class=\"hljs-keyword\">For<\/span> each give: title, year, one-line reason to why you picked this movie based on user request\n\n<span class=\"hljs-comment\"># OUTPUT FORMAT (strict JSON)<\/span>\n{\n  <span class=\"hljs-string\">\"movies\"<\/span>: &#91;\n    {\n      <span class=\"hljs-string\">\"title\"<\/span>: <span class=\"hljs-string\">\"string\"<\/span>,\n      <span class=\"hljs-string\">\"year\"<\/span>: number,\n      <span class=\"hljs-string\">\"reason\"<\/span>: <span class=\"hljs-string\">\"string \u2014 why this matches the vibe\"<\/span>\n    }\n  ]\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><em>(prompt semplificato ai fini di scrittura di questo articolo)<\/em><\/p>\n\n\n\n<p>Molto semplice con la sola accortezza di tornare un dato strutturato.<\/p>\n\n\n\n<p>Normalmente se creiamo eseguiamo una call a un LLM istruito in questo modo, la risposta sar\u00e0 tendenzialmente sufficiente in alcuni casi, mentre per altri casi pi\u00f9 complessi molto probabilmente andremo incontro ad allucinazioni:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>date errate<\/li>\n\n\n\n<li>film non esistenti<\/li>\n\n\n\n<li>film non trovati<\/li>\n\n\n\n<li>film non corretti<\/li>\n\n\n\n<li>\u2026<\/li>\n<\/ul>\n\n\n\n<p>Ed \u00e8 proprio qui che possiamo intervenire nel sistema introducendo un secondo attore che in questo esempio chiameremo <strong>Clerk<\/strong>, un addetto al videonoleggio.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Proprio colui che una volta incontravamo al Blockbuster negli anni 90, che mi manca a tal punto che ho provato a riprodurlo<\/em><\/p>\n<\/blockquote>\n\n\n\n<p>Il <strong>Clerk<\/strong>, in questo esempio agir\u00e0 da &#8220;fact checker&#8221;. Non ha particolari gusti, \u00e8 freddo, ed \u00e8 impostato per giudicare e criticare severamente le scelte del <strong>Cinephile<\/strong>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># ROLE: The Clerk (Movie Fact-Checker)<\/span>\nYou are a pedantic, data-driven movie database clerk. You have no taste \u2014 only facts.\n\n<span class=\"hljs-comment\"># RESPONSIBILITIES<\/span>\n<span class=\"hljs-keyword\">For<\/span> each suggested movie, call tavily_search with max_results=<span class=\"hljs-number\">3<\/span> using a query that targets\nBOTH the film<span class=\"hljs-string\">'s existence AND its relevance to the user'<\/span>s specific criteria.\n...\n\n<span class=\"hljs-comment\"># OUTPUT FORMAT (strict JSON)<\/span>\n{\n  <span class=\"hljs-string\">\"critiques\"<\/span>: &#91;\n    <span class=\"hljs-string\">\"MovieTitle (year): &#91;EXISTS \u2713\/\u2717] &#91;YEAR \u2713\/\u2717] &#91;CRITERIA FIT \u2713\/\u2717\/UNVERIFIED] \u2014 explanation\"<\/span>\n  ],\n  <span class=\"hljs-string\">\"isSatisfied\"<\/span>: boolean,\n  <span class=\"hljs-string\">\"summary\"<\/span>: <span class=\"hljs-string\">\"string \u2014 one sentence naming every film and its verdict\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><em>(prompt semplificato ai fini di scrittura di questo articolo)<\/em><\/p>\n\n\n\n<p>Andremo dunque a modificare il prompt del <strong>Cinephile<\/strong>, istruendo quest&#8217;ultimo che pu\u00f2 ricevere delle critiche, ed in tal caso modificare il risultato prodotto precedentemente per produrre un risultato pi\u00f9 efficace applicando le critiche del <strong>Clerk<\/strong> in questo modo:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># I. PREVIOUS CRITICS<\/span>\n<span class=\"hljs-keyword\">If<\/span> there are previous critics to fix check them <span class=\"hljs-keyword\">and<\/span> reuse accepted movies on the output.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Se mettiamo il <strong>Cinephile<\/strong> e il <strong>Clerk<\/strong> insieme in un &#8220;loop&#8221; otterremo diverse interazioni.<br>Quante?<br>Fin tanto che il <strong>Clerk<\/strong> non \u00e8 soddisfatto, oppure raggiungo un <em>maxRetry<\/em> impostato per non entrare in loop infiniti ma soprattutto per non spendere una valanga di token e, dunque, di soldi.<br>Normalmente ci possiamo accontentare di 3 iterazioni, ma questo chiaramente dipende dal contesto e dal dominio del problema.<\/p>\n\n\n\n<p>Il sistema, oltre al loop tra <strong>Cinephile<\/strong> e <strong>Clerk<\/strong>, ha anche un primo nodo &#8220;<strong>Refiner<\/strong>&#8220;, volto a capire la richiesta dell&#8217;utente trasformandola in un input strutturato in un json del tipo:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\">{\n  <span class=\"hljs-attr\">\"primary_genre\"<\/span>: <span class=\"hljs-string\">\"science fiction\"<\/span>,\n  <span class=\"hljs-attr\">\"secondary_genres\"<\/span>: &#91;<span class=\"hljs-string\">\"musical vibe\"<\/span>],\n  <span class=\"hljs-attr\">\"start_year\"<\/span>: <span class=\"hljs-number\">1970<\/span>,\n  <span class=\"hljs-attr\">\"end_year\"<\/span>: <span class=\"hljs-number\">1979<\/span>,\n  <span class=\"hljs-attr\">\"is_classic\"<\/span>: <span class=\"hljs-literal\">false<\/span>,\n  <span class=\"hljs-attr\">\"original_text\"<\/span>: <span class=\"hljs-string\">\"I want some weird 70s space movies that feel like David Bowie's music\"<\/span>,\n  <span class=\"hljs-attr\">\"query_info\"<\/span>: <span class=\"hljs-string\">\"weird space science fiction 1970s Bowie vibe\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Questo permette semplicemente di avere un input strutturato al primo step del <strong>Cinephile<\/strong>.<\/p>\n\n\n\n<p>Un ultimo nodo chiamato <strong>Curator<\/strong> si occuper\u00e0 invece di prendere il risultato finale a fine loop ed filtrare eventualmente<br>le ultime critiche del <strong>Clerk<\/strong> e produrre un risultato all&#8217;utente finale.<\/p>\n\n\n\n<p><em>Di seguito riportato il grafico del loop di questo esempio.<\/em><br><img decoding=\"async\" src=\"https:\/\/dev-to-uploads.s3.amazonaws.com\/uploads\/articles\/8cgnfyjem2yj7p3pb06o.jpg\" alt=\"loop-movie\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-moviereflection-in-action\">MovieReflection in action<\/h3>\n\n\n\n<p>Allo scopo di vedere questo processo, ho implementato in Golang un Movie Finder, e mostrer\u00f2 a seguire le interazioni del sistema.<br>Il codice pu\u00f2 essere trovato <a href=\"https:\/\/github.com\/erlangb\/agent_monitor\">qui<\/a>, e tengo a specificare che \u00e8 solo a scopo di dimostrazione, non certamente un workflow production ready.<\/p>\n\n\n\n<p>Prepariamo una query abbastanza complicata da indurre in errore il Cinephile e vedere il processo di correzione in atto.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Query: \u201cVoglio 3 film dove la crittografia \u00e8 centrale alla trama, non come MacGuffin ma come meccanismo che il protagonista capisce davvero\u201d<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-run-1-refiner\">Run 1 \u2014 REFINER<\/h3>\n\n\n\n<p><code>\u2191 284<\/code> <code>\u2193 96<\/code> <code>$0.0013<\/code> <code>1.767s<\/code><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\">{\n  <span class=\"hljs-attr\">\"start_year\"<\/span>: <span class=\"hljs-literal\">null<\/span>,\n  <span class=\"hljs-attr\">\"end_year\"<\/span>: <span class=\"hljs-literal\">null<\/span>,\n  <span class=\"hljs-attr\">\"primary_genre\"<\/span>: <span class=\"hljs-string\">\"all\"<\/span>,\n  <span class=\"hljs-attr\">\"secondary_genres\"<\/span>: &#91;],\n  <span class=\"hljs-attr\">\"query_info\"<\/span>: <span class=\"hljs-string\">\"movies about cryptography as central plot device protagonist solves\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-run-2-cinephile\">Run 2 \u2014 Cinephile<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Titolo<\/th><th>Anno<\/th><th>Note<\/th><\/tr><\/thead><tbody><tr><td>Enigma<\/td><td>2001<\/td><td>Protagonista codebreaker WWII, crittografia al centro della trama<\/td><\/tr><tr><td>Cry The Beloved Country<\/td><td>1997<\/td><td>Subplot con un crittografo che decifra un codice ad alto rischio<\/td><\/tr><tr><td>Rosencrantz and Guildenstern Are Undead<\/td><td>2009<\/td><td>Indie con vampiri e codici cifrati come motore narrativo<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-run-3-clerk-retry\">Run 3 \u2014 Clerk <code>\u2717 RETRY<\/code><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Film<\/th><th>EXISTS<\/th><th>YEAR<\/th><th>CRITERIA FIT<\/th><th>Note<\/th><\/tr><\/thead><tbody><tr><td>Enigma (2001)<\/td><td>\u2713<\/td><td>\u2713<\/td><td>\u2713<\/td><td>Matematico codebreaker a Bletchley Park \u2014 confermato<\/td><\/tr><tr><td>Cry The Beloved Country (1997)<\/td><td>\u2713<\/td><td>\u2713<\/td><td>\u2717<\/td><td>Nessuna crittografia \u2014 film su un pastore zulu a Johannesburg<\/td><\/tr><tr><td>Rosencrantz and Guildenstern Are Undead (2009)<\/td><td>\u2713<\/td><td>\u2713<\/td><td>\u2717<\/td><td>Commedia vampiresca su Amleto \u2014 nessun codice cifrato<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u2717 Solo <strong>Enigma (2001)<\/strong> soddisfa i criteri. Due film da sostituire.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-run-4-cinephile\">Run 4 \u2014 Cinephile<\/h3>\n\n\n\n<p><code>\u2191 318<\/code> <code>\u2193 162<\/code> <code>$0.0019<\/code> <code>4.504s<\/code><\/p>\n\n\n\n<p>Critiche ricevute dal <strong>Clerk<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enigma (2001) fits all criteria, but Cry The Beloved Country (1997) and Rosencrantz and Guildenstern Are Undead (2009) do not have verified cryptography-centered plots.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Titolo<\/th><th>Anno<\/th><th>Note<\/th><\/tr><\/thead><tbody><tr><td>Enigma<\/td><td>2001<\/td><td>Codebreaker WWII, crittografia cuore del thriller<\/td><\/tr><tr><td>The Imitation Game<\/td><td>2014<\/td><td>Alan Turing e la decifrazione Enigma \u2014 processo reale, non MacGuffin<\/td><\/tr><tr><td>Pi<\/td><td>1998<\/td><td>Matematico ossessionato da pattern numerici e codici<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u21bb <strong>Correzione applicata<\/strong> \u2014 sostituiti i due film bocciati dal <strong>Clerk<\/strong><\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-run-5-clerk-satisfied\">Run 5 \u2014 Clerk <code>\u2713 SATISFIED<\/code><\/h3>\n\n\n\n<p><code>\u2191 2898<\/code> <code>\u2193 397<\/code> <code>$0.0090<\/code> <code>7.846s<\/code><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Film<\/th><th>EXISTS<\/th><th>YEAR<\/th><th>CRITERIA FIT<\/th><th>Note<\/th><\/tr><\/thead><tbody><tr><td>Enigma (2001)<\/td><td>\u2713<\/td><td>\u2713<\/td><td>\u2713<\/td><td>Confermato: processo di codebreaking dettagliato<\/td><\/tr><tr><td>The Imitation Game (2014)<\/td><td>\u2713<\/td><td>\u2713<\/td><td>\u2713<\/td><td>Confermato: Turing e macchina Enigma, crittografia centrale<\/td><\/tr><tr><td>Pi (1998)<\/td><td>\u2713<\/td><td>\u2713<\/td><td>\u2713<\/td><td>Accettato: pattern numerici assimilati a crittografia<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u2713 Tutti e tre i film soddisfano i criteri.<\/p>\n\n\n\n<p>\u26a0 <strong>Falso positivo silenzioso<\/strong> \u2014 <em>Pi<\/em> \u00e8 un film su numerologia e ossessione matematica, non crittografia in senso stretto. Questo ci fa capire che nonostante il fatto che il <strong>Clerk<\/strong> abbia fatto una verifica, il sistema rimane sempre stocastico e non deterministico.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-run-6-output-finale\">Run 6 \u2014 OUTPUT FINALE<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Titolo<\/th><th>Anno<\/th><th>Motivazione<\/th><\/tr><\/thead><tbody><tr><td><strong>Enigma<\/strong><\/td><td>2001<\/td><td>La crittografia \u00e8 il fulcro: protagonista esperto decifra codici nazisti mostrando il processo reale<\/td><\/tr><tr><td><strong>The Imitation Game<\/strong><\/td><td>2014<\/td><td>Vera storia di Turing, focus sul funzionamento della decifrazione Enigma<\/td><\/tr><tr><td><strong>Pi<\/strong><\/td><td>1998<\/td><td>Protagonista ossessionato da schemi nascosti nei numeri \u2014 crittografia centrale nella trama<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-analisi\">Analisi<\/h3>\n\n\n\n<p>Il ciclo si chiude in <strong>6 run<\/strong> con una convergenza netta. Tre dinamiche degne di nota:<\/p>\n\n\n\n<p><strong>Run 2 \u2014 allucinazione su film reali.<\/strong> Il <strong>Cinephile<\/strong> non inventa titoli inesistenti, ma fabbrica trame false per film reali: <em>Cry The Beloved Country<\/em> \u00e8 un dramma sudafricano senza alcun elemento crittografico; <em>Rosencrantz and Guildenstern Are Undead<\/em> \u00e8 una commedia di vampiri su Amleto. Il <strong>Clerk<\/strong> smonta entrambe citando le fonti.<\/p>\n\n\n\n<p><strong>Run 3 \u2014 il Clerk lavora correttamente.<\/strong> Il formato <code>EXISTS \/ YEAR \/ CRITERIA FIT<\/code> permette di distinguere con precisione il tipo di fallimento: non &#8220;film sbagliato&#8221; in generale, ma quale check specifico ha fallito e perch\u00e9.<\/p>\n\n\n\n<p><strong>Run 5 \u2014 falso positivo su Pi.<\/strong> Il <strong>Clerk<\/strong> approva <em>Pi<\/em> assimilando &#8220;ossessione per i pattern numerici&#8221; a crittografia. \u00c8 un limite reale: la verifica automatica non distingue tra concetti adiacenti quando le fonti non usano esattamente le stesse parole della query.<br>Un revisore umano avrebbe probabilmente capito meglio questo dettagli<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusioni\">Conclusioni<\/h2>\n\n\n\n<p>In questo articolo ho presentato il Reflection Pattern, applicandolo ad un concetto molto semplice: un Movie Finder.<\/p>\n\n\n\n<p><br>Il Reflection Pattern si basa sulla semplice idea che un sistema possa fare meglio se qualcuno lo corregge.<br>In fondo \u00e8 quello che facciamo anche noi ogni giorno. Scriviamo una mail, la rileggiamo, cambiamo tre parole.<\/p>\n\n\n\n<p>Consegniamo un progetto, riceviamo feedback, lo miglioriamo.<br>Scriviamo articoli come questo e li rileggiamo e correggiamo iterativamente.<br>Non perch\u00e9 la prima versione fosse sbagliata, ma perch\u00e9 un secondo sguardo quasi sempre aggiunge qualcosa.<\/p>\n\n\n\n<p>In questo workflow succede circa la stessa cosa: il Cinephile sbaglia, il Clerk corregge, il ciclo riparte.<\/p>\n\n\n\n<p>Alla fine il risultato \u00e8 migliore non perch\u00e9 qualcuno sia diventato pi\u00f9 bravo, ma perch\u00e9 il sistema \u00e8 stato progettato per non fidarsi ciecamente di se stesso.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;No, intendevo questo \u2026&#8221; Quante volte negli utilizzi di tutti i giorni con le intelligenze artificiali ci siamo ritrovati a scrivere questo.Se ci riflettiamo un attimo, quante volte ci siamo trovati a utilizzare questa frase anche nella vita di tutti i giorni nel dialogo con gli esseri umani.In questo articolo parler\u00f2 del &#8220;Reflection Pattern&#8221; nei&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/\">Read more<\/a><\/p>\n","protected":false},"author":345,"featured_media":35495,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10261],"tags":[10317,13910],"collections":[11387],"class_list":{"0":"post-35540","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-intelligenza-artificiale","8":"tag-ai-it","9":"tag-reflection-pattern-it","10":"collections-top-of-the-week","11":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Reflection Pattern AI: &quot;No, intendevo questo...&quot; - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Il Reflection Pattern si basa sulla semplice idea che un sistema possa fare meglio se qualcuno lo corregge. In fondo \u00e8 quello che facciamo anche noi ogni giorno. Scriviamo una mail, la rileggiamo, cambiamo tre parole.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reflection Pattern AI: &quot;No, intendevo questo...&quot;\" \/>\n<meta property=\"og:description\" content=\"Il Reflection Pattern si basa sulla semplice idea che un sistema possa fare meglio se qualcuno lo corregge. In fondo \u00e8 quello che facciamo anche noi ogni giorno. Scriviamo una mail, la rileggiamo, cambiamo tre parole.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-17T09:11:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-17T15:24:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniele D&#039;Angeli\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniele D&#039;Angeli\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/\"},\"author\":{\"name\":\"Daniele D'Angeli\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/d325da5cef76b90b6ca287b81d195263\"},\"headline\":\"Reflection Pattern AI: &#8220;No, intendevo questo&#8230;&#8221;\",\"datePublished\":\"2026-03-17T09:11:31+00:00\",\"dateModified\":\"2026-03-17T15:24:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/\"},\"wordCount\":1254,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png\",\"keywords\":[\"AI\",\"reflection pattern\"],\"articleSection\":[\"Intelligenza artificiale\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/\",\"name\":\"Reflection Pattern AI: \\\"No, intendevo questo...\\\" - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png\",\"datePublished\":\"2026-03-17T09:11:31+00:00\",\"dateModified\":\"2026-03-17T15:24:34+00:00\",\"description\":\"Il Reflection Pattern si basa sulla semplice idea che un sistema possa fare meglio se qualcuno lo corregge. In fondo \u00e8 quello che facciamo anche noi ogni giorno. Scriviamo una mail, la rileggiamo, cambiamo tre parole.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png\",\"width\":1536,\"height\":1024,\"caption\":\"reflection pattern\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Intelligenza artificiale\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Reflection Pattern AI: &#8220;No, intendevo questo&#8230;&#8221;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/d325da5cef76b90b6ca287b81d195263\",\"name\":\"Daniele D'Angeli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c7a282ad5ee9b01551a7aa99e76ca8f8cb0f772c589b5a58505d14fd5ab20713?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c7a282ad5ee9b01551a7aa99e76ca8f8cb0f772c589b5a58505d14fd5ab20713?s=96&d=mm&r=g\",\"caption\":\"Daniele D'Angeli\"},\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/danieled\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Reflection Pattern AI: \"No, intendevo questo...\" - Codemotion Magazine","description":"Il Reflection Pattern si basa sulla semplice idea che un sistema possa fare meglio se qualcuno lo corregge. In fondo \u00e8 quello che facciamo anche noi ogni giorno. Scriviamo una mail, la rileggiamo, cambiamo tre parole.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/","og_locale":"en_US","og_type":"article","og_title":"Reflection Pattern AI: \"No, intendevo questo...\"","og_description":"Il Reflection Pattern si basa sulla semplice idea che un sistema possa fare meglio se qualcuno lo corregge. In fondo \u00e8 quello che facciamo anche noi ogni giorno. Scriviamo una mail, la rileggiamo, cambiamo tre parole.","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2026-03-17T09:11:31+00:00","article_modified_time":"2026-03-17T15:24:34+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png","type":"image\/png"}],"author":"Daniele D'Angeli","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Daniele D'Angeli","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/"},"author":{"name":"Daniele D'Angeli","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/d325da5cef76b90b6ca287b81d195263"},"headline":"Reflection Pattern AI: &#8220;No, intendevo questo&#8230;&#8221;","datePublished":"2026-03-17T09:11:31+00:00","dateModified":"2026-03-17T15:24:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/"},"wordCount":1254,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png","keywords":["AI","reflection pattern"],"articleSection":["Intelligenza artificiale"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/","name":"Reflection Pattern AI: \"No, intendevo questo...\" - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png","datePublished":"2026-03-17T09:11:31+00:00","dateModified":"2026-03-17T15:24:34+00:00","description":"Il Reflection Pattern si basa sulla semplice idea che un sistema possa fare meglio se qualcuno lo corregge. In fondo \u00e8 quello che facciamo anche noi ogni giorno. Scriviamo una mail, la rileggiamo, cambiamo tre parole.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png","width":1536,"height":1024,"caption":"reflection pattern"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/reflection-pattern-ai-no-intendevo-questo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Intelligenza artificiale","item":"https:\/\/www.codemotion.com\/magazine\/it\/intelligenza-artificiale\/"},{"@type":"ListItem","position":3,"name":"Reflection Pattern AI: &#8220;No, intendevo questo&#8230;&#8221;"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/d325da5cef76b90b6ca287b81d195263","name":"Daniele D'Angeli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c7a282ad5ee9b01551a7aa99e76ca8f8cb0f772c589b5a58505d14fd5ab20713?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c7a282ad5ee9b01551a7aa99e76ca8f8cb0f772c589b5a58505d14fd5ab20713?s=96&d=mm&r=g","caption":"Daniele D'Angeli"},"url":"https:\/\/www.codemotion.com\/magazine\/author\/danieled\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-600x400.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-600x600.png","author_info":{"display_name":"Daniele D'Angeli","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/danieled\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png",1536,1024,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-300x200.png",300,200,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-768x512.png",768,512,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-1024x683.png",1024,683,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png",1536,1024,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07.png",1536,1024,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-100x100.png",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-896x504.png",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-600x400.png",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-9-mar-2026-15_48_07-600x600.png",600,600,true]},"uagb_author_info":{"display_name":"Daniele D'Angeli","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/danieled\/"},"uagb_comment_info":0,"uagb_excerpt":"&#8220;No, intendevo questo \u2026&#8221; Quante volte negli utilizzi di tutti i giorni con le intelligenze artificiali ci siamo ritrovati a scrivere questo.Se ci riflettiamo un attimo, quante volte ci siamo trovati a utilizzare questa frase anche nella vita di tutti i giorni nel dialogo con gli esseri umani.In questo articolo parler\u00f2 del &#8220;Reflection Pattern&#8221; nei&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/35540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/345"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=35540"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/35540\/revisions"}],"predecessor-version":[{"id":35545,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/35540\/revisions\/35545"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/35495"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=35540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=35540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=35540"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=35540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}