KI in der Praxis

eine Website, eine Treppe und ein Geist im Mikrocontroller

Yannick Feld · 23.10.2026

QR-Code zu diesen Folien

Folien

Letztes Wochenende: Vectorcraft

  • Open-Source-Nachbau von Adobe Illustrator, in Rust, mit MCP-Server für Agents
  • Mein Stand: selbst von main gebaut, ~v0.7 (8.–10.10.)
  • Heute: v0.11 (14.10.)

Release-Commits: Co-Authored-By: Claude Opus 5.5

GLM 5.3 Flash

JuFruit-Logo-Entwurf 1 von GLM 5.3 FlashJuFruit-Logo-Entwurf 2 von GLM 5.3 FlashJuFruit-Logo-Entwurf 3 von GLM 5.3 FlashJuFruit-Logo-Entwurf 4 von GLM 5.3 FlashJuFruit-Logo-Entwurf 5 von GLM 5.3 Flash

Opus 5.5

JuFruit-Logo-Entwurf A von Opus 5.5JuFruit-Logo-Entwurf B1 von Opus 5.5JuFruit-Logo-Entwurf B2 von Opus 5.5JuFruit-Logo-Entwurf C von Opus 5.5

Kleines Modell + Feedback

alle: GLM 5.3 Flash

Gezeichnetes Schwein, Frontansicht

Mach ein niedliches Schwein

Schwein von der Seite, Schwanz hängt nicht dran

Jetzt von der Seite

Schwanz hängt nicht dran · nicht symmetrisch

Schwein im Handstand

Handstand

Diese Website

Startseite von yfeld.de
  • Jekyll → Rust-Binary
    axum, Askama, Typst
  • Plan: Opus 5.5
  • Orchestrierung + Umsetzung: GLM 5.3 Flash

Ein Nachmittag.

Plan als Vertrag

T00 + 12 Tasks · 4 Wellen · 0 Merge-Konflikte

Jeder Agent: eigener Worktree, eigener Branch, eigener Port

Was es gekostet hat

15,69 $

Summe

Planen ist teuer. Raten ist teurer.

Was schiefging beim Website-Bau

  1. Agents froren ein – Befehle ohne Timeout
  1. 208 Tests grün, Lighthouse 100 – und trotzdem: veraltete WASM-Demos für immer im Cache
  1. Mensch als Aufsicht: der Review hat’s gefunden, nicht die Tests.

Die Treppe

2× ESP32-C6 · RISC-V · 160 MHz · 1 Kern · keine FPU · 398 × WS2815

So funktioniert’s

Loading interactive demo…

Physik auf der Treppe

Loading interactive demo…

Kuramoto: gekoppelte OszillatorenNagel-Schreckenberg: Stau aus dem NichtsPotts: Domänen

Das Budget: 30 ms pro Frame

Loading interactive demo…

ESP32-C6: RISC-V · 160 MHz · keine FPU

Die Treppe in Commit-Messages

Mai bis Ende September 2026 · die Fixes: 27.09.

Der Geist

Comic-Geist, der sanft schwebt und ein Stück LED-Streifen hält
  • 2–3 Monate: Gerät hängt minutenlang
  • Home Assistant: „nicht verfügbar“
  • Befehle verschwinden
  • ab und zu Absturz

DisassociatedDueToInactivity BeaconTimeout Class3FrameFromNonAssociatedStation MissingAcks Class2FrameFromNonAuthenticatedStation AuthenticationExpired

Mensch + Agent

Ich zum Agent:

„Bau überall Logs ein“
„Hier ist der esp-hal-Fork, arbeite da drin“
„Update rust-mqtt“
„Du hast wieder vergessen, die LEDs anzumachen“

Leitplanken

  • Befehls-Allowlist
  • neue Befehle = Freigabe in opencode
  • keine Secrets auf dem Rechner
  • API-Key mit 20 $ Budget

Hypothesen-Friedhof

Sensenmann sitzt mit Kaffeetasse auf einem Grabstein Sensenmann mit Kaffeetasse

Jede Geschichte klang plausibel – alle aus derselben Debug-Session.

MQTT-Befehle geschickt – wie viele kamen an?

10 von 30 angekommen, dann ~98 s offline. Nicht der Parser – die LED-Last ist der Auslöser.

