Architektur eines KI-Assistenten: LLM, Speicher, Tools, Routing, Observability
Wie ernsthafte Assistenten tatsächlich erstellt werden.
Ein produktionsreifes KI-Assistentensystem ist nicht einfach „ein LLM mit einem Prompt“. Es handelt sich um ein System, das Absichten akzeptiert, Zustände verwaltet, entscheidet, wann es Informationen abrufen oder Aktionen ausführen soll, und genügend Runtime-Details offenlegt, um Fehler zu debuggen.
Diese systemorientierte Perspektive untersucht der AI Systems Cluster dann, wenn Assistenten über eine einzelne Modellaufruf-Instanz hinausgehen.
OpenAI beschreibt Agenten als Anwendungen, die planen, Tools aufrufen, zusammenarbeiten und genügend Zustand für mehrstufige Arbeiten beibehalten, während Anthropic dasselbe Problem als einen verwalteten Rahmen betrachtet, der Dateien, Befehle, Webzugriffe und Code sicher ausführen kann.
Die sauberste Architektur teilt die Verantwortlichkeiten in fünf Schichten auf: LLM, Memory (Speicher), Tooling (Werkzeuge), Routing (Weiterleitung) und Observability (Beobachtbarkeit). Diese Aufteilung entspricht den Fähigkeiten, die von den APIs großer Anbieter, von MCP, von selbst gehosteten Runtimes wie vLLM und llama.cpp sowie von echten Assistenzsystemen wie OpenClaw und Hermes bereitgestellt werden.

