Skip to content
Zurück zur Startseite

§ DOCUMENTATION

Erste Schritte

KI-Agent-Governance in unter 5 Minuten in Ihre Anwendung integrieren.

§ 01

Voraussetzungen

Execlave Backend
Läuft auf https://api.execlave.com
API-Schlüssel
§ 02

SDK auswählen

TypeScript/JavaScript und Python sind beide erstklassig unterstützt. Wählen Sie eines — der Rest dieser Anleitung passt sich automatisch an.

§ 03

Soforteinrichtung mit einem KI-Assistenten

Kopieren Sie diesen Prompt in GitHub Copilot, Cursor oder einen beliebigen KI-Coding-Assistenten. Er installiert und verkabelt Execlave automatisch in Ihrem Projekt.

§ Copy prompt · paste into your AI coding assistant
Integriere Execlave in mein Projekt mit dem JavaScript/TypeScript-SDK. Folgendes ist zu tun: 1. SDK installieren:   npm install @execlave/sdk 2. Diese Umgebungsvariable in meine .env-Datei eintragen:   EXECLAVE_API_KEY=<mein-api-schlüssel> 3. Eine Datei namens "execlave.ts" (oder .js) im lib/- oder utils/-Ordner meines Projekts anlegen und diesen Initialisierungscode einfügen: import { Execlave, AgentPausedError, PolicyBlockedError } from '@execlave/sdk'; export const ag = new Execlave({  apiKey: process.env.EXECLAVE_API_KEY!,  baseUrl: process.env.EXECLAVE_BASE_URL || 'https://api.execlave.com',  environment: process.env.NODE_ENV || 'development',  debug: process.env.NODE_ENV !== 'production',}); // Agenten beim Start registrieren (idempotent — mehrfacher Aufruf ist sicher)export async function initAgent() {  return ag.registerAgent({    agentId: 'my-agent',    name: 'My AI Agent',    type: 'chatbot',    platform: 'custom',  });} // Beliebigen LLM-Aufruf mit automatischem Tracing umhüllenexport function traceCall<T>(fn: (input: string) => Promise<T>, agentId = 'my-agent') {  return ag.wrap(fn, { agentId });} // Fehlertypen für catch-Blöcke exportierenexport { AgentPausedError, PolicyBlockedError }; 4. Im Haupt-Einstiegspunkt der Anwendung (z. B. index.ts, app.ts oder server.ts) initAgent() aufrufen: import { initAgent } from './lib/execlave';await initAgent(); 5. LLM-Aufrufe SOWOHL mit vorgelagerter Richtlinienprüfung ALS AUCH mit Tracing umhüllen. Der Aufruf enforcePolicy() läuft synchron und MUSS vor dem LLM-Aufruf erfolgen — er wirft PolicyBlockedError, wenn eine Richtlinie im Blockiermodus ausgelöst wird (z. B. Prompt-Injection). import { ag, AgentPausedError, PolicyBlockedError } from './lib/execlave'; async function handleUserMessage(userMessage: string) {  const trace = ag.startTrace({ agentId: 'my-agent' });  trace.setInput(userMessage);   try {    // Vorgelagerte Richtlinienprüfung — MUSS vor dem LLM-Aufruf ausgeführt werden.    // Wirft PolicyBlockedError, wenn eine Richtlinie im Blockiermodus verletzt wird.    await ag.enforcePolicy({ agentId: 'my-agent', input: userMessage });     const response = await myLLM.call(userMessage);    trace.setOutput(response).setModel('gpt-4').finish();    return response;  } catch (error) {    if (error instanceof PolicyBlockedError) {      trace.setOutput('[BLOCKED BY POLICY]').finish('error', error.message);      // Entscheiden, was der Nutzer sieht — eine generische Ablehnung ist am sichersten:      return 'Ihre Eingabe wurde von unseren Inhaltsrichtlinien blockiert.';    }    if (error instanceof AgentPausedError) {      trace.finish('error', error.message);      return 'Dienst vorübergehend nicht verfügbar.';    }    trace.finish('error', String(error));    throw error;  }} 6. Graceful Shutdown hinzufügen, um den Prozessabbruch abzufangen: process.on('SIGTERM', async () => {  await ag.shutdown();  process.exit(0);}); Das SDK hat keine Laufzeitabhängigkeiten und erledigt automatisch:- Traces puffern und im Hintergrund gebündelt versenden- Kill-Switch respektieren (wirft AgentPausedError, wenn Agent pausiert ist)- Entscheidungen zur Richtliniendurchsetzung cachen (60 s TTL)- Circuit Breaker implementieren (3 Fehler → 60 s Backoff) WICHTIG: Tracing allein blockiert KEINE LLM-Aufrufe. Trace-Ingestion erzeugt Vorfälle im Nachhinein. Um Anfragen zu blockieren, bevor sie den LLM erreichen, MUSS ag.enforcePolicy() aufgerufen und PolicyBlockedError wie oben beschrieben behandelt werden.
oder den manuellen Schritten unten folgen
§ 04

