Rollback-Strategien für KI-Agenten: wie man einen Release sicher zurückrollt

Praktischer Rollback in Production: stop reasons, Traffic-Switch auf stable version, Canary-Gates, Audit Logs und ein getestetes Runbook.
Auf dieser Seite
  1. Idee in 30 Sekunden
  2. Problem
  3. Lösung
  4. Rollback ≠ Kill switch
  5. Komponenten der Rollback-Kontrolle
  6. Wie das in der Architektur aussieht
  7. Beispiel
  8. Im Code sieht das so aus
  9. Wie das während der Ausführung aussieht
  10. Szenario 1: rollback_required in Canary
  11. Szenario 2: false alarm, kein Rollback nötig
  12. Szenario 3: wiederholtes Signal nach Rollback
  13. Typische Fehler
  14. Selbstcheck
  15. FAQ
  16. Wo Rollback im Gesamtsystem liegt
  17. Verwandte Seiten

Idee in 30 Sekunden

Rollback-Strategien sind ein Runtime-Mechanismus, um Traffic schnell auf eine stabile Version zurückzuführen, wenn ein neuer Release Metriken degradiert.

Wann das nötig ist: wenn ein Agent über Canary/Rollout releast wird und jede Regression in Production ohne langen Downtime gestoppt werden muss.

Problem

Ohne Rollback sieht das Team das Problem, kann den Impact aber nicht schnell entfernen. Während die Analyse läuft, geht Traffic weiter auf die degradierte Version und der Incident wächst.

Typisches Szenario:

  • error_rate oder latency_p95 steigt
  • Nutzer landen weiter auf der problematischen Version
  • Team macht manuelle Aktionen unter Zeitdruck

Analogie: Das ist wie Fahren ohne Notbremse. Wenn das System schon schleudert, kostet langsame Reaktion viel mehr als der eigentliche Fix.

Und jede Minute ohne Rollback bringt neue Fehler, Kosten und Vertrauensverlust.

Lösung

Die Lösung ist, Rollback als eigene Policy-Schicht im Runtime-Release-Flow umzusetzen. Policy prüft Degradationssignale und entscheidet: Rollout fortsetzen oder Traffic auf stable version zurückschalten.

Rollback policy layer gibt eine technische Entscheidung zurück: allow oder stop mit Grund:

  • rollback_required
  • sla_breach
  • error_spike

Bei stop führt das System einen kontrollierten Traffic-Switch auf active stable version aus und schreibt das Event ins Audit Log. Das ist eine dedizierte Notfall-Kontrolle, keine manuelle Improvisation im Incident.

Rollback ≠ Kill switch

Das sind unterschiedliche Werkzeuge:

  • Rollback bringt die vorherige stabile Version zurück.
  • Kill switch stoppt Aktionen oder Traffic ohne Versionswechsel.

Eins ohne das andere reicht nicht:

  • ohne Rollback ist es schwer, nach einer Release-Regression den Normalbetrieb wiederherzustellen
  • ohne Kill switch ist es schwer, riskante Aktionen bis zum Abschluss des Rollbacks schnell zu dämpfen

Beispiel:

  • rollback: 2.4.0 -> 2.3.3 nach error_spike
  • kill switch: temporär writes_disabled=true, während stable version zurückkommt

Komponenten der Rollback-Kontrolle

Diese Komponenten arbeiten bei jedem Rollout zusammen.

KomponenteWas sie kontrolliertZentrale MechanikWarum
Rollback triggersWann Rollback nötig isterror_rate / latency_p95
SLO thresholds
Liefert klare, nicht-manuelle Auslösekriterien
Traffic switchTraffic-Umschaltungfrom_version -> to_version
stable fallback
Reduziert Degradations-Impact schnell
Rollout gateWeiteres Candidate-Rolloutgate lock
rollback window
Verhindert erneuten Traffic auf die kaputte Version
Recovery verificationOb das System nach Rollback wieder stabil istpost-rollback checks
stability window
Bestätigt, dass Rollback das Problem wirklich gelöst hat
Rollback observabilityTransparenz der Notfall-Aktionenaudit logs
alerts on rollback events
Führt Rollback nicht direkt aus, liefert aber eine vollständige Entscheidungskette

