Funktionen

Alles, was zwischen Modell und Produktion fehlt.

Jede Funktion in einem Satz für Entscheider, den Details für Ihr Plattform-Team und einer Aufnahme aus der echten Oberfläche.

Anwendung: Runtime

PII-Vault

Personendaten verlassen nie das Haus.

In einem Satz

Bevor ein Text an ein KI-Modell geht, ersetzt ATF Namen, IBANs, E-Mails, Telefonnummern und Gesundheitsangaben durch bedeutungslose Platzhalter – und setzt die echten Werte erst in der Antwort für Ihre Mitarbeitenden wieder ein.

Für Ihr Plattform-Team

  • Reversible Tokenisierung [[PII:…]] am Engine-Dekorator – gilt für Chat, Jobs, Trigger, Replay und Flow-as-MCP gleichermaßen
  • Detektor-Pipeline: Regex + Prüfsummen (IBAN, Steuer-ID, SV-Nummer, USt-ID), In-Process-NER, externer Presidio-kompatibler Dienst
  • Mapping pro Ausführung AES-256-GCM-verschlüsselt, an Execution-ID und Token gebunden (AAD)
  • PII_DETECTOR_FAIL_MODE=closed: fällt ein Detektor aus, geht die Anfrage nicht raus
  • Multimodal-Policy für Bilder (block, redact, describe) – explizit statt stillschweigend
  • Pro Flow konfigurierbar; auch MCP-Tools sehen nur Platzhalter
Dokumentation
PII-Vault: Personendaten verlassen nie das Haus.
Anwendung: Gate

MCP-Gate

Governte Werkzeuge statt Vollzugriff.

In einem Satz

Das Gate ist die Pforte zwischen KI und Ihren Systemen: Es stellt nur die Aktionen bereit, die Sie in einer Konfigurationsdatei freigeben – und jede schreibende Aktion kann einen Menschen verlangen.

Für Ihr Plattform-Team

  • Tools aus YAML: SQL (PostgreSQL, MySQL u. a.), HTTP, MQTT, Webhook, MCP-Proxy, Composite – ohne Code
  • Parameter werden immer gebunden, nie in SQL interpoliert; die verifizierte Identität fließt in die Abfrage
  • Policy-Regeln allow | deny | approval pro Tool, Zugriffsart, Scope, Gruppe oder Argument
  • Server-getriebene Freigaben über MCP 2026, verteilt über Redis, mit Trennung von Antragsteller und Freigebendem
  • Lese- und Schreibpfad getrennt (ask/act): eine Leseabsicht erreicht nie ein mutierendes Tool
  • Live-Monitor, Tool-Playground und Audit-Log; Tool-Inhalte standardmäßig nur als SHA-256-Digest
Dokumentation
MCP-Gate: Governte Werkzeuge statt Vollzugriff.
Anwendung: Runtime · Gate · Control

Menschliche Freigabe

Silence never becomes an action.

In einem Satz

Will ein Agent Geld bewegen, Daten löschen oder etwas buchen, hält ATF an und fragt einen Menschen. Antwortet niemand rechtzeitig, wird die Aktion abgelehnt – nie stillschweigend ausgeführt.

Für Ihr Plattform-Team

  • Ausführung pausiert mit Tool, Mandant und geplanten Argumenten – Zugangsdaten sind nie Teil der Anfrage
  • Zwei Entscheidungsorte: Freigabe-Element in der Chat-Antwort und RBAC-geschütztes Postfach in Control
  • Fail-closed: APPROVAL_TIMEOUT_MS abgelaufen = abgelehnt
  • Clusterweit sichtbar mit Redis; der Entscheider kommt aus der verifizierten Identität
  • Optionale Vier-Augen-Regel (requireDifferentApprover) mit eigenem Scope
  • Jede Entscheidung inkl. Timeout im Audit-Log und als Metrik
Dokumentation
Menschliche Freigabe: Silence never becomes an action.
Anwendung: Runtime · Gate · Search · Control

Durchgängige Identität

Der Nutzer bleibt der Nutzer – bis in die letzte Datenbankzeile.

