2026 OpenClaw Frontend-Praxis:
Remote Mac: Gateway auf /v1/models abstimmen, OpenAI-kompatible Clients führen — Monorepo-Smoke-Checkliste
Zielgruppe: Teams, die OpenAI-kompatible SDKs gegen ein eigenes Gateway fahren und jedes Release mit einem belastbaren GET /v1/models absichern. Auf einem gemieteten Remote Mac spiegeln Sie TLS, DNS und lokale jq-Pipelines ohne Überraschungen durch Laptop-Schlafmodus. Dieser Leitfaden liefert Matrix, Runbook, Shell-Parameter und PR-Schnittstelle — bewusst ohne Deploy-Hook-Fokus. Vertiefung: Import Maps ESM, Service-Worker-Abnahme; Übersicht Technik-Blog.
01 Motivation und Nutzen
Frontend- und Automatisierungs-Teams brauchen eine stabile Modellliste, bevor Chat- oder Batch-Jobs starten. Das Gateway muss dieselbe Pfadsemantik wie die OpenAI-Referenz liefern, sonst brechen Dropdowns, Feature-Flags und Kosten-Schätzungen. Ein Remote Mac hält Apple-Silicon-Toolchains, Homebrew und curl neben OpenClaw-Skripten in einem sauberen Pfad.
Die Smoke-Checkliste bindet Monorepo-Ordner ein, damit Änderungen an packages/api-gateway und apps/frontend gemeinsam bewertet werden — ohne erneutes Thema Hosting-Hooks.
02 Typische Brüche vor Produktion
- Pfadversatz: Der Reverse-Proxy mappt
/v1/chat/completions, lässt aber/v1/modelsaus — der SDK-Healthcheck scheitert leise. - Alias-Drift: Marketing-Namen im UI weichen von den Gateway-IDs ab; Tickets entstehen, obwohl das Backend korrekt antwortet.
- Secret- und Region-Mix: Ein Schlüssel aus der falschen Umgebung liefert leere Listen oder
401, während andere Endpunkte noch gecacht wirken.
03 Routing- und Alias-Matrix
| Konfiguration | Erwartung | Risiko | Empfehlung |
|---|---|---|---|
OPENAI_BASE_URL=https://host/v1 |
SDK hängt Pfade an /v1 |
Doppeltes /v1/v1 bei falscher Strip-Regel |
Strip-Prefix im Ingress testen, dann SDK-Feld dokumentieren |
| Gateway-only Auth | Bearer spiegelt upstream | Fehlende Weiterleitung von Authorization |
Header-Allowlist im Proxy explizit setzen |
| Alias-Tabelle im Repo | UI-IDs gleichen data[].id |
Alte JSON-Datei lokal gecacht | Versionierte YAML plus CI-Diff gegen Live-Liste |
Schwellenwerte für den ersten Smoke: mindestens eine sichtbare Modell-ID, höchstens zwei Sekunden DNS-Wiederholung, drei parallele Smoke-Instanzen maximal, damit keine Quote kollabiert.
04 Runbook in fünf Besitzer-Schritten
- Runner vorbereiten: SSH zum Remote Mac, Repository in
~/openclaw-runs/$PR_NUMBERauschecken,node -vundjq --versionnotieren. - Gateway installieren oder aktualisieren: Paketmanager-Befehl aus dem Monorepo-Root gemäß
READMEausführen; Dienst neu starten, damit Routing-Änderungen aktiv sind. - Basis-URL setzen:
export OPENAI_BASE_URL="https://staging.example.com/v1"undexport OPENAI_API_KEYaus dem Secret-Store; keine Klartext-Keys in Shell-History. - Smoketest:
curlgegen/v1/modelsmit-H "Authorization: Bearer $OPENAI_API_KEY"; Antwort nachidsortiert ablegen. - Artefakt und PR:
models_snapshot.jsonunter.openclaw/reports/$GIT_SHA/speichern, Diff zur Vorversion anhängen und Reviewer verlinken.
Zahlen zum Festhalten: zwei unabhängige Läufe pro Staging-Build, fünf Sekunden Pause dazwischen, eine autoritative JSON-Datei je Commit.
05 curl, jq und Artefakte (HowTo)
Halten Sie die Parameter kurz und wiederholbar; passen Sie die Domain an Ihre Staging-Origin an.
#!/usr/bin/env bash
set -euo pipefail
BASE="${OPENAI_BASE_URL:-https://staging.example.com/v1}"
KEY="${OPENAI_API_KEY:?set OPENAI_API_KEY}"
curl -sS "${BASE%/}/models" \
-H "Authorization: Bearer ${KEY}" \
-H "Content-Type: application/json" \
| tee ".openclaw/reports/${GIT_SHA:-local}/models_raw.json" \
| jq '.data | map(.id) | sort'
Optional OpenClaw per OPENCLAW_RUN_ID kennzeichnen und Ausgabe mit tee -a models_probe.ndjson anreichern; so lassen sich Läufe mit anderen Frontend-Artefakten korrelieren.
06 PR-Workflow und Monorepo-Pfade
Definieren Sie in GitHub oder GitLab Pfadfilter auf packages/api-gateway/**, apps/frontend/** und packages/config/models.*. Pflicht-Check smoke-models startet das Shell-Snippet auf dem Runner; bei Grün hängt der Bot models_snapshot.json als Kommentar an.
- ▸Label:
area/modelsfür Übersicht im Board. - ▸Template: PR-Beschreibung verlangt Basis-URL, Commit-SHA und Link zum NDJSON-Log.
- ▸Merge-Regel: Kein Merge bei abweichender Modellmenge gegen die freigegebene Referenzdatei.
07 FAQ: häufige Fehlerbilder
| Symptom | Ursache | Fix |
|---|---|---|
HTTP 404 auf /v1/models |
Fehlende upstream-Route oder falscher Strip | Ingress-Regel ergänzen, Pfad mit Referenz-curl vergleichen |
Leeres data-Array |
Falscher Schlüssel oder abgelaufene Policy | Token rotieren, Scope prüfen, Response-Body loggen |
| SDK zeigt andere IDs als Dashboard | Veraltete Alias-Map im Frontend-Bundle | Build-Cache leeren, Alias-Datei versionieren, erneut smoke-testen |
Bei intermittierenden 429-Antworten Backoff verdoppeln und parallele Smokes auf einen Runner begrenzen; dokumentieren Sie die Wartezeit im PR-Kommentar.
Wenn GET /v1/models auf dem Remote Mac reproduzierbar grün ist und die Alias-Matrix zum Live-JSON passt, können OpenAI-kompatible Clients sicher auf Staging und Produktion wechseln. OpenClaw bündelt Logs und Artefakte; Hosting-Deploys bleiben ein anderes Kapitel.
Gateway-Checks mit fester Basis-URL fahren
Mieten Sie einen Mac Mini M4 für wiederholbare /v1/models-Smokes, TLS-Parität und parallele QA — ohne lokalen Laptop als Engpass. Zur Startseite, Preise und Hilfe bleiben ohne Login lesbar; Kaufen führt in den schnellen Checkout.