In den letzten Jahren haben sich Sprachmodelle (LLM) zu einer Grundlage vieler Produktfunktionen entwickelt – von Chatbots bis hin zur automatischen Inhaltserzeugung. Das Modell allein reicht jedoch nicht immer: Der Bedarf an aktuellen, vertrauenswürdigen Informationen sowie an Kontrolle von Kosten und Antwortzeit wächst. Deshalb wird in der Praxis zunehmend eine hybride Architektur eingesetzt, die LLM, Retrieval‑Augmented Generation (RAG) und Entscheidungs‑Agenten kombiniert. In diesem Artikel beschreiben wir, wie man eine solche Architektur in einem realen Produkt entwirft und implementiert, mit besonderem Fokus auf die Kompromisse zwischen Kosten, Latenz und Datenschutz.
Warum eine hybride Architektur?
Ein LLM kann flüssigen und kohärenten Text generieren, hat aber keinen eingebauten Zugriff auf aktuelle Daten. RAG löst dieses Problem, indem ein Teil der Anfrage an einen externen Index delegiert wird und die zurückgegebenen Fragmente als Kontext eingebracht werden. Agenten ermöglichen hingegen die sequenzielle Ausführung von Aufgaben – z. B. das Abrufen von Daten, deren Verifizierung und die abschließende Präsentation – bei gleichzeitiger Kontrolle des Workflows.
Die Kombination der drei Elemente liefert:
- Aktualität der Informationen (RAG),
- Flexibilität der Interaktion (Agenten) und
- hohe Sprachqualität (LLM).
Grundkomponenten der hybriden Architektur
1. LLM‑Modell – kann groß sein (z. B. eine GPT‑ähnliche Familie) oder kleiner, in der Cloud oder on‑device betrieben. 2. RAG‑Schicht – Dokumenten‑Index (vektorbasiert, z. B. FAISS, Milvus) sowie Suchservice. 3. Agent – Orchestrierungs‑Engine (z. B. LangChain, LlamaIndex), die Schritte, Bedingungen und Fallbacks definiert.
Bei Coderia.it verwenden wir offene Bibliotheken, die den Austausch einzelner Elemente ohne komplette Systemumstellung ermöglichen. So können wir die Lösung an Kosten‑ und Datenschutzanforderungen anpassen.
Design der Integration von LLM mit Retrieval‑Augmented Generation
Der entscheidende Schritt ist die Vorbereitung des Indexes. Dokumente werden in Fragmente (typischerweise 200‑500 Token) aufgeteilt und mit einem Embedding‑Modell (z. B. OpenAI Ada‑Embeddings, Sentence‑Transformers) vektorisiert. Anschließend:
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(docs, embeddings)
Bei einer Anfrage ruft der Agent zunächst vectorstore.similarity_search(query, k=5) auf und erhält die relevantesten Fragmente. Diese Fragmente werden dem LLM als Teil des Prompts übergeben, sodass das Modell eine Antwort basierend auf realen Daten generieren kann.
Agentenmuster in produktiven Systemen
In der Praxis begegnen uns am häufigsten zwei Muster:
- Einstufiger Agent – holt den Kontext, generiert die Antwort und liefert das Ergebnis. Ideal für einfache FAQ‑Anfragen.
- Mehrstufiger Agent – iteriert: zuerst werden Dokumente abgerufen, dann deren Nützlichkeit bewertet, ggf. zusätzliche Mikro‑Services (z. B. Datenvalidierung) aufgerufen und erst danach der finale Text generiert. Dieses Schema reduziert Halluzinationen und ermöglicht eine bessere Kostenkontrolle, da das LLM erst in der letzten Phase aufgerufen wird.
Bei Coderia.it haben wir einen mehrstufigen Agenten im System zur Empfehlung technischer Dokumentation implementiert. Dadurch sank der durchschnittliche Token‑Kostenanteil um etwa 30 % und die Antwortzeit blieb unter 800 ms.
Kosten und Latenz hybrider LLM‑Modelle
Die Hybridlösung eliminiert nicht die Kosten, verteilt sie jedoch. Die Vektorsuche ist in der Regel sehr günstig (einige hundert Token pro Anfrage). Das teuerste Element – die Textgenerierung – wird nur bei Bedarf aufgerufen. Die Latenz hängt von drei Faktoren ab: Zugriffszeit auf den Index, Aufrufzeit des LLM und eventuelle zusätzliche Mikro‑Services. Optimiert wird durch:
- Lokalisierung des Indexes nahe der Anwendung (z. B. in derselben Cloud‑Region),
- Cache häufig genutzter Fragmente,
- Auswahl eines LLM‑Modells passender Größe – kleineres on‑device Modell für einfache Aufgaben, größeres in der Cloud für komplexe Generierungen.
Skalierung von RAG in Cloud und on‑device
In der Cloud lässt sich die vektorbasierte Engine leicht skalieren, indem der Index partitioniert und Instanzen automatisch skaliert werden. Für mobile Anwendungen oder solche mit hohen Datenschutzanforderungen kann eine leichte FAISS‑Version oder ein SQLite‑basiertes VSS on‑device betrieben werden. In einem solchen Szenario:
// Beispielcode in Swift (iOS) – Erstellen eines lokalen Indexes
import Faiss
let index = IndexFlatL2(d: 768)
index.add(vectors: embeddingArray)
Die Kombination beider Ansätze (Hybrid Cloud/on‑device) ermöglicht schnelle Offline‑Antworten sowie die Synchronisation neuer Dokumente im Hintergrund.
„In einer hybriden Architektur ist nicht die Größe des Modells entscheidend, sondern wie intelligent man es einsetzt.“
Fine‑Tuning vs. Prompting in hybriden Lösungen
Fine‑Tuning besteht darin, ein Modell weiter auf spezifischen Daten zu trainieren. Es bietet die größte Kontrolle, ist jedoch mit Rechenkosten verbunden und erfordert große Datensätze. Prompting hingegen nutzt das vorhandene Modell und liefert ihm Kontext in Echtzeit. In einer hybriden Architektur wählen wir meist Prompting, da RAG bereits spezifischen Kontext bereitstellt und zusätzliches Fine‑Tuning keinen proportionalen Nutzen bringt. Fine‑Tuning bleibt eine Option für kritische Fälle, in denen sehr spezifische Terminologie oder Verhalten erforderlich sind.
Praktische Checkliste für die Implementierung
- Bestimmen Sie den Datenumfang, der im RAG verfügbar sein soll (Dokumentation, Wissensdatenbanken, Logs).
- Wählen Sie ein Embedding‑Modell und erstellen Sie einen Vektor‑Index (FAISS, Milvus, Pinecone).
- Definieren Sie Agentenszenarien – einstufig vs. mehrstufig.
- Konfigurieren Sie ein Kosten‑Limit für LLM‑Aufrufe (z. B. maximale Token‑Anzahl pro Anfrage).
- Implementieren Sie das Monitoring von Latenz und Kosten (Prometheus + Grafana).
- Testen Sie Datenschutz‑Szenarien – bleiben die Daten im RAG innerhalb der regulatorischen Vorgaben (GDPR, HIPAA).
- Sorgen Sie für einen Fallback zu statischen Antworten im Falle eines LLM‑Ausfalls.
Typische Fehler und Kompromisse
1. Übermäßige Abhängigkeit vom LLM – das Modell bei jeder Anfrage aufzurufen führt zu hohen Kosten und erhöhter Halluzination. Lösung: zunächst die Relevanz der RAG‑Ergebnisse bewerten und das LLM nur aufrufen, wenn der Kontext ausreichend ist.
2. Zu großer Kontextabschnitt – überschreitet das Token‑Limit des LLM, was ein Abschneiden wichtiger Informationen erzwingt. Lösung: Ranking der Abschnitte und dynamisches Kürzen auf die wichtigsten Sätze.
3. Unzureichende Datenschutz‑Maßnahmen – das Senden sensibler Daten an ein externes LLM. Lösung: Verschlüsselung der Anfragen, Einsatz von On‑Premise‑ oder Open‑Source‑Modellen, die in einem privaten Netzwerk gehostet werden können.
4. Fehlendes Qualitäts‑Monitoring – Halluzinationen können erst nach einiger Zeit auftreten. Lösung: automatisierte Regressionstests mit einem Satz von Kontrollfragen.
5. Suboptimale Modellauswahl – Einsatz des teuersten Modells für einfache Aufgaben. Lösung: schichtige Strategie – ein kleines On‑Device‑Modell für kurze Antworten, ein großes Cloud‑Modell für komplexe Generierungen.
Durch die Anwendung dieser Praktiken können Produktteams Lösungen bauen, die schnell, kosteneffizient und rechtlich konform sind.
Zusammenfassend verbindet die hybride LLM‑RAG‑Agent‑Architektur neueste Sprachfähigkeiten mit Kosten‑ und Datenschutzkontrolle. Wenn Sie möchten, dass Ihr Produkt von dieser Technologie profitiert, laden wir Sie ein, mit Coderia.it zusammenzuarbeiten – wir helfen Ihnen, die passenden Modelle auszuwählen, einen skalierbaren RAG aufzubauen und Agenten zu entwickeln, die Ihre geschäftlichen Anforderungen erfüllen.



