# Зафиксируйте модель агентов — планирование на одной, исполнение на другой

> Принудительно задайте конкретную модель для запусков агентов и разделите режим планирования и исполнение: белый список на входе + сквозное сопоставление моделей + переключение скриптом по режиму планирования, чтобы разработчики не могли направлять простые задачи в Opus.

Канонический URL: https://www.gatellm.io/ru/use-cases/enforce-model-policy/

Нейтрализуйте выбор модели на клиенте, затем разделите режим планирования и исполнение, чтобы сильная модель планировала, а дешёвая исполняла.

## На что на самом деле жалуется сообщество
«Наши разработчики переключают Claude Code на Opus, чтобы суммаризировать changelog», «у всех в настройках разные модели, и мы не видим, кто сколько потратил», «мы пробовали клиентскую политику, но любой может просто вернуть настройку обратно».
Выбор модели — это решение о затратах, а не предпочтение разработчика, — его нужно принудительно применять на шлюзе, куда запрос действительно приходит.

## Как это делает GateLLM
Три слоя, ни один нельзя пропустить: белый список моделей группы ключей (входной шлюз) отклоняет неразрешённые имена моделей с 403; сквозное сопоставление по from «*» переписывает то, что запрашивает клиент, в санкционированную модель; а скрипт в слоте before оставляет режим планирования на сильной модели и переключается на модель исполнения при выходе.
Обходные запросы — вроде генерации заголовков диалога в Claude Code — не несут маркера планирования, поэтому попадают на дешёвую модель исполнения. Это ровно то поведение «не запускайте Opus на резюме», которого вы хотели.

## 5 рычагов, которые действительно работают
- Входной шлюз: белый список моделей группы ключей отклоняет любое неразрешённое имя модели до маршрутизации
- Сквозное сопоставление: from «*» → санкционированная модель нормализует каждое запрошенное имя к одной модели
- Разделение plan/exec: скрипт в слоте before читает маркеры режима планирования и переключает маршрутизацию только после выхода из плана
- Наблюдаемость: переключённые запросы получают метку SW в логах, поэтому реальная модель каждого запроса аудируема
- Горячая перезагрузка: сопоставления и правила вступают в силу немедленно — без перезапуска и без раскатки на каждого разработчика

## FAQ
### Почему не использовать декларативное правило switch-route для режима планирования?
Предикаты switch-route выполняют только структурную проверку существования и равенство небольших значений — они никогда не читают содержимое строкового значения, что позволяет держать большие тела на диске. Маркер режима планирования живёт в тексте сообщения, поэтому нужен скрипт в слоте before; структурные проверки (изображение → vision-модель) — как раз то, где switch-route силён.

### Может ли клиент всё ещё выбрать Opus, изменив свои настройки?
Нет. Входной шлюз возвращает 403 для любого имени модели вне белого списка, а сквозное сопоставление нормализует всё оставшееся к санкционированной модели. Выбор модели перестаёт быть решением клиента в момент, когда запрос достигает шлюза.

### Скрипт, похоже, не действует, а в логах нет ошибки?
Каждый скрипт работает в собственной песочнице QuickJS с лимитом кучи 64 МБ (SCRIPT_MEMORY_LIMIT_MB). При нехватке памяти режим по умолчанию log-and-continue молча отбрасывает все побочные эффекты, включая useModel, поэтому маршрутизация просто не переключается. Определения инструментов Claude Code первыми расходуют память; увеличьте лимит (требуется перезапуск).

