Agentic Loops Production: Welches Framework hält 100 Concurrent Users?

Agentic Loops Production scheitert selten am Modell, sondern an Framework-Limits. Unser 100-User-Benchmark mit LangGraph, AutoGen, CrewAI und Semantic Kernel zeigt: Nur zwei halten produktive Last ohne Token-Explosion.

21 Juli. 2026 | AI

Inhaltsverzeichnis

Pexon Consulting | 9 Min. Lesezeit | 01.06.2026


TL;DR

Agentic Loops Production scheitert selten am Modell, sondern an Framework-Limits. Unser 100-User-Benchmark mit LangGraph, AutoGen, CrewAI und Semantic Kernel zeigt: Nur zwei halten produktive Last ohne Token-Explosion. Pexon Consulting betreibt Agent-Stacks für Versicherer und Mittelstand-IT. Dieser Artikel liefert konkrete Zahlen zu Concurrency, Token-Budget-Management, State-Persistenz und den fünf häufigsten Failure-Modes.

Framework Hält 100 Concurrent? p99-Latenz Token-Overhead Empfehlung
LangGraph 0.4 Ja 8,5 s +12 % Production-OK
Semantic Kernel 1.30 Ja (bis 80) 9,8 s +18 % Production-OK
AutoGen 0.4 Nein (bricht bei 50) 14,2 s +27 % Pilot-only
CrewAI 0.80 Nein (bricht bei 30) 18,9 s +35 % Prototyping
OpenAI Swarm Nein (Experimental) n/a +21 % Nicht für Production

Warum Single-User-Demos lügen

Wir sehen das Muster in fast jedem Kundengespräch: Ein Team baut einen Agent-Loop auf dem MacBook, jagt fünf Test-Prompts durch und meldet „Production-Ready“ an die Geschäftsführung. Drei Wochen später, beim ersten echten Pilot mit 40 Sachbearbeitern, sterben die Pods im 20-Minuten-Takt. Tool-Calls hängen, Tokens explodieren, Kosten laufen aus dem Ruder.

Der Grund ist immer derselbe — Agent-Frameworks werden für Demos optimiert, nicht für 100 parallele Conversations mit unbekannter Länge. Ein Engineering-Talk mit Stepan Rutz brachte uns dazu, das systematisch zu messen statt aus dem Bauch zu argumentieren. Die Lücke zwischen „läuft auf dem Laptop“ und „hält Versicherungsschaden-Bearbeitung im Live-Betrieb“ ist größer, als die meisten Framework-Marketing-Seiten zugeben.

Eine konkrete Zahl aus unseren Projekten: Bei einem Mittelstandskunden im Manufacturing kostete der erste produktive Monat 3.400 EUR statt der prognostizierten 800 EUR — weil das Framework keinen Token-Cap pro Loop hatte und ein einziger Tool-Call-Fehler eine 80.000-Token-Endlosschleife auslöste. Genau solche Failure-Modes will dieser Benchmark sichtbar machen.


Unser Benchmark-Setup

Bevor wir Zahlen liefern, hier die Bedingungen — sonst sind die Ergebnisse Marketing.

Hardware & Stack:

  • Azure Kubernetes Service (AKS), 3 Pods (4 vCPU / 8 GB)
  • LLM: Claude Sonnet 4 via Anthropic API (Tier 2: 1.000 RPM, 80k TPM)
  • Vector Store: Azure AI Search (Standard S2)
  • State Store: PostgreSQL Flexible Server (4 vCPU, async pool)
  • Load: 100 Concurrent Users über 30 Minuten, jede Conversation 5 Turns

Workload-Profil: Sachbearbeiter-Use-Case (Schaden klassifizieren, Dokumente abfragen, Folgefragen). Pro Turn 2-4 Tool-Calls (RAG-Suche, Datenbank-Lookup, Klassifikation). Erwartete Latenz pro Turn: unter 12 Sekunden p95.

# locust load test — vereinfacht
from locust import HttpUser, task, between

class AgentUser(HttpUser):
    wait_time = between(2, 5)

    @task
    def conversation(self):
        session = self.client.post("/agents/start").json()
        for prompt in load_test_prompts():  # 5 Turns
            self.client.post(
                f"/agents/{session['id']}/turn",
                json={"message": prompt},
                timeout=30,
            )

