Plattform · 04 Observability

Wenn Sie es nicht wiederholen können, haben Sie es nicht verstanden

Ein Agenten-Lauf ist nicht-deterministisch. Genau deshalb braucht er mehr Instrumentierung als klassische Software, nicht weniger: ein Span je Tool-Call, deterministisches Replay für die Fehlersuche, eine Eval-Suite in der CI und Kosten, die einem Use Case zugeordnet sind.

Agenten-Observability macht einen Lauf nachträglich erklärbar. Jeder Tool-Call erzeugt einen OpenTelemetry-Span mit Agenten-Identität, Werkzeugname, sanitisierten Parametern, Latenz und Token-Verbrauch. Ein deterministisches Replay spielt denselben Lauf gegen aufgezeichnete Antworten erneut ab — und die Kosten liegen je Lauf, Use Case und Mandant vor.

1 Span je Tool-Call, je Modellaufruf, je Freigabe OpenTelemetry, exportierbar in Ihr eigenes System
365 Tage Standard-Aufbewahrung des Audit-Logs Trace-Details kürzer, je nach Volumen und Vereinbarung
je Task Kostenausweis je erfolgreichem Task, nicht je Token Fehlversuche und Retries eingerechnet

Was in einem Span steht

Ein Trace ohne Agenten-Kontext ist nutzlos. Deshalb trägt jeder Span die Attribute, die man bei einer Fehlersuche oder einem Audit tatsächlich braucht.

Span-Attribute je Tool-Call
AttributBeispielWozu
agent.id / agent.versionaction-agent@3Zuordnung zu Identität und Codestand
run.id / stepr-8f21c9 · 4Verknüpfung mit dem Event Log der Runtime
tool.namestripe.refundWelches Werkzeug, welcher MCP-Server
tool.params_sanitized{amount:189.00, order:sha256…}Nachvollziehbarkeit ohne Klartext-Personendaten
policy.decisionallow (limit 250)Warum der Aufruf durchging — oder nicht
latency.ms310Wo die Zeit hingeht
tokens.in / tokens.out4 210 / 380Grundlage der Kostenzuordnung
model.name / model.routeklein → grossNachweis, wann eskaliert wurde
cache.hittrueWirkung des Prompt-Caching
error.typeupstream_timeoutFehlerklassifikation für Alerting
agent.run 7 spans otel sdk auto-instrumentiert collector sanitize · sample trace & log store retention je klasse dashboards alerts · reports kostenattribution use case · team · mandant DERSELBE DATENSTROM TRÄGT FEHLERSUCHE UND ABRECHNUNG
Eine Pipeline, zwei Zwecke. Wer Kosten getrennt erhebt, bekommt Zahlen, die nicht zum Trace passen.

Deterministisches Replay

Das eigentliche Problem beim Debuggen von Agenten: Der Fehler tritt beim zweiten Versuch nicht mehr auf. Replay löst das, indem der Lauf gegen die aufgezeichneten Modell- und Tool-Antworten erneut abgespielt wird — ohne echte Aufrufe, ohne neue Kosten, mit identischem Ergebnis.

Damit lassen sich drei Fragen beantworten, die sonst offen bleiben: Welche Eingabe hat die falsche Entscheidung ausgelöst? Ändert ein neuer Prompt das Verhalten in genau diesem Fall? Und hätte die neue Policy den Aufruf verhindert?

replay & evals
# Lauf exakt so wiederholen, wie er passiert ist — ohne echte Tool-Calls.
agentctl replay r-8f21c9

# Derselbe Lauf gegen einen geaenderten Prompt. Zeigt die Abweichung
# Schritt fuer Schritt an, statt nur das Endergebnis zu vergleichen.
agentctl replay r-8f21c9 --prompt-version 12 --diff

# Haette die neue Policy den Refund verhindert?
agentctl replay r-8f21c9 --policy ./tools.policy.yaml --dry-run

Evals gehören in die CI

„Es lief einmal im Notebook“ ist kein Deployment-Kriterium mehr. Jede Änderung an Prompt, Modell, Policy oder Werkzeugliste läuft gegen eine Suite aus echten Fällen — und zwar bevor sie in Produktion geht.