Schritt-für-Schritt-Anleitung

§ SCHRITT 01

SDK installieren

Das Execlave-SDK-Paket installieren (keine Laufzeitabhängigkeiten):

npm install @execlave/sdk
§ SCHRITT 02

API-Schlüssel abrufen

Gehen Sie zu Dashboard → Einstellungen → API-Schlüssel und generieren Sie einen neuen Schlüssel. Kopieren Sie den Schlüssel — er beginnt mit exe_prod_ oder exe_dev_.

Fügen Sie ihn Ihrer Umgebung hinzu:

# .envEXECLAVE_API_KEY=exe_prod_your_key_here
§ SCHRITT 03

SDK initialisieren

Eine gemeinsame Client-Instanz erstellen:

// lib/execlave.tsimport { Execlave } from '@execlave/sdk'; export const ag = new Execlave({  apiKey: process.env.EXECLAVE_API_KEY!,  baseUrl: 'https://api.execlave.com',  // Ihre Execlave-API  environment: process.env.NODE_ENV || 'development',});
§ SCHRITT 04

Agenten registrieren

Registrieren Sie Ihren KI-Agenten beim Start. Dies ist idempotent — der Aufruf kann bei jedem App-Start sicher wiederholt werden.

import { ag } from './lib/execlave'; // Einmalig während der App-Initialisierung aufrufenawait ag.registerAgent({  agentId: 'my-chatbot',         // eindeutiger Bezeichner für Ihren Agenten  name: 'Customer Support Bot',   // Anzeigename im Dashboard  type: 'chatbot',                // chatbot | copilot | autonomous | workflow  platform: 'custom',             // custom | openai | anthropic | langchain});
§ SCHRITT 05

Richtlinien durchsetzen und ersten LLM-Aufruf tracen

enforcePolicy() ist das synchrone Tor, das LLM-Aufrufe blockiert, wenn eine Richtlinie im Blockiermodus (z. B. Prompt-Injection) ausgelöst wird. Es MUSS vor dem LLM-Aufruf ausgeführt werden. Tracing allein blockiert nicht — es erzeugt Vorfälle im Nachhinein.

