Aller au contenu
use-cases / five-agents-five-pipes-one-verdict / hero
PIPE · CONTAINERS · MULTI-AGENT

Cinq agents, cinq pipes, un verdict

Vous voulez un panel de modèles qui examinent la même entrée. Cinq conteneurs, cinq fournisseurs différents, cinq opinions. Le framework d'orchestration invente d'habitude une centaine de lignes pour coordonner tout ça. Vous n'en écrivez aucune — chaque agent obtient son propre chemin de pipe, et le juge fait curl sur les cinq en parallèle.

Lire l'API du pipe
use-cases / five-agents-five-pipes-one-verdict / mechanism

Cinq conteneurs, cinq chemins, un juge

Chaque agent s'exécute dans son propre conteneur avec son propre handle de modèle. Chacun diffuse son verdict vers son propre chemin de pipe. Le processus juge fait curl sur les cinq chemins en parallèle — le pipe retient chaque verdict jusqu'à ce que le juge se connecte, puis fait passer les octets. Pas de bus de messages, pas de framework d'orchestrateur, pas de graphe de callbacks.

La boucle d'orchestration4 ÉTAPES · SANS BROKER
0101 · BROADCAST

Envoyez le même prompt à cinq conteneurs

Cinq conteneurs démarrent en parallèle, chacun avec un handle de modèle différent. Le juge fait POST du prompt vers l'endpoint d'agent de chaque conteneur en même temps.

0202 · STREAM

Chaque agent écrit dans son propre chemin de pipe

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

0303 · FAN-IN

Le juge fait curl sur les cinq chemins en parallèle

GET pipe/agent-1 jusqu'à pipe/agent-5 avec un curl chacun. Le pipe achemine les octets de chaque agent vers le juge dès que les deux extrémités sont connectées.

0404 · TALLY

Parsez les verdicts, retournez le résultat

Le juge lit le JSON sur chaque chemin, compte les votes, retourne 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 vers le haut. GET le tire vers le bas. Le pipe est le câble — les octets passent de l'agent au juge dès que les deux sont connectés, avec backpressure gérée par chemin. Pour ajouter un sixième agent, vous démarrez un sixième conteneur et ajoutez une sixième ligne à la boucle.

use-cases / five-agents-five-pipes-one-verdict / angles

Trois lectures du même panel

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

POUR L'INGÉNIEUR 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 faire la moyenne des réponses. Une boucle bash avec cinq curl fait déjà ça. L'ensemble d'agents n'a jamais été que cinq appels HTTP déguisés.

POUR LE CONSTRUCTEUR D'AGENTS

Échangez un modèle à chaud 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 juge. En supprimer un : tuez le conteneur, retirez la ligne. Il n'y a 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

Faites tourner cinq modèles, payez pour un seul résultat

Les modèles bon marché diffusent en premier ; les coûteux ne terminent que si le consensus reste flou. 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 d'abandon, il suffit de fermer les pipes.

use-cases / five-agents-five-pipes-one-verdict / punchline

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

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

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

Le juge lit chaque chemin, compte les votes, retourne la majorité. Pour ajouter un agent, démarrez un conteneur et ajoutez un chemin. Il n'y a aucun bus de messages à reconfigurer.

Lire la doc du pipe
use-cases / five-agents-five-pipes-one-verdict / replaces

Ce que cela remplace

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

  • Ensembles d'agents LangChainGraphes de callbacks, verrouillage au framework
  • CrewAI multi-agentRôles, tâches, tour d'abstraction
  • Panels d'agents AutoGenHistorique de conversation, SDK propriétaire
  • Orchestrateurs de vote sur mesureFiles d'attente et code de fan-in faits main
  • Threading des Assistants OpenAISpécifique au fournisseur, mono-vendeur
  • Pipelines HaystackDAG à maintenir pour un seul prompt
use-cases / five-agents-five-pipes-one-verdict / cta

Vous n'avez pas besoin d'un orchestrateur. Vous avez besoin de cinq conteneurs et de cinq chemins de pipe. Le juge tient en vingt lignes de bash.

Lire l'API du pipe
use-cases / five-agents-five-pipes-one-verdict / related

Découvrez les autres