In einem Satz

Wer im Chat fragt, wird mit seiner echten Anmeldung bis ins Zielsystem durchgereicht. Ein Agent kann deshalb nie mehr sehen oder tun als die Person, für die er arbeitet – und jedes System weiß, ob ein Mensch oder ein Agent handelt.

Für Ihr Plattform-Team

  • OIDC für Endnutzer und Operatoren, JWT/JWKS mit mehreren Issuern und Issuer-zu-Mandant-Bindung
  • Passthrough: forwardAuthToken reicht das verifizierte Nutzer-Token an MCP-Server weiter
  • Token Exchange nach RFC 8693: pro Zielsystem ein eigenes Token mit eigener Audience und reduziertem Scope
  • Delegation mit act-Claim – Zielsysteme wie das Gate unterscheiden direkte Nutzeraktion und Agent im Auftrag
  • Transaktions-Token pro Tool-Aufruf, asymmetrisch signierbar (ES256/EdDSA) und per Audience auf genau einen Dienst begrenzt
  • Search und Gate werten nur die verifizierte Identität aus – nie ein Feld, das der Client mitschickt
Dokumentation
# FLOWS_DIR/mcp.yaml – one MCP server, user identity end to end
servers:
  - name: erp
    url: https://erp-gate.internal/mcp/v2026
    transport: http
    profile: "2026-07-28"
    forwardAuthToken: true            # pass the verified user token on …
    tokenExchange:                    # … exchanged per RFC 8693
      issuer: https://sso.example/realms/corp
      clientId: atf-runtime
      clientSecretEnv: MCP_TX_SECRET  # name of the env var, never the secret
      audience: erp-gate              # token valid for this system only
      scope: "openid erp:read erp:write"
      actor:                          # delegation: act.sub = Runtime
        grant: client_credentials
        clientId: atf-runtime-actor
        clientSecretEnv: MCP_TX_ACTOR_SECRET
Anwendung: Runtime · atf-verify

Signierte Nachweise

Compliance ist Beweis, keine Behauptung.

In einem Satz

Jede Ausführung kann als digital signiertes Beweis-Paket exportiert werden. Ihr Wirtschaftsprüfer prüft es auf seinem eigenen Laptop – ohne Zugang zu Ihrer Plattform und ohne Ihnen vertrauen zu müssen.

Für Ihr Plattform-Team

  • Evidence Bundle: Ausführung, Eingaben, Policy-Entscheidungen, Quellen und Antwort, Ed25519-signiert
  • Öffentlicher Schlüssel als JWKS unter /.well-known/atf-evidence-jwks.json – kein geteiltes Geheimnis
  • atf-verify prüft Bundles, Decision-Receipts (COSE_Sign1 + Merkle-Proof), Löschbelege, Release-Receipts und Audit-Exporte offline
  • Hash-verkettetes Audit-Log mit signierten Ankern; Manipulation ist nachweisbar
  • Debug-Trace mit flow_version, flow_digest und Subflow-Versionen – was lief, ist eindeutig
  • Strikte Algorithmus-Verzweigung: nie ein stiller Fallback zwischen Ed25519 und HMAC
Dokumentation
Signierte Nachweise: Compliance ist Beweis, keine Behauptung.
Anwendung: Runtime · Control

Policy as Code

Regeln, die vor der Ausführung greifen.

In einem Satz

Welche Daten zu welchem Anbieter dürfen, welche Aktionen eine Freigabe brauchen und wie lange etwas gespeichert wird, steht in einer prüfbaren Datei – und ATF hält sich daran, bevor ein Modell aufgerufen wird.

Für Ihr Plattform-Team

  • compliance-policy.yaml: Datenklassen, Provider-Regionen, Modell-Allow/Block, Freigaben, Aufbewahrung, Audit
  • Ungültige Policy beim Start = Chat antwortet 503 statt ohne Regeln zu laufen
  • Dry-Run und Policy-Replay gegen gespeicherte Ausführungen in Control
  • Löschung über alle Dienste (DSGVO Art. 17) mit signiertem Löschbeleg und ehrlichem partial-Status
  • Generiertes Compliance-Dossier: Policy, Ketten-Prüfung, Löschungen, Aufbewahrung, Evals, Red-Team-Score
  • Vorlagen für DSFA und Verarbeitungsverzeichnis sowie EU-AI-Act-Mapping im Repository