Gemessen wurden: p50/p95/p99-Latenz pro Turn, Token-Verbrauch je Conversation, Pod-Restarts, Tool-Call-Fehlerquote und Kosten pro 1.000 Conversations. Der komplette Benchmark-Code liegt intern — wir teilen ihn auf Anfrage im Workshop-Setup.


Agentic Loops Production unter Last — was zuerst bricht

Die kurze Antwort: AutoGen und CrewAI brechen früher, als ihre GitHub-READMEs vermuten lassen. Beide haben Threading-Modelle, die für Multi-Agent-Konversationen in einem Prozess optimiert sind, nicht für viele parallele User-Sessions in einem Web-Backend.

Framework 30 Users 50 Users 80 Users 100 Users Bottleneck
LangGraph OK OK OK OK async/await sauber
Semantic Kernel OK OK OK Degraded Plugin-Loader sync
AutoGen 0.4 OK Race conditions Fail Fail GroupChat-State
CrewAI Degraded Fail Fail Fail ThreadPool-Overhead

LangGraph nutzt asyncio nativ — jede Tool-Call-Iteration ist ein Coroutine-Step. Damit skaliert es genau so gut wie ein normaler FastAPI-Service. Semantic Kernel ist solide bis ~80 User, dann beginnt der Plugin-Loader (der bei jedem Call die Tool-Definitionen reflectet) zum Bottleneck zu werden.

AutoGen v0.4 hat das Async-Modell zwar nachgezogen, aber GroupChat und RoundRobinGroupChat synchronisieren intern Listen-State — bei 50 parallelen Sessions sehen wir Race Conditions im Message-History-Append. CrewAI nutzt Python-Threading, was den GIL-Overhead direkt sichtbar macht. Bei 30 Concurrent Users steigt die p95 von 7s auf 19s.

Unsere klare Empfehlung: Wenn Sie >50 Concurrent User-Sessions planen, ist LangGraph aktuell die einzige Wahl, die nicht zwei Quartale später teure Rewrites erzwingt. Semantic Kernel ist eine valide Option im .NET-Umfeld oder bei Microsoft-Enterprise-Stack.


Token-Budget-Management — der unsichtbare Kostenfaktor

Das größte Production-Risiko ist nicht Latency, sondern Tokens. Ein Agent, der seine Stop-Condition nicht sauber prüft, kann pro Conversation 80.000 statt 8.000 Tokens verbrauchen — das ist Faktor 10 bei den Kosten. Bei Claude Sonnet 4 (3 USD/Mio Input, 15 USD/Mio Output) reden wir über 0,18 EUR statt 0,02 EUR pro Conversation. Auf 10.000 Conversations/Monat hochgerechnet: 1.800 EUR statt 200 EUR.

Wir raten aktuell davon ab, Agents ohne harten Token-Cap pro Loop in Produktion zu nehmen. Die meisten Frameworks bieten das nicht out-of-the-box, deshalb wrappen wir den LLM-Call:

class TokenBudgetExceeded(Exception):
    pass

class BudgetedLLM:
    def __init__(self, llm, max_tokens_per_loop: int = 12_000):
        self.llm = llm
        self.budget = max_tokens_per_loop
        self.used = 0

    async def invoke(self, messages, **kwargs):
        if self.used >= self.budget:
            raise TokenBudgetExceeded(
                f"Loop-Budget {self.budget} überschritten — Abbruch"
            )
        response = await self.llm.ainvoke(messages, **kwargs)
        self.used += response.usage.total_tokens
        return response

Drei Patterns reduzieren den Token-Verbrauch im Loop zusätzlich:

  1. Sliding-Window-Memory statt vollständiger History — die letzten 6 Turns sind in 90 % der Fälle ausreichend
  2. Summarization-Checkpoints alle 10 Turns für lange Conversations (Customer-Support-Threads)
  3. Tool-Result-Truncation — RAG-Ergebnisse auf Top-3 Chunks begrenzen statt Top-10, das spart bis zu 4.000 Input-Tokens pro Call

In unseren Tests halbierte die Kombination aus diesen drei Patterns die Token-Kosten gegenüber dem LangGraph-Default um 47 %.


State-Persistenz — wenn ein Pod stirbt