- [Полное руководство: переключение модели по режиму планирования (документация)](https://docs.gatellm.io/en/howto/script-switch-model-by-plan-mode)

## Связанные сценарии
- [Никакого выбора модели на клиенте: шлюз делит уровни автоматически](https://www.gatellm.io/ru/use-cases/automatic-model-tiering.md)

## Связанные страницы
- [Главная](https://www.gatellm.io/ru/index.md)
- [Тарифы](https://www.gatellm.io/ru/pricing.md)
- [Калькулятор стоимости LLM](https://www.gatellm.io/ru/calculator.md)
- [О нас](https://www.gatellm.io/ru/about.md)
- [Заказать демо](https://www.gatellm.io/ru/demo.md)
- [FAQ](https://www.gatellm.io/ru/faq.md)
- [Сравнить AI-шлюзы](https://www.gatellm.io/ru/compare.md)
- [Сравнить LiteLLM](https://www.gatellm.io/ru/compare/litellm.md)
- [Сравнить OpenRouter](https://www.gatellm.io/ru/compare/openrouter.md)
- [Сравнить Alibaba Cloud AI Gateway](https://www.gatellm.io/ru/compare/alibaba-cloud.md)
- [Сравнить Azure API Management](https://www.gatellm.io/ru/compare/azure-apim.md)
- [Сравнить Apigee](https://www.gatellm.io/ru/compare/apigee.md)
- [Сравнить Cloudflare AI Gateway](https://www.gatellm.io/ru/compare/cloudflare.md)
- [Сравнить Kong AI Gateway](https://www.gatellm.io/ru/compare/kong.md)
- [Сравнить Portkey](https://www.gatellm.io/ru/compare/portkey.md)
- [LiteLLM vs Kong AI Gateway](https://www.gatellm.io/ru/compare/litellm-vs-kong.md)
- [LiteLLM vs OpenRouter](https://www.gatellm.io/ru/compare/litellm-vs-openrouter.md)
- [LiteLLM vs Portkey](https://www.gatellm.io/ru/compare/litellm-vs-portkey.md)
- [Сценарии использования](https://www.gatellm.io/ru/use-cases.md)
- [Снижение затрат на LLM](https://www.gatellm.io/ru/use-cases/reduce-cost.md)
- [Высокая доступность](https://www.gatellm.io/ru/use-cases/high-availability.md)
- [Мультитенантная изоляция](https://www.gatellm.io/ru/use-cases/multi-tenant.md)
- [Комплаенс и аудит](https://www.gatellm.io/ru/use-cases/compliance-audit.md)
- [Диагностика по симптомам](https://www.gatellm.io/ru/use-cases/troubleshooting.md)
- [Смешанный стек моделей от разных поставщиков](https://www.gatellm.io/ru/use-cases/mixed-model-stack.md)
- [ИИ в собственном контуре внутри Office](https://www.gatellm.io/ru/use-cases/self-hosted-office-ai.md)
- [Видимость и атрибуция использования токенов](https://www.gatellm.io/ru/use-cases/token-ops.md)
- [Token FinOps: распределение и контроль затрат на ИИ](https://www.gatellm.io/ru/use-cases/token-finops.md)
- [Управление инструментами MCP](https://www.gatellm.io/ru/use-cases/mcp-tool-governance.md)
- [Веб-поиск для всех моделей](https://www.gatellm.io/ru/use-cases/web-search-grounding.md)
- [Ротация и резерв нескольких ключей](https://www.gatellm.io/ru/use-cases/multi-key-pooling.md)
- [Контроль доступа подключённых клиентов](https://www.gatellm.io/ru/use-cases/client-admission-control.md)
- [Без выбора модели на клиенте](https://www.gatellm.io/ru/use-cases/automatic-model-tiering.md)
- [Один протокол — любая модель](https://www.gatellm.io/ru/use-cases/one-protocol-any-model.md)
- [Надстройка Office / Microsoft 365](https://www.gatellm.io/ru/office-addin.md)
- [Глоссарий](https://www.gatellm.io/ru/glossary.md)
- [Каталог моделей](https://www.gatellm.io/ru/models.md)
- [Интеграции SDK и фреймворков](https://www.gatellm.io/ru/integrations.md)
- [ИИ-агенты для кодирования и harness](https://www.gatellm.io/ru/coding-agents.md)
- [Безопасность и комплаенс](https://www.gatellm.io/ru/security.md)