Dokumentation
Policy as Code: Regeln, die vor der Ausführung greifen.
Anwendung: Runtime · Control

Flows & Studio

KI-Abläufe, die man reviewen kann.

In einem Satz

Was ein Assistent oder Agent tut, ist ein Ablaufplan in einer Textdatei. Fachbereich und IT sehen ihn im Studio als Grafik, testen ihn per Klick und ändern ihn wie Quellcode – mit Versionsnummer.

Für Ihr Plattform-Team

  • Zwölf eingebaute Knotentypen: llm, tool, router, classifier, parallel, retrieval, memory, agent-harness, transform u. a.
  • Bedingte Kanten über einen sicheren Ausdrucks-Evaluator – kein eingebetteter Code
  • Hot Reload aus FLOWS_DIR, JSON-Schema-Validierung, CI-Pflicht für metadata.version-Bumps
  • Studio: Canvas, Prompt-Editor, Variablen, Drafts, Copilot-Vorschläge als Overlay, Run & Trace pro Knoten
  • Flow als MCP-Server, Webhook- und Zeit-Trigger, asynchrone Jobs mit Lease-Recovery
  • Release-Gate mit Bench-Datei und Ed25519-signiertem Release-Receipt
Dokumentation
Flows & Studio: KI-Abläufe, die man reviewen kann.
Anwendung: Runtime

Agent-Harness

Mehrschrittige Agenten mit Budget und Prüfer.

In einem Satz

Für komplexe Fragen zerlegt ein Planer die Aufgabe in Teilschritte, verteilt sie an spezialisierte Bausteine und plant mit den Ergebnissen neu – bis ein Prüfer das Ergebnis abnimmt oder ein Budget erreicht ist.

Für Ihr Plattform-Team

  • Planer/Worker-Schleife: delegiert nur an Knoten aus einer allowlist, nie an beliebige Tools
  • Harte Grenzen: maxIterations, maxCost, maxTimeMs, Delegationstiefe, parallele Tasks
  • Verifikation durch einen Reviewer-Knoten mit Pass-Signal, optional fail-closed
  • consequentialTargets: Delegationen an folgenreiche Knoten pausieren für eine menschliche Freigabe
  • Plannerless-Modus mit deterministischer Coverage-Queue für erschöpfende Recherche über einen Korpus
  • Fortschritt als atf.progress-Event mit Phase, Coverage und ETA – im Stream, Trace und Job-API
Dokumentation
- id: research
  type: agent-harness
  label: Recherche-Agent
  config:
    allowlist: [search_contracts, search_mail, summarize]
    maxIterations: 8
    maxCost: 0.50
    maxTimeMs: 180000
    maxConcurrentTasks: 3
    consequentialTargets: [notify_customer]   # pauses for approval
    verification:
      target: reviewer
      passSignal: APPROVED
      failClosed: true
Anwendung: Runtime

Guided Decoding & strukturierte Ausgaben

Antworten in der Form, die Ihr System erwartet.

In einem Satz

Wo eine Antwort weiterverarbeitet wird – etwa eine Einstufung oder ein Datensatz –, zwingt ATF das Modell in ein festes Format. So entsteht kein „fast richtiges“ JSON, das in Ihrem System zu Fehlern führt.

Für Ihr Plattform-Team

  • outputSchema und classifier: JSON-Schema per nativem Structured Output (response_format: json_schema) – Constrained Sampling auf vLLM, LM Studio und Cloud-Providern
  • Fallback ohne native Unterstützung: Schema-Hinweis plus toleranter Parser
  • Modell-Pools rotieren bei unparsbarer Antwort zum nächsten Modell, sonst greift config.fallback
  • Reasoning-Modelle: JSON, das im Thinking-Kanal landet, wird erkannt und sicher übernommen – ohne Gedankengang zu leaken
  • finalAnswerContract: nur der Text zwischen zwei Markern ist die Antwort; Plan und Notizen werden verworfen
  • Klassifikation steuert Routing über bedingte Kanten – ohne eingebetteten Code