Production heißt: Ein Pod kann jederzeit sterben. Kubernetes-Rolling-Update, OOM-Kill, Node-Drain. Wenn die Conversation-State nur im Pod-Memory liegt, verliert der User mitten im Loop seinen Kontext und muss von vorne anfangen. Das ist in einem Sachbearbeiter-Tool ein No-Go.

LangGraph macht das gut mit dem Checkpointer-Pattern. Jeder Graph-Node persistiert seinen State automatisch — bei einem Pod-Restart kann der Loop von der letzten Checkpoint-Position weiterlaufen.

from langgraph.checkpoint.postgres import AsyncPostgresSaver

checkpointer = AsyncPostgresSaver.from_conn_string(
    "postgresql://agent:***@postgres:5432/agent_state"
)
graph = workflow.compile(checkpointer=checkpointer)

# pro User-Session eine eindeutige thread_id
config = {"configurable": {"thread_id": user_session_id}}
result = await graph.ainvoke(input_state, config=config)

Redis vs. Postgres: Für High-Throughput-Workloads (>200 conversations/sec) ist Redis schneller, verliert aber bei Node-Failure State, der nicht persistiert wurde. Postgres ist langsamer (Faktor 3 in unseren Tests), dafür ACID. Unsere Default-Empfehlung für Mittelstand-Workloads: Postgres mit Connection-Pool (20 Connections pro Pod). Redis nur, wenn Sie wirklich Sub-100ms-Latenz auf State-Reads brauchen — bei Agent-Loops mit 5-10s LLM-Calls ist das fast nie der Fall.

AutoGen und CrewAI haben kein vergleichbares Checkpointer-Konzept. Sie müssen State-Serialisierung selbst bauen, was in unseren Audits der häufigste Grund für Production-Outages ist.


Die fünf Wege, wie Agents in Produktion sterben

Bei jedem Pexon-Production-Audit für Agent-Stacks sehen wir dieselben fünf Failure-Modes. In dieser Reihenfolge der Häufigkeit:

# Failure-Mode Symptom Fix
1 Infinite Loop Ein Agent ruft denselben Tool 80x max_iterations Hard-Cap
2 Tool Hallucination Agent erfindet Tool-Argumente Structured Output + Pydantic-Validation
3 Rate Limit Cascade Ein 429 löst Retry-Storm aus Exponential Backoff + Circuit Breaker
4 Context Window Overflow 200k Tokens, Modell antwortet leer Sliding Window + Compaction
5 State Corruption Concurrent Write zerstört Thread-State Optimistic Locking auf Checkpoint-Tabelle

Failure-Mode 3 ist der unterschätzte. Wenn der Anthropic-API ein 429 zurückgibt und Ihr Framework standardmäßig dreimal retryt, entsteht bei 100 Concurrent Users ein Retry-Storm, der die Rate-Limit-Situation weiter verschärft. Wir konfigurieren grundsätzlich einen Circuit Breaker (z.B. tenacity mit Stop-After-Attempt-2 plus Exponential Backoff von mindestens 4 Sekunden) auf den LLM-Client.

Failure-Mode 1 ist der teuerste. Ein einziger Endlos-Loop bei einem Kunden kostete 280 EUR in 40 Minuten, bis das Monitoring anschlug. Die Anthropic-Rate-Limit-Dokumentation ist hier Pflichtlektüre für jeden, der Agents in Produktion betreibt.


Unsere Empfehlung — welches Framework für welchen Use Case

Es gibt keinen einzigen Gewinner. Die Wahl hängt vom Use Case und vom bestehenden Stack ab:

Use Case Empfehlung Begründung
Mittelstand, Python, >50 User LangGraph Async-nativ, Checkpointer, breite Community
Microsoft Enterprise, .NET Semantic Kernel Native Integration in Azure AI Foundry & Entra
Multi-Agent-Forschung, kleine User-Zahl AutoGen Stärkstes Multi-Agent-Konzept, GroupChat
Schneller Prototyp, <30 User CrewAI Niedrigste Einstiegshürde, gut für PoC
Reine Tool-Use-Pipeline, kein Loop Pydantic AI Typed, schlank, kein Framework-Overhead

