Zum Inhalt

KI-Agenten lokal und sicher betreiben

Diese Dokumentation beschreibt den Aufbau einer abgesicherten Umgebung für KI-Agenten mit lokaler KI, in der sensible Daten kontrolliert verarbeitet werden können.

Anwendungsfälle

Stakeholder Anwendungsfall Beschreibung
Betreiber Abgesicherte Agentenumgebung bereitstellen Richtet lokale KI, Agent, Projektzugriffe und technische Sicherheitsgrenzen ein.
Betreiber Betrieb validieren Prüft, ob Benutzertrennung, Dateizugriffe, Schreibschutz und Netzwerkbegrenzung wie vorgesehen wirken.
Nutzer Arbeitsauftrag bereitstellen Beschreibt die Aufgabe und stellt die dafür erforderlichen Eingabedaten bereit.
Nutzer Sensible Daten KI-gestützt verarbeiten Lässt freigegebene Daten innerhalb des aktuellen Projekts analysieren oder bearbeiten.
Nutzer Ergebnis prüfen Kontrolliert Änderungen und Ergebnisse, bevor sie übernommen oder weiterverwendet werden.

Zielbild

flowchart LR
    user["Nutzer"]

    subgraph local_system["Lokales Agentensystem"]
        agent["KI-Agent"]
        ai["Lokale KI"]
        harness["Regeln und Harness"]

        subgraph secure_area["Abgesicherte Ausführungsumgebung"]
            tools["Werkzeuge"]
            workspace["Projekt-Workspace"]

            tools -->|"lesen und bearbeiten"| workspace
        end

        agent -->|"Anfrage und Kontext"| ai
        ai -->|"Antwort und Arbeitsschritte"| agent
        harness -->|"Regeln und Grenzen"| agent
        agent -->|"Werkzeugaufruf"| tools
    end

    user -->|"Auftrag und Eingaben"| agent
    agent -->|"Ergebnisse und Rückfragen"| user
Baustein Aufgabe
Lokale KI Verarbeitet Texte, analysiert Inhalte und erzeugt Vorschläge oder Arbeitsschritte.
KI-Agent Verbindet den Auftrag des Nutzers mit der lokalen KI, dem Projektkontext und den verfügbaren Werkzeugen.
Regeln und Harness Legen Verhalten, verfügbare Werkzeuge, Freigaben und technische Grenzen des Agenten fest.
Werkzeuge Führen Datei-, Terminal- oder Programmieraktionen innerhalb der freigegebenen Umgebung aus.
Projekt-Workspace Enthält die Dateien, die für ein konkretes Projekt gelesen oder bearbeitet werden dürfen.
Abgesicherte Ausführungsumgebung Begrenzt technisch sichtbare Verzeichnisse, Schreibzugriffe, Netzwerkzugriff und verwendbare Ressourcen.

Regeln und technische Grenzen

Regeln beschreiben, wie der Agent arbeiten soll.

Technische Grenzen bestimmen, was seine Werkzeuge tatsächlich ausführen können. Sicherheitskritische Einschränkungen dürfen daher nicht ausschließlich als Anweisung formuliert werden.

Sicherheitsprinzipien

Prinzip Bedeutung
Minimale Sichtbarkeit Der Agent erhält nur Zugriff auf die Daten, die für das aktuelle Projekt benötigt werden. Andere Projekte, persönliche Dateien und administrative Konfigurationen bleiben außerhalb des freigegebenen Bereichs.
Minimale Schreibrechte Eingabedaten werden nur lesbar bereitgestellt. Änderungen erfolgen ausschließlich im Workspace oder im vorgesehenen Ergebnisbereich.
Technische statt rein sprachlicher Grenzen Ein getrennter Linux-Benutzer, eingeschränkte Verzeichnismounts, fehlende administrativen Rechte und eine abgesicherte Werkzeugausführung begrenzen den Agenten technisch.
Getrennte Verantwortlichkeiten Der Betreiber bleibt für administrative Änderungen, zusätzliche Freigaben, Backups und die Prüfung sicherheitsrelevanter Ergebnisse verantwortlich.
Kontrollierte Übernahme Ergebnisse des Agenten werden geprüft und nicht automatisch in das ursprüngliche Projekt oder ein produktives System übernommen.

Kein absolut sicherer Agent

Ein KI-Agent kann innerhalb des freigegebenen Bereichs weiterhin Dateien beschädigen, Anforderungen missverstehen oder fachlich falsche Ergebnisse erzeugen.

Versionierung, Backups und menschliche Prüfung bleiben notwendig.

Architektur

flowchart TB
    subgraph Host["Linux Host"]
        User["Normaler Benutzer<br/>Administration"]
        Hermes["Hermes Prozess<br/>Benutzer hermes"]
        Ollama["Ollama Dienst<br/>Benutzer ollama"]

        subgraph Podman["Rootless Podman"]
            Sandbox["Hermes Werkzeugcontainer<br/>network=none"]
        end

        Input["/srv/hermes/input<br/>read-only im Container"]
        Workspace["/srv/hermes/workspace<br/>read/write"]
        Output["/srv/hermes/output<br/>read/write"]
    end

    User -->|sudo nur für Einrichtung| Hermes
    Hermes -->|127.0.0.1:11434/v1| Ollama
    Hermes -->|Tool-Aufrufe| Sandbox
    Sandbox --> Input
    Sandbox --> Workspace
    Sandbox --> Output
    Sandbox -.->|kein Egress| Internet["Internet"]
Komponente Darf Darf nicht
Ollama Modell laden und lokale Inferenz ausführen Shell-Befehle oder Dateiarbeiten für Hermes ausführen
Hermes-Hostprozess Modell ansprechen, Tool-Aufrufe koordinieren Administrative Rechte erhalten
Werkzeugcontainer Im freigegebenen Workspace arbeiten Host-Home, Secrets, Internet oder Container-Socket sehen
Normaler Benutzer Einrichtung, Prüfung und Freigabe Hermes dauerhaft unter dem eigenen privilegierten Konto ausführen