Dokumentation
- id: triage
  type: classifier
  classifierSchema:
    classKey: intent
    schema:
      type: object
      properties:
        intent: { type: string, enum: [claim, question, complaint] }
        urgency: { type: string, enum: [low, normal, high] }
      required: [intent, urgency]

- id: extract_claim
  type: llm
  config:
    outputSchema:
      name: claim
      schema:
        type: object
        properties:
          policyNo: { type: string, pattern: "^[A-Z]{2}-\\d{6}$" }
          amount:   { type: number, minimum: 0 }
        required: [policyNo, amount]
Anwendung: Search

Dokumentversionen & Zeitreisen

Was galt am 1. März – und was hat sich seitdem geändert?

In einem Satz

Richtlinien, Verträge und Handbücher ändern sich. ATF behält jede Version und beantwortet Fragen auf Wunsch so, wie der Stand zu einem bestimmten Datum war – und zeigt, was sich zwischen zwei Daten geändert hat.

Für Ihr Plattform-Team

  • X-Valid-From pro Dokument, Abfrage mit X-Valid-At (Stand zu einem Zeitpunkt) oder X-Include-All-Versions
  • Versionsreihenfolge numerisch (1.10 > 1.9), dann nach Datum – eine ältere Version wird nie zur aktuellen
  • document_diff: Abschnitte, die zwischen zwei Zeitpunkten hinzugekommen, entfallen oder geändert sind
  • trace: verfolgt einen Bezeichner (z. B. eine Klausel-ID) über zwei Zeitpunkte durch alle Dokumente
  • Atomarer Revisionswechsel; progressive Revisionen sind schon während der Verarbeitung durchsuchbar
  • Derselbe valid_at-Vertrag in Retrieval-Eval und den MCP-Tools – mit denselben Rechten pro Dokument
Dokumentation
# Current version
curl -H 'X-Collection: policies' --data 'retention' https://search.internal/search

# As it stood on 1 March 2026
curl -H 'X-Collection: policies' \
     -H 'X-Valid-At: 2026-03-01T00:00:00Z' --data 'retention' https://search.internal/search

# What changed in one document between two dates
GET /v2/documents/policies:retention/diff?collection=policies
    &from=2026-01-01T00:00:00Z&to=2026-10-01T00:00:00Z
Anwendung: Extract

Extract

Dokumente, die ein Modell wirklich versteht.

In einem Satz

ATF verwandelt PDFs, Office-Dateien, Scans und E-Mails in sauber strukturierten Text mit Seiten, Tabellen und Abbildungen – damit Antworten auf die richtige Seite verweisen.

Für Ihr Plattform-Team

  • PDF, DOC/DOCX, XLS/XLSX, PPTX, VSDX, HTML, Bilder, BPMN 2.0, EML/MSG/mbox
  • Textebene ist maßgeblich für den Wortlaut, die gerenderte Seite für die Struktur
  • ## Seite N-Marker, Abbildungen mit Geometrie, Tabellen mit verbundenen Zellen
  • Gehärtet gegen feindliche Dokumente: ZIP-Limits, keine Makros, isolierter Konverter, prlimit
  • Seitenfenster, Job-Lanes, abgeleiteter PDF-Cache, Tagesbudget für Vision-Seiten
  • Qualitäts-Eval (CER, Heading-F1, TEDS) als Gate
Dokumentation
Extract: Dokumente, die ein Modell wirklich versteht.
Anwendung: Extract · Search

E-Mail-Threads & Deduplizierung

Postfächer, ohne dass jede Antwort den Verlauf doppelt mitschleppt.

In einem Satz

