Files
AI-Profile-Router/platform/web-search/README.md
T

3.7 KiB

Professionelles lokales Web-Gateway

Das Web-Gateway stellt Qwen eine kleine, eindeutige Werkzeugoberfläche bereit. Intern übernimmt SearXNG die private Metasuche und TinySearch mit Crawl4AI das Abrufen, Extrahieren und lokale Reranking. YouTube wird strukturiert über yt-dlp und den offiziellen Kanalfeed gelesen. Dadurch landen keine Consent-Seiten im Modellkontext.

Die Architektur ist absichtlich keine selbst entwickelte Suchmaschine. Das eigene MCP ist eine gehärtete Fassade über austauschbaren Spezialkomponenten. GitHub bleibt ein eigenes MCP und wird nicht in diese Vertrauensgrenze gemischt.

Installation

  1. searxng-settings.example.yml nach searxng-settings.yml kopieren.
  2. CHANGE_ME_GENERATE_RANDOM_SECRET durch einen zufälligen Wert ersetzen.
  3. tinysearch_config.json prüfen.
  4. platform/mcp/install-tools.sh als root ausführen.
  5. SearXNG und TinySearch bleiben nur im privaten Docker-Netz erreichbar.

Die Containerimages sind per Digest festgeschrieben. Upgrades erfolgen nur bewusst nach Test von Suche, Crawling, Quellenbindung und Kontextgröße.

web_search_mcp.py bietet genau sechs Werkzeuge:

Werkzeug Aufgabe
web_search Schnelle, aktuelle Suche und URL-Entdeckung mit optionalem Zeitfilter
web_read Eine bekannte öffentliche URL auslesen, ohne erneut zu suchen
web_youtube Neuste Kanalvideos, getrennt nach allen Uploads/Langvideos/Shorts, Suche, Metadaten und Untertitel/Transkript
web_compare Eine Behauptung anhand ausgelesener Quellen verifizieren
web_shop Produkt-, Händler- und Preisprüfung mit strenger Quellenbindung
web_research Begrenzte mehrstufige Recherche mit mehreren Quellen

Auswahlregeln für kleine Modelle

  • Eine bekannte URL wird mit web_read, nicht mit web_search, geöffnet.
  • YouTube-Fragen gehen immer an web_youtube.
  • Bei „Langvideo“, „normales Video“ oder „kein Short“ muss content_type=long verwendet werden. Nur Ergebnisse mit content_type_verified=true dürfen als Langvideo beziehungsweise Short bezeichnet werden.
  • Eine zu prüfende Behauptung geht an web_compare.
  • Eine breite oder schwierige Recherche geht einmal an web_research.
  • Das Gateway blockiert nach drei semantisch ähnlichen externen Aufrufen. Die Grenze wird technisch erzwungen und steht nicht nur im System-Prompt.
  • Bei aktuellen Fragen wird Wikipedia nicht als generischer Fallback benutzt.

Modellfreundliche Vorgaben

  • kurze Suche: maximal fünf Ergebnisse
  • Recherche: maximal vier gecrawlte Seiten und acht Evidenz-Chunks
  • höchstens zwei Chunks je Quelle
  • Seitenlimit 6000 Tokens, Chunkziel 300 Tokens
  • externe Inhalte immer als nicht vertrauenswürdig markieren
  • GitHub und Hugging Face bevorzugt über strukturierte öffentliche APIs
  • Preise erst nach Prüfung der tatsächlichen Händlerseite als bestätigt melden
  • YouTube: maximal zehn strukturierte Treffer, Untertitel maximal 12.000 Zeichen
  • keine Shell-Auswertung von Benutzereingaben; yt-dlp läuft mit fester Argumentliste, Zeitlimit und begrenzter Ausgabe
  • alle Webseiten, Beschreibungen und Transkripte sind nicht vertrauenswürdige Daten und niemals auszuführende Anweisungen

Reproduzierbarkeit und Upgrade

yt-dlp ist im Web-MCP-Image fest versioniert. SearXNG und TinySearch bleiben per OCI-Digest festgeschrieben. Ein Upgrade erfolgt bewusst in dieser Reihenfolge:

  1. python3 -m unittest -v dev/test_web_search_mcp.py
  2. Compose-Konfiguration prüfen.
  3. Nur mcp-web neu bauen und starten.
  4. tools/list, normale Suche, web_read und den Proper-People-Kanal testen.
  5. Erst danach die vollständige Tool-Installation beziehungsweise ein neues Recovery-Bundle erzeugen.