Wer handelt, wer beobachtet?
In klassischer UI gibt der Mensch Eingaben, die App antwortet sofort. Klick → Feedback. Submit → Result. Der Mensch ist der Akteur, die App ist passiv.
In Agentic UI dreht sich das um. Du gibst den Impuls — die Intention. Der Agent arbeitet. Das dauert Sekunden, manchmal Minuten. Du schaust zu. Du kannst eingreifen. Das Ergebnis kommt in Teilen, nicht auf einmal.
Das verändert alles: Interaktionsstruktur, Controls, Zeitwahrnehmung, Feedback-Loops. Ein Spinner der 40 Sekunden dreht ist kein UI-Problem — es ist ein Architektur-Problem. Wer Agenten baut muss anders über Interface nachdenken.
Alle guten Agentic UIs streamen live. Das ist keine optionale Verbesserung — es ist der Unterschied zwischen einem Agenten der dem User vertraut und einem der 40 Sekunden Angst erzeugt.
Content-Type: text/event-stream. Client liest via Fetch ReadableStream. Einfach, HTTP-standard, keine Infrastruktur.turbo_stream_from @session_id. Partial HTML wird live in DOM gepatcht. Richtig für lange Jobs die nach dem HTTP-Request weiterlaufen.SseWriter, TurboWriter, MockWriter, AgentRunWriter. Dieselbe Writer-Schnittstelle, anderer Transport. Der Agent-Code ändert sich nicht wenn der Transport wechselt.Der häufigste Fehler in Agentic UI: Knöpfe für Intention, Prompts für Parameter. Das ist falsch herum. Intention — was soll passieren — ist unstrukturiert, individuell, sprachlich. Dafür ist der Prompt da.
Parameter — wie soll es passieren — sind strukturiert und bekannt. Style Level, Safe Mode, Sprache, Modell. Dafür sind Knöpfe da. Nicht als Ersatz für den Prompt, sondern als Ergänzung.
Was immer sichtbar ist: Prompt/Chat-Input, Submit-Button (disabled während Agent läuft). Was situativ erscheint: Stop-Button, Safe-Mode-Toggle, Style-Slider, Message-Injection (User tippt mid-run, Agent liest beim nächsten Turn).
Human-in-the-Loop ist keine Ja/Nein-Entscheidung. Es ist ein Spektrum. Jede Stufe hat ihre Berechtigung — je nach Task-Art, Risiko und Vertrauen in den Agenten.
Monitoring ist kein Afterthought. Es ist eine eigene UI-Schicht mit eigener Route, eigenem Component-Set, eigenem Update-Rhythmus.
Was gut funktioniert: Grid aus Session-Cards mit Live-Status. Farb-Codierung (grün = aktiv, blau = fertig, rot = Fehler). Events-Timeline mit Timestamps auf Millisekunden. Tool-Calls inline mit Input + gekürztem Result. Cost per Event.
Das AgentRun-Model trackt: cost_usd, input_tokens,
output_tokens, turns, current_tool,
current_stage, tool_history (JSON), heartbeat_at.
Stale bei Heartbeat > 2 Minuten. RunReport nach Abschluss.