/ladder/l2/

L2 · Workflow

Schritte, die du in Code verdrahtest. Das LLM füllt die Lücken.

Struktur gehört in den Code. Workflow-Patterns sind das deterministische Skelett: sequenziell, Routing, parallel, Schleifen. Das Modell erzeugt Inhalt; du steuerst den Fluss.

Anatomie

Woraus ein L2-Workflow besteht.

Fünf Teile bilden jeden Workflow auf dieser Sprosse: Schritt, Kante, Router, Joiner und ein Loop-Control-Gate. Das Diagramm zeigt einen kanonischen Graphen; die Karten darunter zerlegen jeden Teil.

EINGABETypisiertSTEPLLM · typisierte E/AROUTERNach Klasse verzweigenABBRANCH ASpezialistBRANCH BSpezialistJOINERFan-inAUSGABEAustrittloop · bis Budget / Signal
  • Schritt · Die Arbeitseinheit

    Ein Knoten, Ein- und Ausgabe typisiert.

    Ein Knoten, der ein LLM (oder ein Tool) mit typisierten Ein- und Ausgaben aufruft. Bei jedem Lauf derselbe Vertrag.

  • Kante · Die deterministische Linie

    Erreichbar, geordnet, keine Überraschungen.

    Eine gerichtete Verbindung von einem Knoten zum anderen. Die Menge der Kanten definiert, was möglich ist; die Runtime erfindet nie neue.

  • Router · Die Verzweigung

    Schalten nach Intent oder Schema.

    Ein Entscheidungsknoten, der nach Klassifikation, Schema oder Regel verteilt. Die Verzweigungslogik liegt im Code; das Modell gibt nur das Signal aus.

  • Joiner · Das Fan-in

    Parallele Zweige fallen hier zusammen.

    Wo zwei oder mehr nebenläufige Zweige zusammentreffen und ihre Ausgaben wieder zu einer einzigen Zustandsform verschmelzen.

  • Loop-Control · Die Ausstiegsklausel

    Stoppe die Wiederholung.

    Budget, Schwellwert oder Signal, das eine Schleife beendet. Ohne eines trägt ein L2-System das Anti-Pattern der unbegrenzten Schleife bereits in sich.

Wann diese Sprosse passt

Workflow reicht aus, wenn…

Ein Workflow verdient seinen Namen, wenn der Kontrollfluss im Code liegt und das LLM nur die Lücken füllt. Unten: die Signale, dabei zu bleiben — und die Signale, aufzusteigen.

Ein einzelner Agent genügt, wenn…
  • Du kannst den Kontrollfluss auf einem Whiteboard skizzieren, bevor das LLM ins Spiel kommt.
  • Die Verzweigungen sind bekannt: Ein Router hat eine feste Liste von Optionen.
  • Fehler müssen lokalisierbar sein — „Schritt 3 ist kaputt“ ist nützlicher als „der Agent ist kaputt“.
  • Latenz und Token-Budget zählen: Eine vorhersehbare Form lässt dich cachen, parallelisieren und deckeln.
  • Du brauchst typisierte Ein-/Ausgaben an jeder Knotengrenze für nachgelagerte Systeme.
…und nicht mehr genügt, wenn
  • Welcher Agent als Nächstes sprechen soll, ist selbst die Entscheidung, die das System treffen muss — gehe zu L3.
  • Die Menge möglicher nächster Schritte lässt sich zur Autorenzeit nicht aufzählen.
  • Eine einzelne adaptive Schleife reicht aus und die Orchestrierung bringt keinen Mehrwert — gehe zurück zu L1.
  • Schritte hängen stark von vorherigen Ausgaben ab, auf Weisen, die du nicht vorab festlegen kannst — gehe zurück zum ReAct-Pattern auf L1.

Primitive

Vier Formen. Beliebig kombinierbar.

