HelpStackDocs

Integrationen

Benutzerdefinierte Agent-Tools

Geben Sie der KI Live-Zugriff auf Ihre Systeme: Definieren Sie Tools, die das LLM während der Antworterstellung aufrufen kann, um Bestellstatus abzurufen, Konten nachzuschlagen, den Lagerbestand zu prüfen und vieles mehr.

Kurzüberblick#

Tool-TypenSERVER_SIDE (HTTP-Aufruf von HelpStack) oder CLIENT_SIDE (im Browser des Besuchers ausgeführt)
Verwaltung überDashboard + /api/agent-tools (Organisationsebene), /api/channels/[id]/agent-tools (Kanalebene)
AuthentifizierungDashboard-Sitzung (werden von Ihrem Team konfiguriert)
Server-Tool-Timeout~10s, Antwort auf ~10 KB begrenzt
Client-Tool-Timeout~5s (Socket-Roundtrip)
ProtokollierungJeder Aufruf wird in ToolCallLog aufgezeichnet

Die konzeptuelle Übersicht finden Sie im Agent-Tools-Leitfaden. Diese Seite ist die technische Referenz.

Tool-Anatomie#

Eine Tool-Definition enthält folgende Felder:

FeldErforderlichHinweise
NamejaDer Funktionsname, den das LLM aufruft, z. B. get_order_status. Muss ein gültiger Funktionsbezeichner sein
BeschreibungjaDas LLM liest diese, um zu entscheiden, wann das Tool aufgerufen werden soll. Max. ~2000 Zeichen (validiert). Seien Sie präzise
URLja (serverseitig)Muss HTTPS sein. SSRF-geschützt: eine Blockliste lehnt interne/private Netzwerkziele ab
MethodeneinGET | POST | PUT | PATCH. Standard POST
HeaderneinOptionales JSON-Objekt. Kann verschlüsselt/maskiert werden (für API-Schlüssel/Token verwenden)
Parameter-SchemajaEin JSON-Schema-Objekt, das die Argumente beschreibt, die das LLM ausfüllt (parametersSchema)
TypjaSERVER_SIDE oder CLIENT_SIDE
AktivUmschalten, um das Tool zu aktivieren/deaktivieren, ohne es zu löschen

Arbeitsbeispiel — get_order_status (SERVER_SIDE)#

Tool-Definition

FeldWert
Nameget_order_status
TypSERVER_SIDE
MethodePOST
URLhttps://api.YOURCOMPANY.com/orders/status
Header{ "Authorization": "Bearer YOUR_API_TOKEN" } (als verschlüsselten Header speichern)
BeschreibungLook up the current status and tracking info for a customer order by its order number. Call this whenever the customer asks where their order is, when it will arrive, or to confirm an order was placed.

Parameter-Schema (JSON Schema)

{
  "type": "object",
  "properties": {
    "order_number": {
      "type": "string",
      "description": "The customer's order number, e.g. ORD-10432"
    }
  },
  "required": ["order_number"]
}

Anfrage, die Ihr Endpunkt erhält

Bei einem Tool-Aufruf sendet HelpStack die vom LLM bereitgestellten Argumente als Request-Body (bei POST/PUT/PATCH), zusammen mit Ihren konfigurierten Headern und Content-Type: application/json:

POST /orders/status HTTP/1.1
Host: api.YOURCOMPANY.com
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json

{ "order_number": "ORD-10432" }

Antwort-Vertrag, den Ihr Endpunkt einhalten muss

Geben Sie JSON zurück, das das Modell lesen kann. Halten Sie es klein — Antworten sind auf ~10 KB begrenzt und der Aufruf läuft nach ~10s ab.

{
  "status": "shipped",
  "carrier": "DHL",
  "tracking_number": "JD0140...",
  "estimated_delivery": "2026-06-02"
}

Die KI erhält diesen Payload als Tool-Ergebnis und verarbeitet ihn in ihre Antwort. Es gibt keinen vorgeschriebenen Envelope — geben Sie beliebige nützliche Felder zurück, aber machen Sie sie selbstbeschreibend, damit das Modell sie korrekt verwendet.

Gute Beschreibungen verfassen#

