Zum Inhalt springen
use-cases / five-agents-five-pipes-one-verdict / hero
PIPE · CONTAINERS · MULTI-AGENT

Fünf Agenten, fünf Pipes, ein Urteil

Du willst ein Panel aus Modellen, das denselben Input prüft. Fünf Container, fünf verschiedene Anbieter, fünf Meinungen. Das Orchestrierungs-Framework erfindet dafür normalerweise hundert Zeilen Koordinationscode. Du schreibst sie nicht – jeder Agent bekommt seinen eigenen Pipe-Pfad, und der Judge holt alle fünf parallel per curl ab.

Pipe-API lesen
use-cases / five-agents-five-pipes-one-verdict / mechanism

Fünf Container, fünf Pfade, ein Judge

Jeder Agent läuft im eigenen Container mit seinem eigenen Modell-Handle. Jeder streamt sein Urteil in seinen eigenen Pipe-Pfad. Der Judge-Prozess holt alle fünf Pfade parallel per curl ab – die Pipe hält jedes Urteil bereit, bis der Judge sich verbindet, dann fließen die Bytes durch. Kein Message-Bus, kein Orchestrator-Framework, kein Callback-Graph.

Die Orchestrierungs-Schleife4 SCHRITTE · KEIN BROKER
0101 · BROADCAST

Schicke denselben Prompt an fünf Container

Fünf Container booten parallel, jeder mit einem anderen Modell-Handle. Der Judge POSTet den Prompt gleichzeitig an den Agent-Endpoint jedes Containers.

0202 · STREAM

Jeder Agent schreibt in seinen eigenen Pipe-Pfad

Während das Modell denkt, leitet der Agent sein Urteil per PUT in pipe/agent-N. Die Pipe hält die Bytes – keine Festplatte, kein Broker – bis sie jemand per curl abruft.

0303 · FAN-IN

Der Judge holt alle fünf Pfade parallel per curl ab

GET pipe/agent-1 bis pipe/agent-5 mit je einem curl. Die Pipe leitet die Bytes jedes Agenten an den Judge weiter, sobald beide Enden verbunden sind.

0404 · AUSZÄHLUNG

Urteile parsen, Ergebnis zurückgeben

Der Judge liest JSON aus jedem Pfad, zählt die Stimmen und gibt die Mehrheit zurück. Fünf Container, je ein HTTP-Pfad, kein SDK dazwischen.

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 schiebt jedes Urteil hoch. GET zieht jedes herunter. Die Pipe ist die Leitung – Bytes wandern vom Agenten zum Judge, sobald beide verbunden sind, mit Backpressure pro Pfad. Um einen sechsten Agenten hinzuzufügen, bootest du einen sechsten Container und ergänzt eine sechste Zeile in der Schleife.

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

Drei Lesarten desselben Panels

Der Mechanismus ist eine einzige Form – fünf Container, fünf Pfade, ein Judge – aber der Wert liest sich anders, je nachdem, wogegen du gerade ankämpfst.

FÜR DEN FAULEN SENIOR-ENGINEER

Hör auf, CrewAI zu verkabeln, nur um drei Modelle zu fragen

Du brauchst kein Orchestrierungs-Framework, um einen Prompt an fünf APIs zu schicken und die Antworten zu mitteln. Eine Bash-Schleife mit fünf curls erledigt das schon. Das Agent-Ensemble waren immer fünf HTTP-Calls im Trenchcoat.

FÜR DEN AGENT-BUILDER

Tausch ein Modell aus, ohne den Orchestrator anzufassen

Agent hinzufügen: noch ein Container, noch ein Pipe-Pfad, eine weitere Zeile im Parallel-Fetch des Judges. Einen entfernen: Container killen, Zeile löschen. Es gibt nichts neu zu konfigurieren – kein Message-Bus, kein Callback-Graph, keine Schema-Migration.

FÜR DEN KOSTENBEWUSSTEN PM

Fünf Modelle laufen lassen, für ein Ergebnis bezahlen

Günstige Modelle streamen zuerst; teure laufen nur durch, wenn der Konsens unklar ist. Weil jeder Agent ein eigener Container mit eigener Pipe ist, kannst du das Panel kurzschließen, sobald drei übereinstimmen – kein gemeinsamer State, kein Abort-RPC, einfach die Pipes schließen.

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

Jeder Agent bekommt einen Pfad. Der Pfad ist die Leitung.

Fünf Modellanbieter, fünf Container, fünf HTTP-Pfade – und ein Judge, der zwanzig Zeilen Bash ist. Das Orchestrierungs-Framework hat immer so getan, als gäbe es HTTP nicht.

5 Pfade
  • pipe/agent-claude
    block
  • pipe/agent-gpt
    block
  • pipe/agent-gemini
    block
  • pipe/agent-llama
    block
  • pipe/agent-mixtral
    approve
1 Urteil
block · 4/5 stimmen zu

Der Judge liest jeden Pfad, zählt die Stimmen und gibt die Mehrheit zurück. Um einen Agenten hinzuzufügen, bootest du einen Container und ergänzt einen Pfad. Es gibt keinen Message-Bus, der neu konfiguriert werden müsste.

Pipe-Docs lesen
use-cases / five-agents-five-pipes-one-verdict / replaces

Was das ersetzt

Jedes Framework hier liefert seinen eigenen „Agent“-Begriff plus eine herstellerspezifische Art, wie ein Agent mit einem anderen redet. Die Pipe schrumpft diese Oberfläche auf HTTP zusammen – ein Pfad pro Agent, curl in beide Richtungen.

  • LangChain Agent-EnsemblesCallback-Graphen, Framework-Lock-in
  • CrewAI Multi-AgentRollen, Tasks, Abstraktionsturm
  • AutoGen Agent-PanelsKonversationshistorie, Hersteller-SDK
  • Eigene Voting-OrchestratorenSelbstgeschriebene Queues und Fan-In-Code
  • OpenAI-Assistants-ThreadingAnbieterspezifisch, Single-Vendor
  • Haystack-PipelinesEin DAG, der für einen Prompt gepflegt werden will
use-cases / five-agents-five-pipes-one-verdict / cta

Du brauchst keinen Orchestrator. Du brauchst fünf Container und fünf Pipe-Pfade. Der Judge ist zwanzig Zeilen Bash.

Pipe-API lesen
use-cases / five-agents-five-pipes-one-verdict / related

Lies die anderen