# Das Modell festschreiben, das Agenten ausführen — planen auf einem, ausführen auf einem anderen

> Erzwingen Sie ein bestimmtes Modell für Agentenläufe und trennen Sie den Plan-Modus von der Ausführung: Ingress-Allowlist + Catch-all-Modellzuordnung + Plan-Modus-Skriptwechsel, sodass Entwickler einfache Aufgaben nicht auf Opus routen können.

Kanonisch: https://www.gatellm.io/de/use-cases/enforce-model-policy/

Neutralisieren Sie die Modellwahl auf der Client-Seite und trennen Sie dann den Plan-Modus von der Ausführung, sodass ein starkes Modell plant und ein günstiges Modell ausführt.

## Worüber die Community tatsächlich klagt
„Unsere Entwickler stellen Claude Code auf Opus, um ein Changelog zusammenzufassen“, „jeder hat ein anderes Modell in den Einstellungen und wir können nicht sehen, wer was ausgegeben hat“, „wir haben eine Client-Richtlinie versucht, aber jeder kann sie einfach wieder zurückändern“.
Die Modellwahl ist eine Kostenentscheidung, keine Entwicklerpräferenz — sie muss am Gateway durchgesetzt werden, wo die Anfrage tatsächlich landet.

## Wie GateLLM es macht
Drei Ebenen, keine überspringbar: Die Modell-Allowlist der Key-Gruppe (Ingress-Gate) weist nicht autorisierte Modellnamen mit 403 zurück; eine Catch-all-Modellzuordnung von „*“ schreibt, was auch immer der Client anfragt, auf das sanktionierte Modell um; und ein Before-Slot-Skript hält den Plan-Modus auf dem starken Modell und wechselt beim Verlassen auf das Ausführungsmodell.
Bypass-Anfragen — wie die Generierung von Unterhaltungstiteln in Claude Code — tragen keinen Plan-Marker und fallen daher auf das günstige Ausführungsmodell durch. Genau das gewünschte Verhalten „kein Opus für eine Zusammenfassung“.

## 5 Hebel, die tatsächlich wirken
- Ingress-Gate: Die Modell-Allowlist der Key-Gruppe weist jeden nicht autorisierten Modellnamen vor dem Routing zurück
- Catch-all-Zuordnung: von „*“ → auf das sanktionierte Modell normalisiert jeden angefragten Namen auf ein Modell
- Plan-/Ausführungstrennung: Ein Before-Slot-Skript liest die Plan-Modus-Marker und wechselt das Routing erst nach dem Verlassen des Plan-Modus
- Transparent: gewechselte Anfragen erhalten ein SW-Tag in den Logs, sodass das reale Landemodell jeder Anfrage auditierbar ist
- Hot-Reload: Zuordnungen und Regeln wirken sofort — kein Neustart, kein Rollout pro Entwickler

## FAQ
### Warum nicht eine deklarative switch-route-Regel für den Plan-Modus verwenden?
switch-route-Prädikate machen nur strukturelle Existenzprüfungen und Gleichheit kleiner Werte — sie lesen nie den Inhalt eines String-Werts, was große Bodies auf der Festplatte hält. Der Plan-Modus-Marker steht im Nachrichtentext, daher braucht er das Before-Slot-Skript; strukturelle Prüfungen (Bild → Vision-Modell) sind die Domäne von switch-route.

### Kann ein Client Opus trotzdem wählen, indem er seine eigenen Einstellungen ändert?
Nein. Das Ingress-Gate liefert 403 für jeden Modellnamen außerhalb der Allowlist, und die Catch-all-Zuordnung normalisiert, was übrig bleibt, auf das sanktionierte Modell. Die Modellwahl ist keine Client-Entscheidung mehr, sobald die Anfrage das Gateway erreicht.

### Das Skript scheint keine Wirkung zu haben und die Logs zeigen keinen Fehler?
Wahrscheinlich ein Skript-OOM: Jedes Skript läuft in seiner eigenen QuickJS-Sandbox mit 64-MB-Heap-Limit (SCRIPT_MEMORY_LIMIT_MB). Bei Speichermangel verwirft der Standardmodus „loggen und fortfahren“ stillschweigend alle Seiteneffekte — einschließlich useModel —, sodass das Routing einfach nicht wechselt. Die Tool-Definitionen von Claude Code verbrauchen zuerst Speicher; erhöhen Sie das Limit (ein Neustart ist erforderlich).

