# Ziel-Architektur: BEO als zentrales Chat-/Agenten-Cockpit Ziel laut Auftrag: eine **selbstgebaute Kopie von LangChain / den gängigen Chat-Agenten-Plattformen** — Skills, Konnektoren, spezialisierte Sub-Agenten mit automatischer Erkennung, Token-Kompression, vollständige Anonymisierung vor Außenkommunikation. Ohne Lizenzkosten, self-hosted. Die Recherche (108 + gezielte Folge-Suchagenten, siehe [06-marktrecherche-quellen.md](./06-marktrecherche-quellen.md)) liefert dafür ein klares, **verifiziertes** Architekturvorbild plus zwei wichtige Korrekturen gegenüber dem, was man naiv annehmen würde. ## Blueprint: LibreChat (MIT-Lizenz) LibreChat ist bereits als Fork in deinem GitHub-Account vorhanden (`renefichtmueller/LibreChat`) — das passt zur Idee, hier die Basis für BEO zu legen. Was konkret übernehmenswert ist (jede Aussage einzeln mit 3 unabhängigen Gegenprüfungen verifiziert): | LibreChat-Feature | Was es tut | Für BEO relevant | |---|---|---| | **Skills-System** | `SKILL.md`-Bundles, drei Aufruf-Modi: manuell, automatisch (Modell wählt aus injiziertem Skill-Katalog), always-on (jede Runde geladen) | Das ist exakt die "automatische Skill-Erkennung", die du für BEO wolltest | | **Subagents** | Primäragent delegiert an isolierte Kind-Agenten-Läufe mit eigenem Kontextfenster, parallel, mit Rekursions-/Graph-Limits | Basis für "verschiedene Sachen spezialisiert, die automatisch erkannt werden" | | **Credential-Trennung** | Pro-Nutzer verschlüsselte Zugangsdaten (Frontend) vs. Admin-ENV-Variablen (org-weit), pro Manifest-Flag `sensitive` | Direkt übernehmbares Muster für einen eigenen Konnektor-Speicher | | **Multi-Provider** | OpenAI, Azure, Anthropic, Bedrock, Vertex AI, **plus Ollama, Groq, Cohere, Mistral, OpenRouter** — beliebig mischbar mit lokalen Modellen | Erfüllt "lokale LLM und Adapter" | | **Lizenz** | MIT — komplett frei self-hostbar, keine SaaS-Pflichtkomponente (nur der optionale gehostete Code-Interpreter ist kostenpflichtig, nicht Kernfunktion) | Erfüllt "keine Lizenzkosten" | ### Zwei wichtige Korrekturen 1. **"Volle MCP-Unterstützung" wurde widerlegt (0-3 Gegenstimmen).** LibreChat wirbt mit MCP-Kompatibilität, aber die Recherche fand das nicht belastbar bestätigt — die MCP-Reife ist im Fluss. **Konsequenz:** MCP/OpenAPI Actions als Zielarchitektur für Tool-Anbindung übernehmen (das offiziell dokumentierte Nachfolgemodell des alten LangChain-Tool-Plugins), aber vor Produktivnahme selbst nachprüfen, nicht dem Marketing glauben. 2. **Das alte LangChain-Tool-Plugin-System ist offiziell deprecated** (3-0 bestätigt, Docs verweisen explizit auf MCP/OpenAPI Actions als Nachfolger). Für BEO heißt das: **nicht** das alte LangChain-`Tool`-Subclassing-Muster nachbauen — das ist bereits Altlast, selbst im Vorbild. ## Anonymisierungs-Gateway: Presidio (MIT) — als eine Schicht, nicht die einzige Microsoft Presidio ist die stärkste self-hostbare Anonymisierungs-Pipeline vor externen LLM-Aufrufen: Analyzer (Erkennung) → Anonymizer (Transformation) → optional Image-Redactor / Structured-Modul für Tabellen/JSON. Läuft komplett on-prem (Docker/Kubernetes/PySpark). **Wichtiger Fund:** Presidio disclaimt selbst Vollständigkeit, und unabhängige Benchmarks (u. a. arXiv:2606.19881 "REDACT") fanden Recall-Werte von teils nur 7 % bei High-Sensitivity-Kategorien gegenüber 74–77 % bei LLM-basierten Detektoren (GPT-4.1, Claude). **Konsequenz für "100%ige Anonymisierung":** Das Ziel ist mit Presidio allein nicht erreichbar. Architektur muss defense-in-depth sein: ``` Nutzereingabe │ ▼ [Presidio Analyzer] NER + Regex + Checksum + Kontext │ ▼ [Regelbasierter Zusatzfilter] ShieldX-CredentialRedactor-Muster (Firmennamen, Projektcodes, interne IDs — domänenspezifisch, das kann kein generisches Tool wissen) │ ▼ [Policy-Gate] Nur wenn Ziel = externe API (Claude/GPT/etc.): Anonymisierung erzwingen. Wenn Ziel = lokales Ollama-Modell: optional, da Daten das Haus nicht verlassen. │ ▼ Externe/lokale LLM-API ``` Die dritte Schicht (Policy-Gate: nur bei externem Ziel anonymisieren) ist die praktische Antwort auf "100%ige Anonymisierung, bevor es nach außen geht" — lokale Ollama-Aufrufe brauchen diese Schicht gar nicht, weil "außen" nicht zutrifft. ## Token-Kompression: offener Punkt, kein Wundermittel gefunden LLMLinguas Zahlen (20x Kompression, 1,7–5,7x Latenzgewinn) wurden **beide widerlegt** (1-2 bzw. 0-3). Eine gezielte Folgerecherche zu Alternativen ergab: - **LLMLingua-2** (task-agnostisch, GPT-4-generiertes Extraktions-Trainingsset, als Token-Klassifikation formuliert) wird in aktuellen Vergleichsartikeln als "einzige unter Produktionsbedingungen praktikable Variante" der LLMLingua-Familie beschrieben — aber das ist eine schwächere, nicht unabhängig gegengeprüfte Quelle, anders als die oben widerlegten Zahlen. - **GPTCache** (semantisches Caching, Redis/Milvus-Backend) ist eine etablierte, eigenständige Technik: keine Kompression, sondern Vermeidung wiederholter API-Calls bei semantisch ähnlichen Anfragen. Das ist der solidere, produktionsreife erste Baustein. - **Fazit:** Für BEO als "Token-Kompression" zunächst **semantisches Caching (GPTCache-Muster)** einbauen — das ist verifiziert nützlich. Aktive Prompt-Kompression (LLMLingua-2) erst nach eigener Benchmark-Prüfung nachziehen, nicht auf Marketing-Zahlen vertrauen. ## Magatama als Schutzschicht für BEO Jedes Fachtool bekommt dieselbe Middleware, die heute schon für EO Global Pulse existiert (`integrations/eo-global-pulse-middleware.ts`). Für BEO bedeutet das konkret: - Jeder Chat-Turn läuft durch ShieldX, **bevor** er an ein Subagent/Skill-System geht (Prompt-Injection-Schutz für die Multi-Agent-Delegation selbst — LibreChats Subagents haben kein eingebautes Schutzkonzept gegen injizierte Instruktionen aus Tool-Ergebnissen; das ist genau ShieldX' L7-MCP-Guard-Kompetenz). - ShieldX' EU-AI-Act- und NIS2/SOC2/ISO27001-Reporting (Kapitel 03) läuft für BEO automatisch mit, ohne dass BEO eigene Compliance-Logik bauen muss. ## Bewertungstabelle: Selbst bauen vs. übernehmen | Baustein | Selbst bauen | Als Vorbild/Baustein übernehmen | |---|---|---| | Skill-Erkennung | — | LibreChat Skills-System (SKILL.md, 3 Invocation-Modi) | | Sub-Agenten-Delegation | Domänen-spezifische Agenten (Fossy-, FoCI-, Lupo-Adapter) | LibreChat Subagents-Architektur (isolierte Kontexte) | | Tool-/Konnektor-Anbindung | — | MCP/OpenAPI Actions (nicht das alte LangChain-Tool-Muster) | | Anonymisierung | Domänenspezifischer Zusatzfilter + Policy-Gate (lokal vs. extern) | Presidio Analyzer/Anonymizer als Basisschicht | | Token-Kompression | Eigene Benchmark vor Produktivnahme jeder Lösung | GPTCache (semantisches Caching) zuerst, LLMLingua-2 später prüfen | | Sicherheit | — | Magatama/ShieldX-Middleware (bereits produktiv für EO Global Pulse) | | Credential-Speicher | — | LibreChat Credential-Trennungsmodell (per-User verschlüsselt vs. Admin-ENV) |