Beispiel-Alert:

Slack: 🛑 Rollback triggered support-agent@2.4.0 -> 2.3.3, reason=error_spike, stage=canary.

Wie das in der Architektur aussieht

Rollback policy layer liegt zwischen Release runtime und Traffic und blockiert degradiertes Rollout vor der Skalierung. Jede Entscheidung (allow oder stop) wird im Audit Log erfasst.

Jede Rollout-Stufe passiert diesen Flow vor Traffic-Erweiterung: Runtime skaliert Candidate nicht direkt, sondern fragt zuerst die Entscheidung des Policy Layers ab.

Flow kurz zusammengefasst:

  • Monitoring liefert ein Degradationssignal
  • Policy prüft error_rate, latency_p95, tool_failures, rollback_plan
  • allow -> Rollout läuft weiter
  • stop -> Traffic wechselt auf active stable version
  • beide Entscheidungen werden ins Audit Log geschrieben

Beispiel

Nach Release support-agent@2.4.0 steigt tool_failure_rate in Canary. Rollback policy gibt stop (reason=rollback_required) zurück.

Ergebnis:

  • Traffic geht auf 2.3.3 zurück
  • Candidate wird für weitere Erweiterung gesperrt
  • Team analysiert die Ursache ohne aktiven Incident-Druck

Rollback reduziert Incident-Schaden während des Incidents, nicht erst danach.

Im Code sieht das so aus

Die vereinfachte Skizze oben zeigt den Haupt-Flow. Kritisch: Rollback muss idempotent und schnell sein, damit wiederholte Signale den Traffic-Switch nicht kaputt machen.

Beispiel für Rollback-Konfiguration:

YAML
rollback:
  stable_version: support-agent@2.3.3
  candidate_version: support-agent@2.4.0
  triggers:
    error_rate_p95: 0.05
    latency_p95_ms: 1800
    tool_failure_rate: 0.03
  lock_candidate_after_rollback: true
PYTHON
release_cfg = load_release_config("support-agent")
signal = monitor.read(version_id=release_cfg.candidate_version)
decision = rollback_policy.check(signal, release_cfg)

if decision.outcome == "stop":
    switch_result = traffic.switch(
        from_version=release_cfg.candidate_version,
        to_version=release_cfg.stable_version,
    )

    if release_cfg.lock_candidate_after_rollback:
        rollout.lock(version_id=release_cfg.candidate_version)

    audit.log(
        run_id,
        decision=decision.outcome,
        reason=decision.reason,
        from_version=release_cfg.candidate_version,
        to_version=release_cfg.stable_version,
        switch_status=switch_result.status,
    )
    alerts.notify_if_needed(release_cfg.candidate_version, decision.reason)
    return stop(
        decision.reason,
        from_version=release_cfg.candidate_version,
        to_version=release_cfg.stable_version,
    )

allow_decision = Decision.allow(reason=None)  # standard allow outcome/reason model
audit.log(
    run_id,
    decision=allow_decision.outcome,
    reason=allow_decision.reason,
    version_id=release_cfg.candidate_version,
    stage="canary",
)
return continue_rollout()

Wie das während der Ausführung aussieht

Szenario 1: rollback_required in Canary

  1. Candidate-Version bekommt 5% Traffic.
  2. Metriken verletzen Schwellen (error_rate und tool_failure_rate).
  3. Policy gibt stop (reason=rollback_required) zurück.
  4. Traffic geht auf stable version zurück.
  5. Candidate bleibt bis zur Incident-Analyse gesperrt.

Szenario 2: false alarm, kein Rollback nötig

  1. Monitoring meldet einen kurzen Spike, aber Schwellen werden nicht verletzt.
  2. Policy gibt allow zurück.
  3. Rollout läuft auf aktueller Stage weiter.
  4. Event wird im Audit Log erfasst.
  5. System bleibt stabil ohne unnötigen Rollback.