Anthropics Building Effective Agents benennt sie als das Workflow-Alphabet. Die meisten L2-Systeme kombinieren zwei oder drei Primitive; die Varianten unter den Karten (Orchestrator-Workers, Evaluator-Optimizer usw.) sind Kompositionen, die man im Großen wiedererkennt.

  • Sequenziell

    Die Ausgabe eines Schritts ist die Eingabe des nächsten.

    Die einfachste lesbare Form. Vorhersehbar, debugbar, geordnet.

  • Routing

    Ein Entscheidungsknoten verteilt nach Klasse.

    Wo verschiedene Anfragen verschiedene Behandlung brauchen und die Klassen bekannt sind.

  • Parallel

    Unabhängige Zweige fächern aus; ein Joiner führt sie wieder zusammen.

    Latenz senken oder über N Läufe abstimmen für Robustheit. Worker koordinieren sich nie.

  • Loop

    Wiederhole bis zu einem Budget, Schwellwert oder Signal — nie bis das Modell entscheidet.

    Das Fundament, auf dem jede Qualitätsschleife (Evaluator-Optimizer, iterative Verfeinerung) aufbaut.

Worauf es läuft

Wie ein L2-Workflow persistiert.

Die vier Primitive sind Graphen. Graphen brauchen eine Runtime, die Zustand checkpointen, nach einem Fehler fortsetzen, für Menschen pausieren und Zwischenqualität beurteilen kann. Diese vier L4-Primitive sind das Fundament, auf dem jedes langlaufende L2-System läuft.

  • Workflow DAG

    Durable Execution · DAG-Orchestrierung

    Runtime Architecture

    Die Graph-Runtime, auf der L2 sitzt. Knoten und Kanten als erstklassige Runtime-Objekte mit Retries, Timeouts und Zustandshistorie.

    Warum für L2Sequenziell, Routing, Parallel, Loop — jedes L2-Primitiv ist eine Form, die die DAG-Runtime für dich materialisiert.

    In L4 ansehen
  • HITL-Gate

    Human-in-the-Loop · Freigabeschritt

    Governance & Safety

    Ein Workflow-Knoten, der vor dem Fortsetzen für menschliche Prüfung pausiert. Die Pause kann Sekunden oder Wochen dauern; Checkpointing hält sie günstig.

    Warum für L2HITL ist ein Kontroll-Overlay, das sich mit jeder Sprosse komponiert. L2 ist die Sprosse, auf der es am lesbarsten landet — ein deterministischer Pausenpunkt in einem deterministischen Graphen ist die am leichtesten zu auditierende Naht zwischen automatischen und menschlichen Schritten.

    In L4 ansehen
  • LLM-as-Judge

    KI-Kritiker · Automatisierter Evaluator

    Observability & Evaluation

    Ein LLM bewertet die Ausgabe eines anderen Schritts anhand einer Bewertungsmatrix. Die Bewertung wird zu einem typisierten Signal, auf das der Workflow routen kann.

    Warum für L2Evaluator-Optimizer und iterative Verfeinerung sind LLM-as-Judge komponiert mit einer Schleife. Ohne es funktioniert keines der Patterns.

    In L4 ansehen

Patterns · 9 auf dieser Sprosse

9 Workflow-Patterns auf dieser Sprosse.

Jede Karte ist eine wiederkehrende Art, deterministischen Fluss um nicht-deterministische Modellaufrufe zu verdrahten. Überfliege „Einsetzen wenn“ / „Nicht wenn“ / „Abwägung“; öffne eine Karte zur Vertiefung.

Anthropic-Primitive

