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 |