Die Suite wächst von selbst: Jeder produktive Fehlschlag wird als Fixture aufgezeichnet und zum Testfall. Nach einem halben Jahr Betrieb ist das der wertvollste Teil des Projekts — wertvoller als der Prompt.

Was wir messen

Erfolgsquote je Fallklasse, Anteil der Eskalationen an Menschen, Kosten je erfolgreichem Task, p95-Laufzeit und die Rate falsch positiver Aktionen. Nicht: „Zufriedenheit mit der Antwort“ — das ist kein Testkriterium, sondern eine Umfrage.

Kosten, die einem Verursacher zugeordnet sind

Inferenz hat Training als dominante Workload abgelöst. Damit wird Kostensteuerung zur Architekturfrage — nicht zur Aufgabe der Buchhaltung am Monatsende.

Kostensicht je Ebene — Beispielwerte
EbeneKennzahlBeispielSteuerhebel
Einzelner LaufKosten je Lauf0,031 €Budget-Cap, Kontext-Kompaktierung
Use CaseKosten je erfolgreichem Task0,047 €Model-Routing, Cache-Quote
TeamAusgaben je MonatPLACEHOLDERQuoten je Agent, Alarm bei Abweichung
MandantWeiterverrechnungPLACEHOLDERAttribution über Span-Labels

Die entscheidende Kennzahl ist die zweite Zeile: Kosten je erfolgreichem Task. Sie enthält die Fehlversuche, die Retries und die Eskalationen — und ist damit die einzige Zahl, die sich mit den Kosten des bisherigen manuellen Prozesses vergleichen lässt.

Was das nicht löst

Ehrliche Grenzen

Replay reproduziert Entscheidungen gegen aufgezeichnete Antworten — es beweist nicht, dass das Modell heute dieselbe Antwort gäbe. Und Traces zeigen, was der Agent getan hat, nicht warum das Modell es für richtig hielt. Wer Begründungen braucht, muss sie als strukturierte Ausgabe erzwingen und mitprotokollieren — nachträglich rekonstruieren lässt sie sich nicht.

Häufige Fragen

Observability im Detail

Können wir die Traces in unser eigenes System exportieren?

Ja. Der Export erfolgt über OTLP an ein Ziel Ihrer Wahl — Tempo, Jaeger, Datadog oder ein bestehendes SIEM. Wir betreiben den Standard-Stack auf Basis von Prometheus und Grafana, sind aber nicht darauf angewiesen.

Wie lange werden Traces aufbewahrt?

Audit-relevante Ereignisse standardmäßig 365 Tage, vollständige Trace-Details kürzer — abhängig von Volumen und vereinbarter Klasse. Die Aufbewahrung ist Teil des Auftragsverarbeitungsvertrags, nicht eine Einstellung im Produkt.

Landen personenbezogene Daten in den Traces?

Nur soweit konfiguriert. Der Collector sanitisiert Parameter vor der Ablage: Feldnamen und Typen bleiben, Klartextwerte werden gehasht oder verworfen. Welche Felder wie behandelt werden, wird je Werkzeug festgelegt und dokumentiert.

Was kostet Observability zusätzlich?

Nichts extra — sie ist Teil der Betriebspauschale. Bei sehr hohen Trace-Volumina vereinbaren wir Sampling-Regeln, damit die Ablage nicht teurer wird als der Betrieb. Details auf der Preisseite.

Wie viele Eval-Fälle braucht eine sinnvolle Suite?

Zum Start reichen 20 bis 30 Fälle, wenn sie die realen Randfälle abdecken statt den Normalfall zu wiederholen. Entscheidend ist nicht die Anzahl, sondern dass jeder produktive Fehlschlag als Fall hinzukommt.

Ersetzt Replay einen Testlauf gegen echte Systeme?

Nein. Replay prüft Entscheidungslogik gegen aufgezeichnete Antworten. Integrationsfehler — geänderte Schemata, neue Fehlercodes, verändertes Verhalten eines Werkzeugs — findet nur ein echter Lauf gegen ein Testsystem.

Weiter in der Plattform

Lassen Sie uns einen Ihrer Läufe zerlegen

Schicken Sie uns einen Prozess, der heute schon mit KI läuft. Wir instrumentieren ihn in der Sandbox und zeigen Ihnen den Span-Baum, die Kosten je Lauf und die drei Stellen, an denen er still scheitert.

Oder direkt: 09571 873149