Die vier Formen, die Anthropics „Building Effective Agents“ als das Workflow-Alphabet benennt.

  • Sequential Pipeline

    alias Prompt Chaining · Linear Workflow · Sequential Process

    Öffnen

    Mehrere Schritte werden in fester Reihenfolge ausgeführt, wobei jeder Schritt die Ausgabe des vorherigen nutzt.

    Einsetzen wenn
    • Die Aufgabe sich natürlich in Phasen aufteilt, die jeweils ein überprüfbares Zwischenprodukt liefern.
    • Kontrolle wichtiger ist als Autonomie.
    Nicht wenn
    • Der Workflow stark verzweigt oder Ergebnisse dynamisch neue Ziele erzeugen.
    • Schritte ohne Abhängigkeiten parallelisiert werden können.
    Abwägung
    Hohe Vorhersagbarkeit des Kontrollflusses wird auf Kosten geringer Flexibilität erkauft; der Ausgabeinhalt bleibt an jedem LLM-Knoten nicht-deterministisch.
    CrewAIGoogle ADKMicrosoft Agent FrameworkAWS Strands+1

    Wu et al. (2022) — AI Chains: Transparent Human-AI Interaction by Chaining LLM Prompts

  • Routing

    alias Classifier Router · Intent Routing · Conditional Branching

    Öffnen

    Ein Klassifizierungs- oder Entscheidungsmodul klassifiziert eine Anfrage und leitet sie an spezifische Ziele weiter, etwa einen spezialisierten Prompt, Agenten oder ein Tool.

    Einsetzen wenn
    • Verschiedene Anfrageklassen eine unterschiedliche Behandlung erfordern.
    • Spezialisierte Tools für spezifische Absichten existieren.
    • Fehlrouting hohe Kosten verursacht.
    Nicht wenn
    • Alle Aufgaben denselben Ablauf nutzen.
    • Die Klassifizierung instabil ist.
    • Die Routing-Logik komplexer wird als die Aufgabe selbst.
    Abwägung
    Präzisere Behandlung wird auf Kosten zusätzlicher Entscheidungslogik und des Risikos von Fehlklassifizierungen erkauft.
    LangGraphGoogle ADKMicrosoft Agent FrameworkAWS Strands+1

    Anthropic (2024) — Building Effective Agents § Routing

  • Parallelization

    alias Sectioned Parallelism · Ensemble Voting · Fan-out · Divide and Process

    Öffnen

    Unabhängige Teilaufgaben werden parallel verarbeitet und entweder zusammengeführt (Sectioning) oder das beste Ergebnis wird über einen Aggregator ausgewählt (Voting).

    Einsetzen wenn
    • Die Eingabe natürlich segmentierbar ist und Aufgaben unabhängig sind, um Latenz zu reduzieren (Sectioning).
    • Robustheit wichtiger ist als einzelne Ausführungskosten (Voting).
    Nicht wenn
    • Starke Abhängigkeiten zwischen Segmenten bestehen.
    • Semantisches Zusammenführen schwierig ist.
    • Latenz- und Token-Budgets streng begrenzt sind.
    Abwägung
    Niedrigere Latenz und höhere Robustheit werden gegen erhöhte Integrationskomplexität und mehrfache Ausführungskosten erkauft.
    Google ADKMicrosoft Agent FrameworkAWS StrandsLangGraph+1

    Anthropic (2024) — Building Effective Agents § Parallelization

  • Loop

    alias Control Loop · Retry Loop · Agent Loop

    Öffnen

    Ein oder mehrere Schritte werden wiederholt, bis ein bestimmtes Budget, eine Qualitätsgrenze oder eine Abbruchbedingung erreicht ist.

    Einsetzen wenn
    • Das Ergebnis iterativ verbessert werden kann.
    • Externe Validierung einen Retry auslöst.
    • Tool-Ergebnisse neue Iterationen erfordern.
    Nicht wenn
    • Keine stabile Abbruchbedingung existiert.
    • Kosten außer Kontrolle geraten können.
    • Fehler sich durch Wiederholung verstärken.
    Abwägung
    Adaptive Verbesserung wird mit dem Risiko endloser oder sehr teurer Ausführungsschleifen erkauft.
    LangGraphCrewAIMicrosoft Agent FrameworkGoogle ADK+1

    Anthropic (2024) — Building Effective Agents § Iterative Refinement