Der Speicher sollte als mehr als nur „längerer Kontext“ behandelt werden. Abrufsysteme (Retrieval Systems) verwandeln externes Wissen in explizites nicht-parametrisches Gedächtnis — denselben Gestaltungsbereich, der ausführlich in Retrieval-Augmented Generation (RAG) behandelt wird — und sowohl Anthropics Kontextrichtlinien als auch die „Lost in the Middle“-Studie warnen davor, dass das bloße Stopfen mehr Tokens in den Kontext keinen zuverlässigen Abruf garantiert.
Die Nutzung von Tools ist eine Vertragsgrenze, kein Zauber. OpenAIs Function Calling, Anthropics Tool Use und MCP basieren alle auf demselben Muster: Das Modell gibt eine strukturierte Anfrage aus, eine Runtime führt sie aus, und das Ergebnis fließt zurück in die Konversation. Wenn diese Grenze ungenau ist, wird auch der Assistent ungenau.
Meine Voreinstellung ist einfach: Beginnen Sie langweilig. Ein Orchestrierer, ein dauerhafter Speicherpfad, ein Trace pro Anfrage und eine explizite Richtlinie für die Tool-Ausführung. Multi-Agent-Graphen sind nützlich, aber erst dann, wenn Sie Ihre Single-Agent-Fehlerfälle ohne Raten erklären können.
Was ein KI-Assistentensystem ist
Eine praktische Definition lautet: Ein KI-Assistentensystem ist eine Runtime, die Nutzerabsichten in eine Antwort oder Aktion umwandelt, indem sie eine Modell-Schnittstelle, Kontextzusammenstellung, Tool-Ausführung, Statusverwaltung und Telemetrie kombiniert. Deshalb sind die nützlichen Dokumentationen nicht nur Modell-Karten. Die nützlichen Dokumentationen sind API-Referenzen, Tool-Verträge, Abruf-Leitfäden, Routing-Dokumentationen und Tracing-Dokumentationen. OpenAIs Responses API bietet zustandsbehaftete Interaktionen, integrierte Tools und Function Calling. Anthropics Claude API bietet direkten Messages-Zugriff sowie Managed Agents. OpenClaw und Hermes gehen einen Schritt weiter und zeigen, was passiert, wenn man diese Fähigkeiten hinter persistenten Gateways, Kanälen, Sitzungen und Speicher platziert.
Mit anderen Worten: Ein Assistenzsystem hat einen breiteren Vertrag als eine Chat-Completion. Ein guter interner Vertrag sieht in etwa so aus:
AssistantRequest = user intent + identity + session + attachments + policy
AssistantResponse = answer + actions + citations + state changes + trace id
Dieser Vertrag ist wichtig, weil jede Produktionsdiskussion schließlich auf eine dieser Fragen hinausläuft: Welcher Kontext war sichtbar, welches Tool wurde ausgeführt, welches Modell hat geantwortet, welcher Speicher wurde gelesen oder geschrieben und wo sagt der Trace, dass das System Zeit verbracht hat. OpenTelemetry definiert Traces als den Pfad einer Anfrage durch eine Anwendung, was genau die Abstraktion ist, die ernsthafte Assistenten brauchen. LangSmith und OpenLIT spezialisieren diese Idee dann für LLMs, Tools, Vektorspeicher und Agent-Workflows.
Kernkomponenten und Schnittstellen
Die nachfolgende Komponentenaufteilung ist diejenige, die ich als am haltbarsten empfinde. Sie stimmt auch am besten mit den offiziellen APIs und den Open-Source-Runtimes überein, die Menschen tatsächlich betreiben.
| Schicht | Hauptverantwortung | Typische Schnittstelle | Beispieltechnologien |
|---|---|---|---|
| LLM-Schicht | Reasoning, Generierung, Entscheidung, Ausgabe strukturierter Aufrufe | Responses API, Messages API, OpenAI-kompatible oder Anthropic-kompatible Endpunkte | OpenAI, Anthropic, vLLM, llama.cpp, Ollama |
| Memory-Schicht | Speichern von Sitzungsstatus, dauerhaften Notizen und durchsuchbarem Wissen | Embeddings, Vektorsuche, Memory Read/Write Tools, Retrieval-APIs | OpenAI Embeddings und Vektorspeicher, Pinecone, Weaviate, pgvector, Milvus, Hermes Memory, OpenClaw Memory |
| Tooling-Schicht | Daten lesen und Aktionen außerhalb des Modells ausführen | JSON-Schema-Tools, MCP-Tools, Datei- und Websuche, native Runtime-Tools | OpenAI Function Calling, Anthropic Tool Use, MCP, LangChain Tools, LlamaIndex Query Tools |
| Routing-Schicht | Modell, Backend, Richtlinie und Tenant-Pfad auswählen | Modell-Aliase, Failover-Gruppen, Health Checks, Budgets, Kanalbindungen | LiteLLM, OpenClaw Multi-Agent Routing, Hermes Provider Runtime Resolution |
| Observability-Schicht | Erklären, was passiert ist und warum | Traces, Spans, Logs, Metriken, Eval-Läufe | OpenTelemetry, LangSmith, OpenLIT |
Die obige Tabelle leitet sich von den offiziellen Provider-Schnittstellen, MCP, Vektordatenbank-Dokumentationen und den Runtime-Dokumentationen für vLLM, llama.cpp, OpenClaw und Hermes ab.
Die LLM-Schicht sollte drei Dinge gut machen: Den aktuellen Arbeitskontext verbrauchen, entweder eine finale Antwort oder eine strukturierte Aktionsanfrage ausgeben und genügend Metadaten zurückgeben, um Wiederholungen und Tracing zu unterstützen. OpenAIs Responses API ist explizit für zustandsbehaftete Interaktionen sowie integrierte Tools und Function Calling ausgelegt. Anthropics Messages API stellt dieselbe Kernschleife über tool_use-Blöcke und tool_result-Rückgaben bereit, während Managed Agents Ihnen einen gehosteten Rahmen bietet, wenn Sie die Schleife nicht selbst aufbauen möchten. Selbst gehostete Runtimes wie vLLM und llama.cpp sind wichtig, weil sie vertraute Provider-ähnliche Schnittstellen beibehalten, während sie Ihnen ermöglichen, die Inferenz in Ihrer eigenen Umgebung zu platzieren.
Die Memory-Schicht sollte mental in drei Kategorien unterteilt werden: Arbeitsgedächtnis, dauerhaftes symbolisches Gedächtnis und durchsuchbares semantisches Gedächtnis. OpenAI-Embeddings geben Vektoren zurück, die indiziert und durchsucht werden können; OpenAI Retrieval und File Search legen semantische und Keyword-Suche zusätzlich zu Vektorspeichern. Pinecone, Weaviate, pgvector und Milvus repräsentieren vier gängige Speicherformen: vollständig verwaltet, Open-Source-Vektor-Nativ, Postgres-Nativ und verteilte Vektordatenbank. Hermes und OpenClaw liefern eine nützliche Erinnerung, dass nicht alles Gedächtnis in einen Vektorspeicher gehört: dateibasierte Notizen, überprüfte Promotionen und sitzungsbasierte Snapshots sind oft das ehrlichere Design — Muster, die in Hermes Agent Memory System für begrenztes Kerngedächtnis und eingefrorene Sitzungssnapshots aufgebrochen werden.
Die Tooling-Schicht ist der Ort, an dem ein Assistent aufhört, nur ein Zusammenfasser zu sein, und beginnt, Software zu sein. OpenAI Function Calling behandelt Tools als schemadefinierte Funktionalität, die das Modell entscheiden kann, ob es sie aufruft. Anthropic sagt dasselbe expliziter: Tool Use ist ein Vertrag zwischen Ihrer Anwendung und dem Modell, und das Modell führt niemals etwas eigenständig aus. MCP verallgemeinert diesen Vertrag zu einem Client-Server-Protokoll, bei dem Hosts mit einem oder mehreren Servern verbunden sind, die Tools, Prompts und Ressourcen offenlegen — dieselbe Grenze, die schrittweise in MCP Server in Go beschrieben wird. LangChain und LlamaIndex passen sich hier gut als Orchestrierungs-Bibliotheken an: LangChain konzentriert sich auf eine vorgefertigte Agenten-Architektur und Integrationen, während LlamaIndex sich auf kontexterweiterten Datenzugriff, Query-Engines und Workflows konzentriert.
Die Routing-Schicht existiert, weil „welches Modell?“ nie die einzige Frage ist. Sie brauchen auch Antworten auf „welcher Provider-Pfad, welcher Tenant, welches Budget, welche Latenzklasse und welches Fallback?“. LiteLLM ist nützlich, weil seine offiziellen Dokumentationen erfrischend konkret sind: gewichtete Auswahl, least-busy, latenzbasiertes, kostengestütztes Routing und begrenzte Failovers sind alle erstklassige Muster. OpenClaw erweitert das Routing nach oben in Kanal- und Agenten-Isolation, während Hermes es nach unten in Modell-Slots für Haupt- und Hilfsarbeiten wie Zusammenfassung, Kontextkompression und MCP-Tool-Routing erweitert. Das ist das richtige mentale Modell: Der Router wählt mehr als ein Modell aus, er wählt eine Ausführungsbahn.
Die Observability-Schicht ist das, was verhindert, dass Architektur in Folklore umschlägt. OpenTelemetry gibt Ihnen die Trace-Abstraktion. LangSmith gibt Ihnen End-to-End-Sichtbarkeit über LLM-Anwendungsschritte und unterstützt Cloud-, Hybrid- und Self-Hosted-Deployments. OpenLIT bietet Ihnen OpenTelemetry-native AI-Beobachtbarkeit mit Zero-Code- und manuellen Instrumentierungsoptionen, einschließlich Unterstützung für LLMs, Agent-Frameworks, Vektordatenbanken und GPUs. Für Produktionsmetriken, Traces und SLO-Muster über Inferenz- und Agent-Workflows hinweg, siehe Observability for LLM Systems. Wenn Ihr Assistent keinen Trace pro Anfrage, keinen Span pro Modellaufruf und keine Ereignisgeschichte für die Tool-Ausführung hat, haben Sie noch keine echte Architektur. Sie haben nur Vibes.
Erfassen, anreichern, antworten
Die Sequenz, die in echten Systemen immer wieder auftaucht, ist: Erfassen -> Anreichern -> Antworten -> Aufzeichnen. Verschiedene Frameworks verpacken es unterschiedlich, aber der Fluss ist stabil genug, um als Rückgrat behandelt zu werden.
sequenceDiagram
participant U as User or Channel
participant G as Gateway or UI
participant R as Router
participant M as Memory and Retrieval
participant L as LLM
participant T as Tools or MCP
participant O as Observability
U->>G: message, file, or command
G->>O: start root trace
G->>R: request + identity + session + policy
R->>M: load session state and retrieve context
M-->>R: notes, chunks, metadata
R->>L: prompt + context + tool schemas
L-->>R: answer or tool call
alt tool call
R->>T: execute tool or MCP action
T-->>R: tool result
R->>L: tool result + updated context
L-->>R: final answer
end
R->>M: persist session changes and memory candidates
R->>O: spans, metrics, eval events
G-->>U: response
Der Schritt des Erfassens ist in der Regel wichtiger, als er aussieht. OpenClaw und Hermes stellen beide ein persistierendes Gateway vor den Assistenten, weil Ingress nicht nur Texteingabe ist. Es umfasst Kanalmetadaten, Identitäten, Autorisierung, Sitzungsgrenzen, Direktnachrichten, Gruppen, Cron-Ticks und Delivery-Semantik. Wenn Sie diese Schicht überspringen und sich auf eine rohe Chat-Widget-Abstraktion verlassen, werden Sie sie am Ende trotzdem als ad-hoc Middleware nachrüsten.
Der Schritt des Anreicherns ist der Ort, an dem reife Systeme von Spielzeug-Demos abweichen. OpenAI Retrieval und File Search machen Retrieval durch Vektorspeicher und Suchaufrufe explizit. LlamaIndex formalisiert dasselbe Muster durch Datenkonnektoren, Indizes, Query-Engines und Workflows. Hermes geht noch weiter, indem er das Modellportfolio in Haupt- und Hilfs-Slots aufteilt und Arbeiten wie Kompression, Zusammenfassung und Routing an kleinere oder spezialisierte Modelle auslagert. Das ist ein Designmuster, das sich zu stehlen lohnt: Verwenden Sie Ihre teuersten Modell-Tokens nicht für Hausarbeit.
Der Schritt des Antwortens ist nicht „Text generieren“. Es ist „den aktuellen Loop schließen“. Wenn das Modell direkt antworten kann, tut es das. Wenn es ein Tool braucht, gibt es eine strukturierte Anfrage aus. Anthropics Tool-Use-Vertrag und OpenAIs Function-Calling-Leitfaden machen dies explizit. Der Grund, warum das architektonisch wichtig ist, liegt darin, dass Outputs nun sowohl Sprache als auch Steuerungsfluss enthalten. Ihr Response-Objekt ist zum Teil Prosa und zum Teil Runtime-Plan.
Der Schritt des Aufzeichnens ist der Ort, an dem Konsistenzsemantik auftaucht. Pinecone trennt Schreib- und Lesepfade und verarbeitet Schreibvorgänge nach dauerhafter Bestätigung. Hermes Memory wird als eingefrorener Snapshot pro Sitzung injiziert, um Prefix-Cache-Leistung zu erhalten, was bedeutet, dass neue Schreibvorgänge nicht automatisch im aktuellen Sitzungsprompt erscheinen. OpenClaws Dreaming-System fördert nur überprüfte, begründete Kandidaten in MEMORY.md, und es ist opt-in und nicht immer aktiv. Die praktische Lektion ist, dass Speicher selten wirklich Read-After-Write über jede Schicht hinweg ist. Sie müssen für gestaffelte Sichtbarkeit designen.
OpenClaw und Hermes als Referenzsysteme
OpenClaw und Hermes sind nützliche Referenzfälle, weil sie nicht nur Wraps um eine Provider-API sind. Beide präsentieren einen Assistenten als ein lang laufendes System mit Gateways, Sitzungen, Tools, Speicher und mehreren Modell-Backends.
| Architektur-Aspekt | OpenClaw Zuordnung | Hermes Zuordnung |
|---|---|---|
| Ingress und Oberflächen | Selbst gehostetes Gateway, das Chat-Apps und Kanaloberflächen verbindet | Ein einzelnes Hintergrund-Messaging-Gateway, das viele externe Plattformen verbindet |
| Orchestrierung | Gateway-zentrierte Control Plane für Kanäle und KI-Interaktionen | AIAgent-Schleife, die Prompt-Zusammenstellung, Provider-Auswahl, Tool-Dispatch, Wiederholungen und Failover handhabt |
| Routing | Multi-Agent-Routing bindet eingehenden Traffic an isolierte Agenten mit separaten Workspaces und Sitzungen | Haupt- und Hilfs-Modell-Slots trennen Kern-Reasoning von Kompression, Zusammenfassung, Genehmigungen und MCP-Routing |
| Speicher | Dateibasierter Speicher plus optionaler aktiver Speicher und Hintergrund-Dreaming-Promotion | MEMORY.md und USER.md als eingefrorener Sitzungssnapshot injiziert, plus externe Speicherprovider |
| Tooling und Erweiterung | Integrierte Tools, Session-Tools, Provider-Plugins, benutzerdefinierte und selbst gehostete Endpunkte | 40+ Tools, integrieter MCP-Client, Toolsets, Skills und Memory-Provider-Plugins |
Diese Zuordnung basiert auf den offiziellen OpenClaw- und Hermes-Dokumentationen und Repos. OpenClaw dokumentiert eine Gateway-Architektur, Multi-Agent-Routing, Unterstützung für benutzerdefinierte und selbst gehostete Provider einschließlich vLLM und Ollama, optionalen aktiven Speicher und Dreaming-basierte Promotion. Hermes dokumentiert ein Messaging-Gateway, eine zentrale AIAgent-Schleife, Haupt- und Hilfs-Modell-Slots, integrierten Speicher und native MCP-Integration.
Meine leicht opinionierte Lesart ist, dass beide Systeme das gleiche architektonische Argument in verschiedenen Akzenten machen. OpenClaw ist stark gateway-first. Hermes ist stark agent-loop-first. Aber beide lehnen die flache Idee ab, dass ein Assistent nur „Prompt plus Modell“ ist. Sie modellieren Kanäle, Identitäten, Speichersemantik, Tool-Oberflächen und Backend-Heterogenität als erstklassige Anliegen. Das ist genau das, was eine Produktionsarchitektur tun sollte.
Ein praktischer Hybrid-Stack, inspiriert von beiden Systemen, sieht so aus:
edge:
gateway: hermes or openclaw
routing:
proxy: litellm
policy: latency and budget aware
tenancy: session and channel scoped
llm:
primary: openai responses or anthropic messages
local_fallback: vllm
local_dev: ollama or llama.cpp
memory:
session: sqlite or postgres
semantic: pgvector or weaviate
embeddings: openai embeddings or ollama embeddings
tools:
contract: json schema tools plus mcp
examples: filesystem, browser, web search, internal APIs
observability:
traces: opentelemetry
ai_dashboards: openlit or langsmith
evals: openai evals plus app-specific regression sets
Dieser Stack ist ein durchdachtes Deployment-Muster und kein vom Hersteller vorgeschriebenes Blueprint. Es funktioniert, weil die offiziellen Schnittstellen übereinstimmen: OpenAI und Anthropic bieten tool-orientierte APIs, vLLM und llama.cpp emulieren Provider-ähnliche Endpunkte, Ollama handhabt lokale Modelle und Embeddings, MCP standardisiert externe Tools, LiteLLM handhabt Routing und Failover, und OpenTelemetry-kompatible Plattformen können den gesamten Pfad tracken.
Muster, Tabellen und Tradeoffs
Es gibt einige wiederkehrende Assistentenmuster, die es wert sind, benannt zu werden. Ein verwaltetes Assistentensystem behält den Großteil der Runtime innerhalb von Provider-APIs. Ein Retrieval-first-Assistent behandelt Speicher und Suche als Hauptunterscheidungsmerkmal. Ein Tool-first-Assistent verhält sich eher wie ein Operator als wie ein Chatbot. Ein Gateway-Assistent priorisiert den immer verfügbaren Zugriff über Messaging-Oberflächen. Ein Spezialisten-Mesh zerlegt die Arbeit in mehrere Agenten oder Routen. Offizielle Dokumentationen von OpenAI, Anthropic, LlamaIndex, LiteLLM, OpenClaw und Hermes unterstützen Versionen dieser Muster, auch wenn sie sie unterschiedlich benennen.
| Muster | Optimierung für | Bestes Einsatzgebiet | Versteckte Kosten |
|---|---|---|---|
| Verwalteter Assistent | Geschwindigkeit der Lieferung | Interne Copiloten und Support-Bots | Provider-Lock-in und weniger Kontrolle über Runtime-Details |
| Retrieval-first-Assistent | Fundierte Antworten auf eigenes Daten | Dokumente, Support, Wissensarbeit | Retrieval-Qualität wird zum eigentlichen Produkt |
| Tool-first-Assistent | Aktion statt Konversation | Ops-Workflows, Datenextraktionen, Automationen | Seiteneffekte, Wiederholungen und Genehmigungen werden zu Kernanliegen |
| Gateway-Assistent | Ubiquitären Zugriff | Persönliche und Team-Assistenten über Chat-Oberflächen hinweg | Komplexität bei Identität, Sitzung und Sicherheit |
| Spezialisten-Mesh | Arbeitsteilung | Komplexe Workflows mit echten Eigentums-Grenzen | Schwereres Debugging, Orchestrierung und Eval-Design |
Diese Mustertabelle ist eine Synthese aus den Provider-Dokumentationen, Framework-Dokumentationen und Referenzsystemen und keine Behauptung eines einzelnen Anbieters.
| Optionsform | Typische Komponenten | Stärke | Schwäche |
|---|---|---|---|
| Verwaltet | OpenAI Responses oder Anthropic Managed Agents, gehostete File Search oder Vektorspeicher | Schnellster Weg, weniger bewegliche Teile, gehostete Tools | Geringste Kontrolle über Datenpfad und Runtime-Semantik |
| Hybrid | Provider-API plus selbst gehosteter Router und Vektorspeicher | Gutes Gleichgewicht aus Geschwindigkeit und Kontrolle | Mehr Verträge zu pflegen |
| Selbst gehostet | vLLM oder llama.cpp oder Ollama, MCP, selbst gehostete Vektor-DB, OTel | Starke Datenschutz- und Deployment-Kontrolle | Höchster Ops-Aufwand, Hardware- und Tuning-Overhead |
Tabellenhinweise: OpenAI gehostete File Search ist ein verwaltetes Tool, Anthropic bietet einen verwalteten Rahmen, Pinecone ist ein verwalteter Vektordienst, während vLLM, llama.cpp, Ollama, pgvector, Weaviate, Milvus, LangSmith selbst gehostet und OpenLIT alle selbst verwalteten oder hybriden Betrieb in unterschiedlichem Maße unterstützen.
| Vektorspeicher | Form | Warum Teams ihn wählen | Achtung |
|---|---|---|---|
| Pinecone | Verwalteter Vektordienst | Starke operationale Einfachheit und skalierbare verwaltete Architektur | Externe Abhängigkeit und verwaltete Service-Ökonomie |
| Weaviate | Open-Source Vektordatenbank | Vektor plus invertierte Indizes und flexible Index-Wahl | Mehr Cluster-Tuning als ein nur gehosteter Pfad |
| pgvector | Postgres-Erweiterung | Vektoren mit relationalen Daten und bestehendem SQL-Stack behalten | Nicht der beste Fit für jede hochskalierte ANN-Arbeitslast |
| Milvus | Verteilte Vektordatenbank | Zweckgebundenes Skalieren und Ökosystem um verwalteten Zilliz Cloud | Noch eine spezialisierte Datastore zu betreiben |
Tabellenhinweise: Pinecone dokumentiert eine verwaltete Control Plane und regionale Data Planes. Weaviate dokumentiert Vektor- und invertierte Indizes mit mehreren Vektor-Index-Typen. pgvector fügt Postgres exakte und approximative Nearest-Neighbor-Suche hinzu. Milvus positioniert sich als Open-Source, hochperformante, skalierbare Vektordatenbank, mit Zilliz Cloud als verwalteter Option.
| LLM-Option | Schnittstellenstil | Beste bei | Achtung |
|---|---|---|---|
| OpenAI Responses | Zustandsbehaftete Responses plus integrierte Tools | Schneller Start, gehostete Tools, strukturierte Loops | Sie erben plattformspezifische Abstraktionen |
| Anthropic Messages | Direkter Modellzugriff mit explizitem Tool-Use-Vertrag | Klare Tool-Grenzen und gute Kontrolle in benutzerdefinierten Loops | Mehr Runtime ist Ihre Verantwortung, es sei denn, Sie verwenden Managed Agents |
| vLLM | OpenAI-kompatibles und Anthropic-kompatibles selbst gehostetes Serving | Hochdurchsatz selbst gehostete Inferenz | Echte Infrastruktur- und Modell-Serving-Arbeit |
| Ollama | Einfache lokale Modell- und Embedding-Runtime | Lokale Entwicklung und kleine selbst gehostete Stacks | Nicht dieselbe Klasse von Serving-Systemen wie ein getunter verteilter Runtime |
| llama.cpp | Leichter lokaler Server mit provider-kompatiblen Routen | Edge, CPU-first, eingeschränkte Umgebungen | Sie tun mehr manuelles Tuning und Capability-Matching |
Tabellenhinweise: OpenAI dokumentiert Responses als seine fortschrittliche Schnittstelle für zustandsbehaftete Responses und integrierte Tools. Anthropic dokumentiert die Messages API und den Tool-Use-Vertrag separat von Managed Agents. vLLM bietet einen OpenAI-kompatiblen Server plus Anthropic Messages API-Unterstützung. Ollama dokumentiert lokale Embedding- und Modell-Workflows. llama.cpp dokumentiert OpenAI-kompatible Chat-, Response- und Embedding-Routen plus Anthropic-kompatible Chat-Completions.
| Einschränkung oder Tradeoff | Bias zu verwaltet | Bias zu selbst gehostet | Praktische Minderung |
|---|---|---|---|
| Latenz | Oft bessere erste Iteration und weniger lokale Tuning-Aufgaben | Kann gewinnen, wenn Modell und Daten colocated und warm gehalten werden | Verwenden Sie Routing-Tiers, Hot-Caches und kleinere Hilfsmodelle |
| Kosten | Einfach zu starten, variabel bei Token-Skala | Bessere Amortisation bei stabiler Auslastung | Messen Sie echten Traffic, bevor Sie nach Instinkt optimieren |
| Datenschutz und Residency | Einfacher für nicht-sensitive Daten | Stärkere Kontrolle für sensitive und regulierte Flows | Verwenden Sie Hybrid-Grenzen und behalten Sie nur das, was sich bewegen muss |
| Konsistenz | Gehostete Tools haben immer noch gestaffelte Sichtbarkeitssemantik | Selbst gehostete Speicher-Pipelines stufen und fördern Daten auch | Definieren Sie Read-After-Write-Regeln explizit pro Schicht |
| Skalierung | Weniger Control-Plane-Schmerz | Bessere Anpassung für stabile, spezialisierte Workloads | Verwenden Sie Batching, Queuing und isolierte Tenants |
| Debuggbarkeit | Leicht, undurchsichtige Provider-Internals zu verpassen | Leicht, in selbstgemachter Komplexität zu ersaufen | Tracken Sie jede Anfrage und evaluieren Sie jede Route |
Diese Tradeoff-Matrix ist eine architektonische Inferenz aus den offiziellen Dokumentationen, kein Vendor-Benchmark. Die Konsistenzzeile ist wichtiger, als viele Blog-Posts zugeben: Pinecone trennt Schreib- und Lesepfade, Hermes friert Speicher in Sitzungsstart-Prompts ein, und OpenClaw fördert dauerhaften Speicher durch gestaffelte Überprüfung. Das bedeutet, dass „Speicher aktualisiert“ und „Speicher sichtbar für die aktuelle Antwort“ oft unterschiedliche Wahrheiten sind.
Fehlermodi und Minderungen
Die meisten Assistenten scheitern nicht, weil das Basismodell „schlecht“ ist. Sie scheitern, weil das umgebende System das Modell anlügt, es den richtigen Kontext vorenthält, Tools driftieren lässt oder Debugging unmöglich macht.
| Wo es bricht | Typisches Symptom | Übliche Ursache | Minderung |
|---|---|---|---|
| Prompt-Zusammenstellung | Zuversichtlich, aber ungenauer Antwort | Zu viel irrelevanter Kontext, schlechte Sortierung | Budgetieren Sie Kontext, reranken, halten Sie Schlüsselfakten oben |
| Retrieval | Richtiger Ton, falsche Fakten | Schlechtes Chunking, veralteter Index, schwache Filter | Evaluieren Sie Retrieval separat, fügen Sie Metadatenfilter und hybride Suche hinzu |
| Tool-Grenze | Falsche oder doppelte Aktion | Lose Schemas, Wiederholungen ohne Idempotenz | Enge Schemas, Idempotenz-Schlüssel, Genehmigungstore |
| Routing | Wild inkonsistentes Verhalten pro Anfrage | Kosten- oder Latenz-Routing ohne Qualitätskontrollen | Fügen Sie Sticky Sessions und pro-Route-Evals hinzu |
| Speicher | Veraltete oder vergiftete Abrufe | Über-eifrige Schreibvorgänge, schwache Überprüfung, Cross-Session-Leckage | Trennen Sie Arbeits- und Dauer-Speicher, überprüfen Sie Promotionen |
| Observability | Keine Ahnung, was passiert ist | Fehlende Traces oder keine Span-Granularität | Emittieren Sie Root- und Subspans für Retrieval, Modell und Tool-Aufrufe |
| Halluzinationskontrolle | Plausible, aber nicht unterstützte Behauptungen | Schwache Grounding oder keine Validierungsphase | Referenz-Dokument-Validierung, Selbstkonsistenz-Checks, Eval- Tore |
Die Evidenzbasis für diese Tabelle ist breit, aber konsistent. Anthropics Tool-Dokumente machen klar, dass Tool Use eine Vertragsgrenze ist. OpenAI Guardrails umfasst Halluzinations-Erkennung gegen eine Referenz-Wissensdatenbank via File Search. SelfCheckGPT zeigt, dass Selbstkonsistenz über Samples hinweg helfen kann, nicht unterstützte Behauptungen zu erkennen. Die „Lost in the Middle“-Ergebnisse und Anthropics Kontextrichtlinien verstärken dieselbe operationale Lektion: Mehr Tokens entfernen nicht die Notwendigkeit der Kontextkuratierung.
Die bevorzugte Minderungs-Stack könnte langweilig und repetitiv sein: Tracken Sie jede Anfrage, versionieren Sie Prompts, evaluieren Sie Retrieval unabhängig, halten Sie Tools idempotent und führen Sie Regression-Evals durch, bevor Sie Routen oder Speicher-Richtlinien ändern. OpenAIs Evals-Dokumente und Repo sind blunt darüber, warum: Ohne Evals ist es schwierig und zeitaufwändig zu verstehen, wie Modell- oder Prompt-Änderungen Ihren Use Case beeinflussen. Das gilt genauso für Router und Retrieval wie für Prompts.
Weiterführende Literatur
Wenn Sie tiefer einsteigen möchten, sind dies die nützlichsten Primärquellen, die Sie beim Entwurf oder Review einer Assistenten-Architektur offen halten sollten.
-
OpenAI: Responses Overview, Function Calling, Using Tools, Retrieval, File Search, Evals und MCP für Remote-Tool-Server.
-
Anthropic: API Overview, Tool Use, den Tool-Use-Vertrag, Managed Agents, Context Windows und den MCP-Connector.
-
MCP selbst: Die Architecture Overview und Specification sind es wert, direkt gelesen zu werden, weil sie Hosts, Clients, Server, Tools, Prompts, Ressourcen, Transports und Capability-Negotiation sauber erklären.
-
Frameworks und Routing: LangChain Overview, LlamaIndex Kontext-Augmentations-Dokumente, LiteLLM Routing-Dokumente, LangSmith Observability-Dokumente.
-
Selbst gehostete Runtimes und Assistentensysteme: vLLM, llama.cpp Server, Ollama Embeddings, OpenClaw Dokumente und Repo, Hermes Dokumente und Repo.
-
Speicher und Observability: Pinecone, Weaviate, pgvector, Milvus, OpenTelemetry, OpenLIT.
-
Forschungsarbeiten: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, Lost in the Middle und SelfCheckGPT.