ATF liest E-Mails und ganze Postfächer, ordnet Antworten ihren Gesprächen zu und entfernt zitierte Verläufe, die schon vorhanden sind. Antworten stützen sich so auf jede Aussage genau einmal – statt auf zehn Kopien derselben Mail.

Für Ihr Plattform-Team

  • EML, MSG (Outlook) und mbox nativ, ohne Modellaufruf; ein mbox wird in einzelne Nachrichten zerlegt
  • Signaturen werden entfernt; zitierter Verlauf nur dann, wenn die zitierte Nachricht bereits in der Collection liegt – sonst bleibt er als „Zitierter Verlauf“ erhalten
  • Inline-Antworten behalten genau die Zeilen, auf die sie antworten
  • Threading über Message-ID, In-Reply-To, References und Outlook-Thread-Index; Anhänge gehören zum Thread
  • Duplikate per SHA-256, Texthash und Message-ID, Fast-Duplikate per MinHash – nur innerhalb derselben Rechte
  • Treffer pro Thread gruppiert; get_thread liest einen Verlauf chronologisch mit Quellen pro Nachricht
Dokumentation
# A mailbox export: one document per message, threads linked
curl -X POST https://search.internal/ingest-file \
     -H 'X-Collection: support-mail' \
     -H 'X-Reference: postfach-2026-10.mbox' \
     -H 'Content-Type: application/mbox' \
     --data-binary @postfach-2026-10.mbox

# One hit per conversation instead of ten copies of the same mail
curl -H 'X-Collection: support-mail' -H 'X-Group-By-Document: true' \
     --data 'Lieferverzug Auftrag 4711' https://search.internal/search
Anwendung: Outpost

Outpost

Dokumente kommen zu ATF – nicht umgekehrt.

In einem Satz

Ein kleiner Synchronisations-Agent läuft bei Ihnen – auf dem Fileserver oder als Desktop-App – und schiebt Ordner, S3, Google Drive oder Dropbox in die Plattform. Die Cloud bekommt nie Lesezugriff auf Ihre Quellen.

Für Ihr Plattform-Team

  • Eine Sync-Engine (outpost-core) für Docker-Daemon und Desktop-App
  • Spiegeln mit Bremse: große Löschmengen pausieren bis zur Bestätigung des exakten Kandidaten-Hashes
  • Least Privilege: Read-only-Scopes, nur extract.ingest
  • Desktop: Tokens im OS-Schlüsselbund, WebView sieht keine Zugangsdaten
  • Jedes Secret auch als _FILE; der Logger schwärzt registrierte Secrets
  • Health-Endpunkt für das Monitoring
Dokumentation
# /config/outpost.yaml
extractUrl: https://extract.internal
collection: handbook
syncIntervalSec: 900
mirrorDelete: true          # deletions propagate …
deleteThresholdPercent: 20  # … large sets wait for confirm-deletes
sources:
  - id: werk-handbuecher
    type: local
    path: /sources/handbuecher
    allowedGroups: [instandhaltung]
  - id: qm-bucket
    type: s3
    bucket: qm-dokumente
    region: eu-central-1
Anwendung: Runtime · Search · Gate

Guardrails & Red Teaming

Auch der Rückkanal wird geprüft.

In einem Satz

ATF prüft nicht nur, was Nutzer eingeben, sondern auch, was aus Dokumenten und Werkzeugen zurückkommt – denn dort verstecken Angreifer ihre Anweisungen. Und es greift sich regelmäßig selbst an.

Für Ihr Plattform-Team

  • Input- und Output-Guardrails mit Muster- und Modellerkennung
  • Tool-Output-Validator scannt MCP-Ergebnisse und RAG-Chunks auf indirekte Prompt-Injection
  • Taint über Dienstgrenzen: nach einem Fund braucht jedes nicht-lesende Tool eine Freigabe
  • Spotlighting: abgerufene Passagen erreichen das Modell als markierter Untrusted-Block
  • Deklarative Tool-Autorisierung, fail-closed; Egress-Policy für Tool-Traffic
  • Kontinuierliches Red Teaming mit Angriffsbibliothek und Posture-Score