- [Vollständige Anleitung: Modellwechsel nach Plan-Modus (Dokumentation)](https://docs.gatellm.io/en/howto/script-switch-model-by-plan-mode)

## Verwandte Anwendungsfälle
- [Keine Modellwahl beim Client: Das Gateway staffelt automatisch](https://www.gatellm.io/de/use-cases/automatic-model-tiering.md)

## Verwandt
- [Startseite](https://www.gatellm.io/de/index.md)
- [Preise](https://www.gatellm.io/de/pricing.md)
- [Kostenrechner](https://www.gatellm.io/de/calculator.md)
- [Über uns](https://www.gatellm.io/de/about.md)
- [Demo buchen](https://www.gatellm.io/de/demo.md)
- [FAQ](https://www.gatellm.io/de/faq.md)
- [AI-Gateways vergleichen](https://www.gatellm.io/de/compare.md)
- [LiteLLM vergleichen](https://www.gatellm.io/de/compare/litellm.md)
- [OpenRouter vergleichen](https://www.gatellm.io/de/compare/openrouter.md)
- [Alibaba Cloud AI Gateway vergleichen](https://www.gatellm.io/de/compare/alibaba-cloud.md)
- [Azure API Management vergleichen](https://www.gatellm.io/de/compare/azure-apim.md)
- [Apigee vergleichen](https://www.gatellm.io/de/compare/apigee.md)
- [Cloudflare AI Gateway vergleichen](https://www.gatellm.io/de/compare/cloudflare.md)
- [Kong AI Gateway vergleichen](https://www.gatellm.io/de/compare/kong.md)
- [Portkey vergleichen](https://www.gatellm.io/de/compare/portkey.md)
- [LiteLLM vs Kong AI Gateway](https://www.gatellm.io/de/compare/litellm-vs-kong.md)
- [LiteLLM vs OpenRouter](https://www.gatellm.io/de/compare/litellm-vs-openrouter.md)
- [LiteLLM vs Portkey](https://www.gatellm.io/de/compare/litellm-vs-portkey.md)
- [Anwendungsfälle](https://www.gatellm.io/de/use-cases.md)
- [LLM-Kosten senken](https://www.gatellm.io/de/use-cases/reduce-cost.md)
- [Hochverfügbarkeit](https://www.gatellm.io/de/use-cases/high-availability.md)
- [Multi-Tenant-Isolation](https://www.gatellm.io/de/use-cases/multi-tenant.md)
- [Compliance & Audit](https://www.gatellm.io/de/use-cases/compliance-audit.md)
- [Fehlerbehebung nach Symptom](https://www.gatellm.io/de/use-cases/troubleshooting.md)
- [Gemischter Multi-Vendor-Modellstack](https://www.gatellm.io/de/use-cases/mixed-model-stack.md)
- [KI im Office selbst hosten](https://www.gatellm.io/de/use-cases/self-hosted-office-ai.md)
- [Token-Nutzung: Transparenz & Zuordnung](https://www.gatellm.io/de/use-cases/token-ops.md)
- [Token-FinOps: KI-Kosten zuordnen & steuern](https://www.gatellm.io/de/use-cases/token-finops.md)
- [MCP-Tool-Governance](https://www.gatellm.io/de/use-cases/mcp-tool-governance.md)
- [Websuche für jedes Modell](https://www.gatellm.io/de/use-cases/web-search-grounding.md)
- [Multi-Key-Rotation & Standby](https://www.gatellm.io/de/use-cases/multi-key-pooling.md)
- [Zugangskontrolle für verbundene Clients](https://www.gatellm.io/de/use-cases/client-admission-control.md)
- [Keine Modellwahl im Client](https://www.gatellm.io/de/use-cases/automatic-model-tiering.md)
- [Ein Protokoll, jedes Modell](https://www.gatellm.io/de/use-cases/one-protocol-any-model.md)
- [Office / Microsoft 365 Add-in](https://www.gatellm.io/de/office-addin.md)
- [Glossar](https://www.gatellm.io/de/glossary.md)
- [Modellkatalog](https://www.gatellm.io/de/models.md)
- [SDK- & Framework-Integrationen](https://www.gatellm.io/de/integrations.md)
- [KI-Coding-Agents & Harnesses](https://www.gatellm.io/de/coding-agents.md)
- [Sicherheit & Compliance](https://www.gatellm.io/de/security.md)
