Skip to Content
AgentsSupport-Agent

Support-Agent

Der Support-Agent ist ein zyklischer Agent, der wie ein First-Level-Support arbeitet: Er ruft alle 5 Minuten ungelesene E-Mails ab, sucht die Antwort in der ProcessCube®-Wissensbasis (pc knowledge) und legt eine begründete Antwort als E-Mail-Entwurf zur Freigabe ab. Findet er keine belastbare Antwort, startet er mit der Anfrage den Eskalations-Prozess in der Engine.

In Entwicklung. Teil der Preview-Phase (1.1.0-develop.x). Schnittstellen und Verhalten können sich vor dem ersten Stable-Release noch ändern.

Der Support-Agent baut — wie die Coding-Agenten — auf der Agent Runtime auf (Dockerfile.support) und erbt das komplette OpenClaw-Setup (OpenClaw, Bun, Node, gh, pc, Claude, Codex, Volumes, Gateway-CMD). Ergänzt werden nur Support-spezifische Teile: der knowledge-Skill, die Mail-Dependencies und ein 5-Minuten-Cron support-agent-poll.

Ablauf je Zyklus

  1. mail.ts fetch — ungelesene Mails aus dem Label Support (IMAP, peek)
  2. Stichworte extrahieren → pc knowledge search (cwd = $KNOWLEDGE_DIR)
  3. Gate: kein Treffer bzw. nur Rauschen (rank schlechter als KNOWLEDGE_RANK_THRESHOLD, Default -0.2) → eskalieren; sonst den Top-Treffer inhaltlich prüfen (pc knowledge show, das LLM entscheidet — der bm25-Score ist nicht normiert)
  4. Antwort: Entwurf via mail.ts draft (Betreff Antwort zu <Betreff>) → mail.ts move nach Support/Erledigt
  5. Keine Antwort: pc engine start-process-model Support-Escalation_Process startEskalationmail.ts move nach Support/Eskaliert

Der Agent liest nicht die INBOX, sondern ein dediziertes Eingangs-Label — sonst würde er auf jede beliebige Mail (Newsletter, Benachrichtigungen …) reagieren. Bearbeitete Mails wandern nach Support/Erledigt bzw. Support/Eskaliert — das ist Audit-Trail und De-Dup zugleich.

Gmail-Setup (einmalig)

App-Password erzeugen und IMAP aktivieren

App-Password  (16-stellig) erzeugen und IMAP aktivieren (Einstellungen → Weiterleitung & POP/IMAP).

Label Support anlegen

Filter anlegen

Ein Filter routet eingehende Support-Mails ins Label, z. B. An: support@deine-domain → „Posteingang überspringen” + „Label anwenden: Support”.

Die Ziel-Ordner Support/Erledigt und Support/Eskaliert müssen nicht vorab existieren — mail.ts move legt sie bei Bedarf an.

Start (lokales Compose)

Das Support-Image (Dockerfile.support) setzt auf das Runtime-Image auf — dieses muss lokal existieren (nicht öffentlich unter diesem Namen). Einmalig im Repo-Root bauen, dann das Support-Image starten:

docker compose build # baut das Runtime-Image docker network create pc-shared # einmalig (geteilt mit Engine/LowCode) # .env: OPENCLAW_GATEWAY_TOKEN, GMAIL_USER, GMAIL_PASSWORD (App-Password), ENGINE_URL … docker compose -f docker-compose.support.yml up -d --build docker compose -f docker-compose.support.yml exec support-agent bash # Im Container, einmalig: pc-runtime setup # AI-Backend (Claude-Subscription) anmelden pc engine login "$ENGINE_URL" --root # PoC: anonymer Root-Login

Der Support-Container nutzt den Gateway-Port 18790 sowie eigene pc_support_*-Volumes (getrennt von Runtime- und Coding-Container). AI-Backend- und Engine-Login müssen deshalb hier separat gemacht werden; sie bleiben anschließend in den Volumes über Neustarts erhalten.

Erste Freigabe & manuelles Auslösen

Beim ersten openclaw-CLI-Aufruf im Container fragt das Gateway eine Geräte-Freigabe an (Scope-Upgrade). Einmalig genehmigen, dann neu starten:

docker compose -f docker-compose.support.yml exec support-agent bash -lc ' openclaw devices list # zeigt die pending Request-ID openclaw devices approve <request-id> # genehmigen ' docker compose -f docker-compose.support.yml restart docker compose -f docker-compose.support.yml exec support-agent pc-runtime doctor --smoke

Der Agent läuft alle 5 Minuten automatisch. Sofort auslösen (z. B. nach einer Test-Mail):

docker compose -f docker-compose.support.yml exec support-agent \ openclaw cron run support-agent-poll

Liefert das {"reason":"already-running"}, läuft gerade noch ein Zyklus — kurz warten und erneut auslösen.

Umgebungsvariablen

VariableDefaultBeschreibung
GMAIL_USER / GMAIL_PASSWORDGmail-Konto + App-Password
INPUT_MAILBOXSupportEingangs-Label (vom Gmail-Filter gespeist)
DONE_MAILBOX / ESCALATED_MAILBOXSupport/Erledigt / Support/EskaliertZiel nach Bearbeitung
DRAFTS_MAILBOX(auto)Drafts-Ordner; leer = Auto-Detect via \Drafts
KNOWLEDGE_DIR/knowledgeBind-Mount des pc knowledge-Index (read-write, SQLite WAL)
KNOWLEDGE_RANK_THRESHOLD-0.2bm25-Rausch-Grenze; schlechtere Treffer gelten als Rauschen
ENGINE_URLhttp://host.docker.internal:8000Ziel-Engine (aus LowCode)
ESCALATION_PROCESS / ESCALATION_START_EVENTSupport-Escalation_Process / startEskalationEskalations-Prozess

PoC-Hinweise: Der Engine-Login wird in /home/node/.processcube persistiert (eigenes Volume). Ein anonymer Root-Login setzt IAM__ALLOWANONYMOUSROOTACCESS=true an der Engine voraus (nur lokal!). Der Wissens-Index wird read-write gemountet, weil pc knowledge die SQLite im WAL-Modus öffnet.