TaskMonkey Handbuch

Auto-Reply & Klassifizierung

Wie eingehende Nachrichten kategorisiert werden und wann der Agent von selbst antwortet.

Eingehende Nachrichten laufen durch eine mehrstufige Pipeline, bevor sie als „antwortpflichtig" in deiner Inbox landen. Ziel: Lärm rausfiltern, Standardfälle automatisch beantworten, alles andere mit Kontext-Tag an einen Menschen geben.

Die Pipeline

eingehende Nachricht
     ↓
[1] Auto-Resolve (regelbasiert, keine LLM-Kosten)
     ↓ (durchgelassen, wenn keine Match)
[2] Klassifizierung (LLM, kategorie + kategorie-confidence)
     ↓
[3] Auto-Reply-Guards (Policy-Check)
     ↓
[4] Antwort-Modus: AUTO | DRAFT | HUMAN

Stufe 1 — Auto-Resolve

Regelbasiert, keine LLM-Kosten, sofortige Entscheidung. Threads, die hier resolved werden, tauchen nicht in der Inbox auf.

Standard-Resolver:

Resolver Match Aktion
bounce DSN-Header, „Delivery failed", X-Failed-Recipients resolved + bounce-Tag, Email-Adresse markiert
out-of-office Auto-Submitted: auto-replied, Autoresponse-Header resolved + ooo-Tag, kein Reply versucht
spam X-Spam-Status: Yes, Sender-Reputation niedrig resolved + spam-Tag
unsubscribe „bitte austragen", List-Unsubscribe-Header resolved + unsub-Tag, Email-Adresse opt-out
notification bekannte System-Mails (GitHub, Stripe, …) je nach Tenant: resolved oder unterer Inbox-Bereich

Du kannst eigene Resolver definieren in config/tenants/<code>/inbox.php:

'inbox' => [
    'auto_resolve' => [
        'newsletter_promotions' => [
            'match' => [
                'subject_contains' => ['Newsletter', 'unsere Angebote', 'exklusive'],
                'from_domain' => ['@newsletter.de', '@mailchimp.com'],
            ],
            'action' => 'resolve',
            'tag' => 'newsletter',
        ],
    ],
],

Stufe 2 — Klassifizierung

Wenn die Nachricht den Auto-Resolve passiert hat, läuft eine LLM-basierte Klassifizierung. Standard-Modell ist claude-haiku-4-5 (günstig, schnell, gut bei Kategorien).

Die Kategorien sind pro Tenant konfiguriert. Beispiel für einen E-Commerce-Tenant:

'inbox' => [
    'classification' => [
        'profile' => 'ecommerce',
        'categories' => [
            'bestellstatus'    => 'Anfrage zu einer konkreten Bestellung',
            'reklamation'      => 'Beschwerde, defekte Ware, Problem mit Lieferung',
            'produktfrage'     => 'Frage zu einem Produkt vor Kauf',
            'retoure'          => 'Anfrage zu Rückgabe oder Tausch',
            'rechnung'         => 'Rechnungs-, Zahlungs-, Buchhaltungsfrage',
            'partnerschaft'    => 'B2B-Anfrage, Wholesale, Kooperation',
            'presse'           => 'Presse- oder Influencer-Anfrage',
            'sonstiges'        => 'Alles, was nicht passt',
        ],
        'default_model' => 'claude_haiku',
    ],
],

Das LLM bekommt die Kategorien-Liste und den Mail-Body, gibt zurück:

  • category (eine der Keys)
  • confidence (0.0 – 1.0)
  • summary (1-Satz-Zusammenfassung, fürs Inbox-UI)

Confidence unter 0.6 führt automatisch zu sonstiges und HUMAN-Mode.

Stufe 3 — Auto-Reply-Guards

Bevor der Agent antwortet, läuft ein Policy-Check (src/Service/Inbox/AutoReplyGuards.php). Auch wenn die Kategorie für AUTO freigegeben ist, kann der Guard ein HUMAN-Override auslösen.