Orchestrierungs-Varianten

Kompositionen der Primitive, die oft genug wiederkehren, um eigene Namen zu verdienen.

  • Orchestrator-Workers

    alias Coordinator-Workers · Manager-Worker · Dynamic Task Decomposition · Multi-Agent Collaboration

    Öffnen

    Ein Orchestrator zerlegt eine Aufgabe dynamisch und weist Teilaufgaben spezialisierten Workern zu, die Aggregation bleibt zentral gesteuert.

    Einsetzen wenn
    • Teilaufgaben erst zur Laufzeit erkennbar werden.
    • Worker hochspezialisierte Funktionen übernehmen.
    • Aggregation zentral kontrolliert bleiben muss.
    Nicht wenn
    • Ein statischer Workflow ausreicht.
    • Workern klare Verantwortlichkeiten fehlen.
    • Der Orchestrator zum schwerwiegenden Engpass wird.
    Abwägung
    Hochflexible Delegation wird gegen erheblichen Koordinations- und Integrationsaufwand erkauft.
    LangGraphCrewAIGoogle ADKMicrosoft Agent Framework+2

    Anthropic (2024) — Building Effective Agents § Orchestrator-Workers

  • Map-Reduce

    alias Fan-out/Fan-in · Map Aggregate · Batch Decomposition

    Öffnen

    Eine große Aufgabe wird auf unabhängige Chunks gemappt und anschließend zu einem einzigen Ergebnis aggregiert oder reduziert.

    Einsetzen wenn
    • Große Eingaben in unabhängige Chunks aufgeteilt werden können.
    • Aggregationslogik klar definierbar ist.
    • Durchsatz-Skalierbarkeit kritisch ist.
    Nicht wenn
    • Globale Abhängigkeiten zwischen Chunks bestehen.
    • Die Reduktion semantischen Wert verlieren würde.
    • Ein zentraler Kontext erforderlich ist.
    Abwägung
    Hervorragende Skalierungsfähigkeiten werden gegen das Risiko inkonsistenter Teilergebnisse erkauft.
    LangGraphAWS StrandsGoogle ADKMicrosoft Agent Framework+1

    Dean & Ghemawat (2004) — MapReduce: Simplified Data Processing on Large Clusters

  • Resource-Aware Optimization

    alias Model Routing · Cost-Aware Routing · LLM Router · Model Cascade

    Öffnen

    Ein Router bewertet die Komplexität jeder Anfrage und leitet sie an das günstigste Modell weiter, das die Qualitätsschwelle noch erfüllt — unter expliziten Token-, Zeit- und Kostenbudgets, mit Prompt-Caching und Modell-Kaskaden.

    Einsetzen wenn
    • Das Anfragevolumen hoch ist und gemischte Schwierigkeiten aufweist.
    • Kosten eine erstrangige Einschränkung sind.
    • Ein günstigeres Modell einen nennenswerten Anteil des Traffics ohne Qualitätsverlust bewältigt.
    Nicht wenn
    • Jede Aufgabe das beste Modell benötigt.
    • Das Komplexitätsraster instabil ist — Fehlrouting-Kosten übersteigen die Einsparungen.
    • Die Latenz eines zusätzlichen Routing-Hops inakzeptabel ist.
    Abwägung
    Große Kosteneinsparungen werden gegen den Aufwand des Abstimmens und kontinuierlichen Validierens des Komplexitätsrasters erkauft.
    RouteLLMOpenRouterLangGraph

    Ong et al. (2024) — RouteLLM: Learning to Route LLMs with Preference Data

Qualitätsschleifen

