Aller au contenu
TYPEDébloqué
ÉTAPEFlotte
DIFFICULTÉAvancé
MÉTIEROrchestrer des agents
POURCréateurs d'IA
SERVICESPipe
SERVICESAgent
SERVICESConteneurs
POURQUOI HOODYHTTP-natif
POURQUOI HOODYIA-natif
TYPEDébloqué
ÉTAPEFlotte
DIFFICULTÉAvancé
MÉTIEROrchestrer des agents
POURCréateurs d'IA
SERVICESPipe
SERVICESAgent
SERVICESConteneurs
POURQUOI HOODYHTTP-natif
POURQUOI HOODYIA-natif
TYPEDébloqué
ÉTAPEFlotte
DIFFICULTÉAvancé
MÉTIEROrchestrer des agents
POURCréateurs d'IA
SERVICESPipe
SERVICESAgent
SERVICESConteneurs
POURQUOI HOODYHTTP-natif
POURQUOI HOODYIA-natif
TYPEDébloqué
ÉTAPEFlotte
DIFFICULTÉAvancé
MÉTIEROrchestrer des agents
POURCréateurs d'IA
SERVICESPipe
SERVICESAgent
SERVICESConteneurs
POURQUOI HOODYHTTP-natif
POURQUOI HOODYIA-natif
PIPE · CONTAINERS · MULTI-AGENT

Cinq agents, cinq pipes, un verdict

vous voulez un panel de modèles qui review le même input. Cinq conteneurs, cinq providers différents, cinq opinions. Le framework d'orchestration invente d'habitude cent lignes pour coordonner ça. vous ne les écris pas — chaque agent reçoit son propre chemin de pipe, et le judge curl les cinq en parallèle.

Lire la pipe API

Cinq conteneurs, cinq chemins, un judge

Chaque agent tourne dans son propre conteneur avec sa propre handle de modèle. Chacun stream son verdict sur son propre chemin de pipe. Le process judge curl les cinq chemins en parallèle — le pipe garde chaque verdict jusqu'à ce que le judge se connecte, puis stream les octets. Pas de bus de messages, pas de framework d'orchestration, pas de graphe de callbacks.

La boucle d'orchestration4 ÉTAPES · ZÉRO BROKER
0101 · BROADCAST

Envoyez le même prompt à cinq conteneurs

Cinq conteneurs démarrent en parallèle, chacun avec une handle de modèle différente. Le judge POST le prompt sur chaque endpoint d'agent en même temps.

0202 · STREAM

Chaque agent écrit sur son propre chemin de pipe

Pendant que le modèle réfléchit, l'agent pipe son verdict dans pipe/agent-N en PUT. Le pipe garde les octets — pas de disque, pas de broker — jusqu'à ce que quelqu'un les curl.

0303 · FAN-IN

Le judge curl les cinq chemins en parallèle

GET pipe/agent-1 jusqu'à pipe/agent-5 avec un curl chacun. Le pipe route les octets de chaque agent vers le judge dès que les deux côtés sont connectés.

0404 · TALLY

Parse les verdicts, retourne le résultat

Le judge lit du JSON sur chaque chemin, compte les votes, renvoie la majorité. Cinq conteneurs, un chemin HTTP chacun, aucun SDK entre eux.

judge.sh
#!/usr/bin/env bash
set -euo pipefail

PROMPT='review this PR for security issues'
AGENTS=(claude-sonnet gpt-4o gemini llama mixtral)
BASE=https://pipe.hoody.com/api/v1/pipe

# Each container streams its verdict into its own path.
# Five paths fan-in to one judge — no broker, no SDK.
for i in "$[!AGENTS[@]]"; do
  N=$((i + 1))
  curl -s -X POST "https://agent-$N.hoody.com/v1/run" \
    -d "[\"prompt\": \"$PROMPT\", \"sink\": \"$BASE/agent-$N\"]" &
done

# Read all five verdicts in parallel.
VERDICTS=()
for i in 1 2 3 4 5; do
  VERDICTS+=("$(curl -s "$BASE/agent-$i")")
done
wait

# Tally — majority wins.
printf '%s\n' "$[VERDICTS[@]]" \
  | jq -r .verdict \
  | sort | uniq -c | sort -rn | head -1

PUT pousse chaque verdict. GET tire chacun. Le pipe est le câble — les octets vont de l'agent au judge dès que les deux sont connectés, avec backpressure gérée par chemin. Pour ajouter un sixième agent, démarre un sixième conteneur et ajoute une sixième ligne à la boucle.

Trois lectures du même panel

Le mécanisme a une seule forme — cinq conteneurs, cinq chemins, un judge — mais sa valeur se lit différemment selon ce que vous cherchezz à éviter.

POUR LE SENIOR PARESSEUX

Arrêtez de câbler CrewAI juste pour interroger trois modèles

vous n'avez pas besoin d'un framework d'orchestration pour envoyer un prompt à cinq APIs et moyenner les réponses. Une boucle bash avec cinq curls le fait déjà. L'ensemble d'agents, c'était toujours cinq appels HTTP déguisés en trench-coat.

POUR LE BUILDER D'AGENT

Hot-swap d'un modèle sans toucher à l'orchestrateur

Ajouter un agent : un autre conteneur, un autre chemin de pipe, une ligne de plus dans le fetch parallèle du judge. En enlever un : tuez le conteneur, supprimez la ligne. Rien à reconfigurer — pas de bus de messages, pas de graphe de callbacks, pas de migration de schéma.

POUR LE PM ATTENTIF AUX COÛTS

Lancez cinq modèles, payez pour un résultat

Les modèles cheap streament en premier ; les chers ne finissent que si le consensus n'est pas clair. Comme chaque agent est un conteneur séparé avec son propre pipe, vous pouvez court-circuiter le panel dès que trois sont d'accord — pas d'état partagé, pas de RPC abort, juste fermer les pipes.

Chaque agent reçoit un chemin. Le chemin est le câble.

Cinq providers de modèles, cinq conteneurs, cinq chemins HTTP — et un judge qui fait vingt lignes de bash. Le framework d'orchestration faisait toujours semblant que HTTP n'existait pas.

5 chemins
  • pipe/agent-claude
    block
  • pipe/agent-gpt
    block
  • pipe/agent-gemini
    block
  • pipe/agent-llama
    block
  • pipe/agent-mixtral
    approve
1 verdict
block · 4/5 d'accord

Le judge lit chaque chemin, compte les votes, renvoie la majorité. Pour ajouter un agent, démarrez un conteneur et ajoutez un chemin. Pas de bus de messages à reconfigurer.

Lire la doc pipe

Ce que ça remplace

Chaque framework ici embarque sa propre notion d'« agent » plus une façon vendor-spécifique pour qu'un agent parle à un autre. Le pipe collapse cette surface en HTTP — un chemin par agent, curl dans les deux sens.

  • Ensembles d'agents LangChainGraphes de callbacks, lock-in du framework
  • Multi-agent CrewAIRôles, tâches, tour d'abstractions
  • Panels d'agents AutoGenHistorique de conversation, SDK vendor
  • Orchestrateurs de vote customFiles d'attente et code fan-in faits main
  • Threading OpenAI AssistantsSpécifique au provider, mono-vendor
  • Pipelines HaystackUn DAG à maintenir pour un seul prompt

vous n'avez pas besoin d'un orchestrateur. vous avez besoin de cinq conteneurs et cinq chemins de pipe. Le judge fait vingt lignes de bash.

Lire la pipe API

Lis les autres