Gemischter Multi-Anbieter-Modellstack: Opus plant, Qwen / DeepSeek führen aus
Pinnen Sie Topmodelle verschiedener Anbieter je Agentenrolle — Planung behält Anthropic Opus, Ausführung landet auf Qwen3.8-Max / DeepSeek V4.1 Flash, ohne Client-Änderung und mit automatischer protokollübergreifender Übersetzung.
Worüber die Community tatsächlich klagt
Claude Code durchgängig auf Claude Opus zu betreiben ist zu teuer; ein pauschaler Wechsel zu Sonnet verschlechtert Planung und Architektururteil sichtbar, und Nacharbeit wird teurer. Entwickler möchten Topmodelle anderer Anbieter (Qwen, DeepSeek) mischen, aber der Client spricht nur das Anthropic-Protokoll und claude-*-Modellnamen, und eine Konfigurationsänderung bedeutet, jede Entwicklermaschine anzufassen.
Schlimmer noch: Die Planungsschleife, die Hauptausführungsschleife und Batch-Teilaufgaben haben wirklich unterschiedliche Anforderungen an Leistungsfähigkeit vs. Preis — ein einzelner Modellwechsel beim Client kann das nicht abbilden.
Wie GateLLM es macht
GateLLM schreibt den Modellnamen identitätsbezogen nach dem Ingress-Gate und vor dem Routing um — ohne Client-Änderung. Planung und Architektururteil behalten claude-opus-5 direkt zu Anthropic; die Hauptausführungsschleife claude-sonnet-* wird auf DashScopes qwen3.8-max abgebildet; Batch-Teilaufgaben (Formatierung, Commit-Nachrichten, Retrieval-Zusammenfassungen) werden über einen OpenAI-kompatiblen Upstream auf deepseek-flash abgebildet. Die protokollübergreifende Übersetzung übernimmt das Gateway, wobei SSE-Streams und tool_call_id auf dem Hin- und Rückweg erhalten bleiben.
Regeln hängen an Zugriffsschlüsseln oder Key-Gruppen und wirken pro Team; das Egress-Gate prüft, ob das Ziel in der Allowlist der Identität liegt — eine Zuordnung zu konfigurieren ist keine Berechtigungserteilung.
5 Hebel, die tatsächlich wirken
- Identitätsbezogene Modellzuordnung: von → auf bei Zugriffsschlüsseln / Key-Gruppen, umgeschrieben nach Ingress und vor Routing; unterstützt ein einzelnes * zum Erfassen eines mittleren Segments, hot-reloaded
- Protokollübergreifende Übersetzung: Claude Code auf Anthropic, Codex / OpenAI SDK auf OpenAI, das Gateway übersetzt zu DashScope-/OpenAI-/Gemini-/Bedrock-Upstreams; :keep-alive bei langer Upstream-Inferenz, _gateway_warning bei Stream-Abbruch
- Bedingtes Routing nach Anfrage-Header: dasselbe von routet je nach X-Tenant usw. zu unterschiedlichen Zielen (exakt / Präfix / Regex / vorhanden / abwesend); bedingte Regeln zuerst, unbedingtes Fallback, First-Match-Wins — nutzbar für Canary
- Plan-Modus-Erkennung: Der Plan-Modus von Claude Code injiziert Marker „Plan mode is active“ / „Exited Plan Mode“; ein Skript, das die letzte Position vergleicht, wechselt das Routing — Planung auf Opus, Ausführung auf dem kosteneffizienten Modell
- Berechtigung und Transparenz: Das Egress-Gate prüft, ob das Ziel in der Identitäts-Allowlist liegt (Zuordnung ≠ Berechtigung); die Log-Spalte „Modell“ zeigt ein MM-Tag mit dem ursprünglichen → zugeordneten Namen beim Hovern; Statistiken und Abrechnung ordnen nach dem realen Modellnamen nach der Zuordnung zu, sodass die Kosten des gemischten Stacks auf einen Blick vergleichbar sind