Soixante conteneurs sur un seul serveur
Une seule machine bare-metal fait tourner des dizaines à des centaines de conteneurs Hoody. La déduplication KSM et BTRFS rend le coût marginal quasi nul.
votre agent tourne dans un conteneur chez vous. vous êtes à l'autre bout de la ville. La boucle de l'agent pipe chaque étape dans Hoody Pipe ; vous curl le même chemin depuis un onglet de téléphone. La trace atterrit caractère par caractère — pas de SSH, pas de dashboard, pas d'upload.
La boucle de l'agent émet déjà des évènements structurés — think, tool_use, result. Pipe-les dans un chemin avec PUT. Depuis le téléphone, GET le même chemin. Le pipe ne stocke pas les octets ; il les stream à travers vers quiconque lit.
Deux connexions HTTP, un chemin. Le pipe garde la connexion du récepteur jusqu'à ce que l'émetteur arrive — votre téléphone peut être ouvert avant le démarrage de l'agent, ou vous pouvez rejoindre en cours de run. Hoody Pipe est le fil entre les deux, jamais une base de données.
L'agent émet quatre sortes de lignes. Chacune vous dit quelque chose qu'un dashboard ne peut pas : pas seulement ce qui s'est passé, mais ce que l'agent pensait quand ça s'est passé.
Le plan du modèle, dans ses propres mots. Pourquoi il a choisi ce tool, ce qu'il attend en retour, où il pourrait brancher. Lire ça, c'est lire la pensée de l'agent en temps réel.
[think] l'utilisateur veut un CSV de factures…La fonction exacte et les arguments que l'agent a décidé d'invoquer. Une ligne par appel, dans l'ordre où la boucle les a tirés. Pas d'abstraction SDK ; juste la requête au niveau du wire.
[tool_use] sql.describe("invoices")La réponse du tool, résumée à la ligne. Nombre de lignes, tailles de fichiers, codes de statut, messages d'erreur. La chose sur laquelle la prochaine ligne [think] va raisonner.
[result] 12 lignes · 41 msChaque ligne atterrit au moment où l'agent l'émet. Pas de refresh toutes les 5 secondes, pas de "dernière mise à jour il y a 2 min". Quand le curseur clignote, l'agent est entre deux pensées. vous faites du tail, pas du refresh.
[tool_use] files.write("invoices.csv")L'agent a tourné quarante minutes. vous l'as lu comme un livre.
Quarante minutes de raisonnement, d'appels d'outils et de résultats — rendus comme un seul flux texte continu et coloré. vous ne polluez pas un endpoint. vous ne rechargez pas un dashboard. vous taillez la pensée de l'agent depuis un café.
Surveiller un agent a historiquement signifié un SaaS, un dashboard, ou une app WebSocket sur mesure. Rien de tout ça ne survit à la question "et si je le curlais ?".
Pipe la boucle, curl le chemin. La pensée de l'agent est désormais un tail que vous pouvez lire.