Перейти к основному содержанию
Вы можете привязать guardrail к одному API-ключу, но большинству команд нужен базовый уровень: контентная политика, которая применяется к каждому ключу в рабочем пространстве, если ключ не выбрал что-то иное. Этот базовый уровень — default рабочего пространства: один guardrail, помеченный is_default, на который шлюз откатывается всякий раз, когда у ключа нет явной привязки. Эта страница охватывает default-guardrail ИИ: как его задать, как работает разрешение и один инвариант, который стоит запомнить — один default на рабочее пространство. Полный справочник по движку см. в справочнике Guardrails.
Всё здесь — это действие в консоли на хостируемом шлюзе (api.orcarouter.ai), выполняемое в рамках вашей сессии. Только финальный вызов /v1/* использует relay-ключ sk-orca-.... Продвижение или понижение default-guardrail требует Developer+ в рабочем пространстве.

1. Зачем задавать default-guardrail ИИ

Привязка для каждого ключа точна, но её легко забыть — выпустите новый ключ, пропустите выпадающий список, и этот ключ уходит с нулевой проверкой. Default рабочего пространства закрывает этот пробел:

Ключи без привязки наследуют его

Любой ключ, у которого guardrail_id не задан (0/null), проверяется default автоматически — включая ключи, созданные после того, как вы его задали.

Правьте один раз — смещайте всё пространство

Default живёт в шлюзе, а не на каждом ключе. Отредактируйте его, и каждый наследующий ключ сместится на следующем вызове — без передеплоя, без изменений SDK.
Распространённый паттерн: сделайте консервативный PII Shield default рабочего пространства, чтобы ничего не утекло случайно, затем позвольте конкретным ключам привязать более строгую или более мягкую политику, когда она им нужна.

2. Продвиньте guardrail в default

В консоли откройте Guardrails, отредактируйте guardrail, который хотите сделать базовым уровнем, и включите Set as workspace default. Сохраните.
1

Создайте или выберите guardrail

Создайте политику как обычно — например, пресет PII Shield, единственное правило pii, которое маскирует на стадии both.
2

Пометьте default и сохраните

Включите Set as workspace default и сохраните. Флаг is_default guardrail переключается в on.
3

Оставьте ключи без привязки

Любой ключ без явного guardrail теперь наследует этот. Ключи, которые уже указывают на другой guardrail, сохраняют свою привязку.
Default также должен быть включён, чтобы вступить в силу. Guardrail, помеченный is_default, но отключённый, разрешается в отсутствие применения — переключатель и состояние enabled — это независимые выключатели.

3. Один default на рабочее пространство — продвижение атомарно

Это инвариант: не более одного guardrail на рабочее пространство несёт is_default. Вам никогда не нужно вручную снимать старый. Когда вы продвигаете новый guardrail в default, шлюз понижает предыдущий default в той же транзакции — продвижение и понижение либо оба применяются, либо ни одно. Никогда не бывает окна, где два guardrail одновременно являются default, и никогда — окна, где ни одного нет.
Before:   billing-pii   ← is_default ✓
          legal-redact

Promote "legal-redact" to default
          (single transaction)
          ┌─────────────────────────────────────────┐
          │  legal-redact  → is_default = true       │
          │  billing-pii   → is_default = false       │
          └─────────────────────────────────────────┘

After:    billing-pii
          legal-redact  ← is_default ✓
Вам не нужно сначала понижать. Просто продвиньте новый — старый default очищается за вас, атомарно. Понижённый guardrail всё ещё существует и остаётся включённым; он просто больше не действует как fallback. Ключи, явно привязанные к нему, не затрагиваются.
Тот же атомарный обмен применяется, продвигаете ли вы при создании (помечаете совершенно новый guardrail как default) или при редактировании (переключаете флаг на существующем).

4. Как разрешение использует default

Для любого запроса шлюз разрешает ровно один guardrail (или ни одного) в этом фиксированном порядке:
ПорядокЧто применяется
1Явный guardrail_id ключа — если он существует и включён.
2Включённый is_default-guardrail рабочего пространства (у ключа нет привязки).
3None — запрос побайтно идентичен рабочему пространству без политики.
Явная привязка ключа никогда не откатывается молча на default. Если ключ указывает на guardrail и этот guardrail отключён, ключ разрешается в отсутствие применения — не в default рабочего пространства. Отключение привязанного guardrail — это выключатель для этого ключа. (Политики firewall здесь ведут себя иначе — отключённая привязанная политика firewall откатывается на default рабочего пространства. См. Guardrails vs. firewall.)
Итак, default — это fallback только для непривязанных ключей. Он никогда не переопределяет ключ, который сделал явный выбор.
Fail-open по дизайну. Если разрешение default наталкивается на временную ошибку, шлюз деградирует до отсутствия применения, а не проваливает запрос. Деградирует безопасность; доступность сохраняется.

5. Разобранный пример

Допустим, в вашем рабочем пространстве два guardrail и три ключа:
  • pii-shield — помечен default рабочего пространства, включён.
  • strict-block — блокирует кредитные карты, не default.
  • Ключ A — без привязки. Ключ B — привязан к strict-block. Ключ C — привязан к guardrail, который вы позже отключили.
Запрос, упоминающий email, разрешается так:
guardrail_id не задан, поэтому разрешение проваливается на включённый is_default-guardrail pii-shield. Email маскируется в [EMAIL] прежде, чем модель его увидит.
Явная привязка побеждает. Применяется strict-block; default никогда не запрашивается.
Привязка существует, но её guardrail отключён, поэтому разрешение возвращает none — оно не проваливается на pii-shield. Запрос не проверяется.
Теперь продвиньте strict-block в default и сохраните. В одной транзакции strict-block.is_default становится true, а pii-shield.is_default становится false. Ключ A немедленно наследует strict-block на своём следующем вызове — без какого-либо изменения самого ключа.

6. Подтверждение, что запрос попадает в default

Отправьте запрос с непривязанным ключом и проверьте Ленту совпадений — совпадение, записанное под вашим default-guardrail, подтверждает, что fallback сработал:
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": "Reply to jane@acme.com please"}
    ]
  }'
Если default — это маскирующая PII-политика, шлюз переписывает email в [EMAIL] перед пересылкой. Если он блокирует, вызов возвращает HTTP 400 guardrail_blocked — что не стоит квоты и помечается skip-retry. См. ошибку guardrail_blocked для полной формы ответа.
Хотите доказать поведение default прежде, чем какой-либо ключ на него полагается? Откройте вкладку Test в редакторе guardrail и прогоните образец на стадии input — без вышестоящего вызова, без квоты. См. Тестирование и оценку.

7. Куда дальше

Привязка к одному ключу

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

Создайте свой первый guardrail

Сквозной цикл — создать, протестировать, привязать, отправить.

Разрешение и область

Как ключи, политики и рабочие пространства сочетаются.

Версионирование

Каждое продвижение пишет строку истории — сравнивайте и откатывайте.
Продвижение или понижение default — это само по себе версионируемое изменение — откройте History на guardrail, чтобы увидеть, когда переключился is_default и кто это сделал. Полное описание движка читайте в справочнике Guardrails.