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.