Skip to content
Produkt

JieGou auf Ihre Art erweitern: Custom Tools, Schritttypen und Lifecycle Hooks

Definieren Sie webhook-gestützte Tools, V8-sandboxed Workflow-Schritttypen und Lifecycle Hooks, um JieGou in Ihre bestehende Infrastruktur zu integrieren — kein Fork erforderlich.

JT
JieGou Team
· · 4 Min. Lesezeit

JieGou wird mit 260+ MCP-Integrationen, 9 LLM-Anbietern und einem visuellen Workflow-Builder ausgeliefert. Aber jede Organisation hat einzigartige Tools, interne APIs und Prozesse, die eine Allzweck-Plattform nicht voraussehen kann.

Heute starten wir drei Erweiterbarkeitsfunktionen, die es Ihnen ermöglichen, Ihre eigenen Fähigkeiten in JieGou einzubringen — ohne die Codebase zu forken oder darauf zu warten, dass wir eine Integration bauen.

Custom Webhook Tools

Definieren Sie ein Tool, das von einem beliebigen HTTP-Endpunkt unterstützt wird. Ihr Tool wird in Recipes, Workflows und dem konversationellen Agenten verfügbar — genau wie integrierte Tools.

Wie es funktioniert

  1. Tool definieren: Name, Beschreibung, JSON-Eingabeschema und Endpunkt-URL
  2. Anfrage konfigurieren: Methode (GET/POST), benutzerdefinierte Header (verschlüsselt), optionales Handlebars-Anfrage-Template
  3. Antwort zuordnen: JSONPath-Ausdruck zur Extraktion der relevanten Ausgabe
  4. Scope festlegen: Bestimmten Abteilungen zuweisen oder kontoweit verfügbar machen

Beispiel: Bestandsprüfungs-Tool

{
  "name": "check_inventory",
  "description": "Check current inventory levels for a product SKU",
  "inputSchema": {
    "type": "object",
    "properties": {
      "sku": { "type": "string", "description": "Product SKU" }
    },
    "required": ["sku"]
  },
  "endpoint": {
    "url": "https://api.internal.example.com/inventory/{{sku}}",
    "method": "GET",
    "headers": { "Authorization": "Bearer {{env.INVENTORY_API_KEY}}" },
    "timeoutMs": 10000
  },
  "responseMapping": "$.data.quantity"
}

Jetzt kann jedes Recipe oder jeder Workflow-Schritt check_inventory als Tool verwenden. Das LLM sieht es neben integrierten Tools und ruft es auf, wenn es relevant ist.

Sicherheit

  • HTTPS erforderlich in der Produktion
  • Benutzerdefinierte Header sind im Ruhezustand verschlüsselt (dasselbe AES-256-GCM wie BYOK-Schlüssel)
  • Alle ausgehenden Anfragen gehen durch die Timeout-, Retry- und Rate-Limiting-Infrastruktur der Plattform
  • Antwortgröße begrenzt auf 100KB
  • Tool-Ausführungen zählen zu den Rate-Limits Ihres Kontos

Custom Webhook Tools sind ab Team-Tarifen verfügbar.

Custom Workflow-Schritttypen

Für Logik, die über einen Webhook-Aufruf hinausgeht, definieren Sie benutzerdefinierte Schritttypen als TypeScript-Module, die in V8-Isolaten laufen — vollständig sandboxed ohne Zugriff auf Dateisystem, Netzwerk oder Host-Prozess.

Die Sandbox

Custom-Schritte werden in isolated-vm V8-Isolaten mit strengen Einschränkungen ausgeführt:

  • Speicherlimit: 128MB pro Ausführung
  • CPU-Zeitlimit: Konfigurierbar pro Schritt
  • Kein require() oder import: Abhängigkeiten werden explizit injiziert
  • Kein Dateisystem oder Netzwerk: Nur plattformseitig bereitgestellte APIs sind verfügbar

Injizierte APIs

Custom-Schritte können eine Teilmenge von Plattformfähigkeiten nutzen, die zum Definitionszeitpunkt deklariert werden:

APIWas sie bereitstellt
httpProxied HTTP-Fetch (respektiert Rate-Limits)
llmLLM-Aufruf (nutzt die BYOK-Konfiguration des Kontos, für Abrechnung getrackt)
firestore_readNur-Lese-Firestore-Zugriff (auf Konto beschränkt)

