Aller au contenu
TYPEDébloqué
ÉTAPEProduction
DIFFICULTÉModéré
MÉTIERPartager un flux
POURCréateurs d'IA
POURDevs backend
SERVICESPipe
SERVICESAgent
POURQUOI HOODYHTTP-natif
POURQUOI HOODYIA-natif
TYPEDébloqué
ÉTAPEProduction
DIFFICULTÉModéré
MÉTIERPartager un flux
POURCréateurs d'IA
POURDevs backend
SERVICESPipe
SERVICESAgent
POURQUOI HOODYHTTP-natif
POURQUOI HOODYIA-natif
TYPEDébloqué
ÉTAPEProduction
DIFFICULTÉModéré
MÉTIERPartager un flux
POURCréateurs d'IA
POURDevs backend
SERVICESPipe
SERVICESAgent
POURQUOI HOODYHTTP-natif
POURQUOI HOODYIA-natif
TYPEDébloqué
ÉTAPEProduction
DIFFICULTÉModéré
MÉTIERPartager un flux
POURCréateurs d'IA
POURDevs backend
SERVICESPipe
SERVICESAgent
POURQUOI HOODYHTTP-natif
POURQUOI HOODYIA-natif
PIPE · AGENT · STREAMING

Streame des tokens LLM vers tout ce qui parle HTTP

L'étape 3 de votre agent génère des tokens. L'étape 4 doit commencer à les consommer avant que l'étape 3 finisse. Pipe la sortie du modèle direct dans un chemin ; le processus suivant curl le même chemin. Pas de plomberie SSE, pas de broker, pas de jonglerie de callbacks — les bytes circulent à pleine vitesse.

Lire l'API pipe

Deux curls, un chemin, aucune couche intermédiaire

La plupart des stacks de streaming demandent un endpoint SSE, une queue, un bus pub/sub et un callback de framework pour bouger les tokens d'un mètre. Le pipe remplace tout ça : le producer écrit sur un chemin avec PUT, le consumer lit du même chemin avec GET. Les bytes circulent directement entre les deux — aucun stockage intermédiaire sur le serveur.

LA STACK HABITUELLE

Cinq couches entre le générateur et le lecteur

  • Abstraction de streaming LangChaincallback hell
  • Plomberie Server-Sent Eventsframing + heartbeats
  • Redis pub/subbroker à opérer
  • Relay WebSocket customauth + reconnexion
  • Broker de messages (Kafka/RabbitMQ)topics + partitions
  • Callbacks de framework agentvendor-specific
LE PIPE

Deux curls qui touchent le même chemin

PRODUCTEURcurl -T - /pipe/tokens
MÊME CHEMIN
CONSOMMATEURcurl /pipe/tokens

Stockage côté serveur : zéro. Les bytes streament du sender au receiver dès que les deux se connectent, avec backpressure gérée par receiver. L'endpoint existe seulement parce que deux curls l'ont touché.

agent-step-3.sh
# Step 3 — agent generates and pipes tokens upward.
ai.generate({ model, stream: true }) \
  | jq -c '{delta: .text}' \
  | curl -T - https://pipe.hoody.com/api/v1/pipe/run-42/tokens?n=3

# Step 4 — three readers GET the same path. The pipe fans out.
curl https://pipe.hoody.com/api/v1/pipe/run-42/tokens?n=3 | tee evaluator.log
curl https://pipe.hoody.com/api/v1/pipe/run-42/tokens?n=3 | jq -c .delta
curl https://pipe.hoody.com/api/v1/pipe/run-42/tokens?n=3 | websocketd --port=8080

# All four processes block until the n=3 readers connect, then bytes flow.

PUT pousse les bytes vers le haut, GET les tire vers le bas. Le paramètre ?n dit combien de lecteurs attendre ; le pipe bloque jusqu'à ce que ce nombre se connecte, puis fan-out simultanément. Pas de SDK client, pas de broker, pas d'install SDK — uniquement HTTP.

Même chemin, plusieurs lecteurs, aucun SDK

Une fois que le producer pipe, tout ce qui parle HTTP peut s'abonner. Jusqu'à 256 lecteurs sur le même stream, fan-outés par le pipe avec backpressure gérée par receiver. Aucune librairie client à installer, aucun relay à provisionner.

POUR LE FRONTEND

Le navigateur lit la même URL

Un EventSource ou un fetch reader tape le chemin pipe et reçoit le même stream de bytes que l'agent produit. Pas de framing SSE sur votre serveur — le pipe transporte les bytes que le modèle émet, bruts.

POUR L'EVALUATEUR

Un second agent écoute et décide

Un processus évaluateur s'abonne au même chemin. Il peut interrompre le producer dès que la sortie dérive. Deux agents sur le même fil, sans framework d'orchestrator entre les deux.

POUR LA TRACE LOG

Teez le stream dans un conteneur qui surveille

Un consumer de logging lit, gzip et écrit sur disque. Une UI debugger lit en parallèle. Aucun ne sait que les autres existent — le pipe rend simplement les mêmes bytes à chaque lecteur.

PLAFOND FAN-OUT256Plafond de receivers par chemin appliqué par le pipe — réglez ?n pour attendre ce nombre avant que le transfert démarre.
OVERHEAD LATENCE0Les bytes traversent le pipe à mesure qu'ils arrivent. Pas de buffering sur le serveur — la backpressure est gérée par receiver.
EMPREINTE SDK0 kbProducer et consumer sont curl. Tout ce qui parle HTTP peut s'abonner — navigateur, conteneur, agent, shell.

Le LLM streame. Le pipe streame. Le lecteur streame. Aucune couche intermédiaire.

0101 · le modèle émet des tokens
0202 · le pipe forwarde des bytes
0303 · le lecteur les applique
pas de broker entre les étapesle chemin est le protocole

Ce que ça remplace

Le câblage que vous attrapez quand un processus doit streamer des tokens à un autre en temps réel. Chacun embarque son propre framing, son propre SDK, sa propre surface d'ops. Le pipe est le fil.

  • Abstractions de streaming LangChainChaînes de callbacks, lock-in framework
  • Plomberie Server-sent eventsFraming + heartbeats + logique de reconnect
  • Redis pub/subBroker à installer, opérer et payer
  • Relays WebSocket customAuth, reconnect, backpressure tout en DIY
  • Brokers de messages (Kafka, RabbitMQ)Topics, partitions, consumer groups pour un seul stream
  • Callbacks de framework agentVendor-specific, lisibles uniquement depuis le même SDK

Arrêtez de câbler de l'infra de streaming entre deux processus qui parlent déjà HTTP. Ouvrez un chemin. Pipez dedans. Lisez dehors.

Lire l'API pipe

Lis les autres