Was wir aktuell nicht empfehlen: OpenAI Swarm in Production. Das Repo ist explizit als experimental markiert, ohne State-Management und ohne Checkpointer. Wer das deployed, baut sich eine technische Schuld, die spätestens beim ersten Kubernetes-Rolling-Update zurückkommt.

Eine zweite klare Position: Wenn Ihr Team noch keine Production-Erfahrung mit Agents hat, fangen Sie mit einem einzigen Framework an — nicht mit drei parallelen Stacks. Die Komplexität liegt selten im Framework selbst, sondern in Observability, Cost-Monitoring und Fallback-Mechanismen. Ein Stack, sauber instrumentiert, ist mehr wert als drei halb-fertige Experimente.


Häufig gestellte Fragen

Welches Framework eignet sich für Agentic Loops Production mit über 100 Concurrent Users?

Aus unseren Benchmark-Daten hält aktuell nur LangGraph 100+ parallele User-Sessions ohne Degradation. Semantic Kernel kommt auf ca. 80 stabil, danach wird der Plugin-Loader zum Bottleneck. AutoGen und CrewAI brechen früher und sind für diese Last in der aktuellen Version nicht produktionsreif.

Was kostet ein Agent-Loop pro Request in der Produktion?

Kommt drauf an, aber unsere Range liegt bei 0,02-0,20 EUR pro Conversation mit Claude Sonnet 4. Der Faktor 10 entsteht durch Token-Cap-Disziplin: Ohne Hard-Cap und ohne Sliding-Window-Memory rutschen Conversations schnell in den 80.000-Token-Bereich. Mit den Patterns aus diesem Artikel liegt eine 5-Turn-Conversation typisch bei 0,03-0,05 EUR.

LangGraph vs. AutoGen vs. CrewAI — was ist der praktische Unterschied?

LangGraph ist ein Graph-Orchestrator (Nodes & Edges), async-nativ, mit Checkpointer-Pattern für State-Persistenz. AutoGen ist auf Multi-Agent-Konversationen optimiert — mehrere LLM-Agents reden miteinander. CrewAI nutzt ein Role-Based-Pattern (Crew aus Agents mit Rollen), ist schnell zu prototypen, aber Threading-basiert. Für Production-Single-Agent-Loops ist LangGraph der bessere Schnitt, AutoGen glänzt bei klassischen Multi-Agent-Forschungs-Setups.

Brauche ich Kubernetes für Agentic Loops in Production?

Nicht zwingend, aber sobald Sie über 30 Concurrent Users hinausgehen oder echte Verfügbarkeits-SLAs zusagen, ist Kubernetes die pragmatischste Antwort. Horizontal-Pod-Autoscaler reagiert auf Request-Last, Rolling-Updates ermöglichen Zero-Downtime-Deploys, und der Checkpointer macht Pod-Restarts transparent für den User.

Wie messe ich die Performance meines Agent-Stacks systematisch?

Drei Metriken-Gruppen: (1) Latency p50/p95/p99 pro Turn und pro Conversation, (2) Token-Verbrauch pro Conversation als Histogramm — nicht nur Durchschnitt, weil die Tail-Conversations die Kosten dominieren, (3) Tool-Call-Fehlerquote nach Fehler-Typ. OpenTelemetry mit dem langsmith-Exporter oder Phoenix von Arize liefern das out-of-the-box. Ohne Observability ist jeder Production-Launch ein Blindflug.


Nächster Schritt

Wenn Sie aktuell vor der Framework-Entscheidung stehen oder einen bestehenden Agent-Stack auf Production-Reife prüfen wollen: Wir machen das im 6-Wochen-Pilotprojekt für Generative AI konkret — inklusive Benchmark gegen Ihren echten Workload, Token-Cost-Analyse und Production-Readiness-Audit.


Verwandte Themen


Microsoft Fabric. Bilder Blogtemplate Whitepaper

Claude Code im Unternehmen

  • Praxis-Guide für IT-Leiter – mit konkreten Einblicken zu Kosten, Sicherheit und Rollout von Claude Code im Unternehmen.

Beratungsgespräch

Sichern Sie sich Ihre kostenfreie Erstberatung

Analyse Ihres individuellen Cloud- oder KI-Bedarfs
Erste Empfehlungen zu Umsetzungsstrategien
Transparente Einblicke in unsere Methoden, Technologien & Referenzen