Iterationsformen zur Verbesserung eines einzelnen Artefakts.

  • Evaluator-Optimizer

    alias Generator-Critic · Critique and Revise · Evaluate-Improve

    Öffnen

    Ein Generator produziert ein Ergebnis, ein Evaluator bewertet es anhand spezifischer Kriterien, und der Generator optimiert es auf Basis des Feedbacks.

    Einsetzen wenn
    • Qualitätskriterien explizit formuliert werden können.
    • Iterative Verbesserung messbar ist.
    • Kreative Ausgaben eine rigorose Prüfung benötigen.
    Nicht wenn
    • Der Evaluator keine zuverlässigen Signale liefern kann.
    • Schema-Validierung ausreicht.
    • Das Budget keine mehrfachen Durchläufe erlaubt.
    Abwägung
    Bessere Ausgabequalität wird gegen zusätzliche Evaluierungskomplexität und Latenz erkauft.
    Google ADKLangGraphAutoGen / AG2Microsoft Agent Framework+1

    Madaan et al. (2023) — Self-Refine: Iterative Refinement with Self-Feedback

  • Iterative Refinement

    alias Revise Loop · Draft-Improve · Progressive Refinement

    Öffnen

    Kontrollierte Durchläufe verbessern ein einzelnes Artefakt über Revisionen hinweg, häufig unter Nutzung expliziten Feedbacks aus Regeln, Tests oder von Nutzern.

    Einsetzen wenn
    • Ergebnisqualität schrittweise steigt und Zwischenzustände bewahrt werden müssen.
    • Externes Feedback leicht verfügbar ist.
    Nicht wenn
    • Ein gültiges Ergebnis typischerweise in einem Schritt generiert wird.
    • Revisionen klare Signale vermissen lassen.
    • Konsistenz durch wiederholtes Umschreiben nachlässt.
    Abwägung
    Verbesserte Artefaktqualität wird auf Kosten längerer Laufzeiten und möglicher thematischer Drift erkauft.
    Google ADKLangGraphCrewAIMicrosoft Agent Framework

    Madaan et al. (2023) — Self-Refine: Iterative Refinement with Self-Feedback

Anti-Patterns

Wie diese Sprosse schiefgeht.

  • #05

    Hallucinated Routing

    SymptomReflexionsschleifen konvergieren nie. Rekursionslimits schlagen erst zur Laufzeit an statt zur Entwurfszeit.

    BehebungRouter-Entscheidungen schema-validieren. Hartes recursion_limit, hartes max_handoffs.

  • #08

    Unbounded Loop

    von L1

    SymptomEin L1-Agent steckt wegen fehlerhaften Reasonings in unproduktiven Endloszyklen fest, ohne programmiertes Rekursionslimit oder Schritt-Budget.

    BehebungEin hartes recursion_limit und ein Schritt-Budget auf Harness-Ebene setzen. Ein Reflexion-Gate oder einen Tool-Call-Zähler hinzufügen, um Endlosschleifen zu unterbrechen.

  • #01

    Over-Agentification

    von L3

    SymptomHohe Latenz, teure Token-Rechnungen, Debugging, das emergentes Verhalten aus Logs rekonstruieren muss.

    BehebungDie Entscheidungs-Heuristik durchlaufen. Die einfachere Alternative skizzieren und vergleichen, bevor man sich festlegt.

  • #03

    SQLite Under Concurrency

    von L4

    SymptomSchreibsperren serialisieren alles. Timeouts unter Last. Sitzungen vermischen sich.

    BehebungAsyncPostgresSaver. Thread-IDs als user×session zusammensetzen.

Frameworks

Worauf du das aufbaust.

LangGraphpython
from typing import TypedDict
from langgraph.graph import StateGraph, END

class State(TypedDict):
    raw: str
    parsed: dict | None
    analysis: dict | None
    payload: dict | None
    answer: str | None

def ingest(state):    return {"parsed": parse(state["raw"])}
def analyze(state):   return {"analysis": analyze_llm(state["parsed"])}
def synthesize(state): return {"payload": synth_llm(state["analysis"])}
def respond(state):   return {"answer": render_md(state["payload"])}

