Перейти к основному содержанию
Один API-ключ может дотянуться до каждой модели, на которую имеет право ваше рабочее пространство. Это удобно для консольной сессии и опасно для долгоживущего агента: агент с prompt-инъекцией, держащий неограниченный ключ, может тихо переключиться с gpt-4o-mini на самую дорогую модель, к которой у вас есть доступ, или на ту, чью обработку данных вы никогда не одобряли. Решение — список разрешённых моделей на каждый ключ. Каждый ключ несёт поле model_limits (управляемое model_limits_enabled). Когда оно включено, запрос к любой модели не из списка отклоняется на шлюзе — до того как выбран канал и до того как что-либо уйдёт к провайдеру.
Это одно ограничение на объекте ключа. Оно сочетается со списком разрешённых IP ключа, лимитом расходов, сроком действия и привязанной политикой guardrail / firewall — каждое сужает ключ независимо.

1. Зачем ограничивать доступ к моделям на каждый API-ключ

Выбор модели — рычаг полномочий. Ключ, который может вызвать любую модель, можно направить в:
  • Взрыв стоимости — переключение на премиум-модель умножает счёт за токен.
  • Расползание возможностей — задача, ограниченная маленькой моделью, маршрутизируется на frontier-модель, которая может намного больше, чем вы задумывали.
  • Дрейф комплаенса — отправка трафика в семейство моделей, которое вы не одобрили для данного класса данных.
Ограничение ключа одной-двумя моделями, которые агенту реально нужны, закрывает все три сразу. Это эквивалент по оси моделей того, как firewall ведёт списки разрешённых инструментов — агент может дотянуться только до того, что вы назвали, и ни до чего больше.

2. Два поля

Лимиты моделей живут на ключе парой:
ПолеТипЗначение
model_limits_enabledboolГлавный переключатель. Когда false, ключ дотягивается до каждой модели, которую разрешает рабочее пространство.
model_limitslistСписок разрешённых имён моделей. Имеет смысл только когда model_limits_enabled равно true.
Эти два поля независимы, и комбинация важна: model_limits_enabled = true с пустым списком означает, что ключ не может дотянуться ни до одной модели — каждый запрос отклоняется с «This token has no access to any models.» Включайте переключатель только после того, как назвали хотя бы одну модель.

3. Задайте это на ключе

Настройте лимиты моделей в редакторе ключа в консоли (/console/token), там же, где вы задаёте остальные ограничения ключа. Создание или редактирование ключа требует роли Developer или выше.
  1. Откройте ключ (или Create key).
  2. Включите Model limits.
  3. Выберите модели, которые этот ключ может вызывать — печатайте, чтобы отфильтровать доступные модели рабочего пространства.
  4. Сохраните. Изменение вступает в силу на следующем запросе ключа — без передеплоя, без ротации ключа.
Запланированный суммаризатор, который должен касаться только одной дешёвой модели, в итоге имеет список ровно из одной записи:
model_limits_enabled: true
model_limits:         ["openai/gpt-4o-mini"]
С этого момента ключ закреплён за gpt-4o-mini. Любое другое имя модели в запросе от этого ключа отклоняется — нет отката к default-модели и нет тихого понижения.
Сочетайте лимиты моделей с лимитом credit_limit_usd на том же ключе. Список моделей ограничивает, к какой модели может дотянуться зацикленный прогон; лимит расходов ограничивает, сколько он может сжечь, прежде чем ключ перестанет работать. Два независимых потолка, оба применяются на шлюзе. См. Лимит квоты и срок действия.

4. Как выглядит отклонённый запрос

Когда model_limits_enabled включено и запрос называет модель вне списка, шлюз прерывает запрос с HTTP 403 и телом ошибки в форме OpenAI:
{
  "error": {
    "message": "This token has no access to model claude-opus-4-8 (request id: 2024...abc)",
    "type": "orcarouter_api_error",
    "code": ""
  }
}
Ключевые свойства отклонения:
Проверка выполняется, пока шлюз ещё выбирает канал — запрос никогда не достигает вышестоящего провайдера, так что запрещённая модель не стоит токенов модели.
С включённым переключателем и пустым списком разрешённых сообщение — «This token has no access to any models» и каждый запрос отклоняется. Это разница между «ограничить списком» и «полностью отрезать ключ от инференса».
Имя модели в запросе нормализуется перед проверкой по списку, так что связанные варианты (например, thinking-варианты) разрешаются в то же каноническое имя, которое вы внесли в список. Указывайте базовое имя модели, которое показывает консоль.

5. Лимиты моделей vs. права группы

Две разные вещи решают, может ли ключ вызвать модель. Не путайте их:
СлойОбластьНа какой вопрос отвечает
Право рабочего пространстваРабочее пространствоДоступна ли эта модель рабочему пространству вообще?
model_limitsОдин ключИз доступных моделей, какие может использовать ЭТОТ ключ?
model_limits только сужает. Ключ не может использовать лимиты моделей, чтобы дотянуться до модели, на которую само рабочее пространство не имеет права — он может лишь вырезать меньший список разрешённых из того, что уже позволено. Чтобы дать ключу ничего сверх, но строго меньше, — это ровно то, для чего предназначено это поле.

6. Как это вписывается в позицию минимальных полномочий

Лимиты моделей — одна строка рецепта ключа на агента. Самый узкий полезный ключ для автономного агента закрепляет все его оси сразу: Когда такой ключ скомпрометирован через prompt-инъекцию, радиус поражения ограничен по каждой оси — включая то, на какие модели злоумышленник может тратить ваш бюджет.
Лимиты моделей — это ограничение идентичности на ключе, а не политика содержимого или действий. Они не проверяют промпты (это Guardrails) и не вызовы инструментов (это Firewall) — они решают заранее, к какой модели ключу вообще разрешено обращаться.

7. Дальнейшие шаги

Объект ключа

Каждое поле, которое несёт ключ — лимиты моделей, список IP, лимиты, срок действия и привязки политик — в одном справочнике.

Чек-лист минимальных полномочий

Полный рецепт ключа на агента: ограничьте каждую ось до минимума, который нужен агенту.

Область, ключи и политики

Как ключи, guardrails и политики firewall связываются в одну идентичность агента.

Привязка политик к ключу

Прикрепите guardrail и политику firewall к одному ключу.
Ограничение доступа к моделям на каждый API-ключ — самый дешёвый контроль полномочий, который вы можете применить: один список разрешённых, применяемый на шлюзе, который ни один скомпрометированный агент не сможет обойти уговорами.