Warum ich meinen eigenen KI-Agenten betreibe
Vor einigen Monaten habe ich aufgehört, für jeden kleinen Task ChatGPT oder Claude zu öffnen. Nicht weil die Modelle schlecht wären — im Gegenteil. Sondern weil ich erkannt habe, dass ein dauerhaft laufender, selbst konfigurierter Agent auf dem eigenen Server eine komplett andere Qualität liefert.
Dieser Bericht ist ehrlich: Was funktioniert gut, was ist mühsam, und was würde ich anderen empfehlen.
Der Stack
Ich betreibe einen lokalen KI-Agenten basierend auf:
- Ollama — lokales LLM-Serving (qwen3:30b, qwen3-coder:30b, llama3.1:8b)
- Hermes Agent — Agent-Framework mit Gateway, Skills, Cron, Memory
- WSL2 (Ubuntu) auf einem Windows-Workstation mit 64GB RAM
- Matrix (Synapse) als Chat-Interface — selbst gehostet auf eigenem Debian-Server
Warum Ollama?
Ollama abstrahiert das komplizierte Modell-Management komplett weg. Modell runterladen:
ollama pull qwen3:30b
ollama pull qwen3-coder:30b
ollama pull llama3.1:8b
Ollama exponiert eine OpenAI-kompatible API auf Port 11434. Jedes Tool das OpenAI unterstützt, funktioniert damit sofort.
Warum mehrere Modelle?
Nicht jede Aufgabe braucht das stärkste Modell:
| Aufgabe | Modell | Warum |
|---|---|---|
| Server-Analyse, Sicherheits-Reasoning | qwen3:30b | Stärkstes Reasoning |
| Bash-Scripts, Code generieren | qwen3-coder:30b | Code-optimiert |
| Schnelle Fragen, Klassifikation | llama3.1:8b | Blitzschnell, <2s |
Das spart massiv Ressourcen. Wenn jemand fragt „Wie viel Speicher hat Server X?“ brauche ich kein 30B Modell dafür.
Das Killer-Feature: Matrix-Integration
Der Game-Changer war die Matrix-Integration. Hermes läuft 24/7 als systemd-Service und hört auf Matrix-Nachrichten. Ich schreibe in meinen Matrix-Client (Element) und Hermes führt Tasks aus — SSH auf Server, Docker-Container updaten, Code committen.
Das funktioniert über Channel-Prompts: Jeder Matrix-Raum hat ein eigenes System-Prompt, das den Agenten in den richtigen Kontext versetzt:
Hermes · Server → Server-Admin-Modus, SSH zu free-warez.win/top
Hermes · Code → Entwickler-Modus, Bot-Projekte
Hermes · Home → Allrounder
Ein Gateway, fünf Räume, automatischer Kontext-Wechsel — kein Profil-Switching nötig.
Was wirklich gut funktioniert
Server-Management per Sprache: Ich schreibe check win und Hermes führt den Healthcheck auf meinem Ubuntu-Server aus, gibt mir einen strukturierten Report über RAM, Disk, Container-Status und Log-Fehler. Früher hätte das 5 SSH-Befehle und 10 Minuten Auswertung gekostet.
Skill-System: Hermes kann Skill-Dokumente laden die wie Cheat-Sheets aufgebaut sind. Mein Server-Skill enthält die exakten SSH-Befehle, Script-Pfade und Quirks meiner Infrastruktur. Der Agent „kennt“ dadurch meine Server.
Memory über Sessions: Durch agentmemory (persistente Datenbank) erinnert sich Hermes an Entscheidungen aus vergangenen Sessions. Wenn ich sage „nie docker_prune_all.sh ohne Rückfrage“, merkt er sich das.
Cron-Jobs ohne Cron-Syntax: hermes cron create "0 8 * * *" --script daily_healthcheck.sh --no-agent --deliver matrix:!ROOM_ID — täglich um 8 Uhr bekomme ich den Server-Status in Matrix. Kein separates Monitoring-Tool.
Was mühsam ist (ehrlich)
Kalt-Start ist langsam. qwen3:30b auf meiner Hardware (64GB RAM, keine dedizierte GPU) braucht die ersten paar Sekunden zum Aufwärmen. Mit GPU deutlich besser.
String-Escaping ist ein Dauerproblem. Wenn der Agent Code mit Anführungszeichen, Markdown-Tabellen oder deutschen Sonderzeichen generieren soll, entstehen schnell Syntax-Fehler. Meine Lösung: Ich definiere klare Patterns (python3 mit subprocess.run + curl statt direkter Code-Ausführung) und diszipliniere den Agenten dazu.
Context Window Management. Bei langen Sessions verliert der Agent Details aus frühen Nachrichten. Lossless Context Management (LCM) hilft, ist aber kein Wundermittel.
Setup in 30 Minuten
Wer das selbst ausprobieren will:
# 1. Ollama installieren
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b # Als Einstieg
# 2. Hermes installieren
pip install hermes-agent
# 3. Konfigurieren
mkdir ~/.hermes
# Ollama als Provider in config.yaml eintragen
# SOUL.md schreiben: Wer ist der Agent? Was sind seine Aufgaben?
# 4. Gateway starten
hermes gateway run
Für die Matrix-Integration braucht man einen eigenen Synapse-Server oder einen öffentlichen Matrix-Account (@user:matrix.org funktioniert auch).
Fazit
Ein selbst gehosteter KI-Agent ist kein ChatGPT-Ersatz — er ist etwas Eigenes. Kein Abonnement, keine Datenschutz-Bedenken, kein Rate-Limiting. Dafür mehr Setup-Aufwand und Hardware-Anforderungen.
Für Entwickler und Homelab-Enthusiasten die ihre Infrastruktur kennen und strukturiert damit arbeiten wollen: absolut empfehlenswert. Für Gelegenheitsnutzer ohne eigene Server-Infrastruktur: ChatGPT bleibt einfacher.
Was ich als nächstes plane: Mobile Push-Notifications (ntfy) wenn der Agent kritische Findings entdeckt. Der Agent soll mich aktiv informieren — nicht ich ihn fragen.
Wer ähnliches aufgebaut hat oder Fragen zur Konfiguration hat — gerne in den Kommentaren.