
Sechzig Container auf einem Server
Eine Bare-Metal-Box führt Dutzende bis Hunderte von Hoody-Containern aus. KSM und BTRFS-Dedup machen die Marginalkosten nahezu null.
Du hast einen vierzigminütigen Agent gestartet, bevor du das Büro verlassen hast. Jetzt sitzt du im Zug. Der Agent streamt seinen Trace an einen Pipe-Pfad; du curlst dieselbe URL vom Handy aus und schaust State-Messages vorbeiziehen. Wenn die Schleife endet, buzzt dich hoody-notifications. Zwei URLs und ein Buzz — kein SDK, kein Dashboard, kein Polling.
Live-Tail oben, Push-Benachrichtigung unten — gleiches Handy, gleicher Agent. Der Trace ist der laufende Monolog, auf den du kurz schaust; die Benachrichtigung ist der Punkt am Ende. Du musst dich nicht entscheiden, was du verkabeln willst: beides kommt vom Agent, beides landet auf dem Gerät, das schon in deiner Tasche ist.
Die Schleife deines Agents pipet jedes Event mit PUT in einen Pfad. Vom Zug aus machst du GET auf denselben Pfad in einer Terminal-App. Zeilen landen, sobald sie passieren — kein 5-Sekunden-Refresh, kein "zuletzt aktualisiert"-Stempel. Du schaust kurz auf den Bildschirm, siehst, dass der Agent lebt, und steckst das Handy weg.
Wenn die äußere Schleife endet, ruft der letzte Call des Agents hoody-notifications mit einer einzeiligen Zusammenfassung auf. Dein Handy vibriert. Du entsperrst nicht — du liest den Banner und weißt, dass der Run abgeschlossen ist, bevor du in der nächsten Station einläufst.
Hoody Pipe trägt den Live-Tail; hoody-notifications trägt den Buzz. Der Agent behandelt sie wie jeden anderen HTTP-Call — ein PUT und ein POST, kein SDK dazwischen.
Der Agent läuft auf einem Server, den du vor dem Losfahren aufgesetzt hast. Während du unterwegs bist, ist dein Handy der einzige Client in der Schleife. Der Agent macht die ganze Arbeit; das Handy macht das ganze Zuschauen.
In der Schleife wird jedes Event — think, tool_use, result — auf einen einzigen Pfad gepipet. Die Pipe streamt an wen auch immer liest; wenn noch niemand liest, hält der Pfad bis zu fünf Minuten offen.
PUT https://agent-pipe.…hoody.com/api/v1/pipe/agent-traceÖffne ein Terminal auf dem Handy. curl -N auf den Pfad. Der Trace wird ausgegeben, sobald er landet — keine SSE-Verkabelung, kein Broker, keine App zu installieren. Schließ den Tab, wenn du nicht mehr hinschauen willst.
$ curl -N https://agent-pipe.…hoody.com/api/v1/pipe/agent-traceWenn die äußere Schleife zurückkehrt, postet der Agent eine einzeilige Zusammenfassung an hoody-notifications. Dein Handy bekommt von dort den System-Push — gleicher Buzz wie eine Kalender-Erinnerung, keine App nötig.
POST /notify ["summary":"billing-reconcile-7","body":"completed in 41:08"]Zwei HTTP-Pfade und ein dritter für den Buzz. Der Agent weiß nicht, dass dein Handy existiert; er spricht einfach HTTP. Das Handy weiß nichts vom Container des Agents; es öffnet einfach eine URL.
Du liest nicht jedes Wort. Du scannst drei Tokens: einen Gedanken, einen Call, ein Result. Wenn sie sich bewegen, lebt der Agent. Wenn sie stoppen, schaust du auf die Zeit beim nächsten Push.
Warum der Agent dieses Tool gewählt hat, was er zurückerwartet, wo es verzweigen könnte. Diese im Zug zu lesen heißt, die Gedanken des Agents in Echtzeit zu lesen — eine Zeile pro Reasoning-Schritt.
[think] Rechnungen für Juli abgleichenDie exakte Funktion und die Argumente, die der Agent aufrufen wollte. Eine Zeile pro Call, in der Reihenfolge, in der sie abgefeuert wurden. Keine SDK-Abstraktion, keine opake ID — nur der Wire-Level-Request.
[tool_use] sql.exec("SELECT …")Zeilen-Zähler, Dauern, Statuscodes — die Dinge, über die die nächste [think]-Zeile nachdenken wird. Wenn die äußere Schleife endet, landet das letzte Result auf der Leitung und hoody-notifications buzzt das Handy in deiner Tasche.
[result] 412 Zeilen · 88 msDein Handy ist die Statusleiste des Agents.
Kein Dashboard. Keine App. Kein SDK auf dem Gerät. Der Agent läuft auf einem Server, der Status lebt auf deinem Handy, und das Einzige dazwischen ist HTTP. Du kannst Züge wechseln, den Provider wechseln, zwei Stationen lang Empfang verlieren — wenn du wieder verbindest, druckt die nächste [result]-Zeile weiter.
Einen lang laufenden Agent zu beobachten hieß historisch: ein SaaS, ein Dashboard-Tab oder ein eigener Webhook + Bot. Nichts davon überlebt die Frage "was, wenn ich es einfach vom Handy aus curle?".
Pipe den Trace, poste den Buzz. Dein Handy ist die Statusleiste des Agents — keine App nötig.