Post di svago domenicale di Mark Dembo (Head of Solutions, Developer Platform & AI presso Cloudflare) pubblicato il 7 giugno 2026 sul suo blog personale. Narrazione: ispirato da Steve Ruiz, l'autore acquista un piccolo dispositivo M5Stack Stick 3 (~30€) e, approfittando del rilascio di Opus 4.8, si costruisce un agente AI DIY "per pura curiosità, senza alcun obiettivo". Iterazione 1 (45 min): sottopone la documentazione del dispositivo a Claude Code, che genera script Python (~200 righe di codice, "zero blast radius") che mostrano il meteo di Monaco di Baviera, poi di più città; un backend Cloudflare Workers + Workers AI aggiunge sintesi vocale (TTS), push-to-talk (riconoscimento vocale) e un piccolo LLM centrale per rispondere alle domande. Iterazione 2 (un vero agente): passaggio degli endpoint REST al trasporto WebSocket tramite il Cloudflare Agents SDK + Dynamic Worker execution → il pattern "Code Mode" (l'agente scrive ed esegue codice per portare a termine il suo compito).
In questo post del 7 giugno 2026, Mark Dembo (Head of Solutions – Developer Platform & AI presso Cloudflare) racconta un progetto di svago domenicale: costruirsi un agente AI DIY a partire da un piccolo dispositivo M5Stack Stick 3 acquistato per ~30€, ispirato da Steve Ruiz e motivato dal rilascio di Opus 4.8. La parola d'ordine: "Non c'è alcun obiettivo. Pura esplorazione e curiosità. Ed è semplicemente fantastico."
Prima iterazione (45 minuti). Sottopone la documentazione del dispositivo a Claude Code, che produce script Python di circa 200 righe. Poiché hanno "zero blast radius," si permette di non preoccuparsi affatto del codice. Il flusso resta human-in-the-loop (poco "2026" per i suoi gusti): Opus genera, lui copia-incolla nell'interfaccia web UIFlow, esegue e riporta il risultato. Il suo ruolo si riduce a tre funzioni — generatore di idee, esecutore e giudice. Un backend Cloudflare Workers + Workers AI aggiunge rapidamente sintesi vocale, push-to-talk (riconoscimento vocale) e un piccolo LLM centrale: l'oggetto ascolta, risponde e racconta battute scadenti.
Seconda iterazione. Puntando a un vero agente, indirizza Opus verso il Cloudflare Agents SDK, passa dal trasporto REST a WebSocket e attiva la Dynamic Worker execution — sbloccando il suo pattern preferito, "Code Mode": l'agente scrive ed esegue codice per portare a termine il suo compito. Dato l'accesso a internet, l'agente calcola 11! con una riga di codice, trova il vincitore della Champions League via fetch() su Wikipedia, e fornisce il meteo per qualsiasi città. Il suo limite: nessun accesso ai dati privati.
Terza iterazione. Connette Todoist tramite un flusso MCP OAuth (aggiunto in pochi minuti da Claude) — ed eredita all'istante 50 strumenti, da cui due problemi: context bloat e un rischio reale di danni (una chiamata sbagliata potrebbe distruggere un'attività critica). La sua soluzione, tratta dal MCP Server Portal di Cloudflare e dai connettori Claude: impostare ogni strumento su Always allow / Ask for approval / Disable — gli strumenti disabilitati non entrano mai nel contesto, un classificatore LLM accetta solo autorizzazioni esplicite, e il default è negare.
Cosa non ha fatto: nessuna ottimizzazione della latenza, nessuna valutazione (eval), nessuna chiamata ottimistica — "non ho nemmeno guardato il codice una sola volta. E sapete cosa? È questa la parte bella." Lo stupore finale riguarda meno la capacità che la sua accessibilità: 30€ e qualche centesimo di inferenza per un oggetto che si pilota in linguaggio naturale.
Punti chiave
Data / fonte.7 giugno 2026, blog personale markpauldembo.com. Autore: Mark Dembo, Head of Solutions Developer Platform & AI Cloudflare. Ispirazione: Steve Ruiz.
Contesto. svago domenicale, ~30€ (M5Stack Stick 3) + Opus 4.8 appena rilasciato. "Nessun obiettivo. Pura esplorazione e curiosità." ### Iterazione 1 — da zero a un oggetto parlante (45 min)
Documentazione del dispositivo → Claude Code → script Python ~200 righe di codice, "zero blast radius" → "posso permettermi di non preoccuparmi affatto del codice."
Flusso human-in-the-loop (giudicato poco 2026): Opus genera → copia-incolla in UIFlow → esecuzione → riporta il risultato a Claude.
Ruolo ridotto a generatore di idee / esecutore / giudice (+ raramente guida tecnica).
Backend Cloudflare Workers + Workers AI: TTS, push-to-talk (STT), piccolo LLM centrale per rispondere. ### Iterazione 2 — un vero mini-agente
Dati pubblici OK: 11! (una riga di codice), vincitore della Champions League (via fetch() su Wikipedia — accesso a internet concesso all'agente), meteo per qualsiasi città.
Limite: nessun accesso ai dati privati → missione successiva. ### Iterazione 3 — poteri reali (e la loro protezione)
Connessione a Todoist via MCP OAuth (aggiunta in pochi minuti da Claude) → 50 strumenti in un colpo solo.
Due problemi: (1) context bloat (la maggior parte degli strumenti inutilizzati); (2) rischio reale di danni (una chiamata sbagliata = cancellazione di un'attività importante).
Soluzione (Cloudflare MCP Server Portal + connettori Claude): per ogni strumento, Always allow / Ask for approval / Disable; Disabled resta fuori dal contesto; il classificatore LLM accetta solo autorizzazioni "allow" distinte, il default è negare. ### Cosa NON ha fatto (rivendicato come scelta)
Nessuna ottimizzazione di latenza/streaming per audio+LLM ("sì, lo so, è lento").
Nessuna chiamata LLM ottimistica, nessuna valutazione (eval) di modelli/prompt.
*"Non ho nemmeno guardato il codice una sola volta". * — e questo è rivendicato come la parte divertente. ### Da usare in incarichi / presentazioni
Prova di accessibilità. 30€ + 1 finestra di sessione + qualche centesimo di inferenza → un oggetto conversazionale. "Il vero sblocco è quanto sia accessibile."
Dimostrazione concreta di Code Mode + MCP + governance degli strumenti (allow/ask/disable, default-deny) — riutilizzabile per inquadrare la sicurezza agentica.
Contrasto istruttivo. con Failing Faster (Pragdave): qui "zero blast radius" giustifica il non guardare mai il codice — la disciplina dipende dal blast radius, non dal dogma.
Affermazioni attribuite
« I did not even look at the code once »
— Mark Dembo
l'accessibilità della capacità IA (30 € + pochi centesimi di inferenza) è il vero sblocco
— Mark Dembo
Il grafo di conoscenza estratto da questa fiche — 12 entità, 13 relazioni.
In questo grafo :Mark Dembo · BYO Agent with M5Stack Stick 3 · M5Stack Stick 3 · Opus 4.8 · Cloudflare Workers / Workers AI · Cloudflare Agents SDK · Code Mode · MCP (OAuth) · gouvernance d'outils MCP · zero blast radius · idea generator / executor / judge · Cloudflare