In diesem Beitrag vom 7. Juni 2026 erzählt Mark Dembo (Head of Solutions – Developer Platform & AI bei Cloudflare) von einem sonntäglichen Bastelprojekt: dem 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. Das Motto: „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 rund 200 Zeilen Python-Skripte erzeugt. Da diese „zero blast radius“ haben, erlaubt er sich, sich überhaupt nicht um den Code zu kümmern. Der Ablauf bleibt human-in-the-loop (nach seinem Geschmack wenig „2026“): Opus generiert, er kopiert und fügt in die Weboberfläche UIFlow ein, führt aus und meldet das Ergebnis zurück. Seine Rolle schrumpft auf drei Funktionen — Ideengeber, Ausführender und Richter. Ein Cloudflare-Workers-+-Workers-AI-Backend ergänzt rasch Sprachausgabe (Text-to-Speech), Push-to-Talk (Spracherkennung) und ein zentrales kleines LLM: Das Objekt hört zu, antwortet und erzählt schlechte Witze.
Zweite Iteration. Mit dem Ziel eines echten Agenten verweist er Opus auf das Cloudflare Agents SDK, wechselt von REST zu WebSocket-Transport und aktiviert Dynamic Worker execution — was sein Lieblingsmuster freischaltet, „Code Mode“: Der Agent schreibt und führt Code aus, um seine Aufgabe zu erledigen. Mit Internetzugang berechnet der Agent 11! mit einer Zeile Code, findet den Champions-League-Sieger via fetch() auf Wikipedia und liefert das Wetter für beliebige Städte. Seine Grenze: kein Zugriff auf private Daten.
Dritte Iteration. Er verbindet Todoist über einen MCP-OAuth-Flow (von Claude in wenigen Minuten hinzugefügt) — und erbt dabei 50 Tools auf einmal, woraus zwei Probleme entstehen: Context Bloat und ein echter Blast Radius (ein Fehlaufruf könnte eine wichtige Aufgabe löschen). Seine Gegenmaßnahme, inspiriert vom MCP Server Portal von Cloudflare und den 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 = deny.
Was er nicht getan hat: keine Latenzoptimierung, keine Evals, keine optimistischen Aufrufe — „Ich habe nicht ein einziges Mal in den Code geschaut. Und wissen Sie was? Das ist ja gerade das Schöne daran.“ Das abschließende Staunen bezieht sich weniger auf die Fähigkeit als auf ihre Zugänglichkeit: 30 € und ein paar Cent Inferenzkosten für ein Objekt, das in natürlicher Sprache gesteuert wird.
Kernpunkte
Datum / Quelle.7. Juni 2026, persönlicher Blog markpauldembo.com. Autor: Mark Dembo, Head of Solutions Developer Platform & AI bei Cloudflare. Inspiration: Steve Ruiz.
Rahmen. Sonntägliches Basteln, ~30 € (M5Stack Stick 3) + frisch veröffentlichtes Opus 4.8. „No goal. Pure exploration and curiosity.“ ### Iteration 1 — von null zum sprechenden Objekt (45 Min.)
Gerätedokumentation → Claude Code → ~200 Zeilen Python-Skripte, „zero blast radius“ → „I can afford to not care about the code at all“.
Human-in-the-loop. -Ablauf (als wenig „2026“ eingestuft): Opus generiert → Copy-Paste in UIFlow → Ausführen → Ergebnis an Claude zurückmelden.
Rolle reduziert auf Ideengeber / Ausführender / Richter (+ selten technischer Anleiter).
Cloudflare-Workers-+-Workers-AI. -Backend: TTS, Push-to-Talk (STT), zentrales kleines LLM zur Beantwortung. ### Iteration 2 — ein echter Mini-Agent
Öffentliche Daten OK: 11! (eine Zeile Code), Sieger der Champions League (via fetch() auf Wikipedia — dem Agenten gewährter Internetzugang), Wetter für beliebige Städte.
Grenze: kein Zugriff auf private Daten → nächste Mission. ### Iteration 3 — echte Befugnisse (und ihre Absicherung)
Todoist. -Anbindung via MCP OAuth (von Claude in wenigen Minuten hinzugefügt) → 50 Tools auf einmal.
Zwei Probleme: (1) Context Bloat (die meisten Tools ungenutzt); (2) echter Blast Radius (ein Fehlaufruf = Löschung einer wichtigen Aufgabe).
Lösung (Cloudflare MCP Server Portal + Claude-Connectors): pro Tool Always allow / Ask for approval / Disable; Disabled bleibt außerhalb des Kontexts; LLM-Klassifikator akzeptiert nur eindeutige „allow“-Freigaben, Standard = deny. ### Was er NICHT getan hat (eingeräumt)
Keine Latenz-/Streaming-Optimierung für Audio+LLM („yes, I know, it's slow“).
Keine optimistischen LLM-Aufrufe, keine Evals von Modellen/Prompts.
*„I did not even look at the code once“. * — und genau das wird als der schöne Teil davon bezeichnet. ### Für Briefings / Präsentationen zu verwenden
Beleg für Zugänglichkeit. 30 € + 1 Sessionfenster + ein paar Cent Inferenzkosten → konversationsfähiges Objekt. „The true unlock is how accessible it is.“
Konkrete Demonstration von Code Mode + MCP + Tool-Governance (allow/ask/disable, default-deny) — wiederverwendbar zur Einordnung agentischer Sicherheit.
Didaktischer Kontrast. zu Failing Faster (Pragdave): hier rechtfertigt „zero blast radius“, nie in den Code zu schauen — die Disziplin hängt vom Blast Radius ab, nicht von Dogma.
Zugeschriebene Aussagen
« I did not even look at the code once »
— Mark Dembo
die Zugänglichkeit von KI-Fähigkeiten (30 € + ein paar Cent Inferenz) ist der eigentliche Durchbruch
— Mark Dembo
Der aus dieser Fiche extrahierte Wissensgraph — 11 Entitäten, 13 Relationen.
In diesem Graphen :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