Dokumentation
Guardrails & Red Teaming: Auch der Rückkanal wird geprüft.
Anwendung: Control · Runtime

Observability

Jede Antwort hat einen Lebenslauf.

In einem Satz

Für jede KI-Antwort sehen Sie, welcher Ablauf in welcher Version lief, welche Quellen und Modelle beteiligt waren, wie lange es dauerte und was es kostete.

Für Ihr Plattform-Team

  • OpenTelemetry-Traces, Prometheus-Metriken, strukturierte Logs mit Schwärzung
  • Debug-Trace pro Ausführung mit Knotenzeiten, Modellaufrufen und Policy-Entscheidungen
  • Live-Graph über SSE/WebSocket mit Ticket-Autorisierung
  • Erklärkarte: Modell, Quellen, Policy, Routing – als Markdown oder signiertes Bundle
  • Governance-Posture-Report: welche Kontrollen aktiv sind, als ok/warn/fail
  • SLO-Tracking und Alert-Webhooks
Dokumentation
Observability: Jede Antwort hat einen Lebenslauf.
Anwendung: Runtime · Control

Kosten & Ausfallsicherheit

Planbare KI statt Überraschungsrechnung.

In einem Satz

ATF weiß, was jede Anfrage kostet, stoppt bei Budgetgrenzen und weicht automatisch auf einen anderen Anbieter aus, wenn einer ausfällt.

Für Ihr Plattform-Team

  • Kosten pro Mandant, Tag, Modell, Nutzer und Flow; Prognose und CO₂-Bilanz
  • Harte Tagesbudgets und Budgets pro Lauf (maxTokens, maxToolCalls, maxWallMs)
  • Zielgetriebenes Routing und Modell-Kaskade: günstig zuerst, eskalieren bei schwacher Evidenz
  • Fallback-Ketten mit Circuit Breaker, Modell-Pools, Sticky Pools für Prefix-Caches
  • Drei Cache-Ebenen; Idempotenz verhindert doppelte Aktionen
  • Priorisierte Warteschlange, Rate-Limits pro Identität und Nutzer
Dokumentation
Kosten & Ausfallsicherheit: Planbare KI statt Überraschungsrechnung.
Anwendung: Runtime · Control

Qualität: Eval, Canary, Shadow

Änderungen messen, bevor Nutzer sie spüren.

In einem Satz

Bevor eine neue Version eines Assistenten live geht, wird sie gegen echte Beispiele geprüft, zunächst nur für einen Teil der Anfragen ausgerollt oder unsichtbar parallel getestet.

Für Ihr Plattform-Team

  • Eval-Datensätze, Judge-Scoring, Matrix-Runs; strukturierte Assertions (toolCalled, jsonPath, …)
  • Canary-Promotion und Rollback nach Kriterien
  • Shadow Mode auf echtem Traffic – Nutzer erhalten immer die stabile Antwort
  • Replay früherer Ausführungen; Shadow und Replay wiederholen nie Seiteneffekte
  • Selbstoptimierende Schleife hinter Canary-Gate, begrenzt durch Drift-Guard
  • Groundedness-Prüfung gegen die abgerufenen Quellen
Dokumentation
# flows/bench/support-rag.bench.yaml
version: 1
flow: support-rag
thresholds:
  passRate: 0.95
  maxLatencyMsP50: 4000
cases:
  - id: filter-interval
    messages:
      - { role: user, content: "Wie oft muss der Filter gewechselt werden?" }
    assert:
      - { type: contains, value: "500" }
      - { type: toolCalled, name: "vectorsearch/search", min: 1 }
      - { type: noDiagnostic, code: loop_blocked }

$ bun run scripts/cli.ts flows release support-rag \
    --signing-key-file release.pem
Anwendung: Runtime · Search · Gate

Mandanten & Zugriffskontrolle

Wer fragt, bestimmt, was sichtbar ist.

In einem Satz

Abteilungen, Tochterfirmen oder Kunden teilen sich eine Plattform, ohne die Daten der anderen zu sehen – durchgesetzt in der Datenbank, nicht nur in der Oberfläche.

