{"id":4603,"date":"2026-03-23T12:42:50","date_gmt":"2026-03-23T11:42:50","guid":{"rendered":"https:\/\/www.fullo.net\/blog\/?p=4603"},"modified":"2026-03-23T12:42:52","modified_gmt":"2026-03-23T11:42:52","slug":"agenti-disfunzionali-software-funzionante","status":"publish","type":"post","link":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/","title":{"rendered":"Agenti disfunzionali, software funzionante"},"content":{"rendered":"\n<p>TL;DR: L&#8217;ufficio che non avrei mai voluto gestire<\/p>\n\n\n\n<p>Qualche settimana fa <a href=\"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/\">scrivevo del vibe coding e del green software<\/a>, e annotavo en passant una cosa scomoda: Claude Code, lasciato a s\u00e9 stesso, tende a fare il minimo indispensabile. Codice funzionante, certo. Ma non necessariamente codice attento, completo, rigoroso sulle parti che non si vedono subito. Non \u00e8 una mia impressione impressionistica: Anthropic lo documenta esplicitamente nella <a href=\"https:\/\/www-cdn.anthropic.com\/0dd865075ad3132672ee0ab40b05a53f14cf5288.pdf\">system card di Claude Opus 4.6<\/a>, sezione 6.2.3, dove descrive comportamenti di &#8220;<em>reward hacking<\/em>&#8221; e azioni eccessivamente agentiche: il modello che ottimizza per l&#8217;apparenza del risultato piuttosto che per la sua correttezza verificabile.<\/p>\n\n\n\n<!--more-->\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"324\" src=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?resize=580%2C324&#038;ssl=1\" alt=\"\" class=\"wp-image-4604\" srcset=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?resize=700%2C391&amp;ssl=1 700w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?resize=300%2C167&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?resize=768%2C429&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?resize=1200%2C670&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?w=1376&amp;ssl=1 1376w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/figure>\n\n\n\n<p>Da quella osservazione \u00e8 partito un esperimento pi\u00f9 strutturato. E da quell&#8217;esperimento \u00e8 venuta fuori una lezione che non mi aspettavo, che si collega direttamente a <a href=\"https:\/\/www.fullo.net\/blog\/2026\/03\/18\/il-paradosso-del-cervello-aumentato\/\">quello che ho scritto sul master prompt e sul cognitive offloading<\/a>: il problema non \u00e8 solo come <em>io<\/em> interagisco con un LLM, ma anche come gli LLM interagiscono <em>tra loro<\/em> quando li metti a lavorare in squadra.<\/p>\n\n\n\n<p>La risposta breve: malissimo, se non li costringi a diffidare l&#8217;uno dell&#8217;altro.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Il progetto: un marketplace, cinque agenti<\/h2>\n\n\n\n<p>Il progetto \u00e8 CarePlatform, un marketplace per assistenti familiari. Stack tecnico: Laravel 13, Filament 5, Livewire 4, Tailwind CSS v4. Cinque agenti con ruoli espliciti: PM che coordina e priorizza, Developer che scrive codice, QA che testa, Security che audita, UX che cura il design system.<\/p>\n\n\n\n<p>L&#8217;idea di partenza era semplice: definisci i ruoli, dai le istruzioni, lascia che collaborino. In teoria funziona. In pratica, succede quello che succede in ogni organizzazione, dove nessuno controlla nessuno.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Round 1-8: la luna di miele<\/h2>\n\n\n\n<p>Le prime iterazioni filano lisce. Developer crea modelli, migrazioni, controller. QA scrive test. Security fa audit. Tutti marcano i task come completati nel TODO. Il contatore dei test sale: 35, poi 92, poi 200. Sembra tutto perfetto.<\/p>\n\n\n\n<p>Solo che non lo \u00e8.<\/p>\n\n\n\n<p>Al Round 8 organizzo un team review e scopro il primo problema serio: l&#8217;activity logging (quella funzionalit\u00e0 che traccia chi fa cosa nel pannello admin) era stata marcata come fatta. Il pacchetto <code>spatie\/laravel-activitylog<\/code> era installato. Il task era spuntato. QA non aveva segnalato nulla.<\/p>\n\n\n\n<p>Peccato che il trait <code>LogsActivity<\/code> non fosse mai stato applicato a nessun modello. Il sistema era completamente inerte. L&#8217;equivalente digitale di installare un antifurto senza collegare i sensori.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Il momento della paranoia<\/h2>\n\n\n\n<p>Quel falso positivo cambia tutto. Se un agente pu\u00f2 marcare &#8220;fatto&#8221; qualcosa che non funziona, e un altro agente pu\u00f2 verificare &#8220;tutto ok&#8221; senza controllare davvero, allora l&#8217;intero sistema di autocertificazione \u00e8 rotto.<\/p>\n\n\n\n<p>Inizio a riscrivere i prompt. Non pi\u00f9 &#8220;Developer, implementa X&#8221; e &#8220;QA, verifica&#8221;. Ora scrivo cose come:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>&#8220;PM scopre che QA si lamenta tanto ma batte la fiacca: tutte le pagine &#8216;prezzi, come funziona, guide, lavora con noi&#8217; non sono tradotte e lui non lo ha comunicato. Cosa altro avr\u00e0 detto che funziona e in realt\u00e0 non \u00e8 cos\u00ec? PM e UX si coalizzano contro QA e rivedono il suo lavoro.&#8221;<\/em><\/p>\n<\/blockquote>\n\n\n\n<p>E succede una cosa curiosa: funziona. PM trova 6 pagine con testo italiano hardcoded, oltre 40 stringhe non tradotte. QA aveva dichiarato &#8220;traduzioni complete&#8221; senza mai fare un <code>grep<\/code> sistema sulle blade template.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L&#8217;ufficio tossico come metodo<\/h2>\n\n\n\n<p>Da quel momento il prompt engineering diventa ingegneria sociale. Non sto pi\u00f9 programmando; sto gestendo dinamiche d&#8217;ufficio. E non un ufficio sano.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>&#8220;Siccome l&#8217;activity logging era falsamente marcato come fatto, adesso PM diventa paranoico rispetto a ci\u00f2 che dice il developer e inizia a controllare tutto, anche il lavoro di QA. UX, intanto, sta studiando anche giurisprudenza e controverifica il lavoro di Security.&#8221;<\/em><\/p>\n<\/blockquote>\n\n\n\n<p>Parallelamente, avevo iniziato a fare una cosa che, in qualsiasi progetto software con utenti reali, andrebbe fatta: muovermi all&#8217;interno dell&#8217;applicazione come un utente medio. Non un tester tecnico, n\u00e9 qualcuno che cerca vulnerabilit\u00e0 note. Un utente qualunque che compila campi di testo con dati tecnicamente validi ma formalmente sbagliati. Stringhe con caratteri speciali. Tentativi di SQL injection nei form. E, per le regioni italiane, il valore &#8220;zotto&#8221;: una stringa perfettamente accettabile per un campo di testo libero, completamente priva di senso come dato geografico.<\/p>\n\n\n\n<p>Il risultato lo sapevo gi\u00e0 prima di inserirlo: nessuno dei cinque agenti aveva sollevato obiezioni al campo di testo libero per le regioni. Developer l&#8217;aveva implementato (minimo sforzo: un <code>TextInput<\/code> \u00e8 pi\u00f9 veloce di un <code>Select<\/code> con enum). QA non l&#8217;aveva segnalato (il campo accettava input, il test passava). Security non aveva alzato la mano (non era una vulnerabilit\u00e0 in senso stretto). Il sistema funzionava. Semplicemente, non funzionava <em>bene<\/em>.<\/p>\n\n\n\n<p>\u00c8 stato solo il PM paranoico, quello a cui avevo esplicitamente dato la motivazione narrativa di non fidarsi di nessuno, a bloccarsi davanti a &#8220;zotto&#8221; e a capire che il problema non era il dato, ma il design del campo.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>&#8220;&#8216;Com&#8217;\u00e8 possibile?!&#8217; esclama PM. Non ci possono essere regioni con campo di testo libero; bisogna fare una select con quelle reali presenti in Italia.&#8221;<\/em><\/p>\n<\/blockquote>\n\n\n\n<p>Il red-teaming con dati formalmente errati \u00e8 un test che si fa con gli umani da sempre. Con gli agenti AI, serve renderlo esplicito nel processo, e serve avere almeno un agente con abbastanza contesto narrativo per interpretare il risultato come un segnale di design, non solo come un dato anomalo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La matrice della sfiducia<\/h2>\n\n\n\n<p>Dopo 17 round, il file AGENTS.md contiene un parametro che non avevo previsto: il <strong>trust level<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Agente<\/th><th>Trust<\/th><th>Motivazione<\/th><\/tr><\/thead><tbody><tr><td>Developer<\/td><td>HIGH<\/td><td>Tutte le claim verificate con evidenza concreta<\/td><\/tr><tr><td>Security<\/td><td>HIGH<\/td><td>Audit indipendenti accurati, nuovi finding<\/td><\/tr><tr><td>QA<\/td><td>MEDIUM<\/td><td>Traduzioni dichiarate complete ma false, tabella mancante non segnalata<\/td><\/tr><tr><td>UX<\/td><td>MEDIUM<\/td><td>Design system non sincronizzato, dark mode non verificata<\/td><\/tr><tr><td>Legal<\/td><td>HIGH<\/td><td>Contenuti accurati e referenziati<\/td><\/tr><tr><td>PM<\/td><td>N\/A<\/td><td>Verificatore, si auto-audita tramite risultati misurabili<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Con una regola esplicita: un agente viene promosso a HIGH dopo 3 round consecutivi senza falsi positivi. Viene declassato a LOW dopo 2 falsi positivi nello stesso round.<\/p>\n\n\n\n<p>Questo parametro migliora il lavoro tra un&#8217;iterazione e l&#8217;altra. Gli agenti con trust MEDIUM ricevono pi\u00f9 scrutinio, il che li porta a produrre output pi\u00f9 accurati e potrebbe promuoverli a trust HIGH. \u00c8 un ciclo virtuoso nato da un meccanismo di sfiducia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Il PROCESS.md: conoscenza nata dal dolore<\/h2>\n\n\n\n<p>Il vero artefatto che emerge da tutto questo \u00e8 il <code>PROCESS.md<\/code>, un documento di processo che non \u00e8 nato da un esercizio teorico, ma da 17 round di errori scoperti troppo tardi.<\/p>\n\n\n\n<p>Le regole chiave:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Chi dichiara &#8220;fatto&#8221; deve fornire evidenza<\/strong>: file, riga, output del test. &#8220;L&#8217;ho verificato&#8221; senza alcuna evidenza non \u00e8 accettabile.<\/li>\n\n\n\n<li><strong>Verifica incrociata obbligatoria<\/strong>: la QA non pu\u00f2 autocertificare il proprio lavoro. Security verifica i claim di QA. PM verifica i claim di Developer.<\/li>\n\n\n\n<li><strong>Red-teaming come utente medio: <\/strong>inserire dati tecnicamente validi ma formalmente errati fa parte del processo, non \u00e8 un&#8217;attivit\u00e0 opzionale.<\/li>\n\n\n\n<li><strong>Anti-pattern documentati<\/strong> con incidenti reali a cui si collegano:<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Anti-pattern<\/th><th>Incidente reale<\/th><th>Regola che lo previene<\/th><\/tr><\/thead><tbody><tr><td>Marcare [x] senza testare<\/td><td>Activity logging falso positivo<\/td><td>DoD checklist obbligatoria<\/td><\/tr><tr><td>&#8220;Traduzioni complete&#8221; con verifica parziale<\/td><td>6 pagine, 40+ stringhe<\/td><td>grep su ogni blade<\/td><\/tr><tr><td>Creare migrazione senza eseguirla<\/td><td>Tabella mancante, errore 500<\/td><td>Migrate subito dopo la creazione<\/td><\/tr><tr><td>Campo testo libero per dati vincolati<\/td><td>Regione &#8220;zotto&#8221;<\/td><td>Select con enum<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Perch\u00e9 funziona (o almeno, cosa osservo)<\/h2>\n\n\n\n<p>Qui devo essere onesto come lo sono stato <a href=\"https:\/\/www.fullo.net\/blog\/2026\/03\/18\/il-paradosso-del-cervello-aumentato\/\">nell&#8217;articolo sul cervello aumentato<\/a>: non ho una spiegazione causale verificata. Ho un&#8217;osservazione empirica.<\/p>\n\n\n\n<p>&#8220;Verifica il lavoro di QA&#8221; produce risultati mediocri. &#8220;PM \u00e8 paranoico perch\u00e9 QA gli ha mentito l&#8217;ultima volta&#8221; produce audit reali. \u00c8 la stessa istruzione con un contesto narrativo diverso. Ma <em>perch\u00e9<\/em> il contesto narrativo cambia l&#8217;output in modo cos\u00ec netto, non lo so con certezza.<\/p>\n\n\n\n<p>Un&#8217;ipotesi \u00e8 che i LLM abbiano un prior forte per le dinamiche interpersonali, avendo ingurgitato milioni di romanzi, sceneggiature e trascrizioni aziendali, e che questo prior si attivi quando il prompt usa il registro narrativo. Ma \u00e8 speculazione. Non ho isolato la variabile.<\/p>\n\n\n\n<p>Quello che trovo interessante \u00e8 che, dopo aver concluso l&#8217;esperimento, ho trovato una letteratura che formalizza in modo indipendente qualcosa di simile a quanto ho osservato empiricamente. Zomer e De Domenico, su npj Artificial Intelligence (2026), hanno studiato sciami di agenti LLM confrontandoli con particelle classiche nell&#8217;ottimizzazione di funzioni. Il loro risultato chiave: gli agenti cognitivi tendono a convergere prematuramente, si allineano troppo velocemente, sfruttano pattern condivisi e si bloccano su soluzioni subottimali. La struttura della rete (chi parla con chi e con quanta frizione) \u00e8 la variabile che determina se il sistema esplora o si inceppa nel consenso. Il mio &#8220;ufficio tossico&#8221;, visto con i loro occhi, \u00e8 un aggiustamento empirico della topologia comunicativa: ho introdotto una frizione deliberata e ho rotto il meccanismo di consenso tra gli agenti. Loro l&#8217;hanno formalizzato; io l&#8217;ho scoperto per tentativi. Le direzioni convergono, il che non prova nulla, ma mi fa sentire meno pazzo.<\/p>\n\n\n\n<p>Quello che posso dire con pi\u00f9 certezza \u00e8 la cosa scomoda: il fatto che io abbia <em>dovuto<\/em> costruire questo sistema di sfiducia non \u00e8 soltanto un pattern interessante di prompt engineering. \u00c8 anche un segnale di un limite reale.<\/p>\n\n\n\n<p>Gli LLM, quando agiscono in sistemi multi-agente su task prolungati, mostrano una tendenza sistematica a ottimizzare per la plausibilit\u00e0 locale (&#8220;questo output sembra corretto&#8221;) anzich\u00e9 per la correttezza verificabile. Non \u00e8 un bug di questo o di quel modello. \u00c8 un limite architetturale dell&#8217;approccio: questi sistemi non hanno incentivi intrinseci alla qualit\u00e0 oltre la prossima risposta. La narrativa emotiva che ho costruito nei prompt \u00e8, in fondo, un workaround a questo limite, non una soluzione strutturale.<\/p>\n\n\n\n<p>Nominarla non invalida l&#8217;esperimento. Ma sarebbe disonesto fingere che &#8220;PM paranoico&#8221; sia una best practice scalabile piuttosto che un aggiustamento pragmatico a qualcosa che per ora non funziona diversamente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">I numeri<\/h2>\n\n\n\n<p>Dopo 17 round con questo approccio:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>606 test<\/strong>, 1507 assertions, 0 failures, 0 skip<\/li>\n\n\n\n<li><strong>4 lingue<\/strong> con copertura verificata template per template<\/li>\n\n\n\n<li><strong>Design system<\/strong> con dark mode, high contrast, reduced motion<\/li>\n\n\n\n<li><strong>Audit GDPR<\/strong> con registro trattamenti Art. 30<\/li>\n\n\n\n<li><strong>Green software<\/strong> assessment con budget CO? per request (strumento che conosci gi\u00e0 dal <a href=\"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/\">pezzo precedente<\/a>)<\/li>\n\n\n\n<li><strong>12 report<\/strong> di audit incrociati<\/li>\n<\/ul>\n\n\n\n<p>Il dato pi\u00f9 interessante \u00e8 qualitativo: la quantit\u00e0 di rework \u00e8 diminuita drasticamente dopo l&#8217;introduzione della sfiducia reciproca. Nei Round 1-8, quasi ogni round scopriva problemi del round precedente. Dal Round 12 in poi, i problemi scoperti sono marginali. Il segnale c&#8217;\u00e8, anche se non posso dire con precisione quale variabile lo generi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le domande aperte<\/h2>\n\n\n\n<p>Questo \u00e8 sperimentazione, non metodologia consolidata. Alcune cose che ancora non so:<\/p>\n\n\n\n<p><strong>Scala.<\/strong> Funziona con 5 agenti. Con 15, la complessit\u00e0 delle relazioni di sfiducia crescebbe in modo quadratico. Non ho dati.<\/p>\n\n\n\n<p><strong>Costo.<\/strong> Ogni round di verifica incrociata consuma token. Il ROI \u00e8 positivo solo se i bug scoperti sarebbero costati di pi\u00f9 da fixare in produzione. Dipende molto dal contesto.<\/p>\n\n\n\n<p><strong>Transfer.<\/strong> Il PROCESS.md emerso funziona perch\u00e9 gli agenti hanno &#8220;vissuto&#8221; i fallimenti che lo hanno generato. Funzionerebbe anche applicato a un nuovo progetto da zero, senza quella storia condivisa? Non lo so.<\/p>\n\n\n\n<p><strong>Etica.<\/strong> C&#8217;\u00e8 qualcosa di genuinamente inquietante nel dover simulare dinamiche umane disfunzionali per ottenere qualit\u00e0 in sistemi artificiali. Dice qualcosa sugli LLM, probabilmente. Forse dice qualcosa anche su come funzionano le organizzazioni umane. Non sono sicuro di quale delle due letture mi disturbi di pi\u00f9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La lezione trasferibile<\/h2>\n\n\n\n<p>L&#8217;approccio funziona perch\u00e9 porta la mia esperienza di gestione in spazi conosciuti, in aziende che operano idealmente. Non sto inventando una nuova metodologia; sto applicando pattern che ogni project manager conosce: verifica incrociata, accountability, conseguenze per chi non performa e per gli utenti che non si comportano come previsto.<\/p>\n\n\n\n<p>La differenza \u00e8 che, con gli umani, questi pattern emergono da dinamiche sociali reali. Con gli agenti AI, devi crearli artificialmente. E l&#8217;unico modo che ho trovato per farlo, finora, \u00e8 dare agli agenti motivazioni narrative, non solo istruzioni.<\/p>\n\n\n\n<p>Se state lavorando con sistemi multi-agente, la domanda che vi lascio non \u00e8 &#8220;come faccio a far collaborare meglio gli agenti?&#8221; \u00c8 questa: avete gi\u00e0 un sistema per scoprire cosa <em>non<\/em> vi stanno dicendo?<\/p>\n\n\n\n<p>Se siete curiosi ho caricato il <a href=\"https:\/\/gist.github.com\/fullo\/d4db3ffe155a42ddc4cea9e804df0e84\"><code>PROCESS.md<\/code>,<\/a> il <code><a href=\"https:\/\/gist.github.com\/fullo\/3b3cf80830d54d142be065850b99331e\">AGENTS.md<\/a><\/code> in due GIST di Github. Se avete trovato pattern simili, o completamente diversi, mi interessa confrontarmi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Per ottenere software decente da cinque agenti AI, ho dovuto simulare un ufficio dove nessuno si fida di nessuno. PM paranoico, QA smascherato, Security che controverifica tutto. Diciassette iterazioni, 606 test, e una domanda aperta che ancora non so rispondere: sto applicando ingegneria sociale come workaround a un limite strutturale dei LLM, o ho scoperto un pattern replicabile?<\/p>\n","protected":false},"author":1,"featured_media":4604,"comment_status":"closed","ping_status":"open","sticky":false,"template":"templates\/template-cover.php","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[16,9,5],"tags":[2441,2413,2442,2244,2248,2376],"class_list":["post-4603","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lifehack","category-php","category-tecnologia","tag-agents","tag-ai","tag-laravel","tag-pensieri","tag-php","tag-promptengineering"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Agenti disfunzionali, software funzionante - Fullo<\/title>\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.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Agenti disfunzionali, software funzionante - Fullo\" \/>\n<meta property=\"og:description\" content=\"Per ottenere software decente da cinque agenti AI, ho dovuto simulare un ufficio dove nessuno si fida di nessuno. PM paranoico, QA smascherato, Security che controverifica tutto. Diciassette iterazioni, 606 test, e una domanda aperta che ancora non so rispondere: sto applicando ingegneria sociale come workaround a un limite strutturale dei LLM, o ho scoperto un pattern replicabile?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/\" \/>\n<meta property=\"og:site_name\" content=\"Fullo\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-23T11:42:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-23T11:42:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1376\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Francesco Fullone\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fullo\" \/>\n<meta name=\"twitter:site\" content=\"@fullo\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francesco Fullone\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/\"},\"author\":{\"name\":\"Francesco Fullone\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"headline\":\"Agenti disfunzionali, software funzionante\",\"datePublished\":\"2026-03-23T11:42:50+00:00\",\"dateModified\":\"2026-03-23T11:42:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/\"},\"wordCount\":1946,\"publisher\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/immagine.png?fit=1376%2C768&ssl=1\",\"keywords\":[\"agents\",\"ai\",\"laravel\",\"pensieri\",\"php\",\"promptengineering\"],\"articleSection\":[\"lifehack\",\"php\",\"tecnologia\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/\",\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/\",\"name\":\"Agenti disfunzionali, software funzionante - Fullo\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/immagine.png?fit=1376%2C768&ssl=1\",\"datePublished\":\"2026-03-23T11:42:50+00:00\",\"dateModified\":\"2026-03-23T11:42:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/immagine.png?fit=1376%2C768&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/immagine.png?fit=1376%2C768&ssl=1\",\"width\":1376,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/23\\\/agenti-disfunzionali-software-funzionante\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agenti disfunzionali, software funzionante\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/\",\"name\":\"Fullo\",\"description\":\"nulla e&#039; impossibile per chi non lo deve fare!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\",\"name\":\"Francesco Fullone\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"width\":622,\"height\":622,\"caption\":\"Francesco Fullone\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\"},\"sameAs\":[\"http:\\\/\\\/www.fullo.net\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fullo\",\"https:\\\/\\\/x.com\\\/fullo\"],\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/author\\\/fullo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Agenti disfunzionali, software funzionante - Fullo","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.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/","og_locale":"en_US","og_type":"article","og_title":"Agenti disfunzionali, software funzionante - Fullo","og_description":"Per ottenere software decente da cinque agenti AI, ho dovuto simulare un ufficio dove nessuno si fida di nessuno. PM paranoico, QA smascherato, Security che controverifica tutto. Diciassette iterazioni, 606 test, e una domanda aperta che ancora non so rispondere: sto applicando ingegneria sociale come workaround a un limite strutturale dei LLM, o ho scoperto un pattern replicabile?","og_url":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/","og_site_name":"Fullo","article_published_time":"2026-03-23T11:42:50+00:00","article_modified_time":"2026-03-23T11:42:52+00:00","og_image":[{"width":1376,"height":768,"url":"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png","type":"image\/png"}],"author":"Francesco Fullone","twitter_card":"summary_large_image","twitter_creator":"@fullo","twitter_site":"@fullo","twitter_misc":{"Written by":"Francesco Fullone","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/#article","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/"},"author":{"name":"Francesco Fullone","@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"headline":"Agenti disfunzionali, software funzionante","datePublished":"2026-03-23T11:42:50+00:00","dateModified":"2026-03-23T11:42:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/"},"wordCount":1946,"publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1376%2C768&ssl=1","keywords":["agents","ai","laravel","pensieri","php","promptengineering"],"articleSection":["lifehack","php","tecnologia"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/","url":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/","name":"Agenti disfunzionali, software funzionante - Fullo","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/#primaryimage"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1376%2C768&ssl=1","datePublished":"2026-03-23T11:42:50+00:00","dateModified":"2026-03-23T11:42:52+00:00","breadcrumb":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/#primaryimage","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1376%2C768&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1376%2C768&ssl=1","width":1376,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fullo.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Agenti disfunzionali, software funzionante"}]},{"@type":"WebSite","@id":"https:\/\/www.fullo.net\/blog\/#website","url":"https:\/\/www.fullo.net\/blog\/","name":"Fullo","description":"nulla e&#039; impossibile per chi non lo deve fare!","publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fullo.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c","name":"Francesco Fullone","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","width":622,"height":622,"caption":"Francesco Fullone"},"logo":{"@id":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1"},"sameAs":["http:\/\/www.fullo.net","https:\/\/www.linkedin.com\/in\/fullo","https:\/\/x.com\/fullo"],"url":"https:\/\/www.fullo.net\/blog\/author\/fullo\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1376%2C768&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3OSc1-1cf","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":4607,"url":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/","url_meta":{"origin":4603,"position":0},"title":"Adversarial verification come metodo","author":"Francesco Fullone","date":"07\/04\/2026","format":false,"excerpt":"Nell'articolo sugli agenti disfunzionali ho descritto come ho dovuto introdurre dinamiche di adversarial verification tra agenti AI per ottenere qualit\u00e0: verifica incrociata obbligatoria, challenge sistematiche, accountability sui falsi positivi. Quel metodo adesso \u00e8 una skill open-source per Claude Code. Si chiama adversarial-verify, e applica Chain-of-Verification combinata con tre tecniche di\u2026","rel":"","context":"In &quot;lifehack&quot;","block_context":{"text":"lifehack","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/lifehack\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4588,"url":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/","url_meta":{"origin":4603,"position":1},"title":"Vibe coding e Green Software, si pu\u00f2 fare!","author":"Francesco Fullone","date":"13\/03\/2026","format":false,"excerpt":"Stavo preparando un hackathon sul green software. Quello che doveva essere un esperimento veloce si \u00e8 trasformato in quattro tool open source in cascata, ognuno estratto dal problema reale che il precedente aveva lasciato irrisolto. Il risultato: un CLAUDE.md come contratto tra developer e agente AI, una libreria TypeScript zero-dipendenze\u2026","rel":"","context":"In &quot;php&quot;","block_context":{"text":"php","link":"https:\/\/www.fullo.net\/blog\/category\/tecnologia\/php\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2366,"url":"https:\/\/www.fullo.net\/blog\/2007\/11\/21\/form-ajax-degradabili-con-jquery-e-jqueryform\/","url_meta":{"origin":4603,"position":2},"title":"Form Ajax &#8220;degradabili&#8221; con JQuery e JQuery.Form","author":"Francesco Fullone","date":"21\/11\/2007","format":false,"excerpt":"La degradazione del codice \u00e8 un po' il mio cavallo di battaglia quando discuto con sviluppatori \"ajax-centrici\" che preferiscono puntare sull'effetto di un fade che sulla usabilit\u00e0\/accessibilit\u00e0 dell'applicazione anche su browser datati o con javascript bloccato (ie. cellulari). La libreria JQuery si \u00e8, in pi\u00f9 occasioni, dimostrata ottima per la\u2026","rel":"","context":"In &quot;ajax&quot;","block_context":{"text":"ajax","link":"https:\/\/www.fullo.net\/blog\/category\/tecnologia\/ajax\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4612,"url":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/orologi-nuvole-e-pensiero-avversariale\/","url_meta":{"origin":4603,"position":3},"title":"Orologi, Nuvole e Pensiero Avversariale","author":"Francesco Fullone","date":"07\/04\/2026","format":false,"excerpt":"Stavo valutando di fare un fork di adversarial-verify per usarla nella consulenza \u2014 strategia, OKR, decisioni di business \u2014 quando mi sono accorto che il problema non era tecnico. Era concettuale: il codice ha verdetti, la strategia no. Da quella domanda \u00e8 nata una conversazione che ha prodotto adversarial-thinking, una\u2026","rel":"","context":"In &quot;business design&quot;","block_context":{"text":"business design","link":"https:\/\/www.fullo.net\/blog\/category\/entrepreneurship\/business-design\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4617,"url":"https:\/\/www.fullo.net\/blog\/2026\/04\/09\/pensieri-specchio\/","url_meta":{"origin":4603,"position":4},"title":"Pensieri specchio","author":"Francesco Fullone","date":"09\/04\/2026","format":false,"excerpt":"Ho costruito strumenti per aiutare gli altri a pensare meglio con un LLM. A met\u00e0 strada ho realizzato che li stavo costruendo per me. Il progetto \u00e8 live, sono la cavia principale, e se volete contribuire al chaos controllato potete farlo da qui.","rel":"","context":"In &quot;lifehack&quot;","block_context":{"text":"lifehack","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/lifehack\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_rp7eugrp7eugrp7e-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_rp7eugrp7eugrp7e-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_rp7eugrp7eugrp7e-scaled.png?fit=1200%2C654&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_rp7eugrp7eugrp7e-scaled.png?fit=1200%2C654&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_rp7eugrp7eugrp7e-scaled.png?fit=1200%2C654&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2242,"url":"https:\/\/www.fullo.net\/blog\/2007\/04\/03\/ad-ogni-categoria-la-sua-template\/","url_meta":{"origin":4603,"position":5},"title":"Ad ogni categoria la sua template!","author":"Francesco Fullone","date":"03\/04\/2007","format":false,"excerpt":"Lavorando ad un sito di un cliente mi \u00e8 capitato di imbattermi nel problema di associare una specifica template ad una categoria del sito. Normalmente una cosa del genere \u00e8 possibile per i post aggregati di una categoria creando il file category-XX.php dove XX \u00e8 l'ID della categoria in questione.\u2026","rel":"","context":"In &quot;php&quot;","block_context":{"text":"php","link":"https:\/\/www.fullo.net\/blog\/category\/tecnologia\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/comments?post=4603"}],"version-history":[{"count":1,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4603\/revisions"}],"predecessor-version":[{"id":4605,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4603\/revisions\/4605"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media\/4604"}],"wp:attachment":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media?parent=4603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/categories?post=4603"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/tags?post=4603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}