Zum Inhalt

LiteLLM Routing

Stand: 2026-05-26

Diese Seite ergänzt die Detailseite Modellrouting um eine schnelle Architektur- und Betriebssicht für LiteLLM.

Ziel

LiteLLM ist der zentrale OpenAI-kompatible Router für OpenCode und Open WebUI. Die Inferenz läuft auf Ollama/GB10; LiteLLM liefert Aliase, Virtual Keys, Logging und stabile Frontend-Endpunkte.

Routingdiagramm

flowchart LR
  subgraph CLIENTS["Clients"]
    OC["OpenCode\nDefault: agent-stable"]
    OW["Open WebUI\nDefault: agent-stable"]
  end

  subgraph NPM["NPM Direct-IP Canary"]
    FQDN["https://litellm.lanstyle.de/v1\n-> 10.222.70.20:4000"]
  end

  subgraph LIT["LiteLLM"]
    ARCH["lanstyle/architect"]
    STABLE["lanstyle/agent-stable"]
    FAST["lanstyle/fast"]
    AGENT["lanstyle/agent\nexperimental"]
    EMB["lanstyle/embed"]
  end

  subgraph GB10["Ollama / GB10"]
    GPT["gpt-oss:120b"]
    QCN["qwen3-coder-next:latest"]
    Q36["qwen3.6:35b-a3b"]
    NOMIC["nomic-embed-text:latest"]
  end

  OC --> FQDN
  OW --> FQDN
  FQDN --> LIT
  ARCH --> GPT
  STABLE --> QCN
  FAST --> QCN
  AGENT --> Q36
  EMB --> NOMIC

Produktive Defaults

Einsatz Empfohlener Alias Begründung
OpenCode Standardarbeit lanstyle/agent-stable stabiler sichtbarer Content, gutes Tool-/Coding-Verhalten
Open WebUI Standardchat lanstyle/agent-stable zuverlässiger als lanstyle/agent
Architektur/Review lanstyle/architect GPT-OSS 120B für Qualität und Synthese
schnelle Aufgaben lanstyle/fast kurze Antworten und kleine Checks
A3B No-Think Evaluation entfernt experimenteller Alias mit think:false; nicht produktiver Default
Embeddings/RAG lanstyle/embed nomic-embed-text:latest

Experimenteller Alias

lanstyle/agent bleibt verfügbar, ist aber nicht der produktive Default. Tests gegen LiteLLM und direkt gegen Ollama zeigen, dass qwen3.6:35b-a3b ohne think:false kleine Output-Budgets im Reasoning verbraucht und dann finish=length mit leerem sichtbarem Content liefern kann.

entfernt ist der kontrollierte experimentelle Gegenversuch: gleicher Backend-Name, aber LiteLLM setzt extra_body.think=false. Der Alias ist fuer Admin-/Evaluationstests gedacht und aendert keine bestehenden Defaults.

Erster produktiver Routing-Test am 2026-05-27:

  • /v1/models zeigt entfernt korrekt an.
  • JSON-, Markdown- und Operator-Prompts liefern sichtbaren Content mit finish=stop und ohne reasoning_content.
  • Streaming liefert sichtbare Chunks und finish=stop.
  • Vier parallele kurze JSON-Requests waren erfolgreich.
  • Bewertung: fuer Admin-Evaluation geeignet; noch nicht als Operator- oder Open-WebUI-Default freigeben.

OpenCode-nahe Evaluation am 2026-05-27:

  • Kurzlebiger Eval-Key mit Zugriff auf agent-nothink, agent-stable, fast, architect und agent erzeugt.
  • Keine normalen Operator-Keys erweitert.
  • agent-nothink ueber den oeffentlichen HTTPS-Pfad erfolgreich fuer kurze Antworten, JSON, Operator Summary, Streaming und mehrteilige Session getestet.
  • Bei laengeren Infrastrukturantworten kann finish=length weiterhin auftreten, jedoch mit sichtbarem Content. Das ist ein Tokenbudget-/Antwortlaengen-Thema, nicht mehr das leere Reasoning-only-Fehlerbild.
  • Eval-Key nach Test geloescht; Nachtest lieferte 401.

Betriebsregeln

  • Frontends verwenden https://litellm.lanstyle.de/v1.
  • NPM nutzt für litellm.lanstyle.de die direkte Upstream-IP 10.222.70.20:4000.
  • Rollback-Ziel bleibt 10.0.1.243:4000.
  • Virtual Keys bleiben getrennt für OpenCode und Open WebUI.
  • Secrets bleiben in Vaultwarden und auf dem Runtime-Host, nicht im Git.