Standard-Guards:

Guard Auslöser Wirkung
Sentiment Sentiment-Score < negative_threshold (Default 0.35) erzwingt DRAFT, niemals AUTO
Loop-Detection mehr als 3 Auto-Replies an die gleiche Adresse in 24h erzwingt HUMAN, mögliche Endlosschleife
Sensitive Topics Match auf „anwalt", „presse", „kündigung", „gericht", "DSGVO" erzwingt HUMAN
Sender Reputation Bekannte Beschwerde-Domain, frühere Eskalation erzwingt DRAFT
Confidence Klassifizierungs-Confidence < auto_min_confidence (Default 0.85) erzwingt DRAFT

Du kannst Guards konfigurieren oder eigene hinzufügen — alle sind pure-PHP, keine zusätzlichen LLM-Kosten.

Stufe 4 — Antwort

Ab hier verzweigt sich:

AUTO:

  • Der Agent (AiAgentResolver wählt das Modell pro Kategorie) erstellt eine Antwort
  • Pre-Send-Validation (siehe PreSendValidator.php): URL-Check, Compliance-Phrases, Branding-Check
  • Versand über den passenden Channel-Adapter
  • Thread wechselt zu resolved oder bleibt open für Folgefragen

DRAFT:

  • Der Agent erstellt einen Antwort-Draft
  • Mensch sieht den Draft, klickt „Senden" oder ändert
  • Bei Änderung: Thread geht in HUMAN

HUMAN:

  • Kein Agent-Aktion
  • Push-Notification an Bearbeiter
  • Sidebar mit Backend-Kontext (Bestellung, Knowledge-Base-Treffer, etc.)

Klassifizierungs-Profile pro Branche

Damit du nicht bei null anfängst, gibt es vorkonfigurierte Profile:

Profil Use-Case Kategorien
ecommerce Onlineshop bestellstatus, reklamation, produktfrage, retoure, rechnung, partnerschaft, presse
coaching Coaches/Trainer erstanfrage, terminanfrage, content-frage, rechnung, partnerschaft
b2b-services Agenturen, Beratung lead, kunden-projekt, rechnung, partnerschaft, support
verein Verein/Verband mitgliedsfrage, beitrag, veranstaltung, austritt, presse

Die Profile sind nicht final — du kannst eines als Basis nehmen und Kategorien hinzufügen oder umbenennen.

Korrektur-Logging und Lernen

Jedes Mal, wenn ein Mensch in der Inbox eine Auto-Reply korrigiert (Draft ändert, vorm Senden) oder eine falsche Kategorisierung anpasst, wird das im CorrectionLogger festgehalten. Daraus generiert das System wöchentlich einen Verbesserungs-Report:

  • Welche Kategorien wurden am häufigsten umkategorisiert?
  • Welche Auto-Reply-Antworten wurden inhaltlich überarbeitet?
  • Vorschläge für Anpassungen an Prompts oder Kategorien-Definitionen

Den Report findest du im Dashboard unter „Inbox → Quality".

Aufpassen bei

  • Zu früh AUTO aktivieren: erste 2–4 Wochen alles in DRAFT lassen und manuell prüfen
  • Confidence-Schwelle zu niedrig: lieber mehr Drafts als ein falscher AUTO-Reply an einen wütenden Kunden
  • Loop-Detection ernst nehmen: wenn dieselbe Adresse innerhalb von 24h drei Mal AUTO geantwortet bekommen hat, läuft etwas schief — könnte ein Auto-Responder auf der Gegenseite sein oder ein nicht erkanntes Bounce-Pattern
  • DSGVO-relevante Kategorien: Anfragen mit Worten wie „Auskunft nach DSGVO", „Daten löschen", „Recht auf Vergessenwerden" niemals AUTO beantworten — Guard hat das standardmäßig drin
Zuletzt aktualisiert: 2026-06-12