Für Ihr Plattform-Team

  • Mandantentrennung mit PostgreSQL Row-Level-Security (TENANT_RLS_REQUIRED)
  • JWT/JWKS mit mehreren Issuern, Issuer-zu-Mandant-Bindung, OIDC mit Backend-Session
  • Trusted-Header nur aus konfigurierten Quellen (TRUSTED_IDENTITY_HEADERS)
  • BYOK: Provider-Schlüssel pro Mandant, verschlüsselt
  • RBAC aus Token-Claims; Agent-Identity-Broker mit Widerruf
  • Ein Betriebsprofil ATF_PROFILE=production verweigert unsichere Starts
Dokumentation
ATF_PROFILE=production
AUTHN_MODE=token
JWT_JWKS_URL=https://sso.example/realms/corp/protocol/openid-connect/certs
JWT_AUDIENCE=atf-runtime
JWT_ISSUER_TENANTS={"https://sso.partner.example":["partner-a"]}
TENANT_ISOLATION_ENABLED=true
TENANT_RLS_ENABLED=true
TENANT_RLS_REQUIRED=true
BYOK_ENABLED=true
Anwendung: Runtime

OpenAI-kompatibles API

Bestehende Clients, neue Kontrolle.

In einem Satz

Vorhandene Chat-Oberflächen und Anwendungen sprechen mit ATF wie mit einem bekannten KI-Dienst – nur dass jetzt alle Regeln dazwischen gelten.

Für Ihr Plattform-Team

  • /v1/chat/completions, /v1/responses, /v1/models, /v1/embeddings mit Streaming
  • Provider: OpenAI-kompatibel, Anthropic, Google, Azure OpenAI, AWS Bedrock, Ollama, LM Studio, vLLM
  • Kennzeichnung KI-generierter Antworten (AI_DISCLOSURE)
  • Signierte Webhooks und Rocket.Chat-Kanal mit Transactional Outbox
  • Contract-Pakete mit Kompatibilitätsgarantie und OpenAPI-Spezifikationen
  • Quickstart per Docker Compose mit Mock-Modell – ohne API-Key
Dokumentation
curl https://atf.example/v1/chat/completions \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "support-assistant",
    "stream": true,
    "messages": [{"role": "user", "content": "Status von Ticket #4711?"}]
  }'
Anwendung: Runtime

Open WebUI & Chat-Frontends

Die vertraute Chat-Oberfläche – mit allen Regeln dahinter.

In einem Satz

Mitarbeitende nutzen eine gewohnte Chat-Oberfläche wie Open WebUI. Jeder freigegebene Ablauf erscheint dort als eigenes „Modell“; Quellen, Freigaben und Fortschritt werden direkt im Chat angezeigt.

Für Ihr Plattform-Team

  • Flows erscheinen als Modelle über /v1/models; Streaming inklusive einklappbarem Reasoning-Block
  • Quellen als native, klickbare Zitate – nur die, auf die die Antwort tatsächlich mit [n] verweist
  • Freigabe-Element direkt im Chat (eingebettet, APPROVAL_FRAME_ANCESTORS auf die Open-WebUI-Origin begrenzt)
  • Identität aus Open WebUI: JWT per OAuth-Cookie oder Pipe-Metadaten, separate JWKS für das Inferenz-API
  • Knowledge und Functions aus Open WebUI als Client-Tools – pro Knoten abschaltbar (clientTools)
  • Bereinigung der Chat-Historie: UI-Artefakte früherer Antworten erreichen das Modell nicht als „Beispiel“
Dokumentation
# Open WebUI → Admin → Connections → OpenAI API
URL:   https://atf.example/v1          # every released flow is a "model"

# Runtime
APPROVAL_FRAME_ANCESTORS=https://chat.example   # approval widget in the chat
APPROVAL_BASE_URL=https://atf.example
MEDIA_BASE_URL=https://atf.example              # generated media as links
JWT_JWKS_URL=https://sso.example/.../certs      # user token from Open WebUI

Welche dieser Funktionen braucht Ihr Use-Case zuerst?