Beispiel: Sentiment-Aggregator-Schritt

// Custom step: aggregate-sentiment
// Allowed APIs: llm

export async function execute(input: { reviews: string[] }, context: any) {
  const results = await Promise.all(
    input.reviews.map(review =>
      context.llm.invoke(`Rate this review's sentiment from 1-5: "${review}". Reply with just the number.`, { model: 'haiku' })
    )
  );

  const scores = results.map(r => parseInt(r.trim())).filter(n => !isNaN(n));
  const average = scores.reduce((a, b) => a + b, 0) / scores.length;

  return {
    averageSentiment: Math.round(average * 10) / 10,
    totalReviews: scores.length,
    distribution: {
      positive: scores.filter(s => s >= 4).length,
      neutral: scores.filter(s => s === 3).length,
      negative: scores.filter(s => s <= 2).length,
    },
  };
}

Bearbeiten Sie Code im integrierten Monaco-Editor, definieren Sie Ein-/Ausgabeschemata und testen Sie mit Beispieldaten vor der Bereitstellung.

Custom-Schritttypen sind in Enterprise-Tarifen verfügbar.

Lifecycle Hooks

Registrieren Sie Webhook-Endpunkte, die bei Workflow- und Recipe-Ausführungsereignissen auslösen. Verwenden Sie sie zur Integration mit Slack, PagerDuty, benutzerdefinierten Dashboards oder jedem HTTP-Dienst.

Unterstützte Ereignisse

EreignisWann es auslöst
workflow:startWorkflow-Ausführung beginnt
workflow:completeWorkflow endet erfolgreich
workflow:errorWorkflow schlägt fehl
step:startEinzelner Schritt beginnt
step:completeEinzelner Schritt endet
step:errorEinzelner Schritt schlägt fehl
recipe:startRecipe-Ausführung beginnt
recipe:completeRecipe endet
approval:requestedGenehmigungsgate ausgelöst
approval:grantedGenehmigung erteilt
approval:rejectedGenehmigung verweigert

Nicht-blockierend vs. blockierend

Nicht-blockierende Hooks (Standard) sind Fire-and-Forget. Die Plattform sendet den Webhook und setzt die Ausführung fort, ohne auf eine Antwort zu warten. Verwenden Sie diese für Benachrichtigungen und Protokollierung.

Blockierende Hooks pausieren die Ausführung, bis der Webhook antwortet (10-Sekunden-Timeout). Die Antwort kann den Ausführungskontext ändern. Verwenden Sie diese für Pre-Flight-Checks oder dynamische Konfigurationsinjektion. Blockierende Hooks haben einen Circuit Breaker — wenn sie wiederholt fehlschlagen, werden sie automatisch deaktiviert.

Beispiel: Slack-Benachrichtigung bei Workflow-Abschluss

{
  "name": "Slack notify on completion",
  "events": ["workflow:complete", "workflow:error"],
  "webhookUrl": "https://hooks.slack.com/services/T.../B.../xxx",
  "blocking": false
}

Lifecycle Hooks sind ab Team-Tarifen verfügbar.

Wie sie zusammenarbeiten

Die drei Erweiterbarkeitsfunktionen lassen sich natürlich kombinieren:

  1. Ein Custom Tool prüft Ihre interne Bestands-API
  2. Ein Custom-Schritt führt spezialisierte Geschäftslogik in einer V8-Sandbox aus
  3. Ein Lifecycle Hook benachrichtigt Ihren Slack-Kanal, wenn der Workflow abgeschlossen ist

Alle drei respektieren das bestehende Sicherheitsmodell der Plattform — RBAC, Audit-Protokollierung, Rate-Limiting und Abteilungseingrenzung gelten einheitlich.

Erkunden Sie die Erweiterbarkeitsfunktionen in Ihren Kontoeinstellungen.

custom-tools lifecycle-hooks extensibility webhooks v8-sandbox enterprise
Diesen Artikel teilen

Hat Ihnen dieser Artikel gefallen?

Erhalten Sie Workflow-Tipps, Produktupdates und Automatisierungsleitfäden direkt in Ihren Posteingang.

No spam. Unsubscribe anytime.