API-basierte Agenten ermöglichen die Auslagerung komplexer Business-Logik an externe Dienste. Sie verbinden die Leistungsfähigkeit von KI-Agenten mit der Flexibilität externer APIs, um anspruchsvolle Prozesse zu automatisieren und bestehende Systeme nahtlos zu integrieren. Diese Agenten sind ideal für Szenarien, die spezialisierte Berechnungen, den Zugriff auf externe Datenquellen oder die Integration mit bestehenden Microservices erfordern.

API-basierte Agenten bilden die Brücke zwischen der Enneo-Plattform und Ihrer individuellen IT-Landschaft. Sie ermöglichen es, die gesamte Business-Logik in externe Dienste auszulagern und dabei die volle Kontrolle über Datenflüsse und Verarbeitungsschritte zu behalten. Durch die standardisierte Kommunikation über HTTP können beliebige Systeme angebunden werden – von internen Microservices bis hin zu externen SaaS-Lösungen.

Im Gegensatz zu regelbasierten Agenten, deren Logik direkt in Enneo implementiert wird, setzen API-basierte Agenten auf eine klare Trennung zwischen der Enneo-Plattform und der eigentlichen Geschäftslogik. Dies ermöglicht nicht nur eine höhere Skalierbarkeit und bessere Wartbarkeit, sondern auch die Wiederverwendung bestehender Dienste und Infrastrukturen.

<?php

use EnneoSDK\Api;
use EnneoSDK\IntentInfo;
use EnneoSDK\IntentOption;
use EnneoSDK\Interaction;

require(getenv()['SDK'] ?? 'sdk.php');
/** @var stdClass $in */

// Create a mocked API response:
//{
//    "data": {
//    "_action": null
//  },
//  "options": [
//    {
//        "type": "success",
//      "name": "Ok",
//      "icon": "check",
//      "recommended": true,
//      "order": 0,
//      "handler": ""
//    }
//  ],
//  "infos": [
//    {
//        "type": "success",
//      "message": "API-Aufruf erfolgreich",
//      "extraInfo": null,
//      "code": null
//    }
//  ]
//}
$interaction = new Interaction($in);
$interaction->infos[] = new IntentInfo(
    type: 'success',
    message: 'API-Aufruf erfolgreich'
);
$interaction->options[] = new IntentOption(
    type: 'success',
    name: 'Ok',
    recommended: true
);

// TODO: replace this "echo" API call by your own API call. Use ApiEnneo::executeUdf to use custom code.
// E.g.:
//ApiEnneo::executeUdf(
//    'customApiCall',
//    [
//        "method" => "POST",
//        "api" => sprintf('contract/%s/anyApi', $in->_metadata->inputParameters->contractId),
//        "params" => (array) $in
//    ]
//);
$response = Api::call(
    method: 'POST',
    url: 'https://echo.enneo.ai',// echo.enneo.ai
    params: json_decode(json_encode($interaction), true)
);
$result = $response;

echo json_encode($result);
exit();