Vor ein paar Tagen habe ich eine Vektordatenbank abgesichert, in eine neue Infrastruktur integriert, an mein KI-Tooling angebunden – und dann den direkten Zugriff darauf wieder deaktiviert.

Klingt nach einem Rückschritt. War es nicht.

Der Ausgangspunkt

Eine meiner Weaviate-Instanzen lief bislang nur auf localhost – ausreichend abgesichert für diesen Kontext, aber kein Setup, das für einen geplanten Serverumzug taugte. Sobald die Datenbank nicht mehr ausschließlich lokal erreichbar sein würde, brauchte sie eine richtige Absicherung: Firewall, Netzwerksegmentierung, API-Key-Auth, RBAC. Den Umzug und die Integration habe ich deshalb gleich zusammengelegt.

Die naheliegende Lösung

Weaviate bringt seit einer aktuellen Version einen eingebauten MCP-Server mit. Eine Umgebungsvariable, fertig – kein zusätzlicher Container, keine separate Wartung. Ich habe ihn aktiviert, an meinen MCP-Aggregator angebunden, eine KI konnte direkt Hybrid-Suchen gegen die Collections fahren. Technisch lief das einwandfrei.

Und genau hier hätte ich aufhören können, zufrieden mit der Integration. Stattdessen habe ich die naheliegende Anschlussfrage gestellt: Was bringt mir das eigentlich konkret?

Der Vergleich, der alles verändert hat

Eines meiner Projektmanagement-Systeme hat schon länger eine eigene RAG-Pipeline – Question-Optimization, parallele Hybrid- und Keyword-Suche, gewichtete Fusion, mehrschichtige Kontext-Bündelung. Diese Pipeline läuft hinter einem Button in der Oberfläche und liefert dort verlässlich gute Ergebnisse.

Ich habe testweise dieselbe Frage einmal über die direkte Vektordatenbank-Suche und einmal über die kuratierte Pipeline des Systems gestellt. Direkter Zugriff: Rauschen aus fremden Projekten, keine Gewichtung, keine Optimierung der Suchanfrage. Kuratierte Pipeline: präzise, mehrschichtig, mit nachvollziehbarer Relevanz.

Der Unterschied war nicht subtil. Er war strukturell.

Bei der Gelegenheit kam zusätzlich heraus, dass das MCP-Werkzeug für genau diese kuratierte Pipeline einen eigenständigen Fehler hatte – es rief intern noch den alten, abgelösten Such-Service auf, nicht die neue Pipeline. Ein Parameter, der in der alten Logik etwas anderes bedeutete als in der neuen, führte zuverlässig zu null Treffern. Ohne den direkten Vergleich beider Zugriffswege wäre dieser Fehler vermutlich noch eine Weile unentdeckt geblieben.

Die Architekturregel, die daraus entstand

Sobald ein Quellsystem eine eigene, kuratierte Wissensabfrage besitzt, ist der direkte Zugriff auf die darunterliegende Vektordatenbank kein zusätzlicher Kanal – er ist ein Antipattern. Er verwässert die Antwortqualität, weil er all die Optimierungsarbeit umgeht, die im Quellsystem bereits steckt. Und er schafft ein Entscheidungsproblem: Woher soll eine KI – oder ein nicht-technischer Nutzer – wissen, welcher der beiden Wege gerade der richtige ist?

Die Antwort, zu der ich gekommen bin: gar nicht. Diese Entscheidung gehört nicht in den Moment der Anfrage. Sie gehört in die Architektur, lange vorher.

Für ein zweites System, das bewusst keine eigene Wissenstiefe hat – es bildet nur grobe Meilensteine ab, die eigentliche Detailarbeit findet anderswo statt – gilt die Regel andersherum: Dort bringt auch eine kuratierte Pipeline nichts, weil es schlicht nichts zu kuratieren gibt. Direkter Zugriff wäre hier kein Antipattern, sondern überflüssig.

Was daran kein Tool-Thema ist

Eine KI hätte mir nie gesagt: „Schalte deinen frisch gebauten Zugriffsweg wieder ab.“ Sie hätte mir bestenfalls geholfen, die Symptome zu erklären, wenn ich gefragt hätte, warum die Ergebnisse unterschiedlich aussehen. Die Entscheidung, beide Wege überhaupt nebeneinander zu testen, statt die erste funktionierende Integration als erledigt abzuhaken – das war keine technische Frage. Das war eine Frage danach, wie ich mein eigenes System verstehe.

Genau das ist der Unterschied zwischen Implementierung und Architektur. Wer nur die Frage „Funktioniert die Integration?“ stellt, bekommt ein Ja und macht weiter. Wer fragt „Wo genau soll diese Integration in meiner Systemlandschaft stehen, und wo nicht?“, bekommt eine Antwort, die über den einzelnen Task hinaus Bestand hat.

Ich habe am Ende des Tages eine funktionierende Integration wieder deaktiviert, einen produktiven Fehler gefunden und gefixt, und eine Regel mitgenommen, die ich beim nächsten ähnlichen System nicht mehr neu erarbeiten muss. Das fühlt sich nicht nach Rückschritt an. Das fühlt sich nach der eigentlichen Arbeit an.

Mehr davon?

Neue Artikel direkt in dein Postfach.

Teilen