Перейти к основному содержанию
Сбежавший промпт — это сбежавший счёт. Агент, который вставляет в контекст транскрипт на 400 КБ, цикл повторов, который продолжает переотправлять тот же раздутый запрос, модель, которая стримит стену текста на 50 000 символов — каждый из них тарифицирует токены, которые вы никогда не собирались тратить. Категория пресетов cost ставит жёсткий потолок перед этими запросами, чтобы шлюз останавливал их до того, как они дойдут до вышестоящей модели и тарификации. Это сфокусированная посадочная страница для сценария контроля стоимости. Полный движок guardrail — каждый тип правила, поле и маршрут — см. в справочнике Guardrails.

1. Сценарий llm cost guardrail

Рычаг — один встроенный тип правила: max_chars. Он ограничивает число символов текста на стадии. Нет вызова модели, нет сетевого перехода — детерминированная проверка длины, которая выполняется на запросе до тарификации или на ответе после возврата модели. Две формы, выбираемые действием правила:

Блокировать слишком большие запросы

На правиле max_chars для запроса с действием block любой промпт сверх лимита отклоняется с HTTP 400 guardrail_blocked — и заблокированный запрос не стоит квоты, потому что блокировка срабатывает до тарификации использования.

Обрезать слишком большие ответы

На правиле max_chars с действием mask текст усекается до лимита вместо отклонения — вызывающий всё равно получает пригодный ответ, лишь ограниченный. Полезно на стадии ответа для ограничения egress.
Лимит считает символы (с учётом рун — 日本語 это три, а не девять), а не токены. Поставляемый токен-ориентированный пресет переводит токеновый бюджет в символьный потолок по стандартному отношению char→token; ужесточайте поле max_chars правила напрямую для более строгого бюджета.

2. Поставляемые пресеты cost

Откройте split-кнопку New guardrail в консоли и выберите из категории шаблонов cost. Три пресета засевают по одному правилу max_chars:
ПресетСтадия · действиеЛимит
Prompt-Size Capinput · block50 000 символов
Token Cost Cap (prompt)input · block200 000 символов (~50K токенов)
Response Size Capoutput · block32 000 символов
Каждый пресет — это семя, а не замок — примените его, затем отредактируйте значение max_chars, стадию или действие под ваш бюджет. Создание и редактирование guardrails требует Developer+ в рабочем пространстве.
Response Size Cap — это лимит стадии output. Чтобы обрезать длинный ответ, а не отклонить его, переключите его действие на mask — шлюз урезает ответ до лимита, и пользователь всё равно получает усечённый, но пригодный ответ вместо ошибки.

3. Создайте собственный лимит

Правило cost — простейшее правило в движке — стадия, действие и целое число. Чтобы ограничить запросы 20 000 символами и отклонить всё больше:
{
  "type": "max_chars",
  "stage": "input",
  "action": "block",
  "max_chars": 20000
}
Добавьте его к любому guardrail в консоли. max_chars должно быть положительным целым; валидатор отклоняет 0 или отрицательные значения.

4. Протестируйте перед привязкой

Докажите, что лимит срабатывает там, где вы ожидаете, прежде чем на него укажет любой ключ. Откройте вкладку Test внутри редактора guardrail, вставьте образец, выберите стадию input и прогоните текущую политику локально — без вышестоящего вызова, без квоты. Образец сверх лимита возвращает заблокированный вердикт; образец под лимитом проходит нетронутым. Для правила-обрезки песочница показывает усечённый отрендеренный текст, так что вы можете подтвердить, что лимит попадает на границу руны, прежде чем на него полагаться.

5. Привяжите лимит к ключу

Cost-guardrail разрешается ровно как любой другой — привяжите его к API-ключу или установите default’ом рабочего пространства. Каждый шаг здесь — действие консоли под вашей собственной сессией.
1

Сохраните guardrail

Создайте или откройте guardrail в консоли, добавьте правило max_chars (или примените пресет cost) и сохраните.
2

Привяжите ключ

Отредактируйте API-ключ и выберите guardrail из выпадающего списка Guardrail (устанавливает guardrail_id на ключе) или пометьте guardrail default’ом рабочего пространства. См. Привязка к ключу и Default аккаунта.
3

Отправьте запрос

Используя этот ключ, вызовите OrcaRouter ровно как раньше — без новых заголовков, без изменения SDK:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "...a very long prompt..."}
    ]
  }'
Если промпт сверх лимита, вызов возвращает HTTP 400 guardrail_blocked, и ничего не тарифицируется.

6. Что стоит заблокированный запрос

Лимит на стадии запроса — самый дешёвый guardrail для применения: он выполняется до тарификации использования, так что слишком большой промпт отклоняется с нулевой стоимостью квоты.
Нет. Блокировка на стадии input срабатывает до тарификации. Блокировка на стадии output возвращает предварительно списанную квоту после отклонения ответа. В любом случае вызывающий не платит квотой, получает HTTP 400 guardrail_blocked, и запрос помечается skip-retry — повторный прогон того же слишком большого промпта просто снова заблокировался бы. См. ошибку guardrail_blocked.
max_chars block на стадии output применяется в обоих случаях: на нестриминговом ответе ответ проверяется до того, как вернётся, а на стриминговом ответе сканер режет поток на лету, как только буфер пересечёт лимит. Mask (обрезка) на output сейчас применяется только к нестриминговым ответам. См. Покрытие стриминга.
Нет. У правила max_chars нет концепта подстроки, так что лента Matches записывает, что лимит сработал — его тип, действие и стадию — но никогда совпавшую подстроку, даже с включённым Log raw content. Вы получаете сигнал что он сработал без перезахвата слишком большой полезной нагрузки.

7. Где это вписывается

Лимит max_chars — грубый рычаг стоимости — жёсткий потолок, а не бюджет расходов на ключ. Чтобы ограничить доллары, а не символы, установите credit_limit_usd на самом API-ключе (0 = без лимита), который шлюз применяет независимо от любого guardrail. Они складываются стопкой: бюджет ключа ограничивает общие расходы, cost-guardrail ограничивает размер любого одного запроса или ответа.
Cost-guardrail проверяет размер содержимого, а не выбор модели или решение маршрутизации. Он отклоняет слишком большой промпт независимо от того, какая модель его обслуживает. Чтобы управлять вызовами инструментов агента — запрещать деструктивные действия или удерживать их для подтверждения — используйте Firewall, который решает на поверхности вызова инструмента (allow / deny / pending_approval), а не на поверхности содержимого.

8. Куда двигаться дальше

Правила стадии input

Как проверка запроса выполняется до вышестоящего вызова и до тарификации.

Правила стадии output

Проверка и обрезка ответа модели, со стримингом и без.

Ошибка guardrail_blocked

Форма HTTP 400, гарантия отсутствия квоты и skip-retry.

Тестирование и eval

Докажите лимит против корпуса, прежде чем привязать ключ.
Cost-лимиты ограничивают размер. Чтобы ограничить содержимое — PII, секреты, небезопасные промпты — начните с обзора Guardrails или прочтите справочник Guardrails для полного движка.