# OpsAgent

Selbstheilender Windows-Betriebs-Agent mit revisionsfestem Protokoll (Phase 1 / MVP).

Ein Dienst faellt aus → OpsAgent erkennt es (deterministischer Watchdog), sammelt Evidenz (Logs, Ressourcen, letzte Aenderungen), holt eine KI-Diagnose (ueber das DSGVO-anonymisierende KI-Gateway; regelbasierter Fallback ohne Cloud), fuehrt die im Playbook freigegebene Aktion aus (z. B. Dienst-Neustart) und schreibt jeden Schritt in ein **hash-verkettetes Journal** — nachtraegliche Manipulation ist nachweisbar.

## Komponenten

| Komponente | Beschreibung |
|---|---|
| `agent_main.py` | Lokaler Agent (Windows): Poll-Loop, Erkennung → Diagnose → Aktion → Journal, meldet Incidents an die Konsole |
| `console/main.py` | Zentrale Konsole (FastAPI, Port 8971): Incident-Liste, Freigabe wartender Aktionen, Dark-Cyan-SPA |
| `playbooks/*.yml` | Freigegebene Aktionen mit Modus (`auto`/`confirm`), Cooldown und Max-Retries |
| `opsagent/ad/` + `console/static/ad.html` | AD-Configurator (AD-1: read-only Browser mit effektiver Gruppen-Mitgliedschaft, Baum+Graph) |

## Installation (Pilot)

```bash
pip install -r requirements.txt
copy config.example.json config.json   # anpassen: agent_id, console_url, api_key, ki_gateway_url
python console/main.py                 # Konsole starten (http://127.0.0.1:8971)
python agent_main.py                   # Agent starten
```

## Playbook-Format

```yaml
name: service_restart
description: Startet einen gestoppten Windows-Dienst neu.
action: restart_service        # muss in der Aktions-Whitelist stehen
mode: auto                     # auto | confirm (confirm wartet auf Freigabe in der Konsole)
cooldown_seconds: 300          # Mindestabstand zwischen zwei Ausfuehrungen
max_retries: 3                 # danach Eskalation statt weiterer Versuche
params:
  service_from_trigger: true
```

## Sicherheitsmodell

- Aktionen nur aus der Whitelist — die KI-Diagnose **waehlt** ein Playbook, sie kann keine freien Kommandos ausfuehren.
- `confirm`-Playbooks laufen nie automatisch; Freigabe ueber die Konsole.
- Cooldown + Max-Retries verhindern Restart-Schleifen; danach Eskalation.
- Journal mit SHA-256-Hash-Kette: jeder Eintrag referenziert den Vorgaenger.

> **Status:** Pilot-Phase (MVP). Netzwerk-Diagnose, Firewall-Anbindung, AD-/GPO-/Update-Manager folgen in spaeteren Phasen. Nicht fuer den Produktivbetrieb ohne Review.
