Kern des Patterns
Routing-Agent ist ein Pattern, bei dem ein Agent auswählt, welcher andere Agent oder welches Tool eine Aufgabe ausführen soll.
Wann sinnvoll: wenn zunächst der beste Ausführer oder das passende Tool für eine konkrete Aufgabe gewählt werden muss.
Statt alles selbst auszuführen, macht er Folgendes:
- analysiert die Aufgabe
- bestimmt, wer sie ausführen kann
- übergibt sie an den passenden Agenten

Problem
Stell dir vor, im System gibt es mehrere Spezialisten:
UI Agentfür Frontend-AufgabenFinance Agentfür finanzielle BerechnungenCode Agentfür technische Änderungen
Der Nutzer sendet unterschiedliche Anfragen, aber ohne Routing-Schritt landen sie nicht nach Spezialisierung, sondern bei einem "zufälligen" Ausführer.
Das Problem ist nicht, dass die Agenten schwach sind, sondern dass das System den richtigen Ausführer nicht stabil auswählen kann.
Dadurch gilt:
- eine spezialisierte Anfrage geht an den falschen Agenten
- die Qualität sinkt durch den Verlust von Spezialisierung
- die Zeit steigt durch zusätzliche Versuche "außerhalb des eigenen Themas"
- die Route wird unvorhersehbar
Genau darin liegt das Problem: Ohne kontrollierten Routing-Schritt kann selbst eine einfache Aufgabe vom "falschen" Agenten ausgeführt werden und ein schwaches Ergebnis liefern.
Lösung
Routing ergänzt vor der Ausführung eine eigene Auswahlstufe für den Ausführer.
Analogie: Das ist wie ein Dispatcher in einem Service-Center. Der Dispatcher repariert nicht selbst, sondern entscheidet, zu welchem Spezialisten die Anfrage geht. Genau das reduziert Fehler und unnötige Weiterleitungen.
Schlüsselprinzip: zuerst die richtige Wahl des Ausführers, dann die Übergabe der Aufgabe.
Der Router erledigt die Arbeit nicht selbst. Seine Rolle ist die Steuerung der Route:
- Analyse (Analyze): Anfrage klassifizieren
- Entscheidung (Decide): Agenten nach
routing-rulesauswählen - Delegation (Delegate): Aufgabe an den Ausführer übergeben
- Umleitung (Fallback, bei Bedarf): Ausführer bei
mismatchoder Fehler wechseln
Das Diagramm unten zeigt die Basisroute: Auswahl eines Ausführers und Übergabe der Aufgabe an ihn.
Das bringt:
- höhere Genauigkeit durch Spezialisierung
- weniger zusätzliche Schritte und geringere Latenz
- eine transparente Route für Debugging und Kontrolle
- geringeres Risiko von Fehlern bei der Ausführerwahl
Funktioniert gut, wenn:
- klare Klassifizierungsregeln vorhanden sind
- sich Agentenrollen nicht chaotisch überlappen
- eine Fallback-Route definiert ist
- der Routing-Schritt (Router) nicht direkt durch Nutzer oder Worker-Logik umgangen wird
Selbst wenn das Modell die Aufgabe "am liebsten" an den ersten verfügbaren Agenten geben würde, legt die routing-policy fest, wer sie tatsächlich ausführen soll.
Wie es funktioniert
Der Router führt die Aufgabe nicht selbst aus.
Er übergibt sie nur an einen spezialisierten Agenten, der die Teilaufgabe über seinen eigenen Zyklus ausführt: Überlegung (Think) -> Aktion (Act) -> Beobachtung (Observe).
Beschreibung des vollständigen Flows: Analyze → Decide → Delegate
Analyse (Analyze)
Der Router bestimmt Aufgabentyp, Domäne und erforderliche Spezialisierung.
Entscheidung (Decide)
Das System wählt den passendsten Ausführer nach routing-policy und Confidence.
Delegation (Delegate)
Die Aufgabe wird an den ausgewählten Agenten übergeben, und der Router kontrolliert die Route bei mismatch/error.
Im Code sieht das so aus
agent = route(goal) # Router klassifiziert das Goal und wählt einen spezialisierten Ausführer.
result = agent.run(goal) # Die Ausführung macht der ausgewählte Agent, nicht der Router.
return result
So sieht das während der Ausführung aus
Goal: "Wie viele Steuern müssen auf Freelance-Einkommen gezahlt werden?"
Analyze: Finanzaufgabe
Decide: Finance Agent auswählen
Route confidence: 0.92 (finance)
Delegate: System übergibt die Aufgabe an Finance Agent
Observe: Finance Agent liefert die Berechnung zurück
Goal: "Ändere die Farbe des Buttons auf der Landingpage"
Analyze: Frontend-Aufgabe
Decide: UI Agent auswählen
Route confidence: 0.89 (ui)
Delegate: System übergibt die Aufgabe an UI Agent
Observe: UI Agent liefert die aktualisierte Komponente zurück
Der Router wählt nur den Ausführer und übergibt die Aufgabe.
Die Ergebnisqualität hängt davon ab, wie korrekt diese Auswahl ist.
Vollständiges Routing-Agent-Beispiel
Wann es passt - und wann nicht
Passt
| Situation | Warum dieses Pattern passt | |
|---|---|---|
| ✅ | Aufgaben unterscheiden sich nach Typ oder Komplexität | Der Router wählt den Ausführer für einen konkreten Aufgabentyp, statt alles an einen Agenten zu senden. |
| ✅ | Es gibt spezialisierte Agenten für unterschiedliche Aufgaben | Routing ermöglicht es, die Stärken jedes Agenten zu nutzen. |
| ✅ | Ausführungsgenauigkeit ist wichtig | Die richtige Ausführerwahl reduziert Fehler und Wiederholungen. |
Passt nicht
| Situation | Warum dieses Pattern nicht passt | |
|---|---|---|
| ❌ | Alle Aufgaben sind gleichartig | Ein zusätzlicher Routenauswahlschritt bringt keinen Nutzen, wenn der Ausführer immer derselbe ist. |
| ❌ | Im System gibt es nur einen Agenten | Routing dupliziert einen direkten Aufruf und macht die Pipeline nur komplexer. |
| ❌ | Routing beeinflusst das Ergebnis nicht | Wenn die Ergebnisqualität von der Ausführerwahl nicht abhängt, ist diese Schicht überflüssig. |
Denn Routing fügt einen zusätzlichen Verarbeitungsschritt hinzu. Wenn Aufgaben sich nicht unterscheiden, verlangsamt es nur die Ausführung.
Wann Routing verwenden (vs andere Patterns)
Verwende Routing, wenn das Wichtigste ist, korrekt zu wählen, wem die Anfrage übergeben wird.
Kurzer Test:
- wenn du "den besten Ausführer bestimmen" musst -> Routing
- wenn du "eine Aufgabe durch klare Schritte führen" musst -> Orchestrator Agent
Vergleich mit anderen Patterns und Beispiele
Schnellübersicht:
| Wenn die Aufgabe so aussieht... | Verwenden |
|---|---|
| Es muss ein einzelner bester Ausführer gewählt werden | Routing-Agent |
| Es gibt eine Schrittfolge, und die Reihenfolge ist wichtig | Orchestrator Agent |
| Vor dem Ergebnis ist ein Policy-Check nötig | Supervisor Agent |
| Mehrere Agenten müssen zu einer gemeinsamen Schlussfolgerung kommen | Multi-Agent Collaboration |
Beispiele:
Routing: "Kunde fragt nach einer Rückerstattung - an Billing senden, nicht an Sales".
Orchestrator: "Bereite den Release vor: zuerst Changelog, dann QA, dann Deployment".
Supervisor: "Vor dem Versand einer E-Mail prüfe Richtlinien, Compliance und verbotene Zusagen".
Multi-Agent Collaboration: "Marketing, Legal und Product müssen sich auf einen finalen Promo-Text einigen".
Wie man es mit anderen Patterns kombiniert
- Routing + Task Decomposition - zuerst wird die Aufgabe in Teile zerlegt, dann leitet Routing jeden Teil an den passenden Agenten weiter.
- Routing + Orchestrator - Routing wählt den Ausführer, Orchestrator koordiniert parallele Aufgaben und deren Abhängigkeiten.
- Routing + Supervisor - Supervisor prüft, ob die Ausführerwahl mit Richtlinien und Risikoniveau übereinstimmt.
Kurz gesagt
Routing-Agent:
- Analysiert die Aufgabe
- Wählt den passenden Agenten
- Übergibt sie zur Ausführung
Vorteile und Nachteile
Vorteile
leitet Aufgaben schnell an den richtigen Agenten weiter
entfernt unnötige Schritte
verbessert die Antwortzeit
neue Routen lassen sich leicht hinzufügen
Nachteile
ein Routing-Fehler schickt die Aufgabe in die falsche Richtung
Routing-Regeln müssen gepflegt werden
komplexe Fälle brauchen Ausnahmen
FAQ
Q: Kann der Router die Aufgabe selbst ausführen?
A: Nein. Er bestimmt nur, wer sie ausführen soll.
Q: Braucht man Routing, wenn es nur einen Agenten gibt?
A: Nein. In diesem Fall fügt es einen unnötigen Schritt hinzu.
Q: Kann die Route während der Ausführung geändert werden?
A: Ja. Wenn der ausgewählte Agent die Aufgabe nicht ausführen kann oder einen Fehler zurückgibt, kann der Router sie an einen anderen Agenten übergeben.
Was als Nächstes
Routing ermöglicht die Auswahl des passenden Agenten.
Aber was tun, wenn Aufgaben parallel ausgeführt werden müssen?