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.
vous avez lancé un agent de quarante minutes avant de quitter le bureau. vous êtes dans le train. L'agent stream sa trace dans un chemin pipe ; vous curl la même URL depuis votre téléphone et vous regardez les messages d'état défiler. Quand la boucle se termine, hoody-notifications te buzz. Deux URLs et un buzz — pas de SDK, pas de dashboard, pas de polling.
Le tail live au-dessus, la notification push en dessous — même téléphone, même agent. La trace est le monologue qui tourne, que vous regardez d'un œil ; la notification est le point final. vous n'avez pas à choisir lequel câbler : les deux viennent de l'agent, les deux atterrissent sur l'appareil déjà dans votre poche.
La boucle de votre agent pipe chaque évènement dans un chemin avec PUT. Depuis le train, vous faites GET sur le même chemin dans une app terminal. Les lignes atterrissent au moment où elles se produisent — pas de refresh toutes les cinq secondes, pas de tampon "dernière mise à jour". vous jetez un œil à l'écran, vous voyez que l'agent est vivant, et vous rangez le téléphone.
Quand la boucle externe se termine, le dernier appel de l'agent tape hoody-notifications avec un résumé d'une ligne. votre téléphone vibre. vous ne déverrouillez pas — vous lisez la bannière, et vous savez que le run est fini avant même d'arriver à la prochaine gare.
Hoody Pipe transporte le tail live ; hoody-notifications transporte le buzz. L'agent les traite comme n'importe quel autre appel HTTP — un PUT et un POST, sans SDK entre les deux.
L'agent tourne sur un serveur que vous avez configuré avant de partir. Pendant que vous bougez, votre téléphone est le seul client dans la boucle. L'agent fait tout le boulot ; le téléphone fait toute la veille.
Dans la boucle, chaque évènement — think, tool_use, result — est pipé dans un chemin unique. Le pipe stream vers quiconque lit ; si personne ne lit encore, le chemin reste ouvert jusqu'à cinq minutes.
PUT https://agent-pipe.…hoody.com/api/v1/pipe/agent-traceOuvre un terminal sur le téléphone. curl -N le chemin. La trace s'imprime au fur et à mesure — pas de plomberie SSE, pas de broker, pas d'app à installer. Ferme l'onglet quand vous n'avez plus envie de regarder.
$ curl -N https://agent-pipe.…hoody.com/api/v1/pipe/agent-traceQuand la boucle externe retourne, l'agent poste un résumé d'une ligne à hoody-notifications. votre téléphone reçoit le push système depuis là — même buzz qu'un rappel de calendrier, sans app requise.
POST /notify ["summary":"billing-reconcile-7","body":"completed in 41:08"]Deux chemins HTTP et un troisième pour le buzz. L'agent ne sait pas que votre téléphone existe ; il parle juste HTTP. Le téléphone ne connaît pas le conteneur de l'agent ; il ouvre juste une URL.
vous ne lisez pas chaque mot. vous scannez trois tokens : une pensée, un appel, un résultat. S'ils bougent, l'agent est vivant. S'ils s'arrêtent, vous vérifiez l'heure du prochain push.
Pourquoi l'agent a choisi ce tool, ce qu'il attend en retour, où il pourrait brancher. Lire ça dans un train, c'est lire la pensée de l'agent en temps réel — une ligne par étape de raisonnement.
[think] réconcilier les factures de juilletLa fonction exacte et les arguments que l'agent a décidé d'invoquer. Une ligne par appel, dans l'ordre où ils ont été tirés. Pas d'abstraction SDK, pas d'ID opaque — juste la requête au niveau du wire.
[tool_use] sql.exec("SELECT …")Nombre de lignes, durées, codes de statut — les choses sur lesquelles la prochaine ligne [think] va raisonner. Quand la boucle externe se termine, le résultat final atterrit sur le wire et hoody-notifications buzz le téléphone dans votre poche.
[result] 412 lignes · 88 msvotre téléphone est la barre de statut de l'agent.
Pas de dashboard. Pas d'app. Pas de SDK livré sur l'appareil. L'agent tourne sur un serveur, le statut vit sur votre téléphone, et la seule chose entre les deux, c'est HTTP. vous pouvez changer de train, changer d'opérateur, perdre du signal pendant deux arrêts — quand vous vous reconnectez, la prochaine ligne [result] continue à s'imprimer.
Surveiller un agent qui tourne longtemps, ça a historiquement signifié un SaaS, un onglet de dashboard, ou un webhook + bot custom. Rien de tout ça ne survit à la question "et si je le curlais juste depuis mon téléphone ?".
Pipe la trace, post le buzz. votre téléphone est la barre de statut de l'agent — sans app requise.