Incident Response mit Freigabe
Nachts um drei ist die knappste Ressource nicht Rechenleistung, sondern Aufmerksamkeit. Ein Agent, der Alerts korreliert, Logs liest und einen begründeten Rollback vorschlägt, verkürzt die Zeit bis zur Entscheidung — die Entscheidung selbst trifft weiterhin ein Mensch.
Geeignet fürBetriebsteams mit Rufbereitschaft, deren Systeme über Prometheus und Wazuh sauber instrumentiert sind
Guardrails: keine freien Kommandos, jeder Fall im Trace nachvollziehbar
Das Wichtigste auf einen Blick
- Geeignet für
- Betriebsteams mit Rufbereitschaft, deren Systeme über Prometheus und Wazuh sauber instrumentiert sind
- Ausgangssituation
- Im Beispiel: 340 Alerts, davon nur 6 % echte Vorfälle, 22 Minuten Median bis zur ersten Diagnose
- Wir übernehmen
- Korrelation, Diagnose mit Konfidenzangabe, Postmortem-Entwurf und genau vier benannte Maßnahmen, jede nach Freigabe
- Bei Ihnen bleibt
- Ihre Daten und die Entscheidung, welche davon ein Modell sehen darf. Eigentum und Hoheit wechseln nicht.
- Vorhandene Systeme
- Welche Hardware und welche Schnittstellen sich weiterverwenden lassen, klären wir vor dem Angebot. Das Ergebnis steht schriftlich fest, bevor Sie beauftragen.
- Ihr Ergebnis
- Nachts wird seltener geweckt. Im Beispiel gingen 62 % der Alerts gebündelt in den Morgenbericht
- Preisrahmen
- ab 690 € im Monat (Einstiegsklasse)Business 1.490 €, Enterprise 3.900 €; im Beispiel 0,40 € Modellbudget je Vorfall
- Reaktionszeit
- 30 Minuten Freigabefrist in der Rufbereitschaft, danach verfällt der Vorschlagfür die Plattform zugesichert 4 Stunden (Professional), 1 Stunde (Enterprise)
- Dauer
- Vier Wochen nur mitlesend, dann entscheiden Sie über Aktionsrechte12 Monate Regellaufzeit, 3 Monate Kündigungsfrist
- Erster Schritt
- Wir schalten den Agenten beobachtend auf Ihre Alerts und vergleichen seine Diagnosen mit Ihren Befunden
1. Ausgangslage
| Kennzahl | Wert | Anmerkung |
|---|---|---|
| Alerts je Monat | 340 | nach Deduplizierung |
| davon echte Vorfälle | 6 % | rund 20 Fälle |
| Zeit bis zur ersten Diagnose | 22 min | Median, nachts deutlich länger |
| Postmortems geschrieben | 35 % | der Rest bleibt undokumentiert |
2. Agent-Design
- correlate-agent — bündelt Alerts nach Zeitfenster, betroffenem Dienst und Abhängigkeit. Werkzeuge: Prometheus-Abfragen, Wazuh-Alerts, Deployment-Historie. Ausschließlich lesend.
- diagnose-agent — liest Logs rund um den Zeitpunkt, vergleicht mit dem letzten funktionierenden Zustand und formuliert eine Hypothese mit Konfidenz. Größeres Modell, keine Werkzeuge mit Schreibrecht.
- remediate-agent — führt genau vier vordefinierte Maßnahmen aus: Deployment zurückrollen, Dienst neu starten, Node aus dem Loadbalancer nehmen, Skalierung erhöhen. Jede erst nach Freigabe.
- postmortem-agent — erzeugt aus Trace, Alerts und ausgeführten Maßnahmen einen Entwurf nach Ihrer Vorlage.
Wir bauen hier keinen selbstheilenden Betrieb. Ein Agent, der nachts eigenmächtig zurückrollt, kann aus einer Teilstörung einen Totalausfall machen. Der Gewinn liegt in der Diagnosezeit, nicht in der Autonomie.
3. Architektur
alerts
prometheus · wazuhcorrelate
read:metrics, alertsdiagnose
logs · deploymentsfreigabe
rufbereitschaftremediate
4 maßnahmen4. Code
import { defineAgent, step, approval } from "@hostspezial/agent-sdk";
// Der Agent kennt genau diese vier Massnahmen. Kein freies
// Kommando, keine Shell — das ist der eigentliche Guardrail.
const ACTIONS = ["rollback_deployment", "restart_service",
"drain_node", "scale_up"] as const;
export default defineAgent({
name: "incident-responder",
budget: { eur: 0.40, wallClockMs: 600_000 },
async run(ctx, alert) {
const cluster = await step(ctx, "correlate", () =>
ctx.tools.prometheus.window({ service: alert.service, minutes: 30 }));
const hypothesis = await step(ctx, "diagnose", { model: "gross" }, () =>
ctx.reason({ cluster, deployments: ctx.tools.git.recent(alert.service) }));
// Unter 0.7 Konfidenz gibt es keinen Vorschlag, sondern eine
// Zusammenfassung. Ein unsicherer Vorschlag kostet mehr Zeit,
// als er spart — er muss zusaetzlich widerlegt werden.
if (hypothesis.confidence < 0.7) return { summary: hypothesis.text };
const ok = await approval(ctx, {
queue: "oncall", ttlMinutes: 30,
proposal: { action: hypothesis.action, reason: hypothesis.text },
});
if (!ok.approved) return { status: "declined", by: ok.actor };
await step(ctx, "remediate", { idempotencyKey: `${ctx.runId}:fix` }, () =>
ctx.tools.ops.execute(hypothesis.action, { service: alert.service }));
return step(ctx, "postmortem", () => ctx.writePostmortem(ctx.runId));
},
});5. Ergebnis
Funktioniert nicht bei …
… Störungen, deren Ursache außerhalb der instrumentierten Systeme liegt — ein Netzproblem beim Provider sieht der Agent nur als Symptom. … Erstvorfällen ohne Vergleichsdaten: Die Diagnosequalität hängt an der Historie. … Umgebungen ohne saubere Deployment-Historie; ohne die Frage „was hat sich zuletzt geändert“ fällt der wichtigste Hinweis weg. Und der Agent ersetzt keine Rufbereitschaft — er bereitet ihre Entscheidung vor.
Erst mitlesen, dann mitentscheiden
Freigabewege festlegen.
Welche Schritte ein Agent im Vorfall allein gehen darf und wo ein Mensch zustimmen muss, gehört vor den ersten Einsatz geklärt. Ausführlich beschrieben ist das unter Agentic AI.
Betrieb in deutschen Rechenzentren
