iToverDose/Software· 13 JUNI 2026 · 08:02

BoxAgnts: Wie eine Abstraktionsschicht KI-Tools herstellerübergreifend nutzbar macht

BoxAgnts löst das Problem der Inkompatibilität zwischen KI-Anbietern durch eine flexible Provider-Abstraktion und einen effizienten Agenten-Abfragemechanismus. Erfahren Sie, wie diese Architektur Tools sicher und skalierbar in verschiedenen KI-Systemen integriert.

DEV Community3 min0 Kommentare

BoxAgnts hat mit seinem Tool-System bereits eine sichere Ausführungsebene für KI-Tools geschaffen. Doch um diese Tools auch in verschiedenen KI-Modellen nutzen zu können, musste das Team zwei zentrale Herausforderungen meistern: die unterschiedlichen API-Formate der Anbieter sowie die nahtlose Integration von Gesprächsfluss und Tool-Aufrufen. Die Lösung liegt in einer dreistufigen Abstraktionsebene sowie einem intelligenten Abfragezyklus, der diese Unterschiede elegant überbrückt.

Herstellerneutrale API-Integration durch Provider-Abstraktion

KI-Anbieter wie Anthropic, OpenAI und Google nutzen jeweils eigene Formate für Anfragen, Antworten und Fehlerbehandlungen. Während Anthropic Rollen in user und assistant unterteilt und Systemanweisungen separat übergibt, behandelt OpenAI Systemmeldungen als Teil der Nachrichtenrolle. Google integriert Systemanweisungen sogar als eigenständiges Feld auf oberster Ebene des Anfragekörpers.

Um diese Unterschiede zu vereinheitlichen, hat BoxAgnts eine dreistufige Abstraktionsschicht entwickelt:

  • Unified Data Model (ProviderRequest/ProviderResponse): Diese zentralen Datenstrukturen standardisieren alle Eingabe- und Ausgabeparameter. Egal ob Anthropic oder OpenAI – das Agentensystem arbeitet ausschließlich mit diesen beiden Modellen und bleibt so unabhängig vom gewählten Anbieter.
  • LlmProvider-Trait: Dieses Rust-Interface definiert die Grundfunktionen jedes Anbieters. Eine Implementierung muss beispielsweise eine asynchrone Methode zur Erstellung von Nachrichtenströmen bereitstellen, die einen einheitlichen StreamEvent-Typ zurückgibt. Intern handhaben die Provider ihre spezifischen HTTP-Anfragen, Authentifizierungen und SSE-Parsing-Prozesse.
  • Transformer-Schicht: Reine Konvertierungsfunktionen übersetzen die standardisierte Anfrage in das jeweils benötigte Format. Für jeden neuen Anbieter genügt die Implementierung eines Transformers und der dazugehörigen Provider-Klasse. Ein zentrales ProviderRegistry verwaltet alle verfügbaren Anbieter und wählt den Standardanbieter aus.

Server-Sent Events: Ein einheitliches Streaming-Erlebnis

Die meisten Anbieter nutzen Server-Sent Events (SSE) für Streaming-Antworten, doch die Granularität und Semantik der Ereignisse variieren erheblich:

  • Anthropic: Verwendet ein dreistufiges System mit content_block_start, content_block_delta und content_block_stop. Ein einzelner Inhaltsblock wird über mehrere SSE-Nachrichten verteilt.
  • OpenAI: Arbeitet mit flachen Delta-Nachrichten ohne explizite Blockgrenzen.
  • Google Gemini: Nutzt stattdessen das gRPC-Web-Protokoll mit eigenem Streaming-Format.

BoxAgnts’ stream_parser-Modul vereinheitlicht diese Unterschiede durch eine zentrale StreamEvent-Struktur:

pub enum StreamEvent {
    TextDelta { text: String },
    ToolUseStart { id: String, name: String },
    ToolUseDelta { id: String, json: String },
    ToolUseEnd { id: String },
    ThinkingDelta { text: String },
    UsageUpdate { input_tokens: u32, output_tokens: u32 },
    MessageStop,
}

Jeder Anbieter implementiert einen eigenen Parser, der als endlicher Automat arbeitet. Beispielsweise wandelt der Anthropic-Parser die eingehenden SSE-Nachrichten in die definierten StreamEvent-Typen um:

  • Bei message_start werden Metadaten wie Modellname und initiale Token-Zählung erfasst.
  • content_block_start löst die Erstellung neuer Blöcke aus – je nach Typ als Text-, Tool- oder Denkblock.
  • Delta-Nachrichten (content_block_delta) aktualisieren den jeweiligen Block und senden entsprechende Ereignisse an das System.
  • content_block_stop schließt einen Block ab und sendet ein ToolUseEnd-Ereignis für Tool-Nutzungen.

Ein StreamAccumulator verwaltet den Zustand aller aktuellen Blöcke und setzt sie bei MessageStop zu einer vollständigen Nachricht zusammen.

Der Agent-Abfragezyklus: Nahtlose Integration von Tools und KI-Modellen

Der Abfragezyklus von BoxAgnts verbindet die standardisierten Nachrichten mit der Tool-Ausführung. Der Prozess läuft in folgenden Schritten ab:

  1. Nachrichtenaufbereitung: Das System konstruiert eine Anfrage mit Nachrichtenhistorie, Systemanweisungen und Tool-Definitionen.
  2. Streaming-Abfrage: Die Anfrage wird an den ausgewählten Anbieter gesendet, dessen Antwort als Nachrichtenstrom verarbeitet wird.
  3. Echtzeit-Verarbeitung: Während des Streams werden Tool-Aufrufe (ToolUseStart, ToolUseDelta) direkt an das Frontend weitergeleitet, sodass Nutzer die Interaktion live verfolgen können.
  4. Abschluss und Validierung: Nach Erhalt des MessageStop-Ereignisses wird die vollständige Nachricht zusammengesetzt. Der stop_reason gibt Aufschluss darüber, ob die Antwort erfolgreich abgeschlossen oder abgebrochen wurde.

Diese Architektur ermöglicht eine flexible Integration von Tools in unterschiedlichste KI-Systeme – ohne dass Entwickler sich mit den Eigenheiten einzelner Anbieter beschäftigen müssen. Die Abstraktionsebenen sorgen für Stabilität und Skalierbarkeit, während der Agentenzyklus die nahtlose Zusammenarbeit zwischen KI und Tools sicherstellt.

In Zukunft wird diese Herangehensweise nicht nur die Kompatibilität zwischen Anbietern verbessern, sondern auch die Grundlage für erweiterte Funktionen wie adaptive Tool-Auswahl oder dynamische API-Anpassungen legen. BoxAgnts setzt damit neue Maßstäbe für die Interoperabilität von KI-Systemen.

KI-Zusammenfassung

BoxAgnts’in çoklu yapay zeka sağlayıcı uyumu nasıl sağlıyor? Provider soyutlama katmanı ve Akıllı Sorgulama Döngüsü hakkında detaylı inceleme.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #ITEQN1

0 / 1200 ZEICHEN

Menschen-Check

6 + 2 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.