Die Beschreibung ist das bei weitem wichtigste Feld — sie ist das Einzige, was das LLM verwendet, um zu entscheiden, ob und wann das Tool aufgerufen werden soll.

  • Geben Sie an, was das Tool zurückgibt und wann es aufgerufen werden soll („Rufen Sie dies auf, wenn der Kunde fragt …").
  • Erwähnen Sie die Formulierungen, die Kunden tatsächlich verwenden.
  • Beschreiben Sie jeden Parameter klar in der description seines Schemas.
  • Bleiben Sie unter dem ~2000-Zeichen-Limit (der Speicherdialog validiert dies und zeigt Fehler an).

Sicherheit & SSRF-Schutz#

  • Nur HTTPS. Einfache HTTP-URLs werden abgelehnt.
  • SSRF-Blockliste. Interne/private Netzwerkziele (Loopback, private RFC1918-Bereiche, Link-local, Metadaten-Endpunkte) sind blockiert, damit ein Tool nicht auf interne Infrastruktur gerichtet werden kann.
  • Geheime Header. Legen Sie API-Schlüssel/Token in Header, die verschlüsselt/maskiert statt im Klartext gespeichert werden können.
  • Behandeln Sie den Tool-Endpunkt als öffentlich zugänglich — authentifizieren Sie Anfragen (z. B. ein Bearer-Token in Headern) und validieren Sie Eingaben auf Ihrer Seite.

Timeouts & Limits#

ServerseitigClientseitig
Timeout~10s~5s
Antwort-Limit~10 KB
Bei Fehler/TimeoutProtokolliert; KI wird informiert, dass das Tool nicht verfügbar ist, und setzt mit der bestmöglichen Antwort fort

Fehler werden graceful degradiert — ein defektes oder langsames Tool blockiert nie eine Antwort; die KI fährt einfach ohne diese Daten fort.

Organisations- vs. Kanal-Tools + semantische Filterung#

  • Tools können auf Organisations-Ebene und auf Kanal-Ebene definiert werden.
  • Für ein bestimmtes Gespräch werden Organisations- und Kanal-Tools zusammengeführt, wobei ein Kanal-Tool ein Organisations-Tool mit demselben Namen überschreibt.
  • Der zusammengeführte Satz wird semantisch nach Relevanz für die Kundenanfrage gefiltert, sodass ein großer Tool-Katalog nicht jeden LLM-Aufruf aufbläht — nur relevante Tools werden angeboten.
  • Ausgewählte Tools werden in OpenAI/Anthropic-Funktionsdefinitionen umgewandelt und bei der Antworterstellung angeboten.

OpenAPI-Import#

Sie können Tools aus einer vorhandenen API bootstrappen: Fügen Sie eine OpenAPI 3.0-Spezifikation ein oder laden Sie sie hoch, und HelpStack extrahiert deren Operationen in Tool-Definitionen, die Sie prüfen und speichern. Dies ist der schnellste Weg, eine vorhandene REST-API der KI zugänglich zu machen.

Protokollierung#

Jeder Tool-Aufruf wird in ToolCallLog aufgezeichnet. Den Aufrufverlauf eines Tools (Argumente, Ergebnis, Timing) können Sie über folgenden Endpunkt einsehen:

GET /api/agent-tools/[id]/logs

Verwenden Sie die Protokolle, um zu debuggen, warum ein Tool aufgerufen wurde oder nicht, und um Timeouts/Fehler zu erkennen.

Clientseitige Tools (fortgeschritten)#

CLIENT_SIDE-Tools werden auf dieselbe Weise deklariert (Name, Beschreibung, Parameter-Schema), werden aber im Browser des Website-Besuchers ausgeführt, vermittelt durch den Widget-Socket:

  1. Die KI gibt einen Tool-Aufruf für ein CLIENT_SIDE-Tool aus.
  2. Der Server sendet tool:execute an das Widget.
  3. Das Widget führt es aus und antwortet mit tool:result (oder tool:error).
  4. Es gibt einen ~5s-Timeout; bei Timeout wird der Aufruf graceful degradiert (Tool nicht verfügbar).

Es gibt heute keine öffentliche JS-API zur Registrierung clientseitiger Tool-Handler im Widget-Loader. Die clientseitige Ausführung erfolgt server-/iframe-vermittelt — behandeln Sie es als erweiterte Funktion und erwarten Sie keinen registerTool()-artigen Snippet auf Ihrer Seite. Siehe Widget-Einbettung.

Verwandte Themen#