En este post del 7 de junio de 2026, Mark Dembo (Head of Solutions – Developer Platform & AI en Cloudflare) relata un proyecto de bricolaje dominical: construir un agente de IA DIY a partir de un pequeño dispositivo M5Stack Stick 3 comprado por ~30 €, inspirado por Steve Ruiz y motivado por el lanzamiento de Opus 4.8. El lema: "No hay ningún objetivo. Pura exploración y curiosidad. Y eso se siente genial."

Primera iteración (45 minutos). Lanza la documentación del dispositivo a Claude Code, que produce aproximadamente 200 líneas de scripts Python. Como tienen "radio de impacto cero", se permite no preocuparse en absoluto por el código. El flujo sigue siendo human-in-the-loop (poco "2026" para su gusto): Opus genera, él copia y pega en la interfaz web de UIFlow, la ejecuta, e informa del resultado de vuelta. Su rol se reduce a tres funciones — generador de ideas, ejecutor y juez. Un backend de Cloudflare Workers + Workers AI añade rápidamente texto a voz, push-to-talk (reconocimiento de voz), y un LLM pequeño central: el objeto escucha, responde y cuenta malos chistes.

Segunda iteración. Con el objetivo de un agente real, dirige a Opus hacia el Cloudflare Agents SDK, pasa de REST a transporte WebSocket, y activa Dynamic Worker execution — desbloqueando su patrón favorito, "Code Mode": el agente escribe y ejecuta código para lograr su tarea. Con acceso a internet, el agente calcula 11! con una línea de código, encuentra al ganador de la Champions League vía fetch() en Wikipedia, y da el clima de cualquier ciudad. Su límite: sin acceso a datos privados.

Tercera iteración. Conecta Todoist vía un flujo MCP OAuth (añadido en pocos minutos por Claude) — y hereda 50 herramientas de golpe, de ahí dos problemas: saturación de contexto y un radio de impacto real (una mala llamada podría eliminar una tarea crítica). Su contramedida, inspirada en el MCP Server Portal de Cloudflare y los conectores de Claude: configurar cada herramienta como Always allow / Ask for approval / Disable — las herramientas deshabilitadas nunca entran en el contexto, un clasificador LLM solo acepta concesiones explícitas, y default = deny.

Lo que no hizo: ninguna optimización de latencia, ningún eval, ninguna llamada optimista — "Ni siquiera miré el código una sola vez. ¿Y sabes qué? Esa es la parte agradable." El asombro final tiene menos que ver con la capacidad que con su accesibilidad: 30 € y algunos céntimos de inferencia para un objeto controlado en lenguaje natural.