Szenario 3: wiederholtes Signal nach Rollback

  1. Nach dem Rollback kommt ein weiterer Alert mit demselben Signal.
  2. Idempotente Logik macht keinen wiederholten Switch.
  3. Policy gibt einen technischen Status ohne doppelte Aktionen zurück.
  4. In Logs ist sichtbar, dass Rollback bereits angewendet wurde.
  5. Team arbeitet an Root Cause ohne zusätzlichen Lärm.

Typische Fehler

  • Rollback wird nur manuell gestartet, ohne Policy-Trigger
  • es gibt keine stable version für schnelle Rückkehr
  • Candidate wird nach Rollback nicht gesperrt
  • Rollback schaltet Traffic um, prüft aber keine Recovery-Metriken
  • keine Idempotency für wiederholte Rollback-Signale
  • im Audit Log fehlen from/to version und reason

Ergebnis: Rollback wirkt vorhanden, ist im Incident aber langsam und unvorhersehbar.

Selbstcheck

Schneller Rollback-Strategie-Check vor dem Production-Start:

Fortschritt: 0/8

⚠ Grundlegende Governance-Kontrollen fehlen

Vor production brauchen Sie mindestens Zugriffskontrolle, Limits, audit logs und einen Not-Stopp.

FAQ

Q: Wann Rollback automatisch auslösen, wann manuell?
A: Bei klaren SLO-Schwellen ist automatisch besser. Bei mehrdeutigen Fällen (z. B. riskante Business-Operation) human approval zusätzlich zur Policy nutzen.

Q: Duplizieren Rollback und Kill switch einander?
A: Nein. Rollback bringt stable version zurück, Kill switch begrenzt schnell Aktionen. In Production sollten beide zusammen arbeiten.

Q: Was nach einem Rollback tun?
A: Incident-Snapshot sichern (Version, reason, Metriken), Candidate sperren und Rollout erst nach Fix und Verifikation neu starten.

Q: Braucht man Rollback, wenn Canary existiert?
A: Ja. Canary reduziert nur den Blast Radius, Rollback wird gebraucht, um schnell in einen stabilen Zustand zurückzukehren.

Q: Welche Felder müssen geloggt werden?
A: reason, from_version, to_version, stage, switch_status, timestamp, actor (wenn Rollback manuell ist).

Wo Rollback im Gesamtsystem liegt

Rollback-Strategien sind eine der Ebenen von Agent Governance. Zusammen mit versioning, Limits, Budgets, Approval und Audit bilden sie ein System sicherer Production-Änderungen.

Verwandte Seiten

Als Nächstes zum Thema:

⏱️ 6 Min. LesezeitAktualisiert 27. März 2026Schwierigkeit: ★★★
In OnceOnly umsetzen
Budgets + permissions you can enforce at the boundary.
In OnceOnly nutzen
# onceonly guardrails (concept)
version: 1
budgets:
  max_steps: 25
  max_tool_calls: 12
  max_seconds: 60
  max_usd: 1.00
policy:
  tool_allowlist:
    - search.read
    - http.get
writes:
  require_approval: true
  idempotency: true
controls:
  kill_switch: { enabled: true }
Integriert: Production ControlOnceOnly
Guardrails für Tool-Calling-Agents
Shippe dieses Pattern mit Governance:
  • Budgets (Steps / Spend Caps)
  • Tool-Permissions (Allowlist / Blocklist)
  • Kill switch & Incident Stop
  • Idempotenz & Dedupe
  • Audit logs & Nachvollziehbarkeit
Integrierter Hinweis: OnceOnly ist eine Control-Layer für Production-Agent-Systeme.

Autor

Nick — Engineer, der Infrastruktur für KI-Agenten in Produktion aufbaut.

Fokus: Agent-Patterns, Failure-Modes, Runtime-Steuerung und Systemzuverlässigkeit.

🔗 GitHub: https://github.com/mykolademyanov


Redaktioneller Hinweis

Diese Dokumentation ist KI-gestützt, mit menschlicher redaktioneller Verantwortung für Genauigkeit, Klarheit und Produktionsrelevanz.

Der Inhalt basiert auf realen Ausfällen, Post-Mortems und operativen Vorfällen in produktiv eingesetzten KI-Agenten-Systemen.