Was ist der Agent-Daemon?
Miri kann KI für agentenbasierte Aufgaben nutzen, aber die KI benötigt auch eine lokale Verbindung für relevante Geschäftsdaten, wie etwa eine SAP ERP-Verbindung. Zu diesem Zweck wird die KI-Aufgabe nicht zentral auf der Miri-Webplattform verarbeitet, sondern dezentral innerhalb des Agent-Daemons. Der Agent-Daemon kann überall installiert werden, sollte jedoch dort laufen, wo die Systemverbindungen möglich sind. Miri benötigt keinen offenen Port oder Inbound-Kanal, um sich mit dem Agenten zu verbinden. Der Agent verbindet sich ausgehend mit der zentralen Miri-Anwendung.
Der Daemon ist als Docker-Image verfügbar, um die Fähigkeiten der KI einzuschränken, und verfügt zudem über eine zusätzliche native Sicherheits-Sandbox innerhalb des KI-Agenten. Dies ist der empfohlene Ansatz für produktive KI-Workloads innerhalb eines Unternehmens.
Voraussetzungen
- Docker und Docker Compose sind auf dem Host installiert
- Netzwerkzugriff auf das Agent Orchestrator-Backend
- Ein Registrierungs-Token aus der Agent Orchestrator-UI
- Ein API-Key von einem KI-Modell-Anbieter
Systemressourcen
Die Agents können auf beliebigen lokalen Geräten wie einem Laptop laufen, aber für einen stabilen Zugriff wird empfohlen, sie auf einem dedizierten Host zu installieren mit:
- CPU-Anforderungen: 2 vCPUs
- Arbeitsspeicher (RAM): 4 GB
- Empfohlenes Betriebssystem: Linux (Debian, Ubuntu, etc.)
- Netzwerk-Ingres: Keine Anforderungen, keine öffentliche IP oder Proxy erforderlich
- Netzwerk-Outgres: Internetzugriff erforderlich – Kommunikation über HTTPS 443 an miri.simplifier.cloud
Schritt 1: Bereite deinen API-Key von deinem KI-Modell-Anbieter vor
Aktuell unterstützen wir
- Anthropic (via API-Key)
- OpenRouter
- GitHub Enterprise
Schritt 2: Erhalt eines Registrierungs-Tokens
- Melde dich am Miri-Webinterface als Administrator an
- Navigiere zu Runtimes in der Seitenleiste.
- Drücke die Schaltfläche Registration Token.
- Kopiere den im Dialog angezeigten Token.
Falls noch keine Runtime existiert, erstelle zuerst eine über die Schaltfläche New Runtime auf der Agent-Management-Seite.
Wenn du keine Admin-Rechte hast, fordere einen Token bei deinem Simplifier-Ansprechpartner an.
Schritt 3: Bereite die Compose-Datei vor
Erstelle eine Umgebungsdatei und eine Docker-Compose-Konfiguration:
# Create the environment file
cat > .env <<'EOF'
AGENTHUB_SERVER_URL=https://miri.simplifier.cloud
AGENTHUB_TOKEN=<Enter your Registration Token here>
AGENTHUB_RUNTIME_NAME=Miri Agent Runtime
AGENTHUB_MAX_CONCURRENT=4
ANTHROPIC_API_KEY=
OPENROUTER_API_KEY=
GITHUB_ENTERPRISE_AI_KEY=
EOF
# Create docker-compose.yml
cat > docker-compose.yml <<'EOF'
services:
daemon:
image: simplifierag/miri-daemon:latest
container_name: miri-daemon
environment:
AGENTHUB_SERVER_URL: "${AGENTHUB_SERVER_URL}"
AGENTHUB_TOKEN: "${AGENTHUB_TOKEN}"
AGENTHUB_WORKSPACE_ID: "${AGENTHUB_WORKSPACE_ID:-}"
AGENTHUB_RUNTIME_NAME: "${AGENTHUB_RUNTIME_NAME:-Docker Runtime}"
AGENTHUB_MAX_CONCURRENT: "${AGENTHUB_MAX_CONCURRENT:-4}"
AGENTHUB_POLL_INTERVAL: "${AGENTHUB_POLL_INTERVAL:-3s}"
AGENTHUB_IDLE_WATCHDOG: "${AGENTHUB_IDLE_WATCHDOG:-}"
ANTHROPIC_API_KEY: "${ANTHROPIC_API_KEY:-}"
OPENROUTER_API_KEY: "${OPENROUTER_API_KEY:-}"
GITHUB_ENTERPRISE_AI_KEY: "${GITHUB_ENTERPRISE_AI_KEY:-}"
volumes:
- daemon-workspaces:/root/agenthub_workspaces
labels:
- wud.watch.digest=true
restart: unless-stopped
# WUD — What's Up Docker? Watches container images for new versions and
# exposes a web UI for status. Checks every 6 hours.
wud:
image: getwud/wud:latest
container_name: miri-wud
environment:
WUD_WATCHER_LOCAL_WATCHBYDEFAULT: "true"
WUD_WATCHER_LOCAL_CRON: "0 */6 * * *"
WUD_SERVER_ENABLED: "false"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
restart: unless-stopped
volumes:
daemon-workspaces:
EOF
Nachdem die Konfiguration abgeschlossen ist, starte den Daemon
# Start the daemon
docker compose up -d
Docker-Umgebungsvariablen
| Variable | Standard | Beschreibung |
|---|---|---|
AGENTHUB_SERVER_URL |
(erforderlich) | Backend-Basis-URL |
AGENTHUB_TOKEN |
(erforderlich) | Runtime-Registrierungs-Token |
AGENTHUB_WORKSPACE_ID |
(keine) | An einen bestimmten Workspace binden |
AGENTHUB_RUNTIME_NAME |
Docker Runtime |
Anzeigename in der Registry |
AGENTHUB_MAX_CONCURRENT |
4 |
Maximale parallele Durchläufe |
AGENTHUB_POLL_INTERVAL |
3s |
Sekunden zwischen Work-Claim-Abfragen |
AGENTHUB_IDLE_WATCHDOG |
(deaktiviert) | Automatischer Neustart nach Leerlaufzeit |
ANTHROPIC_API_KEY |
(deaktiviert) | Anthropic-API-Key für den Zugriff auf Modelle wie Sonnet, Opus etc. |
OPENROUTER_API_KEY |
(deaktiviert) | OpenRouter-API-Key für den Zugriff auf über 500 KI-Modelle |
GITHUB_ENTERPRISE_AI_KEY |
(deaktiviert) | API-Key für GitHub Enterprise-Abonnement |
Verwaltung des Agent Daemon
# View logs
docker compose logs -f
# Restart
docker compose restart
# Stop
docker compose down
# Update to latest image
docker compose pull
docker compose up -d
Mehrere Daemons
Um mehrere Daemons auf demselben Docker-Host auszuführen, verwende unterschiedliche Projekt- und Containernamen:
# Daemon 1
docker compose -p daemon1 up -d
# Daemon 2 (mit einem anderen Runtime-Namen)
Bearbeite die Umgebungsdatei
AGENTHUB_RUNTIME_NAME="GPU Worker"
Starte den Container neu
docker compose -p daemon2 up -d
Installation verifizieren
Prüfe nach dem Starten des Daemons die Seite Runtimes im Agent Orchestrator. Deine neue Runtime sollte innerhalb weniger Sekunden mit einem grünen Connected-Status-Badge erscheinen. Aktuelle Durchläufe werden in der Spalte Activity angezeigt.
Fehlerbehebung
| Symptom | Prüfung |
|---|---|
| Daemon startet nicht | journalctl -u agenthub-daemon -n 50 |
| Keine Durchläufe beansprucht | Prüfe, ob der Workspace Aufgaben in der Warteschlange mit Agent-Zuweisungen hat |
| Docker: Container wird sofort beendet | Prüfe docker compose logs daemon auf Registrierungsfehler |
| Docker: 403-Registrierungsfehler | Prüfe, ob AGENTHUB_TOKEN ein gültiger, nicht abgelaufener Registrierungs-Token ist |











