Dans ce billet du 7 juin 2026, Mark Dembo (Head of Solutions – Developer Platform & AI chez Cloudflare) raconte un bricolage de dimanche : se construire un agent IA DIY à partir d'un petit appareil M5Stack Stick 3 acheté ~30 €, inspiré par Steve Ruiz et motivé par la sortie d'Opus 4.8. Le mot d'ordre : « There is no goal. Pure exploration and curiosity. And that feels just great. »

Première itération (45 minutes). Il jette la documentation de l'appareil à Claude Code, qui produit des scripts Python d'environ 200 lignes. Comme ils ont un « zero blast radius », il s'autorise à ne pas se soucier du code. Le flux reste human-in-the-loop (peu « 2026 » à son goût) : Opus génère, il copie-colle dans l'interface web UIFlow, lance, et rapporte le résultat. Son rôle se réduit à trois fonctions — idea generator, executor et judge. Un backend Cloudflare Workers + Workers AI ajoute vite la synthèse vocale, le push-to-talk (reconnaissance vocale) et un petit LLM central : l'objet écoute, répond et fait de mauvaises blagues.

I did not even look at the code once. And you know what? That's the nice part of it.

**Mark Dembo** , markpauldembo.com

Deuxième itération. Visant un vrai agent, il pointe Opus vers le Cloudflare Agents SDK, bascule de REST vers le transport WebSocket et active la Dynamic Worker execution — débloquant le pattern qu'il préfère, « Code Mode » : l'agent écrit et exécute du code pour accomplir sa tâche. Doté d'un accès internet, l'agent calcule 11 ! par un one-liner, trouve le vainqueur de la Ligue des Champions via fetch() sur Wikipédia et donne la météo de n'importe quelle ville. Sa limite : aucune donnée privée.

Troisième itération. Il connecte Todoist via un flux MCP OAuth (ajouté en quelques minutes par Claude) — et hérite d'un coup de 50 outils, donc de deux problèmes : le gonflement du contexte et un blast radius réel (un mauvais appel pourrait détruire une tâche critique). Sa parade, inspirée du MCP Server Portal de Cloudflare et des connecteurs Claude : régler chaque outil sur Always allow / Ask for approval / Disable — les outils désactivés n'entrent jamais dans le contexte, un classifieur LLM n'accepte que des autorisations explicites et défaut = deny.

Ce qu'il n'a pas fait : ni optimisation de latence, ni évals, ni appels optimistes — « I did not even look at the code once. And you know what? That's the nice part of it. » L'émerveillement final porte moins sur la capacité que sur son accessibilité : 30 € et quelques cents d'inférence pour un objet qu'on pilote en langage naturel.