Agent-getriebene Testsession, 37 Minuten · grau = gesendet, farbig = angekommen · schwerer Effekt = domain_drift

Instrumentieren, bis es gesteht

Verbunden, Heartbeat lebt, MQTT + LEDs stehen = tiefer Hänger, kein WLAN-Schluckauf

Stress-Treiber (WLAN-Scan + Effektwechsel alle 5 s): Fehler 1× am Tag → 2× in 25 min (~50×)

esp-hal geforkt, Zähler eingebaut: Executor-Polls bis 4,2 s

Fehler häufiger machen = schneller iterieren.

Ursache 1: Der geliehene Stack

Loading interactive demo…

Tasks im Interrupt-Executor laufen auf dem Stack dessen, was sie unterbrechen.

Ursache 2: Der Lock-Spin

Prioritätsinversion – gemessen bis 3,8 s, korreliert 1:1 mit MQTT-Reconnects (connected=0). Warum der Spin nach Sekunden endet: ehrlich gesagt nicht ganz verstanden – kein vollständiger Deadlock.

Der Fix: Pipeline teilen

Puffer in static: ~10 KB von 512 KB.

Ergebnis

~4 s → 13 ms

schlimmster Executor-Poll

Abstürze: 2 pro 25 min → 0 in 90+ min

35,4 fps, stabil

Stack-Fix: ein Tag · Lock-Spin: ein Nachmittag

Nachspiel

  • Noch ein 9-Minuten-Hänger (Broker offline 16:51 → online 16:58)
  • Logs mit Timings → Fix im eigenen esp-hal-Fork (noch nicht upstream)
  • Seit 27.09.: keine langen Hänger mehr, gelegentlich ~1 min Schluckauf – repariert sich selbst

Nicht als esp-hal-Bug bestätigt – ein Fix im Fork, nicht upstream.

Was KI gut konnte – und was nicht

Gut

  • Ausdauer: Soak-Tests, Logs lesen
  • Fremden Code lesen (esp-hal, rust-mqtt)
  • Instrumente bauen
  • Fixes vorschlagen

Nicht gut

  • Verrennt sich in Theorien – und ist sich sicher, recht zu haben
  • Vergisst Rahmenbedingungen (LEDs!)
  • Braucht Richtung

Richtung kam von mir, Fleißarbeit vom Agent.

Wie diese Folien entstanden

Opus 5.5
plant, verteilt, merged, prüft
~38 $

7× Sonnet 5.5
bauen Folien, je eigener Worktree
zusammen < 5 $

GPT 6 Luna
Faktencheck, darf nichts ändern
< 1 $

Der Chef ist teuer: Allein der Orchestrator kostet mehr als doppelt so viel wie der ganze Website-Umbau.

Ein Prompt, zwei Wege · niedlicher Sensenmann mit Kaffee · beide Opus 5.5

Sensenmann A

SVG direkt geschrieben
~45 s · 1 Datei · 4,9 KB

Sensenmann B

Vectorcraft per MCP
~3,5 min · ~30 Tool-Aufrufe · 13,1 KB

Takeaways

  1. Großes Modell plant, kleines Modell setzt um – der Plan ist der Vertrag.
  1. Messen statt raten: Agents sind gute Messknechte.
Sensenmann auf Grabstein
  1. Leitplanken + Richtung vom Menschen: Allowlist, Budget, paranoide Fragen.
Sensenmann mit Kaffee
Das niedliche Schwein Der Geist
QR-Code zu diesen Folien

Folien: yfeld.de/talks/ki-impulsvortrag-worldiety-23-10-2026

Noch kurz Werbung

Flyer: GAMECHANGER von Improduction – Freund:innen am Spielbrett, dahinter ein riesiger Monopoly-Mann als Schatten

Improtheater

GAMECHANGER

Das Spiel der Spiele · mit Improduction

Sa 07.11.2026 · 20:00
Unikum Oldenburg, Bühne 1 · 6 / 11 €

QR-Code zu theater-unikum.de
Tickets: theater-unikum.de
Ich spiele mit

Ich freue mich darauf, eure Impulse aufzugreifen!

yfeld.de/talks/ki-impulsvortrag-worldiety-23-10-2026