Übersicht
Tool-Typen, wo Tools definiert werden und wie du sie aktivierst.
Ein Tool ist alles, was das LLM tun kann außer reden: eine E-Mail lesen, eine Datei in Dropbox legen, einen Datensatz in Supabase schreiben, einen Umsatzbericht aus der Bank-API holen. Jedes Tool ist deklarativ definiert — Name, Parameter, Endpunkt, Mapping — und das Modell entscheidet zur Laufzeit, ob und mit welchen Argumenten es das Tool aufruft.
Die drei Tool-Typen
1. API-only
Nur ein HTTP-Request, das Ergebnis wird unverändert (oder minimal gemappt) ans Modell zurückgegeben.
'getInvoice' => [
'description' => 'Rechnung per ID abrufen',
'parameters' => [
'type' => 'object',
'properties' => [
'id' => ['type' => 'string', 'description' => 'Rechnungs-ID'],
],
'required' => ['id'],
],
'api' => 'jtl',
'method' => 'GET',
'path' => '/invoices/{id}',
],
2. API + Handler
Nach dem API-Call läuft noch PHP-Code, z. B. um Felder zu aggregieren oder Nebenwirkungen auszulösen.
'getInvoice' => [
// ... wie oben ...
'postprocess' => function (array $result, array $args, $ctx) {
$result['totalWithTax'] = $result['net'] * 1.19;
return $result;
},
],
3. Handler-only
Keine externe API — reine PHP-Logik. Gut für Rechner, Formatierer, oder um mehrere andere Tools zu orchestrieren.
'calculateSum' => [
'description' => 'Zwei Zahlen addieren',
'parameters' => [
'type' => 'object',
'properties' => [
'a' => ['type' => 'number'],
'b' => ['type' => 'number'],
],
'required' => ['a', 'b'],
],
'handler' => function (array $results, array $args, array $ctx) {
return ['sum' => $args['a'] + $args['b']];
},
],
Wo werden Tools definiert?
Tools leben als PHP-Dateien in deinem Workspace:
apis.php
tools/
└── <api>/
└── <kategorie>/
└── <toolName>.php
Jede Datei returnt ein Array mit der Tool-Definition. Die Ordnerstruktur ist frei — wir empfehlen Gruppierung nach API und fachlicher Kategorie.
Siehe Tool als Config-Datei anlegen.
Ein Tool aktivieren
Damit das Modell ein Tool sieht, muss es in einem Chat oder Assistant freigegeben sein. Das passiert über die tools-Liste im jeweiligen Config-Block. Alles nicht gelistete bleibt unsichtbar — bewusst, damit kein Task mehr Macht bekommt als nötig.
Tools testen
Nicht raten, was das Modell macht. Teste Tools direkt mit der TaskMonkey CLI (tm):
tm test-tool getInvoice id=123
Das führt das Tool einmal aus, zeigt Request, Response und das finale Ergebnis. Siehe TaskMonkey CLI und Tools testen.
Weiter
- Ablauf eines Tool-Aufrufs — was zwischen Modell-Aufruf und Rückgabe passiert
- Dateien schreiben/lesen (writeFile/readFile) — Persistenz im Tenant-files-Bereich ohne DB
- Datei-Downloads (provideDownload) — Dateien zum Download anbieten
- Kontakte erfassen (captureSender) — CRM-light aus Public-Chats
- Suggestions — Quick-Action-Buttons im Chat