In diesem Beitrag vom 7. Juni 2026 schildert Mark Dembo (Head of Solutions – Developer Platform & AI bei Cloudflare) ein sonntägliches Tüftelprojekt: den Bau eines DIY-KI-Agenten aus einem kleinen, für ~30 € gekauften M5Stack Stick 3-Gerät, inspiriert von Steve Ruiz und motiviert durch die Veröffentlichung von Opus 4.8. Die Devise: „There is no goal. Pure exploration and curiosity. And that feels just great.“

Erste Iteration (45 Minuten). Er wirft die Dokumentation des Geräts Claude Code vor, das Python-Skripte von rund 200 Zeilen erzeugt. Da diese „zero blast radius“ haben, erlaubt er sich, sich nicht um den Code zu kümmern. Der Ablauf bleibt human-in-the-loop (für seinen Geschmack wenig „2026“): Opus generiert, er kopiert per Copy-Paste in die Weboberfläche UIFlow, führt aus und meldet das Ergebnis zurück. Seine Rolle schrumpft auf drei Funktionen — idea generator, executor, and judge. Ein Backend aus Cloudflare Workers + Workers AI ergänzt rasch Text-to-Speech, Push-to-Talk (Spracherkennung) und ein zentrales kleines LLM: Das Objekt hört zu, antwortet und reißt schlechte Witze.

Zweite Iteration. Auf der Suche nach einem echten Agenten richtet er Opus auf das Cloudflare Agents SDK, stellt den Transport von REST auf WebSocket um und aktiviert Dynamic Worker execution — was sein bevorzugtes Muster freischaltet, „Code Mode“: Der Agent schreibt und führt Code aus, um seine Aufgabe zu erledigen. Mit Internetzugang berechnet der Agent 11! mit einer Einzeiler-Anweisung, findet den Champions-League-Sieger via fetch() auf Wikipedia und liefert das Wetter für jede beliebige Stadt. Seine Grenze: kein Zugriff auf private Daten.

Dritte Iteration. Er verbindet Todoist über einen MCP OAuth-Flow (in wenigen Minuten von Claude hinzugefügt) — und erbt sofort 50 Tools, was zwei Probleme mit sich bringt: Context Bloat und einen echten Blast Radius (ein Fehlaufruf könnte eine kritische Aufgabe zerstören). Seine Lösung, angelehnt an Cloudflares MCP Server Portal und die Claude-Connectors: jedes Tool auf Always allow / Ask for approval / Disable setzen — deaktivierte Tools gelangen nie in den Kontext, ein LLM-Klassifikator akzeptiert nur explizite Freigaben, und Standard ist Verweigerung.

Was er nicht getan hat: keine Latenzoptimierung, keine Evals, keine optimistischen Aufrufe — „I did not even look at the code once. And you know what? That's the nice part of it.“ Die abschließende Verwunderung gilt weniger der Leistungsfähigkeit als ihrer Zugänglichkeit: 30 € und ein paar Cent Inferenz für ein Objekt, das man in natürlicher Sprache steuert.