g = StateGraph(State)
g.add_node("ingest", ingest)
g.add_node("analyze", analyze)
g.add_node("synthesize", synthesize)
g.add_node("respond", respond)
g.add_edge("ingest", "analyze")
g.add_edge("analyze", "synthesize")
g.add_edge("synthesize", "respond")
g.add_edge("respond", END)
g.set_entry_point("ingest")
pipeline = g.compile()

Vertiefung

Struktur gehört in den Code.

Ein L2-System ist ein Workflow, dessen Struktur im Code fixiert ist und dessen Lücken bei jedem Schritt von einem LLM gefüllt werden. Der Kontrollfluss ist deterministisch — du kannst ihn lesen, zeichnen, über ihn nachdenken, ohne ihn auszuführen. Der Nicht-Determinismus lebt innerhalb einzelner Knotenaufrufe, nicht im Pfad zwischen ihnen. Anthropics „Building Effective Agents“ rahmt dies als den Tausch zwischen Handlungsspielraum und Vorhersehbarkeit: Je weniger Entscheidungen das LLM darüber treffen darf, welcher Knoten als Nächstes läuft, desto zuverlässiger das System als Ganzes.

Die vier Primitive — sequenziell, Routing, parallel, Loop — komponieren zu den Varianten, die dir in großen Systemen wiederbegegnen. Orchestrator-Workers ist ein Routing-Pattern mit einem Join. Map-reduce ist parallel-mit-Aggregator. Evaluator-Optimizer ist eine Schleife mit einem Generator und einem Kritiker. Das Vokabular unterscheidet sich zwischen Frameworks; die Topologie nicht.

Du wächst aus L2 heraus, wenn sich die nächste Verzweigung nicht als Schalter ausdrücken lässt — wenn welcher Agent sprechen soll selbst die Entscheidung ist, die das System treffen muss. An diesem Punkt werden die Kanten des Workflows zu zahlreich oder zu kontextabhängig, um sie aufzuzählen, und der natürliche Schritt ist zu L3, wo ein Koordinator das Routing zur Laufzeit entscheidet, statt dass du es zur Autorenzeit entscheidest.

Das Pattern, das man hier am ehesten für L3 hält, ist Orchestrator-Workers: Es hat einen zentralen Knoten, der delegiert, und liest sich daher wie Multi-Agent. Es bleibt L2, weil der Orchestrator eine von dir verfasste Kontrollstruktur ist — die Form „zerlegen → auffächern → aggregieren“ steht fest im Code, und die Worker sind kurzlebige, aufgabengebundene Aufrufe. Sein L3-Zwilling, der Supervisor, hält dauerhafte Spezialisten-Agenten und lässt einen Koordinator-Agenten das Routing zur Laufzeit entscheiden: gleiche Silhouette, andere Sprosse.

Wann aufsteigen

Wenn der nächste Schritt selbst eine Entscheidung ist, hole Spezialisten dazu.

Die Kanten eines Workflows sind zur Autorenzeit fixiert. In dem Moment, in dem „welcher Agent als Nächstes handeln soll“ zum eigentlichen Problem wird — wenn sich Spezialisten wirklich in Prompt, Tools und Vertrauensbereich unterscheiden —, hast du L3 erreicht: Koordination zwischen getrennten Köpfen.

Hinauf zu L3 — Multi-Agent

Quellen

Wo diese Sprosse zuerst niedergeschrieben wurde.

Die L1–L4-Leiter ist ein didaktisches Konstrukt dieses Projekts — eine Art, den Katalog zu ordnen, kein externes Modell. Ihr Workflow-vs-Agent-Schnitt (L2↔L3) folgt Anthropics Building Effective Agents (2024); die Patterns jeder Sprosse tragen ihre eigenen Primärquellen.

Suche

Patterns, Frameworks und Seiten durchsuchen.