import { ag, AgentPausedError, PolicyBlockedError } from './lib/execlave'; async function handleMessage(userMessage: string) {  const trace = ag.startTrace({    agentId: 'my-chatbot',    sessionId: 'user-session-123',  // optional: gruppiert eine Konversation  });  trace.setInput(userMessage);   try {    // Vorgelagerte Richtlinienprüfung — MUSS VOR dem LLM-Aufruf ausgeführt werden.    // Wirft PolicyBlockedError, wenn eine Richtlinie im Blockiermodus verletzt wird.    await ag.enforcePolicy({ agentId: 'my-chatbot', input: userMessage });     const response = await openai.chat.completions.create({      model: 'gpt-4',      messages: [{ role: 'user', content: userMessage }],    });     const answer = response.choices[0].message.content;    trace      .setOutput(answer)      .setModel('gpt-4')      .setTokens(response.usage?.prompt_tokens, response.usage?.completion_tokens)      .setCost(0.03)      .finish();    return answer;   } catch (err) {    if (err instanceof PolicyBlockedError) {      trace.setOutput('[BLOCKED BY POLICY]').finish('error', err.message);      return 'Ihre Eingabe wurde von unseren Inhaltsrichtlinien blockiert.';    }    if (err instanceof AgentPausedError) {      trace.finish('error', err.message);      return 'Dienst vorübergehend nicht verfügbar.';    }    trace.finish('error', String(err));    throw err;  }}
§ SCHRITT 06

Im Dashboard überprüfen

Öffnen Sie das Execlave-Dashboard und prüfen Sie:

Sie sollten Ihren registrierten Agenten und eingehende Traces sehen.

§ 06

Fehlerbehandlung

Das SDK exportiert spezifische Fehlertypen, damit Sie Governance-Ereignisse kontrolliert behandeln können:

import { AgentPausedError, PolicyBlockedError } from '@execlave/sdk'; try {  const result = await tracedCall('Process this order');} catch (err) {  if (err instanceof AgentPausedError) {    // Administrator hat diesen Agenten per Kill-Switch pausiert    return 'Dienst vorübergehend nicht verfügbar.';  }  if (err instanceof PolicyBlockedError) {    // Eine blockierende Richtlinie wurde verletzt    return 'Diese Anfrage wurde durch eine Sicherheitsrichtlinie blockiert.';  }  throw err; // unerwartete Fehler weiterwerfen}
§ 07

SDK-Konfiguration

OptionStandardBeschreibung
apiKeyEXECLAVE_API_KEY envIhr API-Schlüssel (exe_prod_xxx oder exe_dev_xxx)
baseUrlhttps://api.execlave.comExeclave-API-URL
environmentproductionBezeichnung der Deployment-Umgebung
asyncModetrueTraces puffern und im Hintergrund leeren
batchSize100Maximale Traces pro Flush-Batch
flushIntervalMs10000Hintergrund-Flush-Intervall (ms)
debugfalseAusführliches Debug-Logging aktivieren
enableControlChanneltrueKill-Switch-Statusänderungen abfragen
pollIntervalMs15000Polling-Intervall für den Status (ms)
enableInjectionScantrueClientseitiges Scoring, das Traces mit einem Injection-Score versieht. Blockiert KEINE LLM-Aufrufe — verwenden Sie enforcePolicy() mit einer Injection-Richtlinie im Blockiermodus zum Blockieren.
enforcementOnOutagefail_openVerhalten bei unerreichbarer API (fail_open oder fail_closed)
§ 08

Wichtige API-Endpunkte

Das SDK behandelt diese automatisch, hier sind sie jedoch zur direkten API-Nutzung aufgeführt:

EndpunktAuthBeschreibung
POST /api/v1/agentsX-API-KeyAgenten registrieren
POST /api/v1/traces/ingestX-API-KeyTraces einreichen (bis zu 100 pro Batch)
POST /api/v1/policiesX-API-Key (admin)Governance-Richtlinie erstellen
POST /api/v1/policies/enforceX-API-KeyVorgelagerte Richtlinienprüfung
PATCH /api/v1/agents/:id/pauseX-API-Key (admin)Agenten pausieren (Kill-Switch)
PATCH /api/v1/agents/:id/resumeX-API-Key (admin)Pausierten Agenten fortsetzen
GET /api/v1/agents/:id/status-pollX-API-KeyAgentenstatus abfragen
POST /api/v1/agents/:id/grantsX-API-Key (admin)Agent-zu-Agent-Zugriffsberechtigung erstellen
POST /api/v1/agents/authorizeX-API-KeyPrüfen, ob ein Agenten-Aufruf autorisiert ist
§ 09

Umgebungsvariablen

Ihre Anwendung benötigt nur eine einzige Umgebungsvariable:

EXECLAVE_API_KEY=exe_prod_your_key_here

Wenn Sie die Execlave-Infrastruktur lokal betreiben, verwenden Sie diese Standardwerte:

# BackendDATABASE_URL=postgresql://postgres:postgres@localhost:5432/execlaveREDIS_URL=redis://localhost:6379PORT=4000 # FrontendNEXT_PUBLIC_API_URL=http://localhost:4000NEXT_PUBLIC_GRAPHQL_URL=http://localhost:4000/graphql # Infrastruktur startendocker compose up -d        # PostgreSQL + Redis + MinIOcd backend && npm run dev   # API-Server auf :4000cd frontend && npm run dev  # Dashboard auf :3000
§ 10

Self-hosted Deployment

Betreiben Sie die vollständige Execlave-Plattform auf Ihrer eigenen Infrastruktur mit einem Lizenzschlüssel. Ihre Daten verlassen niemals Ihr Netzwerk. Lediglich ein 24-Stunden-Lizenz-Heartbeat (Fingerabdruck + Zeitstempel, keine Kundendaten) wird übertragen.

Schnellstart

curl -O https://get.execlave.com/docker-compose.ymlexport LICENSE_KEY=exe_lic_<your-key>docker compose up -dopen http://localhost:3000

Lizenzschlüssel anfordern

Fordern Sie einen Schlüssel unter /get-license an. Lizenzen des kostenlosen Tarifs werden innerhalb einer Geschäftsstunde bereitgestellt. Die vollständige Self-hosted-Anleitung — Umgebungsvariablen, Lizenzsemantik, Backups, Air-Gapped-Modus, Fehlerbehebung — finden Sie in der Self-hosted-Deployment-Dokumentation.

Erste Schritte — Execlave Docs