Enneo

Events & Webhooks

Beispiel: Smarte KI-Agenten automatisch ausführen

Ansatz zur automatischen Ausführung smarter KI-Agenten basierend auf eigenen Sicherheitskriterien

Szenario

Enneo verarbeitet standardmäßig bei E-Mails und Briefe nur Regelbasierte KI-Agenten per Dunkelverarbeitung, nicht aber rein prompt-basierte. Hintergrund ist das die Zuverlässigkeit von rein per KI erzeugtem Text weniger planbar ist als bei einem Regelwertk.

Es gibt aber bestimmte Kundenanfragen – z. B. Passwort-Rücksetzungsanleitungen oder Login-Probleme mit der Android- oder Apple-App – welche mit gewisser Zuverlässigkeit vollautomatisch beantwortet werden können. Anstatt die Standard-Dunkelverarbeitung zu nutzen, soll der smarte KI-Agent selbst entscheiden, ob eine Antwort sicher genug ist, um automatisch versendet zu werden.

Lösungsmöglichkeit

Der Ansatz besteht aus vier Schritten: Ein benutzerdefiniertes KI-Tool kennzeichnet sichere Antworten, ein Event Hook prüft die Kennzeichnung und löst die automatische Ausführung aus.

Schritt 1: Benutzerdefiniertes KI-Tool erstellen

Unter Einstellungen -> KI-Anpassung -> KI-Tools ein neues Werkzeug erstellen, z.B. mit dem Namen mark_answer_as_safe. Dieses Tool wird vom smarten KI-Agenten aufgerufen, wenn er sich sicher ist, dass die Antwort automatisch versendet werden kann.

Im Prompt des smarten KI-Agenten muss auf das Tool verwiesen werden, z. B.:

Die folgenden Arten von Anfragen sollen als sicher markiert werden: (a) Passwort zurücksetzen oder (b) Login-Probleme mit der Android- oder Apple-App. Rufe in diesen Fällen das Tool mark_answer_as_safe auf.

Schritt 2: Ticket im Tool als automatisch ausführbar kennzeichnen

Im Code des Tools mark_answer_as_safe wird das Ticket per API als automatisch ausführbar markiert, z.B. mit folgendem Code:

<?php

use EnneoSDK\ApiEnneo;

require(getenv()['SDK'] ?? 'sdk.php');

ApiEnneo::patch(
    endpoint: '/api/mind/ticket/' . $in->ticketId,
    body: [
        'additionalData' => [
            'markedAsSafe' => 'true'
        ]
    ]
);

echo json_encode(['success' => true]);
import importlib.util
import os
import json

file_path = os.getenv('SDK', 'sdk.py')
spec = importlib.util.spec_from_file_location('sdk', file_path)
sdk = importlib.util.module_from_spec(spec)
spec.loader.exec_module(sdk)

in_data = sdk.load_input_data()

sdk.ApiEnneo.patch(
    endpoint=f'/api/mind/ticket/{in_data["ticketId"]}',
    body={
        'additionalData': {
            'markedAsSafe': 'true'
        }
    }
)

print(json.dumps({'success': True}))

Schritt 3: Event Hook für TicketCreated anlegen

Unter Einstellungen -> Integration in Umsysteme -> Events einen neuen Event Hook für das Event TicketCreated erstellen. Dieses Event wird ausgelöst, nachdem ein neues Ticket empfangen und die KI-Verarbeitung abgeschlossen wurde.

Im kundenspezifischen Code wird geprüft, ob das Ticket als sicher markiert wurde. Bei Bedarf können zusätzliche Prüfungen durchgeführt werden, z. B. ob bestimmte Tags gesetzt oder der Kunde eindeutig erkannt wurde.

Wenn alle Kriterien erfüllt sind, wird die automatische Ausführung ausgelöst:

POST /api/mind/ticket/:ticketId/autoexecute?executeAgentId=:aiAgentId

Der Parameter executeAgentId ist die numerische ID des KI-Agenten, der ausgeführt werden soll. Alle anderen ggf. erkannten KI-Agenten werden ignoriert.

Info

In diesem Code-Beispiel wird zur besseren Übersichtlichkeit bewusst auf das Fehlerhandling verzichtet.

<?php

use EnneoSDK\ApiEnneo;

require(getenv()['SDK'] ?? 'sdk.php');

/** @var stdClass $in - enthält alle definierten Eingabeparameter aus dem Event */

// Ticketdaten laden
$ticket = ApiEnneo::getTicket($in->ticketId);

// Prüfen, ob das Ticket als sicher markiert wurde
$markedAsSafe = $ticket->additionalData->markedAsSafe ?? null;

if ($markedAsSafe !== 'true') {
    echo json_encode(['autoExecute' => false, 'reason' => 'Nicht als sicher markiert']);
    return;
}

// Optional: Weitere Prüfungen, z. B. Kundenerkennung oder Tags
// if (!$ticket->contractId) {
//     echo json_encode(['autoExecute' => false, 'reason' => 'Kein Vertrag erkannt']);
//     return;
// }

// ID des KI-Agenten, der ausgeführt werden soll
$aiAgentId = 123; // Anpassen an die tatsächliche Agenten-ID

// Automatische Ausführung auslösen
$result = ApiEnneo::post(
    endpoint: '/api/mind/ticket/' . $in->ticketId . '/autoexecute?executeAgentId=' . $aiAgentId
);

echo json_encode(['autoExecute' => true, 'result' => $result]);
import importlib.util
import os
import json

file_path = os.getenv('SDK', 'sdk.py')
spec = importlib.util.spec_from_file_location('sdk', file_path)
sdk = importlib.util.module_from_spec(spec)
spec.loader.exec_module(sdk)

# Eingabeparameter aus dem Event laden
in_data = sdk.load_input_data()

# Ticketdaten laden
ticket = sdk.ApiEnneo.get_ticket(in_data['ticketId'])

# Prüfen, ob das Ticket als sicher markiert wurde
marked_as_safe = ticket.get('additionalData', {}).get('markedAsSafe')

if marked_as_safe != 'true':
    print(json.dumps({'autoExecute': False, 'reason': 'Nicht als sicher markiert'}))
    exit()

# Optional: Weitere Prüfungen, z. B. Kundenerkennung oder Tags
# if not ticket.get('contractId'):
#     print(json.dumps({'autoExecute': False, 'reason': 'Kein Vertrag erkannt'}))
#     exit()

# ID des KI-Agenten, der ausgeführt werden soll
ai_agent_id = 123  # Anpassen an die tatsächliche Agenten-ID

# Automatische Ausführung auslösen
result = sdk.ApiEnneo.post(
    endpoint=f'/api/mind/ticket/{in_data["ticketId"]}/autoexecute?executeAgentId={ai_agent_id}',
    body={}
)

print(json.dumps({'autoExecute': True, 'result': result}))

Schritt 4: Automatische Verarbeitung durch Enneo

Nach dem Aufruf des Autoexecute-Endpunkts führt Enneo folgende Schritte automatisch aus:

  1. Die vom KI-Agenten erstellte Antwort wird an den Kunden gesendet.
  2. Das Ticket wird geschlossen.
  3. Das Ticket wird als vollautomatisiert verarbeitet markiert (L5).