Zum Inhalt springen

Agent-Monitoring

iStand: September 2026

Modell-IDs und Token-Preise in den Code-Beispielen entsprechen dem Stand vom September 2026 (Anthropic-Tarife). Die Monitoring-Konzepte sind langlebig — passe vor produktivem Einsatz nur die Modell-IDs und Preise an.

Wissen

Ein Agent in der Produktion ohne Monitoring ist wie ein Auto ohne Tacho: Du weißt nicht, wie schnell du fährst, wie viel Sprit du verbrauchst oder ob der Motor überhitzt. In diesem Abschnitt baust du ein Monitoring-System, das dir jederzeit zeigt, was dein Multi-Agent System tut.

Die vier Säulen des Agent-Monitorings

SäuleWas wird gemessen?Warum ist es wichtig?
Token-TrackingInput/Output-Tokens pro Agent, pro AufgabeKostenexplosion frühzeitig erkennen
Error-HandlingFehlertypen, Häufigkeit, betroffene AgentsSystemstabilität sicherstellen
LoggingJede Agent-Aktion mit Timestamp und KontextDebugging und Audit-Trail
AlertingSchwellwerte für Kosten, Fehlerrate, LatenzAutomatische Benachrichtigung bei Problemen

Token-Tracking implementieren

Jeder API-Aufruf gibt die verbrauchten Tokens zurück. Diese musst du systematisch erfassen:

from dataclasses import dataclass, field
from datetime import datetime

@dataclass
class TokenUsage:
    agent_name: str
    model: str
    input_tokens: int
    output_tokens: int
    timestamp: str = field(default_factory=lambda: datetime.now().isoformat())

    @property
    def total_tokens(self) -> int:
        return self.input_tokens + self.output_tokens

    @property
    def estimated_cost(self) -> float:
        """Schätzt die Kosten basierend auf dem Modell."""
        pricing = {
            "claude-opus-5": (5.0, 25.0),      # $/1M tokens (input, output)
            "claude-sonnet-5": (3.0, 15.0),
            "claude-haiku-4-5": (1.0, 5.0),
        }
        input_price, output_price = pricing.get(self.model, (3.0, 15.0))
        return (
            (self.input_tokens / 1_000_000) * input_price +
            (self.output_tokens / 1_000_000) * output_price
        )

class TokenTracker:
    def __init__(self):
        self.records: list[TokenUsage] = []

    def record(self, agent_name: str, model: str, response) -> TokenUsage:
        usage = TokenUsage(
            agent_name=agent_name,
            model=model,
            input_tokens=response.usage.input_tokens,
            output_tokens=response.usage.output_tokens
        )
        self.records.append(usage)
        return usage

    def total_cost(self) -> float:
        return sum(r.estimated_cost for r in self.records)

    def cost_by_agent(self) -> dict[str, float]:
        costs: dict[str, float] = {}
        for r in self.records:
            costs[r.agent_name] = costs.get(r.agent_name, 0) + r.estimated_cost
        return costs

Verstehen

Error-Handling mit Retry-Logik

In der Produktion schlagen API-Calls fehl -- Rate Limits, Timeouts, Server-Fehler. Dein System muss das abfangen:

import time
import logging
from functools import wraps

logger = logging.getLogger("agent-system")

def retry_with_backoff(max_retries: int = 3, base_delay: float = 1.0):
    """Decorator für automatische Retries mit exponentiellem Backoff."""
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            for attempt in range(max_retries):
                try:
                    return func(*args, **kwargs)
                except Exception as e:
                    if attempt == max_retries - 1:
                        logger.error(f"Alle {max_retries} Versuche fehlgeschlagen: {e}")
                        raise
                    delay = base_delay * (2 ** attempt)
                    logger.warning(
                        f"Versuch {attempt + 1} fehlgeschlagen: {e}. "
                        f"Retry in {delay}s..."
                    )
                    time.sleep(delay)
        return wrapper
    return decorator

# Anwendung im ProductionAgent
class ProductionAgent:
    @retry_with_backoff(max_retries=3, base_delay=1.0)
    def process(self, task: str) -> str:
        response = client.messages.create(
            model=self.model,
            max_tokens=2048,
            system=self.system_prompt,
            messages=[{"role": "user", "content": task}]
        )
        # Token-Tracking
        self.tracker.record(self.name, self.model, response)
        return response.content[0].text

Alerting-System

Definiere Schwellwerte, bei deren Überschreitung du benachrichtigt wirst:

@dataclass
class AlertRule:
    name: str
    metric: str              # "cost_per_hour", "error_rate", "latency_p95"
    threshold: float
    window_minutes: int = 60
    action: str = "log"      # "log", "email", "slack", "pagerduty"

PRODUCTION_ALERTS = [
    AlertRule(name="Kosten-Alarm", metric="cost_per_hour", threshold=5.0),
    AlertRule(name="Fehler-Alarm", metric="error_rate", threshold=0.1),
    AlertRule(name="Latenz-Alarm", metric="latency_p95", threshold=30.0),
]

Das Production Dashboard

Mit dem folgenden Dashboard siehst du Token-Verbrauch, Kosten und Fehlerraten deines Multi-Agent Systems auf einen Blick:

Production Agent Dashboard

Token-Verbrauch/Tag

59.6k

↓ -3.1%

Kosten/Tag

$30.00

↑ +5.2%

Error-Rate

1.7%

↑ +0.3%

Avg Latenz

330ms

↓ -8ms

Token-Verbrauch (7 Tage)

InputOutput
Token-Verbrauch über 7 Tage0k13k26k39k52k66kMoDiMiDoFrSaSo

Kosten pro Agent ($/Tag)

Kosten pro Agent$0$4$8$12$16Planner$14.0Executor$9.0Reviewer$5.0Monitor$2.0
Gesamt: $30.00/Tag

Error-Log (letzte 5)

04:15:00ExecutorRequest timed out after 30s
04:09:00PlannerRate limit exceeded, retry in 60s
03:59:00ExecutorOpenAI API returned 503
03:57:00ReviewerFailed to parse JSON response
03:51:00ReviewerOpenAI API returned 503

Anwenden

Dein Production Dashboard zeigt, dass der Executor-Agent 80% der Gesamtkosten verursacht, obwohl er das günstigste Modell nutzt. Was ist die wahrscheinlichste Ursache?

Reflektieren

Monitoring ist keine optionale Ergänzung, sondern die Grundlage für jede Produktionsentscheidung. Ohne Token-Tracking weißt du nicht, ob dein Budget reicht. Ohne Error-Logging findest du Bugs nicht. Ohne Alerting merkst du Probleme erst, wenn es zu spät ist. Investiere die Zeit in gutes Monitoring -- es ist die billigste Versicherung, die du für dein Agent-System kaufen kannst.